OSDN Git Service

PR c/17301
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2
3         PR c/17301
4         * builtins.c (expand_builtin_va_start): Check for too few
5         arguments to va_start.
6
7 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
8
9         PR c/17189
10         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
11         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
12         pedantic.
13         * c-parse.in (component_decl): Don't pedwarn here for unnamed
14         fields.
15
16 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
17
18         PR tree-optimization/17906
19         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
20         copy non-gimple reg arguments.
21
22 2004-10-09  Roger Sayle  <roger@eyesopen.com>
23
24         PR rtl-optimization/17853
25         * simplify-rtx.c (simplify_relational_operation): Correct comment.
26         Reorganize handling of comparison operations with floating point
27         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
28         Likewise, introduce support for comparison operations with vector
29         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
30
31         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
32         * doc/tm.texi: Likewise.
33
34 2004-10-09  Steven Bosscher  <stevenb@suse.de>
35
36         * regs.h (struct reg_info_def): Remove the last_node_uid and
37         changes_mode fields.
38         (REGNO_LAST_NOTE_UID): Don't define.
39         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
40         * regmove.c (copy_src_to_dest): Likewise.
41
42 2004-10-09  Roger Sayle  <roger@eyesopen.com>
43
44         PR middle-end/17894
45         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
46         relational comparison operator op needs to be swapped/reversed when
47         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
48
49 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
50
51         PR tree-opt/17902
52         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
53         instead of bsi_start.
54         (value_replacement): Likewise.
55         (abs_replacement): Likewise
56
57 2004-10-09  Steven Bosscher  <stevenb@suse.de>
58
59         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
60         (expand_gimple_cond_expr, expand_gimple_tailcall,
61         expand_gimple_basic_block): Use it to dump RTL for each stmt.
62         (tree_expand_cfg): Announce full RTL function dump.
63         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
64         not the graph version.
65         * tree-pretty-print.c (dump_generic_node): Allow empty statements
66         in the arms of a COND_EXPR for lowered nodes.
67
68 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
69
70         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
71         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
72         strtoufix16, strtoufix32, strtoufix64): Declare.
73
74 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
75
76         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
77         for an out-of-range floating point constant.
78         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
79         warning if the target format does not support infinities.
80
81 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
82
83         * emit-rtl.c (last_label_num, base_label_num): Remove.
84         (max_label_num): Always return label_num.
85         (set_new_last_label_num, restore_emit_status): Remove.
86         (init_emit): Don't initialize last_label_num.
87         * function.c (pop_function_context_from): Don't call
88         restore_emit_status.
89         * function.h: Remove the prototype for restore_emit_status.
90         * rtl.h: Remove the prototype for set_new_last_label_num.
91
92 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
93
94         * stmt.c (expand_decl_init): Remove.
95         * tree.h: Remove the corresponding prototype.
96
97 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
98
99         * integrate.c (try_constants, subst_constants, mark_stores):
100         Remove.
101         * integrate.h: Remove the prototype for try_constants.
102
103 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
104
105         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
106         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
107         comments about its relevance to errors.
108         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
109
110 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
111
112         PR c/16999
113         * c-ppoutput.c (cb_ident): Don't quote string as it is already
114         quoted.
115
116 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
117
118         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
119         reference_node_pool.
120
121 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
122
123         * tree-cfg.c: Fix a comment typo.
124
125 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
126
127         * config/s390/s390.c (s390_register_info): Don't save fprs for 
128         -msoft-float.
129         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
130
131 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
132
133         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
134         (TARGET_DEFAULT): Use symbolic values.
135         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
136         (TARGET_DEFAULT): Use symbolic values.
137         * config/s390/s390.c (s390_backchain_string): Initialize to
138         TARGET_DEFAULT_BACKCHAIN.
139
140 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
141
142         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
143         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
144         code.
145         (expand_builtin_strcat): Accept a type parameter.
146         (fold_builtin_mempcpy): Accept a type and endp parameter.
147
148         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
149         Accept an `exp' instead of an `arglist'.
150
151 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
152
153         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
154         reverting my 2004-09-07 patch to use build_int_cst.
155
156 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
157
158         PR target/17245
159         * config/sparc/sparc.c (input_operand): Remove redundant code
160         for handling LO_SUM.
161         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
162         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
163         Otherwise only accept it for TFmode if quad move insns are available.
164
165 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
166
167         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
168         common cases will be caught earlier than others.
169
170 2004-10-08  Michael Matz  <matz@suse.de>
171
172         * loop-doloop.c (doloop_optimize): Extend count.
173
174 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
175
176         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
177         (prefetch): Convert to expander.
178
179 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
180
181         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
182         first argument of CALL.
183         (tls_local_dynamic): Likewise.
184
185 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
186
187         * c-typeck.c (enum impl_conv): New.
188         (convert_for_assignment): Use it.  Take tree for function called
189         instead of its name.  Handle ObjC selectors for diagnostics at
190         start of function.  Select diagnostic text within the function
191         using full sentences for diagnsotics.  Use %qE to name functions
192         in diagnostics.
193         (convert_arguments, build_modify_expr,
194         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
195         callers to convert_for_assignment.
196         (warn_for_assignment): Remove.
197
198 2004-10-08  Nick Clifton  <nickc@redhat.com>
199
200         * config/sh/symbian.c (symbian_possibly_export_base_class):
201         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
202         TYPE_CONTAINS_VPTR_P.
203
204 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
205
206         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
207         fixed registers form all_used_regs. Update call_really_used_regs.
208         (CALL_REALLY_USED_REGISTERS): Define.
209         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
210         with call_really_used_regs.
211
212 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
213
214         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
215         for -profile as well as -p and -pg.
216
217 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
218
219         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
220
221 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
222
223         * tree-cfg.c (tree_block_forwards_to): Remove.
224         * tree-flow.h: Remove the corresponding prototype.
225
226 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
227
228         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
229         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
230
231 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
232
233         Radar 3813796
234         * config/rs6000/rs6000.c (rs6000_generate_compare): When
235         flag_trapping_math is in effect, don't generate subtract
236         instructions.
237
238 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
239
240         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
241         * config/s390/s390.c (s390_narrow_logical_operator): New function.
242         (s390_extra_constraint_str): Add 'A' constraints.
243         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
244         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
245         (CONSTRAINT_LEN): Likewise.
246         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
247         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
248         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
249         ("*iordi3"): Add OI alternative and splitter.
250         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
251         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
252         ("*xordi3"): Add XI alternative and splitter.
253         ("*xorsi3", "*xorhi3"): Likewise.
254
255 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
256
257         * config/mips/mips.c (mips_function_rodata_section): New function.
258         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
259
260 2004-10-07  Devang Patel  <dpatel@apple.com>
261
262         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
263         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
264         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
265         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
266         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
267         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI, 
268         UNSPEC_VCONDU_V16QI): New constant defines.
269         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
270         vconduv16qi): New patterns.
271         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
272         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
273         (get_vec_cmp_insn): Same.
274         (get_vsel_insn): Same.
275         (rs6000_emit_vector_compare): Same.
276         (rs6000_emit_vector_select): Same.
277         (INSN_NOT_AVAILABLE): New.
278         
279 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
280
281         PR tree-optimization/17749
282         * tree-tailcall.c (find_tail_calls): Check that parameter is
283         a gimple_reg.
284
285 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
286
287         * config/ia64/ia64.c: Fix a comment typo.
288
289 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
290
291         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
292
293 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
294
295         PR c++/17115
296         * tree-inline.c (expand_call_inline): Do not warn for functions
297         marked with attribute noinline.
298
299 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
300
301         PR target/17862
302         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
303         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
304
305         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
306         of 0 as 4th argument to pass_by_reference.
307         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
308
309 2004-10-06  Eric Christopher  <echristo@redhat.com>
310
311         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
312         attribute.
313
314 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
315
316         PR target/17770
317         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
318
319 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
320
321         PR rtl-optimization/17791
322         * loop-doloop.c (doloop_modify): Take number of iterations as
323         argument.
324         (doloop_optimize): Extend or shorten the number of iterations
325         when changing mode of counter register.
326         * loop-iv.c (lowpart_subreg): Export.
327         * rtl.h (lowpart_subreg): Declare.
328
329 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
330
331         PR tree-optimization/17806
332         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
333         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
334         flags moved to split_edge.
335
336 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
337
338         PR middle-end/17835
339         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
340         before tentatively building the conditional move sequence.
341
342 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
343
344         PR target/16815
345         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
346         check.
347         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
348         function_arg_padding.
349
350 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
351
352         PR bootstrap/17857
353         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
354
355 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
356
357         * hooks.c (hook_int_void_1, hook_void_int): Remove.
358         * hooks.h: Remove the corresponding prototypes.
359
360 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
361
362         PR middle-end/17849
363         * tree-nested.c (walk_stmt_info): Add changed field.
364         (convert_nonlocal_reference): Set changed to when we
365         change a decl to unnested decl.
366         <case ADDR_EXPR>: Instead of checking if the immediate part
367         of the ADDR_EXPR changed, check the field changed.
368         Use recompute_tree_invarant_for_addr_expr instead of unsetting
369         TREE_INVARIANT.
370         (convert_local_reference):  Set changed to when we
371         change a decl to unnested decl.
372         <case ADDR_EXPR>: Instead of checking if the immediate part
373         of the ADDR_EXPR changed, check the field changed.
374         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
375
376 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
377
378         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
379         * dwarf2out.c (dwarf2out_init): Remove references to
380         DWARF2_GENERATE_TEXT_SECTION_LABEL.
381         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
382         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
383
384 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
385
386         * c-typeck.c (convert_arguments): Take expression for called
387         function rather than its name.  Handle ObjC selectors directly
388         rather than relying on warn_for_assignment to do so.  Call warning
389         directly rather than warn_for_assignment.  Use %qE in diagnostics.
390         Say "argument" rather than "arg" in diagnostics.
391         (build_function_call): Update call to convert_arguments.
392
393 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
394
395         PR debug/17787
396         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
397         ENUMs specially instead of just saying we do.
398
399 2004-10-06  Eric Christopher  <echristo@redhat.com>
400
401         * dwarf2.h: Sync with include/elf/dwarf2.h
402
403 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
404
405         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
406         and TREE_VEC nodes.
407
408 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
409
410         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
411         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
412
413 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
414
415         * lambda-code.c (compute_nest_using_fourier_motzkin): New
416         function.
417         (lambda_compute_auxillary_space): Split from here.
418
419 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
420
421         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
422         * tree-flow.h: Add prototype.
423         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
424         expr_invariant_in_loop.
425
426 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
427
428         * tree-cfg.c (thread_jumps): Remove a duplicate check for
429         EXIT_BLOCK_PTR.
430
431 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
432
433         * config/s390/s390-protos.h (s_imm_operand): Remove.
434         (s390_pool_operand): Add prototype.
435         * config/s390/s390.c (general_s_operand): Remove.
436         (s_imm_operand): Remove.
437         (s_operand): Merge contents of general_s_operand.
438         (s390_pool_operand): New function.
439         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
440         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
441         ("*cmpdi_ccu"): Merge Q->Q alternative.
442         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
443         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
444         ("*cli"): Remove.
445         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
446         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
447         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
448
449 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
450
451         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
452         call ia64_function_arg_boundary.
453         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
454         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
455         (ia64_function_arg_advance): Do not put 128 bit floats into
456         FP registers.
457
458 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
459
460         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
461         Accept an expression instead of an arglist.
462         (expand_builtin_stpcpy): Accept an expression instead of an
463         arglist.
464
465 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
466
467         PR target/16007
468         * doc/install.texi (*-*-solaris2*): Mention potential problem
469         with Sun assembler + GNU linker and C++ programs.
470         Document status of binutils 2.15 release.
471
472 2004-10-06  Jan Hubicka  <jh@suse.cz>
473
474         * cse.c (cse_main): Kill push/pop context.
475
476 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
477
478         * pretty-print.c: Include tree.h.
479         (pp_base_prepare_to_format): New function, logic from
480         text_specifies_location.
481         (pp_base_format_text): Use gcc_assert.
482         * pretty-print.h (pp_prepare_to_format): New macro.
483         (pp_base_prepare_to_format): Prototype.
484         * diagnostic.c (text_specifies_location): Delete.
485         (bug_report_request): Delete.
486         (diagnostic_set_info): Don't call text_specifies_location.
487         (diagnostic_action_after_output): Put text from
488         bug_report_request inline here.  Use gcc_unreachable.
489         (diagnostic_report_current_function): Fix comment.
490         (diagnostic_report_diagnostic): Clarify logic for error recursion.
491         Call pp_prepare_to_format before diagnostic_starter.
492         (trim_filename): Use IS_DIR_SEPARATOR.
493         (fatal_error, internal_error): Use gcc_unreachable.
494         (error_recursion): Call diagnostic_action_after_output to
495         issue the bug_report_request message and exit.
496         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
497
498         * c-parse.in: Add list of diagnostic messages to insulate
499         translation template from version of yacc/bison used to
500         compile the grammar.
501
502 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
503
504         PR 16406
505         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
506
507 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
508
509         * basic-block.h: Remove the prototype for
510         flow_preorder_transversal_compute.
511         * cfganal.c (dfst_node): Remove.
512         (flow_preorder_transversal_compute): Likewise.
513         * rtl.h: Remove the prototype for get_jump_table_offset.
514         * rtlanal.c (get_jump_table_offset): Remove.
515
516 2004-10-05  Richard Henderson  <rth@redhat.com>
517
518         PR 17756
519         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
520
521 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
522
523         PR bootstrap/17817
524         * Makefile.in: Stage the build directory too.
525
526 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
527
528         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
529
530         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
531         (frv_emit_move): Same.
532
533         * config/frv/frv.c (frv_emit_move): New.
534         (frv_legitimize_address): New.
535
536         * config/frv/frv.md ("movsi"): Call frv_emit_move.
537         ("movqi"): Same.
538         ("movhi"): Same.
539         ("movdi"): Same.
540         ("movsf"): Same.
541         ("movdf"): Same.
542
543 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
544
545         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
546         system headers.
547
548 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
549
550         * c-decl.c (pushdecl): When an extern declaration at block scope
551         refers to a visible entity with internal linkage, use the old DECL
552         rather than the new one.
553
554 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
555
556         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
557         comments.
558
559 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
560
561         * tree-cfg.c (thread_jumps): Remove a duplicate check for
562         an infinite loop.
563
564 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
565
566         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
567         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
568         blocks.
569
570 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
571
572         * tree-cfg.c (cleanup_tree_cfg): Don't call
573         delete_unreachable_blosk() after thread_jumps().
574         (thread_jumps): Always remove basic blocks as they become
575         unreachable.
576
577 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
578
579         * tree-cfg.c (cleanup_tree_cfg): Remove variable
580         something_changed.  Simplify the while loop.
581
582 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
583
584         * builtins.c (expand_builtin_memmove): Delete duplicate code
585         and accept a tree type for the result.
586         (expand_builtin_bcopy): Accept a tree type for the result.
587         (fold_builtin_memmove): Accept an arglist and tree type for
588         the result.
589
590 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
591
592         * config/s390/s390.c (s390_dump_pool): Remove return value.
593         Use gen_pool_align, gen_pool_section_start/end instead of
594         gen_pool_start/end_31/64.
595         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
596         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
597         ("pool_start_31", "pool_end_31"): Remove.
598         ("pool_start_64", "pool_end_64"): Likewise.
599         ("pool_align", "pool_section_start", "pool_section_end": New insns.
600
601         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
602         (TARGET_CANNOT_COPY_INSN_P): Define.
603         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
604         (struct constant_pool): New member 'execute'.
605         (s390_add_execute, s390_find_execute): New functions.
606         (s390_execute_label, s390_execute_target): Likewise.
607         (s390_dump_pool): Output in-pool execute target templates.
608         (s390_dump_execute): New function.
609         (s390_alloc_pool, s390_free_pool): Handle execute templates.
610         (s390_mainpool_start, s390_mainpool_finish): Likewise.
611         (s390_chunkify_start, s390_chunkify_finish): Likewise.
612         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
613         ("*execute"): New insn pattern.
614         ("movmem_short", "*movmem_short"): Use splitters to generate
615         explicit execute pattern, remove embedded execute.
616         ("clrmem_short", "*clrmem_short"): Likewise.
617         ("cmpmem_short", "*cmpmem_short"): Likewise.
618
619 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
620
621         * tree-ssa.c (verify_ssa): Verify phi arguments only
622         contain renamed names.
623
624 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
625
626         * config/rs6000/linux.h: Formatting, whitespace.
627         * config/rs6000/linux64.h: Likewise.
628         * config/rs6000/rs6000-protos.h: Likewise.
629         * config/rs6000/rs6000.c: Likewise.
630         (easy_vector_splat_const): Add fall thru comments.
631         (output_vec_const_move): Likewise.
632
633 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
634
635         * Makefile.in: Update -Wno-error exceptions for move to build dir.
636
637 2004-10-05  Chao-Ying Fu  <fu@mips.com>
638             Richard Sandiford  <rsandifo@redhat.com>
639
640         * doc/invoke.texi (-mpaired-single): Link to the new description of the
641         built-in functions.  Document dependencies.
642         (-mips3d): Add link here too.
643         * doc/extend.texi (MIPS Paired-Single Support): New section.
644
645 2004-10-04  Chao-ying Fu  <fu@mips.com>
646
647         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
648
649 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
650
651         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
652         Initialize OPT_STATS to 0.
653
654 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
655
656         * tree-data-ref.c: Fix comment typos.
657
658 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
659
660         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
661         the predicate cannot be computed, don't initialize the result to
662         false.
663
664 2004-10-01  Eric Christopher  <echristo@redhat.com>
665
666         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
667         locally defined enum.
668         * dwarf2out.c (add_calling_convention_attribute): Don't
669         emit DW_CC_normal.
670
671 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
672
673         PR c/17178, PR c/17820
674         * c-decl.c (pop_scope): Do not warn about unused static
675         variables as they warned in the middle-end.
676
677 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
678
679         * builtins.c (expand_builtin_memcpy): Delete duplicate code
680         and make the first parameter the expression not the arglist.
681
682 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
683
684         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
685         as valid modes to expand address expressions.
686
687 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
688
689         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
690         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
691         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
692         code formatting conventions.
693
694 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
695
696         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
697
698 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
699
700         PR tree-optimization/16632
701         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
702         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
703         where | is used instead of &.
704
705 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
706
707         * ginclude/stddef.h: Fix a comment typo.
708
709 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
710
711         PR target/17443
712         * config.gcc (i?86-*-solaris2*): Restore correct logic
713         for --enable-threads option.
714         (sparc64-*-solaris2*): Likewise.
715         (sparc-*-solaris2*): Likewise.
716
717 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
718
719         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
720         (OS_MISSING_POWERPC64): Move, and comment.
721         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
722         (OS_MISSING_POWERPC64): Move, and comment.
723
724 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
725
726         * arm.c (output_call_mem): Add missing \t.
727
728 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
729
730         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
731         expand_builtin_strncmp): Delete duplicate code.
732
733 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
734
735         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
736         take check-base and -limit arguments.
737         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
738         check ranges for ARRAY_REF and COMPONENT_REF.
739         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
740         instrumentation.
741
742 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
743
744         * c-objc-common.c (c_tree_printer): Correct description of %E.
745         Don't fall through after printing an expression.
746
747 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
748
749         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
750
751 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
752
753         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
754         delete_unrechable_blocks() only when necessary.
755
756 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
757
758         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
759         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
760         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
761         __gthread_recursive_mutex_unlock): New functions.
762
763 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
764
765         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
766         * config/s390/tpf-eh.c: Remove file.
767         * config/s390/tpf-unwind.h: New file.
768         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
769         (MD_UNWIND_SUPPORT): Define.
770
771 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
772
773         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
774
775 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
776
777         * config/s390/s390-protos.h (s390_comparison): Add prototype.
778         * config/s390/s390.c (s390_comparison): New function.
779         (s390_branch_condition_mask): Return -1 for invalid comparisons.
780         (s390_branch_condition_mnemonic): Assert valid comparison.
781         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
782         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
783         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
784         s390_comparison instead of comparison_operator.
785
786         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
787         ("cmpmemdi"): Remove.
788         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
789         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
790         ("cmpint_si"): Rename to ...
791         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
792         ("cmpint_di", "*cmpint_di"): Likewise.
793         * config/s390/s390.c (s390_canonicalize_comparison): Remove
794         redundant UNSPEC_CMPINT conversions.
795         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
796
797 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
798
799         * collect2.c (COLLECT_PARSE_FLAG): Remove.
800         (main): Remove a reference to COLLECT_PARSE_FLAG
801         * system.h: Poison COLLECT_PARSE_FLAG.
802         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
803
804 2004-10-01  Paul Brook  <paul@codesourcery.com>
805
806         * config/arm/crti.asm: Give _init and _fini function type.
807
808 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
809
810         * common.opt (ftree-loop-ivcanon): Enable by default.
811         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
812         Enable complete loop unrolling.
813         (canonicalize_induction_variables, tree_unroll_loops_completely):
814         Reset scev info.
815
816 2004-10-01  Paul Brook  <paul@codesourcery.com>
817
818         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
819         not register number.
820         (thumb_find_work_register): Search full register range.
821
822 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
823
824         PR tree-opt/17343
825         * tree-cfg.c (group_case_labels): Get the label and not
826         the case expr for the default case.
827         When the label we looking at is the default, decrement the
828         new_size.
829
830 2004-10-01  Jan Hubicka  <jh@suse.cz>
831
832         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
833         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
834         * toplev.h (tree_rest_of_compilation): Update prototype.
835         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
836
837 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
838
839         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
840         cleanup_control_flow() out of the while loop.
841
842 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
843
844         * tree-vectorizer.c (vectorizable_operation): Fail unless
845         the mode for the vector type is indeed a vector mode.
846
847 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
848
849         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
850         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
851         of convert.
852         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
853         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
854         follow_ssa_edge_in_rhs): Ditto.
855         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
856         (dump_iv): Dump base_object.
857         (dump_use, dump_cand): Use dump_iv.
858         (determine_base_object): New function.
859         (alloc_iv): Initialize base_object field.
860         (record_use): Clear the ssa_name field of iv.
861         (get_computation_cost_at): Do not use difference of addresses of
862         two different objects.
863         (may_eliminate_iv): Do not require the loop to have just single exit.
864         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
865         (nonzero_p): New function.
866         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
867         tree_simplify_using_condition, simplify_using_initial_conditions,
868         loop_niter_by_eval, find_loop_niter_by_eval,
869         estimate_numbers_of_iterations_loop, compare_trees,
870         upper_bound_in_type, lower_bound_in_type,
871         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
872         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
873         instead of integer_(non)zerop.
874
875 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
876
877         Revert
878         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
879
880         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
881         and TI_VA_LIST_FPR_COUNTER_FIELD.
882         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
883         * tree-pass.h (pass_stdarg): Add.
884         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
885         * tree-stdarg.c: New file.
886         * Makefile.in (OBJS-common): Add tree-stdarg.o.
887         (tree-stdarg.o): Add dependencies.
888         * function.h (struct function): Add va_list_gpr_size and
889         va_list_fpr_size fields.
890         * function.c (allocate_struct_function): Initialize them.
891
892         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
893         va_list_{g,f}pr_counter_field.
894         (ix86_setup_incoming_varargs): Don't do anything if reg_save
895         area will not be used.  Only save registers that tree-stdarg.c
896         detected they need saving.
897         (ix86_va_start): Don't set up fields that won't be used.
898
899         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
900         va_list_{g,f}pr_counter_field.
901         (setup_incoming_varargs): Don't do anything if reg_save
902         area will not be used.  Only save registers that tree-stdarg.c
903         detected they need saving.
904         (rs6000_va_start): Don't set up fields that won't be used.
905
906 2004-09-30  Eric Christopher  <echristo@redhat.com>
907
908         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
909         sh abi.
910         * dwarf2out.c (add_calling_convention_attribute): New function.
911         (gen_subroutine_type_die): Use.
912         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
913         * target.h (gcc_target): Add dwarf_calling_convention.
914         * hooks.c (hook_int_tree_0): New function.
915         * hooks.h: Prototype.
916         * config/sh/sh.c: Include dwarf2.h.
917         (sh_dwarf_calling_convention): New function.
918         (TARGET_DWARF_CALLING_CONVENTION): Use.
919         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
920
921 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
922
923         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
924         expand_builtin_strrchr, expand_builtin_strpbrk,
925         expand_builtin_strncat, expand_builtin_strspn,
926         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
927         code.
928
929 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
930
931         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
932         prototype.
933         (s390_logical_operator_ok_p): Likewise.
934         * config/s390/s390.c (s390_expand_logical_operator): New function.
935         (s390_logical_operator_ok_p): Likewise.
936         * config/s390/s390.md ("anddi3"): New expander.
937         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
938         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
939         ("andsi3"): Use s390_expand_logical_operator.
940         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
941         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
942         ("andhi3"): New expander.
943         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
944         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
945         ("andqi3"): New expander.
946         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
947         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
948         ("iordi3"): New expander.
949         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
950         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
951         ("iorsi3"): Use s390_expand_logical_operator.
952         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
953         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
954         ("iorhi3"): New expiorer.
955         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
956         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
957         ("iorqi3"): New expiorer.
958         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
959         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
960         ("xordi3"): New expander.
961         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
962         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
963         ("xorsi3"): New expander.
964         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
965         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
966         ("xorhi3"): New expander.
967         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
968         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
969         ("xorqi3"): New expander.
970         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
971         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
972
973 2004-09-30  Roger Sayle  <roger@eyesopen.com>
974
975         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
976         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
977         machine mode as the result.
978
979 2004-09-30  Ben Elliston  <bje@au.ibm.com>
980
981         PR bootstrap/17761
982         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
983         FOR_EACH_EDGE macros.
984
985 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
986
987         * c-tree.h (readonly_error): Remove.
988         * c-typeck (enum lvalue_use): New.
989         (lvalue_or_else, readonly_error): Use it.  All callers changed.
990         (readonly_error): Make static.
991
992 2004-09-30  Jan Hubicka  <jh@suse.cz>
993
994         PR debug/13974
995         * cfgrtl.c (try_redirect_by_replacing_jump,
996         force_nonfallthru_and_redirect, commit_one_edge_insertion,
997         cfg_layout_merge_blocks):  Do not attach any line number information
998         to newly inserted instructions.
999         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
1000         emit_insn_*_noloc.
1001         (emit_*insn_before, emit_insn*_after): New.
1002         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
1003         existing locators.
1004         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
1005         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
1006
1007 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
1008
1009         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
1010         (s390_return_address_offset): Remove.
1011         (s390_can_eliminate): Add prototype.
1012         (s390_initial_elimination_offset): Add prototype.
1013         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
1014         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
1015         * config/s390/s390.c (s390_arg_frame_offset): Remove.
1016         (s390_return_address_offset): Remove.
1017         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
1018         (struct machine_function): New member split_branches_pending_p.
1019         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
1020         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
1021         (s390_optimize_prologue): Remove base_used argument.  Call
1022         s390_update_frame_layout instead of s390_register_info.  Handle
1023         prologue/epilogue insns that touch only RETURN_REGNUM.
1024         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
1025         (s390_register_info): Remove base_used and return_addr_used
1026         arguments, compute special register usage inline.  Return live
1027         register data to caller.
1028         (s390_frame_info): Remove arguments, do not call s390_register_info.
1029         (s390_init_frame_layout): New function.
1030         (s390_update_frame_layout): Likewise.
1031         (s390_emit_prologue): Call s390_update_frame_layout; some code
1032         move to there.  Do not emit pool placeholder insn if unnecessary.
1033
1034 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
1035
1036         * config/s390/s390.c (legitimate_reload_constant_p): Remove
1037         floating point constant workaround.
1038         (s390_secondary_input_reload_class): Handle PLUS reloads
1039         with too-large constant.
1040         (s390_expand_plus_operand): Likewise.
1041         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
1042         ("movsi"): Likewise.  Also, remove workaround for non-general
1043         operands.
1044         ("movdf"): Do not call force_const_mem.
1045         ("movsf"): Likewise.  Merge expander with *movsf insn.
1046         ("*movsf"): Remove, merge with movsf expander.
1047
1048 2004-09-30  Paul Brook  <paul@codesourcery.com>
1049
1050         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
1051         (ENDFILE_SPEC): Define.
1052         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
1053
1054 2004-09-30  Richard Henderson  <rth@redhat.com>
1055
1056         * config/alpha/qrnnd.asm: Mark for noexecstack.
1057
1058 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
1059
1060         * protoize.c, tree-cfg.c: Fix comment typos.
1061
1062 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
1063
1064         PR c/17730
1065         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
1066
1067 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
1068
1069         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
1070         expressions...
1071         (add_pointed_to_expr): ... here.
1072         Call add_pointed_to_expr for variables with DECL_INITIAL set.
1073         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
1074         pointer variable, if set.
1075
1076 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
1077
1078         * config/sh/sh.c: Follow spelling conventions.
1079
1080 2004-09-29  Richard Henderson  <rth@redhat.com>
1081
1082         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
1083         * doc/tm.texi (DWARF_ZERO_REG): New.
1084
1085         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
1086         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
1087         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
1088
1089 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
1090
1091         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
1092         with a PLUS as source operand.
1093         (expand_movstr): Likewise.
1094         (expand_builtin_stpcpy): Likewise.
1095
1096 2004-09-29  Richard Henderson  <rth@redhat.com>
1097
1098         PR 17739
1099         * tree-gimple.c (is_gimple_reg): Reject hard registers.
1100         (is_gimple_asm_val): New.
1101         * tree-gimple.h (is_gimple_asm_val): Declare.
1102         * gimplify.c (gimplify_asm_expr): Use it.
1103         * tree-pretty-print.c (print_declaration): Dump hard regs.
1104         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
1105         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
1106         * tree-ssa-pre.c (is_undefined_value): Likewise.
1107         * tree-ssa-copy.c (may_propagate_copy): Likewise.
1108         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
1109         * tree-ssa.c (warn_uninit): Likewise.
1110         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
1111
1112 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
1113
1114         * c-decl.c (merge_decls): Use comptype when comparing
1115         types to decide on DECL_SIZE save of olddecl.
1116
1117 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
1118
1119         * tree.h (INDIRECT_REF_P): New macro.
1120         * alias.c (get_alias_set): Use it
1121         (nonoverlapping_memrefs_p): Ditto.
1122         * emit-rtl.c (mem_expr_equal_p): Ditto.
1123         (set_mem_attributes_minus_bitpos): Ditto.
1124         (is_gimple_addressable): Ditto.
1125         (get_base_address): Ditto.
1126         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
1127         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
1128         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
1129         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
1130         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
1131         (add_address_candidates): Ditto.
1132         (rewrite_address_base): Ditto.
1133
1134 2004-09-30  Ben Elliston  <bje@au.ibm.com>
1135
1136         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
1137         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
1138         (rewrite_ssa_into_ssa): Likewise.
1139         * tree-phinodes.c (create_phi_node): Access the number of
1140         predecessor edges using EDGE_COUNT() and not num_preds.
1141
1142 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1143
1144         PR c/7425
1145         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
1146
1147 2004-09-29  Eric Christopher  <echristo@redhat.com>
1148
1149         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
1150
1151 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
1152
1153         * config/cris/cris.md (moverside, movemside): With MEM, make sure
1154         the address is (plus reg mem).
1155
1156 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
1157
1158         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
1159
1160 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
1161
1162         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
1163         cascaded if ... else if with a switch.
1164
1165 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1166
1167         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
1168
1169 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
1170
1171         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
1172         and TI_VA_LIST_FPR_COUNTER_FIELD.
1173         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
1174         * tree-pass.h (pass_stdarg): Add.
1175         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
1176         * tree-stdarg.c: New file.
1177         * Makefile.in (OBJS-common): Add tree-stdarg.o.
1178         (tree-stdarg.o): Add dependencies.
1179         * function.h (struct function): Add va_list_gpr_size and
1180         va_list_fpr_size fields.
1181         * function.c (allocate_struct_function): Initialize them.
1182
1183         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
1184         va_list_{g,f}pr_counter_field.
1185         (ix86_setup_incoming_varargs): Don't do anything if reg_save
1186         area will not be used.  Only save registers that tree-stdarg.c
1187         detected they need saving.
1188         (ix86_va_start): Don't set up fields that won't be used.
1189
1190         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
1191         va_list_{g,f}pr_counter_field.
1192         (setup_incoming_varargs): Don't do anything if reg_save
1193         area will not be used.  Only save registers that tree-stdarg.c
1194         detected they need saving.
1195         (rs6000_va_start): Don't set up fields that won't be used.
1196
1197 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
1198
1199         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
1200         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
1201         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
1202         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
1203         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
1204         ATTR_NONNULL_1_4): New.
1205
1206 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
1207
1208         PR tree-optimization/17697
1209         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
1210         cfg if needed.
1211
1212 2004-09-28  Per Bothner  <per@bothner.com>
1213
1214         * profile.c (branch_prob): Pass correct value to output_location,
1215         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
1216
1217 2004-09-28  Richard Henderson  <rth@redhat.com>
1218
1219         PR 15089
1220         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
1221         * tree-flow.h (may_propagate_copy_into_asm): Declare.
1222         * tree-ssa-ccp.c (replace_uses_in): Use it.
1223         * tree-ssa-dom.c (cprop_operand): Likewise.
1224
1225 2004-09-28 Jeff Law  <law@redhat.com>
1226
1227         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
1228         that no outgoing edges be left in the duplicate block.  Do no
1229         update information on outgoing edges or PHI nodes in target
1230         blocks here.
1231         (remove_ctrl_stmt_and_useless_edges): Renamed from
1232         remove_last_stmt_and_useless_edges.  Handle case where the
1233         block is empty or has no control statements.  Do not update edge
1234         flags here.
1235         (thread_block): Create a template block rather than copying the
1236         original block every time.  Create outgoing edges from the
1237         duplicate blocks and update PHIs at the target of the outgoing
1238         edges here.  Fix edge flags for the original block if necessary.
1239         * cfghooks (duplicate_block): No longer assert that the original
1240         block has incoming edges.
1241
1242 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
1243
1244         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
1245         Reg Vars to enforce register allocation with general constraints.
1246         (Explicit Reg Vars): Clarify relation to asm statements.
1247         (Local Reg Vars): Similar.
1248
1249 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
1250
1251         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
1252         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
1253         build_control_flow, new_edge): Remove.
1254         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
1255         (bitlst, bitlst_table_last, bitlst_table): Remove.
1256         (bblst): Store basic_block pointer instead of block index.
1257         (bblst_table): Likewise.
1258         (edgelst): Store edge pointer instead of edge index.
1259         (edgelst_table, edgelst_last): New variables.
1260         (extract_bitlst): Rename to ...
1261         (extract_edgelst): ... this.  Return edge pointers, not indices.
1262         (split_edges): Update call.
1263         (rgn_edges): Store edge pointers instead of indices.
1264         (edge_to_bit): Remove.
1265         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
1266         (SET_EDGE_TO_BIT): New macro.
1267         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
1268         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
1269         data structures instead of haifa_edge et al.  Use edge pointers
1270         instead of edge indices everywhere.
1271         (compute_dom_prob_ps): Use standard CFG data structures.  Account
1272         for exit edges.
1273         (compute_trg_info): Likewise.
1274         (propagate_deps): Likewise.
1275         (debug_candidate): Account for bblst data structure change.
1276         (check_live_1, update_live_1, is_pfree): Likewise.
1277         (IS_REACHABLE): Use standard CFG data structures.
1278         (init_ready_list): Update bblst_table/edgelst_table allocation.
1279         (schedule_region): Update alloc/cleanup code to data structure
1280         changes.  Use edge->aux to store per-region edge index.
1281         (init_regions): No longer call build_control_flow.  Do not
1282         create edge list any more.
1283
1284 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
1285
1286         * cse.c (cse_insn): Avoid creating direct non-local jumps.
1287         * combine.c (can_combine_p): Likewise.
1288         * local-alloc. (update_equiv_regs): Likewise.
1289
1290 2004-09-28  Richard Henderson  <rth@redhat.com>
1291
1292         PR 17531
1293         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
1294         Don't check VOIDmode here.  Force PLUS operands to common type.
1295         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
1296         Pmode if given a non pointer type.
1297
1298 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1299
1300         PR 17531
1301         * optabs.c (expand_binop): Force constants to the correct mode.
1302
1303 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
1304
1305         * config/s390/s390.c (s390_adjust_cost): Remove.
1306         (TARGET_SCHED_ADJUST_COST): Do not redefine.
1307         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
1308         * config/s390/s390.md ("main_pool"): Use "larl" type
1309         attribute if TARGET_CPU_ZARCH.
1310
1311 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
1312
1313         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
1314         variable.
1315
1316 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1317
1318         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
1319         name to the pass.
1320
1321 2004-09-28  Steven Bosscher  <stevenb@suse.de>
1322
1323         * common.opt (flag_gcse_sm): Disable by default.
1324         (flag_gcse_las): Likewise.
1325         (flag_web): Likewise.  Create from this file.
1326         * flags.h: Remove flag_web declaration.
1327         * toplev.c (flag_web): Likewise.
1328         (process_options): Never set flag_web.
1329
1330 2004-09-28  Steven Bosscher  <stevenb@suse.de>
1331
1332         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
1333         * tree-ssa-propagate.c: Include vec.h.
1334         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
1335         instead of varrays.
1336         (cfg_blocks_add): Assert the block is not already in the worklist.
1337         Update uses of interesting_ssa_edges and varying_ssa_edges.
1338         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
1339         ssa_propagate): Likewise.
1340
1341 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1342
1343         PR c/16409
1344         * c-decl.c (start_decl): Check for initializing incomplete array
1345         of VLAs.
1346         (build_compound_literal): Check for TYPE being error_mark_node.
1347         * c-parse.in (primary): Check for VLA compound literals.
1348
1349 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1350
1351         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
1352         with --disable-checking.
1353
1354 2004-09-28  Devang Patel  <dpatel@apple.com>
1355
1356         * tree-pretty-print.c (dump_generic_node): Print vector types.
1357
1358 2004-09-28  Nick Clifton  <nickc@redhat.com>
1359
1360         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
1361         invocation of the function sh_init_cumulative_args.
1362         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
1363         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
1364         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
1365         * config/sh/sh.c (sh_init_cumulative_args): New function based
1366         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
1367         heuristic added to determine the setting of force_mem when a
1368         library function is being called.
1369
1370 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1371
1372         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
1373         Skip constant arguments.
1374
1375 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1376
1377         * tree-ssa-alias.c (create_name_tags): If PTR points to a
1378         volatile type, mark the tag volatile.
1379         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
1380         volatile.
1381
1382 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
1383
1384         * tree.def (vec_cond_expr): Fix. Change 'e'
1385         to tcc_expression.
1386
1387 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
1388
1389         * basic-block.h: Fix a comment typo.
1390
1391 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
1392
1393         * optabs.c, optabs.h: Fix comment typos.
1394
1395 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
1396
1397         * config/sparc/sparc.md (call_address_struct_value_sp32):
1398         Properly mask the immediate field of the 'unimp' instruction.
1399         (call_symbolic_struct_value_sp32): Likewise.
1400
1401 2004-09-28  Ben Elliston  <bje@au.ibm.com>
1402             Steven Bosscher  <stevenb@suse.de>
1403             Andrew Pinski  <pinskia@physics.uc.edu>
1404
1405         Merge from edge-vector-branch:
1406         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
1407         (struct edge_def): Remove pred_next, succ_next members.
1408         (struct basic_block_def): Remove pred, succ members.  Add preds
1409         and succs members of type VEC(edge).
1410         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
1411         (BRANCH_EDGE): Likewise.
1412         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
1413         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
1414         (edge_iterator): New.
1415         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
1416         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
1417         (FOR_EACH_EDGE): New.
1418         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
1419         where applicable.
1420         (rotate_loop): Likewise.
1421         (find_traces_1_route): Likewise.
1422         (bb_to_key): Likewise.
1423         (connect_traces): Likewise.
1424         (copy_bb_p): Likewise.
1425         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
1426         (add_labels_and_missing_jumps): Likewise.
1427         (fix_up_fall_thru_edges): Likewise.
1428         (find_jump_block): Likewise.
1429         (fix_crossing_conditional_branches): Likewise.
1430         (fix_crossing_unconditional_branches): Likewise.
1431         (add_reg_crossing_jump_notes): Likewise.
1432         * bt-load.c (augment_live_range): Likewise.
1433         * cfg.c (clear_edges): Likewise.
1434         (unchecked_make_edge): Likewise.
1435         (cached_make_edge): Likewise.
1436         (make_single_succ_edge): Likewise.
1437         (remove_edge): Likewise.
1438         (redirect_edge_succ_nodup): Likewise.
1439         (check_bb_profile): Likewise.
1440         (dump_flow_info): Likewise.
1441         (alloc_aux_for_edges): Likewise.
1442         (clear_aux_for_edges): Likewise.
1443         (dump_cfg_bb_info): Likewise.
1444         * cfganal.c (forwarder_block_p): Likewise.
1445         (can_fallthru): Likewise.
1446         (could_fall_through): Likewise.
1447         (mark_dfs_back_edges): Likewise.
1448         (set_edge_can_fallthru_flag): Likewise.
1449         (find_unreachable_blocks): Likewise.
1450         (create_edge_list): Likewise.
1451         (verify_edge_list): Likewise.
1452         (add_noreturn_fake_exit_edges): Likewise.
1453         (connect_infinite_loops_to_exit): Likewise.
1454         (flow_reverse_top_sort_order_compute): Likewise.
1455         (flow_depth_first_order_compute): Likewise.
1456         (flow_preorder_transversal_compute): Likewise.
1457         (flow_dfs_compute_reverse_execute): Likewise.
1458         (dfs_enumerate_from): Likewise.
1459         (compute_dominance_frontiers_1): Likewise.
1460         * cfgbuild.c (make_edges): Likewise.
1461         (compute_outgoing_frequencies): Likewise.
1462         (find_many_sub_basic_blocks): Likewise.
1463         (find_sub_basic_blocks): Likewise.
1464         * cfgcleanup.c (try_simplify_condjump): Likewise.
1465         (thread_jump): Likewise.
1466         (try_forward_edges): Likewise.
1467         (merge_blocks_move): Likewise.
1468         (outgoing_edges_match): Likewise.
1469         (try_crossjump_to_edge): Likewise.
1470         (try_crossjump_bb): Likewise.
1471         (try_optimize_cfg): Likewise.
1472         (merge_seq_blocks): Likewise.
1473         * cfgexpand.c (expand_gimple_tailcall): Likewise.
1474         (expand_gimple_basic_block): Likewise.
1475         (construct_init_block): Likewise.
1476         (construct_exit_block): Likewise.
1477         * cfghooks.c (verify_flow_info): Likewise.
1478         (dump_bb): Likewise.
1479         (delete_basic_block): Likewise.
1480         (split_edge): Likewise.
1481         (merge_blocks): Likewise.
1482         (make_forwarder_block): Likewise.
1483         (tidy_fallthru_edges): Likewise.
1484         (can_duplicate_block_p): Likewise.
1485         (duplicate_block): Likewise.
1486         * cfglayout.c (fixup_reorder_chain): Likewise.
1487         (fixup_fallthru_exit_predecessor): Likewise.
1488         (can_copy_bbs_p): Likewise.
1489         (copy_bbs): Likewise.
1490         * cfgloop.c (flow_loops_cfg_dump): Likewise.
1491         (flow_loop_entry_edges_find): Likewise.
1492         (flow_loop_exit_edges_find): Likewise.
1493         (flow_loop_nodes_find): Likewise.
1494         (mark_single_exit_loops): Likewise.
1495         (flow_loop_pre_header_scan): Likewise.
1496         (flow_loop_pre_header_find): Likewise.
1497         (update_latch_info): Likewise.
1498         (canonicalize_loop_headers): Likewise.
1499         (flow_loops_find): Likewise.
1500         (get_loop_body_in_bfs_order): Likewise.
1501         (get_loop_exit_edges): Likewise.
1502         (num_loop_branches): Likewise.
1503         (verify_loop_structure): Likewise.
1504         (loop_latch_edge): Likewise.
1505         (loop_preheader_edge): Likewise.
1506         * cfgloopanal.c (mark_irreducible_loops): Likewise.
1507         (expected_loop_iterations): Likewise.
1508         * cfgloopmanip.c (remove_bbs): Likewise.
1509         (fix_bb_placement): Likewise.
1510         (fix_irreducible_loops): Likewise.
1511         (remove_path): Likewise.
1512         (scale_bbs_frequencies): Likewise.
1513         (loopify): Likewise.
1514         (unloop): Likewise.
1515         (fix_loop_placement): Likewise.
1516         (loop_delete_branch_edge): Likewise.
1517         (duplicate_loop_to_header_edge): Likewise.
1518         (mfb_keep_just): Likewise.
1519         (create_preheader): Likewise.
1520         (force_single_succ_latches): Likewise.
1521         (loop_split_edge_with): Likewise.
1522         (create_loop_notes): Likewise.
1523         * cfgrtl.c (rtl_split_block): Likewise.
1524         (rtl_merge_blocks): Likewise.
1525         (rtl_can_merge_blocks): Likewise.
1526         (try_redirect_by_replacing_jump): Likewise.
1527         (force_nonfallthru_and_redirect): Likewise.
1528         (rtl_tidy_fallthru_edge): Likewise.
1529         (commit_one_edge_insertion): Likewise.
1530         (commit_edge_insertions): Likewise.
1531         (commit_edge_insertions_watch_calls): Likewise.
1532         (rtl_verify_flow_info_1): Likewise.
1533         (rtl_verify_flow_info): Likewise.
1534         (purge_dead_edges): Likewise.
1535         (cfg_layout_redirect_edge_and_branch): Likewise.
1536         (cfg_layout_can_merge_blocks_p): Likewise.
1537         (rtl_flow_call_edges_add): Likewise.
1538         * cse.c (cse_cc_succs): Likewise.
1539         * df.c (hybrid_search): Likewise.
1540         * dominance.c (calc_dfs_tree_nonrec): Likewise.
1541         (calc_dfs_tree): Likewise.
1542         (calc_idoms): Likewise.
1543         (recount_dominator): Likewise.
1544         * domwalk.c (walk_dominator_tree): Likewise.
1545         * except.c (emit_to_new_bb_before): Likewise.
1546         (connect_post_landing_pads): Likewise.
1547         (sjlj_emit_function_enter): Likewise.
1548         (sjlj_emit_function_exit): Likewise.
1549         (finish_eh_generation): Likewise.
1550         * final.c (compute_alignments): Likewise.
1551         * flow.c (calculate_global_regs_live): Likewise.
1552         (initialize_uninitialized_subregs): Likewise.
1553         (init_propagate_block_info): Likewise.
1554         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1555         * gcse.c (find_implicit_sets): Likewise.
1556         (bypass_block): Likewise.
1557         (bypass_conditional_jumps): Likewise.
1558         (compute_pre_data): Likewise.
1559         (insert_insn_end_bb): Likewise.
1560         (insert_store): Likewise.
1561         (remove_reachable_equiv_notes): Likewise.
1562         * global.c (global_conflicts): Likewise.
1563         (calculate_reg_pav): Likewise.
1564         * graph.c (print_rtl_graph_with_bb): Likewise.
1565         * ifcvt.c (mark_loop_exit_edges): Likewise.
1566         (merge_if_block): Likewise.
1567         (find_if_header): Likewise.
1568         (block_jumps_and_fallthru_p): Likewise.
1569         (find_if_block): Likewise.
1570         (find_cond_trap): Likewise.
1571         (block_has_only_trap): Likewise.
1572         (find_if_case1): Likewise.
1573         (find_if_case_2): Likewise.
1574         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
1575         (perfect_nestify): Likewise.
1576         * lcm.c (compute_antinout_edge): Likewise.
1577         (compute_laterin): Likewise.
1578         (compute_available): Likewise.
1579         (compute_nearerout): Likewise.
1580         * loop-doloop.c (doloop_modify): Likewise.
1581         * loop-init.c (loop_optimizer_init): Likewise.
1582         * loop-invariant.c (find_exits): Likewise.
1583         * loop-iv.c (simplify_using_initial_values): Likewise.
1584         (check_simple_exit): Likewise.
1585         (find_simple_exit): Likewise.
1586         * loop-unroll.c (peel_loop_completely): Likewise.
1587         (unroll_loop_constant_iterations): Likewise.
1588         (unroll_loop_runtime_iterations): Likewise.
1589         * loop-unswitch.c (may_unswitch_on): Likewise.
1590         (unswitch_loop): Likewise.
1591         * modulo-sched.c (generate_prolog_epilog): Likewise.
1592         (sms_schedule): Likewise.
1593         * postreload-gcse.c (eliminate_partially_redundant_load):
1594         Likewise.
1595         * predict.c (can_predict_insn_p): Likewise.
1596         (set_even_probabilities): Likewise.
1597         (combine_predictions_for_bb): Likewise.
1598         (predict_loops): Likewise.
1599         (estimate_probability): Likewise.
1600         (tree_predict_by_opcode): Likewise.
1601         (tree_estimate_probability): Likewise.
1602         (last_basic_block_p): Likewise.
1603         (propagate_freq): Likewise.
1604         (estimate_loops_at_level): Likewise.
1605         (estimate_bb_frequencies): Likewise.
1606         * profile.c (instrument_edges): Likewise.
1607         (get_exec_counts): Likewise.
1608         (compute_branch_probabilities): Likewise.
1609         (branch_prob): Likewise.
1610         * ra-build.c (live_in): Likewise.
1611         * ra-rewrite.c (rewrite_program2): Likewise.
1612         * ra.c (reg_alloc): Likewise.
1613         * reg-stack.c (reg_to_stack): Likewise.
1614         (convert_regs_entry): Likewise.
1615         (compensate_edge): Likewise.
1616         (convert_regs_1): Likewise,
1617         (convert_regs_2): Likewise.
1618         (convert_regs): Likewise.
1619         * regrename.c (copyprop_hardreg_forward): Likewise.
1620         * reload1.c (fixup_abnormal_edges): Likewise.
1621         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
1622         (sbitmap_insersection_of_preds): Likewise.
1623         (sbitmap_union_of_succs): Likewise.
1624         (sbitmap_union_of_preds): Likewise.
1625         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
1626         (fix_basic_block_boundaries): Likewise.
1627         (sched_ebbs): Likewise.
1628         * sched-rgn.c (build_control_flow): Likewise.
1629         (find_rgns): Likewise.
1630         * tracer.c (find_best_successor): Likewise.
1631         (find_best_predecessor): Likewise.
1632         (tail_duplicate): Likewise.
1633         * tree-cfg.c (make_edges): Likewise.
1634         (make_ctrl_stmt_edges): Likewise.
1635         (make_goto_expr_edges): Likewise.
1636         (tree_can_merge_blocks_p): Likewise.
1637         (tree_merge_blocks): Likewise.
1638         (cfg_remove_useless_stmts_bb): Likewise.
1639         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
1640         (tree_block_forwards_to): Likewise.
1641         (cleanup_control_expr_graph): Likewise.
1642         (find_taken_edge): Likewise.
1643         (dump_cfg_stats): Likewise.
1644         (tree_cfg2vcg): Likewise.
1645         (disband_implicit_edges): Likewise.
1646         (tree_find_edge_insert_loc): Likewise.
1647         (bsi_commit_edge_inserts): Likewise.
1648         (tree_split_edge): Likewise.
1649         (tree_verify_flow_info): Likewise.
1650         (tree_make_forwarder_block): Likewise.
1651         (tree_forwarder_block_p): Likewise.
1652         (thread_jumps): Likewise.
1653         (tree_try_redirect_by_replacing_jump): Likewise.
1654         (tree_split_block): Likewise.
1655         (add_phi_args_after_copy_bb): Likewise.
1656         (rewrite_to_new_ssa_names_bb): Likewise.
1657         (dump_function_to_file): Likewise.
1658         (print_pred_bbs): Likewise.
1659         (print_loop): Likewise.
1660         (tree_flow_call_edges_add): Likewise.
1661         (split_critical_edges): Likewise.
1662         (execute_warn_function_return): Likewise.
1663         (extract_true_false_edges_from_block): Likewise.
1664         * tree-if-conv.c (tree_if_conversion): Likewise.
1665         (if_convertable_bb_p): Likewise.
1666         (find_phi_replacement_condition): Likewise.
1667         (combine_blocks): Likewise.
1668         * tree-into-ssa.c (compute_global_livein): Likewise.
1669         (ssa_mark_phi_uses): Likewise.
1670         (ssa_rewrite_initialize_block): Likewise.
1671         (rewrite_add_phi_arguments): Likewise.
1672         (ssa_rewrite_phi_arguments): Likewise.
1673         (insert_phi_nodes_for): Likewise.
1674         (rewrite_into_ssa): Likewise.
1675         (rewrite_ssa_into_ssa): Likewise.
1676         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
1677         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
1678         (rewrite_trees): Likewise.
1679         * tree-pretty-print.c (dump_bb_header): Likewise.
1680         (dump_implicit_edges): Likewise.
1681         * tree-sra.c (insert_edge_copies): Likewise.
1682         (find_obviously_necessary_stmts): Likewise.
1683         (remove_data_stmt): Likewise.
1684         * tree-ssa-dom.c (thread_across_edge): Likewise.
1685         (dom_opt_finalize_block): Likewise.
1686         (single_incoming_edge_ignoring_loop_edges): Likewise.
1687         (record_equivalences_from_incoming_edges): Likewise.
1688         (cprop_into_successor_phis): Likewise.
1689         * tree-ssa-live.c (live_worklist): Likewise.
1690         (calculate_live_on_entry): Likewise.
1691         (calculate_live_on_exit): Likewise.
1692         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
1693         (copy_loop_headers): Likewise.
1694         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
1695         (fill_always_executed_in): Likewise.
1696         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
1697         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
1698         (compute_phi_arg_on_exit): Likewise.
1699         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
1700         (get_loops_exit): Likewise.
1701         (split_loop_exit_edge): Likewise.
1702         (ip_normal_pos): Likewise.
1703         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
1704         Likewise.
1705         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
1706         (replace_phi_with_stmt): Likewise.
1707         (value_replacement): Likewise.
1708         * tree-ssa-pre.c (compute_antic_aux): Likewise.
1709         (insert_aux): Likewise.
1710         (init_pre): Likewise.
1711         * tree-ssa-propagate.c (simulate_stmt): Likewise.
1712         (simulate_block): Likewise.
1713         (ssa_prop_init): Likewise.
1714         * tree-ssa-threadupdate.c (thread_block): Likewise.
1715         (create_block_for_threading): Likewise.
1716         (remove_last_stmt_and_useless_edges): Likewise.
1717         * tree-ssa.c (verify_phi_args): Likewise.
1718         (verify_ssa): Likewise.
1719         * tree_tailcall.c (independent_of_stmt_p): Likewise.
1720         (find_tail_calls): Likewise.
1721         (eliminate_tail_call): Likewise.
1722         (tree_optimize_tail_calls_1): Likewise.
1723         * tree-vectorizer.c (vect_transform_loop): Likewise.
1724         * var-tracking.c (prologue_stack_adjust): Likewise.
1725         (vt_stack_adjustments): Likewise.
1726         (vt_find_locations): Likewise.
1727         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
1728         * config/i386/i386.c (ix86_pad_returns): Likewise.
1729         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1730         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1731
1732 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
1733
1734         PR target/16532
1735         * config/sparc/sparc.c (struct machine_function): New field
1736         'leaf_function_p' and 'prologue_data_valid_p'.
1737         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
1738         to conveniently access the above fields.
1739         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
1740         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
1741         of the generic flavor 'current_function_uses_only_leaf_regs'.
1742         (eligible_for_sibcall_delay): Likewise.
1743         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
1744         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
1745         (sparc_asm_function_prologue): Add sanity check for the assumption
1746         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
1747         (sparc_can_use_return_insn_p): New function.
1748         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
1749         (output_restore): Likewise.
1750         (output_sibcall): Likewise.
1751         (sparc_output_mi_thunk): Likewise.
1752         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
1753         * config/sparc/sparc.md (return): New expander.
1754
1755         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
1756
1757 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
1758
1759         PR c++/17642
1760         * stor-layout.c (layout_decl): Use fold_convert, not convert.
1761         (bit_from_pos): Likewise.
1762         (byte_from_pos): Likewise.
1763         (pos_from_bit): Likewise.
1764         (normalize_offset): Likewise.
1765         (place_field): Likewise.
1766         (finalize_type_size): Likewise.
1767         (layout_type): Likewise.
1768         * tree.c (build_index_type): Likewise.
1769
1770 2004-09-27  Devang Patel  <dpatel@apple.com>
1771
1772         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
1773         * genopinit.c (optabs): New entry for vcond_gen_code and
1774         vcondu_gen_code.
1775         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
1776         (get_rtx_code): New function.
1777         (vector_compare_rtx): New function.
1778         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
1779         (expand_vec_cond_expr_p): New function.
1780         (expand_vec_cond_expr): New function.
1781         (get_vcond_icode): New function.
1782         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
1783         (vcond_gen_code, vcondu_gen_code): Same.
1784
1785 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
1786
1787         * Makefile.in (STAGESTUFF): Split into ...
1788         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
1789         (mostlyclean): Update.
1790         (stage1-start, stage2-start, stage3-start, stage4-start,
1791         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
1792         Move the STAGEMOVESTUFF.
1793
1794 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
1795
1796         * system.h (getpagesize): Return 'int' instead of 'long'.
1797
1798 2004-09-27  Michael Matz <matz@suse.de>
1799
1800         PR bootstrap/17698
1801         PR bootstrap/17702
1802         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
1803         bmp_iter_and_init): Shift by bit_in_word.
1804
1805 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
1806
1807         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
1808         * configure.ac: Don't sinclude it here.
1809         * configure: Regenerate.
1810
1811 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
1812
1813         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
1814         Handle AND pattern
1815
1816 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
1817
1818         PR c/13804
1819         * c-typeck.c (build_component_ref): Name type involved in
1820         diagnostic for structure or union without a member of the given
1821         name.
1822
1823 2004-09-27  DJ Delorie  <dj@redhat.com>
1824
1825         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
1826         .comm alignment is bytes, not bits.
1827
1828 2004-09-27  Devang Patel  <dpatel@apple.com>
1829
1830         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
1831         (print_call_name): Do not print VEC_COND_EXPR.
1832
1833 2004-09-27  Devang Patel  <dpatel@apple.com>
1834
1835         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
1836
1837 2004-09-27  Jan Hubicka  <jh@suse.cz>
1838
1839         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
1840
1841 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
1842
1843         * bitmap.h: Fix a comment typo.
1844
1845 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
1846
1847         * libgcc2.c (getpagesize): Change type of return value to int.
1848
1849 2004-09-26  Matt Austern  <austern@apple.com>
1850
1851         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
1852         using mmap.
1853
1854 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1855
1856         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
1857         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
1858         (bitmap_iterator): New type.
1859         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
1860         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
1861         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
1862         bmp_iter_and_init, bmp_iter_and_next): New functions.
1863         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
1864         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
1865         use iterator-style EXECUTE_IF_IN_BITMAP macros.
1866         * bitmap.c (bitmap_print): Ditto.
1867         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
1868         btr_def_live_range): Ditto.
1869         * cfganal.c (compute_dominance_frontiers_1) Ditto.
1870         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
1871         Ditto.
1872         * ddg.c (build_inter_loop_deps): Ditto.
1873         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
1874         Ditto.
1875         * except.c (remove_eh_handler): Ditto.
1876         * flow.c (reg_set_to_hard_reg_set): Ditto.
1877         * gcse.c (clear_modify_mem_tables): Ditto.
1878         * global.c (build_insn_chain): Ditto.
1879         * ifcvt.c (dead_or_predicable): Ditto.
1880         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
1881         Ditto.
1882         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
1883         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
1884         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
1885         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
1886         tree_purge_all_dead_eh_edges): Ditto.
1887         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
1888         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
1889         rewrite_ssa_into_ssa): Ditto.
1890         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
1891         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
1892         Ditto.
1893         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
1894         compute_flow_sensitive_aliasing, maybe_create_global_var,
1895         dump_points_to_info_for): Ditto.
1896         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
1897         * tree-ssa-dse.c (dse_finalize_block): Ditto.
1898         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
1899         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
1900         Ditto.
1901         * tree-ssa-loop-ivopts.c (find_induction_variables,
1902         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
1903         determine_use_iv_costs, determine_set_costs, find_best_candidate,
1904         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
1905         Ditto.
1906         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
1907         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
1908         add_call_read_ops): Ditto.
1909         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
1910
1911 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1912
1913         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
1914         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
1915
1916 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
1917
1918         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
1919         reflect size of memory regions being compared.
1920
1921 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
1922
1923         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
1924         expressions.  Always clear MEM_SIZE and alias set.
1925
1926 2004-09-26  Roger Sayle  <roger@eyesopen.com>
1927             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1928
1929         PR middle-end/17112
1930         * stor-layout.c (compute_record_mode): For records with a single
1931         field, only use the field's mode if its size matches what we'd
1932         have choosen for the record ourselves.  This forces the use of
1933         BLKmode for packed records that don't completely fill a mode.
1934
1935 2004-09-26  Roger Sayle  <roger@eyesopen.com>
1936
1937         PR middle-end/17151
1938         * combine.c (force_to_mode): Remove dubious early return test that
1939         inhibits further optimization.
1940
1941 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
1942
1943         * profile.c: Fix a comment typo.
1944
1945 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1946
1947         PR bootstrap/17591
1948         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
1949         with varying offset.
1950         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
1951         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
1952         ARRAY_REFS.
1953         (expr_invariant_in_loop_p): New function.
1954         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
1955         component_ref_field_offset for COMPONENT_REFs.  Do not allow
1956         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
1957         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
1958         MISALIGNED_INDIRECT_REFs.
1959         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
1960         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
1961         MISALIGNED_INDIRECT_REFs.
1962
1963 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
1964
1965         PR c/11459
1966         * gcc.c (cpp_options, cc1_options): Preserve relative order of
1967         -std and -ansi options.
1968
1969 2004-09-26  Jan Hubicka  <jh@suse.cz>
1970
1971         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
1972         for nested functions whose proper parent has not been output.
1973
1974         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
1975         when re-constructing profile previously invalidated by loop.
1976
1977 2004-09-25  Dale Johannesen  <dalej@apple.com>
1978
1979         * tree-gimple.c:  Move GIMPLE definition...
1980         * doc/tree-ssa.texi:  here.
1981
1982 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
1983
1984         * tree-vectorizer.c: Fix a comment typo.
1985
1986 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
1987
1988         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
1989         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
1990         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
1991         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
1992
1993 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
1994
1995         * tree-ssa-loop-unswitch.c: Fix a comment typo.
1996
1997 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
1998
1999         * doc/passes.texi: Fix a typo.
2000
2001 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2002
2003         * tree-optimize.c (init_tree_optimization_passes): Add
2004         pass_record_bounds.
2005         * tree-pass.h (pass_record_bounds): Declare.
2006         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
2007         New pass.
2008
2009 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2010
2011         PR tree-optimization/17474
2012         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
2013         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
2014
2015 2004-09-25  Jan Hubicka  <jh@suse.cz>
2016
2017         * predict.c (counts_to_freqs): Make global.
2018         * predict.h (counts_to_freqa): Declare.
2019         * profile.c (compute_branch_probabilities): Compute frequencies
2020         * tree-profile.c (do_tree_profiling): Refine conditional on when
2021         tree profiling pass is needed.
2022
2023         * passes.c (rest_of_handle_cfg): Disable const/pure function
2024         detection when doing tree based profiling.
2025
2026         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
2027         conditional.
2028
2029 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
2030
2031         * config/mips/mips.h (struct mips_args): Clarify comments.
2032         * config/mips/mips.c (struct mips_arg_info): Likewise.
2033         (mips_arg_info): Don't allow fpr_p to affect the register or
2034         stack alignment.  Remove o64 silliness.
2035         (function_arg): Deal with the o32 float,float case specially.
2036
2037 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
2038
2039         * config/mips/mips.md (loadx, storex): Define for V2SF.
2040
2041 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
2042
2043         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
2044         * config/s390/s390.c (s390_back_chain_rtx): New function.
2045         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
2046         Call anti_adjust_stack.
2047         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
2048         only if compiling with back chain.
2049         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
2050         back chain only if back chain enabled.  Use s390_back_chain_rtx.
2051
2052 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
2053
2054         * doc/trouble.texi: Remove obsolete information.  Update
2055         information on how to regenerate fixincluded headers.
2056
2057 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
2058
2059         PR c/12951
2060         * doc/invoke.texi: Document that
2061         -Wno-error-implicit-function-declaration is not accepted.
2062
2063 2004-09-24  Richard Henderson  <rth@redhat.com>
2064
2065         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
2066         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
2067         on TARGET_MAX.
2068         (alpha_expand_mov): Allow unaligned vectors.
2069         (alpha_expand_unaligned_store): Use CONST0_RTX.
2070         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
2071
2072 2004-09-24 Jeff Law  <law@redhat.com>
2073
2074         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
2075         aliasing rules.
2076         (simplify_cond_and_lookup_avail_expr): Likewise.
2077
2078 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2079
2080         PR c/12802
2081         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
2082         title.  Document interaction with -fms-extensions.
2083         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
2084         section.
2085
2086 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2087
2088         PR c/12713
2089         * doc/extend.texi: Document interaction of attribute noreturn and
2090         longjmp.
2091
2092 2004-09-24  Richard Henderson  <rth@redhat.com>
2093
2094         PR rtl-opt/17503
2095         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
2096         (som_hash, som_eq): New.
2097         (init_subregs_of_mode, record_subregs_of_mode): New.
2098         (cannot_change_mode_set_regs): Rewrite for htab implementation.
2099         (invalid_mode_change_p): Likewise.
2100         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
2101         * flow.c (mark_used_regs): Likewise.
2102         (life_analysis): Use init_subregs_of_mode.
2103         * regs.h (subregs_of_mode): Remove.
2104         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
2105
2106 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
2107
2108         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
2109         type with the copy of the conditional.
2110
2111 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
2112
2113         PR tree-opt/16954
2114         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2115         Prevent renaming if the aliasing sets of the type which the
2116         pointer points to are different.
2117
2118 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2119
2120         PR c/17188
2121         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
2122         declarations of enumerators.
2123         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
2124         for redefinition.  Check for nested redefinition.
2125         (finish_struct): Don't check for nested redefinition.
2126         (start_enum): Check for nested redefinition.
2127
2128 2004-09-24  Devang Patel  <dpatel@apple.com>
2129
2130         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
2131         only when necesssary.
2132         (combine_blocks): Combine loop header and exit block.
2133
2134 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
2135
2136         * hooks.c (hook_tree_tree_bool_null): New.
2137         * hooks.h (hook_tree_tree_bool_null): Declare it.
2138         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
2139         * targhooks.c (default_fold_builtin): Remove.
2140         * targhooks.h (default_fold_builtin): Remove.
2141
2142 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2143
2144         PR rtl-optimization/17625
2145         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
2146
2147 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
2148
2149         PR tree-opt/17624
2150         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
2151         Reject if any of the operands occur in an abnormal PHI.
2152
2153 2004-09-24  Andreas Schwab  <schwab@suse.de>
2154
2155         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
2156         rules.
2157
2158 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
2159
2160         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
2161         if the GNU assembler is used.
2162         (sparc-*-solaris2*): Likewise.
2163         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
2164         (dbxout_function_end): Protect N_ENSYM with it.
2165         (dbxout_begin_prologue): Protect N_BNSYM with it.
2166         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
2167         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
2168         * config/sparc/sol2-gas.h: New file.
2169
2170 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
2171
2172         PR bootstrap/17369
2173         * Makefile.in (@set_gcc_lib_path@): Added.
2174
2175         * configure.ac: Include ../config/gcc-lib-path.m4. Use
2176         TL_AC_GNU_MAKE_GCC_LIB_PATH.
2177         * configure: Regenerated.
2178
2179 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2180
2181         PR c/6980
2182         * c-typeck.c (build_c_cast): Improve wording of
2183         -Wbad-function-cast diagnostic.
2184
2185 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
2186
2187         PR target/17626
2188         * config/cris/cris.md (moverside, movemside): Rename variable
2189         "reg" to "otherop".  To generate canonical RTX, check that otherop
2190         isn't constant instead of checking that operand 1 is a register.
2191
2192 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
2193
2194         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
2195
2196 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
2197             Jakub Jelinek  <jakub@redhat.com>
2198
2199         * tree-flow.h (find_new_referenced_vars): Add prototype.
2200         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
2201         Move to...
2202         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
2203         ... here.
2204         (mark_new_vars_to_rename): Walk through all operands.
2205         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
2206         (execute_fold_all_builtins): Use it.
2207         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
2208
2209 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
2210
2211         * gthr-tpf.h: New file.
2212         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
2213         * gthr.h: Use gthr-tpf.h on TPF OS.
2214
2215 2004-09-23 Jeff Law  <law@redhat.com>
2216
2217         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
2218         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
2219         (substitute_and_fold):  Likewise.
2220         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
2221         except invariants from SSA_NAME_VALUE.
2222         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
2223         and SET_SSA_NAME_EQUIV.
2224         (restore_vars_to_original_value, record_const_or_copy): Likewise.
2225         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
2226         (record_equality, cprop_into_successor_phis): Likewise.
2227         (record_equivalences_from_stmt, cprop_operand): Likewise.
2228         (lookup_avail_expr): Likewise.
2229         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
2230         from SSA_NAME_VALUE.
2231         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
2232         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
2233         annotation from the VALUE_HANDLE field.
2234
2235 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
2236
2237         PR c++/13989
2238         PR c++/9844
2239         * tree.c (reconstruct_complex_type): Remove extra "this".
2240         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
2241         Add V4SFmode to case statement.
2242
2243 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2244
2245         PR c/16833
2246         * doc/extend.texi, doc/invoke.texi: Document interaction of
2247         -fno-builtin with format checks.  Note that built-in functions
2248         have effects beyond generating code that avoids calls to those
2249         functions.
2250
2251 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
2252
2253         PR tree-optimization/17533
2254         * dominance.c (verify_dominators): Tolerate even more incorrect
2255         dominance data during error message printing.
2256         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
2257         and edges more correctly.
2258
2259 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
2260
2261         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
2262         New tree-codes.
2263         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
2264         MISALIGNED_INDIRECT_REF.
2265         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
2266         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
2267         Likewise.
2268         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
2269         (find_interesting_uses_address): Likewise.
2270         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
2271         (build_fold_addr_expr_with_type): Likewise.
2272         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
2273         * print-rtl.c (print_mem_expr): Likewise.
2274         * tree-dump.c (dequeue_and_dump): Likewise.
2275         * tree-eh.c (tree_could_trap_p): Likewise.
2276         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
2277         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
2278         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
2279         Likewise.
2280         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2281         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
2282         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
2283         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
2284         (add_address_candidates, rewrite_address_base): Likewise.
2285         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
2286         Likewise.
2287         * tree.c (staticp, build1_stat): Likewise.
2288
2289         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
2290         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
2291         * tree-ssa-operands.c (get_expr_operands): Likewise.
2292         * expr.c (expand_expr_real_1): Likewise.
2293
2294         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
2295         optabs.
2296         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
2297         for the new optabs.
2298         (expand_ternary_op): New function.
2299         * genopinit.c (optabs): Handle the new optabs.
2300         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
2301         (init_optabs): Initialize vec_realign_load_optab.
2302         (expand_ternary_op): New functions.
2303
2304         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
2305         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
2306         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
2307         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
2308         * target.h (struct vectorize): New member for struct gcc_target.
2309         (misaligned_mem_ok): New member for targetm.vectorize.
2310         (builtin_mask_for_load): Likewise.
2311         (builtin_mask_for_store): Likewise.
2312         * targethooks.c (default_vect_misaligned_mem_ok): New function.
2313         * targethooks.h (default_vect_misaligned_mem_ok): New function.
2314
2315         * config/rs6000/altivec.md (build_vector_mask_for_load): New
2316         define_expand.
2317         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
2318         (vec_realign_load_v16qi): New define_insn.
2319         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
2320         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
2321         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
2322         (altivec_builtin_mask_for_store): New variables.
2323         (rs6000_builtin_mask_for_load): New function. Implements
2324         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
2325         (rs6000_builtin_mask_for_store): New function. Implements
2326         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
2327         (rs6000_expand_builtin): Expand the target builtins
2328         builtin_mask_for_load and builtin_mask_for_store.
2329         (altivec_init_builtins): Initialize the new target builtins.
2330         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
2331         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
2332
2333         * tree-vectorizer.c (vect_create_data_ref): Renamed to
2334         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
2335         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
2336         (vectorizable_store): Call vect_create_data_ref_ptr with additional
2337         arguments, and create an indirect_ref with its return value data_ref.
2338         Check aligned_access_p.
2339         (vectorizable_load): Handle misaligned loads, using software-pipelined
2340         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
2341         vec_realign_load_optab is supported, or using a scheme without
2342         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
2343         misaligned_mem_ok is supported.
2344
2345         (vect_finish_stmt_generation): Typo.
2346         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
2347         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
2348         presence of misaligned loads.
2349         (vect_analyze_data_ref_access): Add check for constant init.
2350         (vect_get_symbl_and_dr): Remove duplicate line.
2351         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
2352
2353 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
2354
2355         * builtins.c: Fix a comment typo.
2356
2357 2004-09-23  Jan Hubicka  <jh@suse.cz>
2358
2359         * profile.c (branch_prob): Do not verify flow info in the middle of the
2360         pass.
2361
2362 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2363
2364         * cfgloop.h (update_single_exits_after_duplication): Declare.
2365         (loopify, split_loop_bb): Declaration changed.
2366         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
2367         of rtx.
2368         (loopify): Added redirect_all_edges argument.
2369         (update_single_exits_after_duplication): Export.
2370         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
2371         * tree-flow.h (tree_duplicate_loop_to_header_edge,
2372         tree_ssa_loop_version): Declare.
2373         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
2374         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
2375         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
2376         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
2377
2378         * tree-ssa-loop-unswitch.c: New file.
2379         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
2380         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
2381         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
2382         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
2383         * tree-pass.h (pass_unswitch): Declare.
2384         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
2385         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
2386         * doc/passes.texi: Documen tree level loop unswitching.
2387
2388 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
2389
2390         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
2391
2392 2004-09-22  Eric Christopher  <echristo@redhat.com>
2393
2394         * builtins.c (simplify_builtin_va_start): Remove.
2395         (simplify_builtin): Ditto.
2396         (fold_builtin_strchr): Ditto.
2397         (simplify_builtin_*): Rename remainders to fold_builtin_*.
2398         (expand_builtin): Fix up for above changes.
2399         (fold_builtin_1): Add new folders. Change for above.
2400         (expand_builtin_va_start): Call fold_builtin_next_arg.
2401         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
2402         * tree.h: Remove prototype for simplify_builtin.
2403
2404 2004-09-23  Jan Hubicka  <jh@suse.cz>
2405
2406         PR debug/17389
2407         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
2408         of fully inlined functions.
2409         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
2410         inlined.
2411
2412         * cfgexpand.c (add_reg_br_prob_note): New function.
2413         (expand_gimple_cond_expr): Use it.
2414         (tree_expand_cfg): No longer kill the profile.
2415         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
2416         only if it is present.
2417         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
2418         * predict.c (combine_predictions_for_insn): Set the probabilities
2419         based on REG_BR_PROB note if present.
2420         * predict.c (branch_prob): Profile is read only with
2421         flag_branch_probabilities.
2422
2423 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2424
2425         * aclocal.m4: Add in gettext's m4 includes.
2426         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
2427         * configure.ac: Add in check for iconv.h
2428         * configure: Regenerate.
2429
2430 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2431
2432         * aclocal.m4: Update for rename of gettext-sister.m4.
2433
2434 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
2435
2436         Fix PR tree-optimization/17587
2437         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
2438         (insert_aux): Instead of here.
2439
2440 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
2441
2442         PR tree-optimization/16721
2443         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
2444         * tree-ssa-alias.c (create_memory_tag): Move setting of
2445         TREE_THIS_VOLATILE ...
2446         (get_tmt_for): ... here.
2447
2448 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2449
2450         * config/sparc/sparc.md (cmove splitter): Fix formatting.
2451         (conditional_trap expander): Reject inappropriate CCmodes.
2452         (conditional trap insn): Use V9 syntax if possible.
2453
2454 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2455
2456         PR c/16566
2457         * c-typeck.c (build_component_ref): Don't special-case
2458         COMPOUND_EXPR.
2459
2460 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
2461
2462         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
2463         returns NULL.
2464
2465 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
2466
2467         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
2468         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
2469         TRUTH_XOR_EXPR): Mention the restriction on types.
2470
2471 2004-09-22  Matt Austern  <austern@apple.com>
2472
2473         * config/darwin.c (darwin_make_decl_one_only):
2474         Allow coalesced symbol to appear in static archive's table of contents
2475
2476 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
2477
2478         PR tree-optimization/17512
2479         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
2480         special cases.
2481
2482 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
2483
2484         * dbxout.c (get_lang_number): Do not define if
2485         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
2486
2487 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
2488
2489         PR target/15583
2490         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
2491         builtin_define ("__USE_INIT_FINI__").
2492
2493 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
2494
2495         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
2496         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
2497         * config/s390/s390.h (TARGET_TPF): New macro.
2498         * config/s390/s390.md ("eh_return"): New expander.
2499         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
2500         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
2501         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
2502         * config/s390/tpf.h (TARGET_TPF): Define to 1.
2503         (STACK_POINTER_OFFSET): Increase to 448.
2504         (TARGET_DEFAULT): Set -mtpf-trace on as default.
2505         (TPF_LOC_DIFF_OFFSET): New macro.
2506         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
2507         encoding.
2508         (__isPATrange): Add prototype.
2509         (MD_FALLBACK_FRAME_STATE_FOR): Define.
2510         * config/s390/tpf-eh.c: New file.
2511
2512 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
2513
2514         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
2515         operands in an integer comparison.
2516         * tree-cfg.c (find_taken_edge): Call fold() to determine
2517         whether the predicate is known.
2518
2519 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2520
2521         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
2522         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
2523         Create build and doc directories along with the language directories.
2524         Don't create doc directory separately.
2525         * configure: Regenerate.
2526         * Makefile.in: Create all object and executables files built
2527         with the build compiler in a build/ directory.
2528         (genobjnames): Add missing build objects.
2529         (STAGESTUFF): Don't stage the gen* programs.
2530         (ggc-none.o): Define dependencies for the target compiler.
2531         (build-print-rtl.o): Rename to build/print-rtl.o.
2532         (build-errors.o): Rename to build/errors.o.
2533         (build-varray.o): Rename to build/varray.o.
2534         (maintainerclean): Delete the contents of the build directory.
2535         ($(genobjs): %.o): Explicitly use -o.
2536         (build/insn-conditions.o): Delete specfic rule to use generic rule.
2537         (build/gengtype-lex.o): Likewise.
2538         (build/gengtype-yacc.o): Likewise.
2539         (build/gcov-iov.o): Likewise.
2540
2541 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
2542
2543         * vec.h (VEC_space): Return true if there _is_ space.
2544         (VEC_reserve): Adjust.
2545
2546 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
2547
2548         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
2549         use FPRs for scalar, complex and vector types only.
2550
2551 2004-09-21 Jeff Law  <law@redhat.com>
2552
2553         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
2554         the opt_stats_d structure.
2555         (vrp_data): Change from a varray into a hash table.
2556         (vrp_hash_elt): New structure for elements in the vrp hash table.
2557         (vrp_hash, vrp_eq):New functions for hashing and testing equality
2558         in the vrp hash table.
2559         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
2560         initialization slightly to make it easier to read.  No longer need
2561         to grow/clear the varray.  Instead empty and delete the hash table.
2562         (dom_opt_finalize_block): Update due to change of VRP_DATA from
2563         a varray to a hash table.
2564         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
2565
2566         * tree-ssa-ccp.c (get_default_value): If we have a constant
2567         value recorded for an SSA_NAME, then use that constant as
2568         the initial lattice value.
2569         (substitute_and_fold): Transfer equivalences discovered into
2570         SSA_NAME_EQUIV.
2571
2572         * tree.h (SSA_NAME_EQUIV): Add comments.
2573         (SET_SSA_NAME_EQUIV): Similarly.
2574
2575 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
2576
2577         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
2578
2579         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
2580
2581 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
2582
2583         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
2584         (finish_decl): Likewise.
2585
2586 2004-09-21  Devang Patel  <dpatel@apple.com>
2587
2588         * tree.def (VEC_COND_EXPR): New tree node.
2589         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
2590
2591 2004-09-21  Stan Shebs  <shebs@apple.com>
2592
2593         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
2594         * config/rs6000/darwin-world.asm: Likewise.
2595
2596 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
2597
2598         * tree-ssa.c (verify_def): Use print_generic_stmt,
2599         not debug_generic_stmt.
2600         (verify_use): Ditto.
2601         (verify_phi_args): Ditto.
2602         (verify_ssa): Ditto.
2603
2604 2004-09-21  Paul Brook  <paul@codesourcery.com>
2605
2606         * varasm.c (default_assemble_integer): Return false for values wider
2607         than the target word size.  Works around GAS bug.
2608
2609 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
2610
2611         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
2612         gets value 0.
2613         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
2614         if it has value 0.
2615
2616 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
2617
2618         * c-typeck.c (build_function_call): Give name of object
2619         we are attempting to call in error message.
2620         * c-objc-common.c (c_tree_printer): Call pp_expression,
2621         not return false, for 'E' case.
2622
2623 2004-09-21  Steven Bosscher  <stevenb@suse.de>
2624
2625         PR rtl-optimization/17482
2626         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
2627         load_killed_in_block_p): Clarify comments.
2628         (record_last_reg_set_info): Make static inline.
2629         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
2630         (record_opr_changes): New function to replace the above.
2631         (compute_hash_table): Clarify comments.  Use record_opr_changes.
2632         (reg_set_between_after_reload_p): Clean up.
2633         (reg_used_between_after_reload_p): Likewise.
2634         (eliminate_partially_redundant_load): Clarify comments.
2635
2636 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2637
2638         PR rtl-optimization/17266
2639         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
2640
2641 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
2642
2643         PR rtl-optimization/14851
2644         * rtlanal.c (commutative_operand_precedence): Calculate
2645         precedence of stripped constant.
2646
2647 2004-09-20 Jeff Law  <law@redhat.com>
2648            Jan Hubicka  <jh@suse.cz>
2649
2650         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
2651         initialize key elements here.
2652         (release_ssa_name): Zero the released SSA_NAME here.
2653         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
2654         (struct tree_ssa_name): Add new "equiv" field.
2655         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
2656         (tree_ssa_dominator_optimize): No longer allocate, resize or
2657         clear CONST_AND_COPIES.
2658         (get_value_for, set_value_for): Kill.
2659         (thread_across_edge): Get/set the equivalency using
2660         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
2661         (restore_vars_to_original_value): Likewise.
2662         (record_equivalences_from_phis): Likewise.
2663         (record_dominating_conditions): Likewise.
2664         (record_const_or_copy, record_equality): Likewise.
2665         (lookup_avail_expr): Likewise.
2666         (record_equivalences_from_stmt, cprop_operand): Likewise.
2667         (cprop_into_successor_phis): No longer need to pass around
2668         CONST_AND_COPIES.  Callers updated. Get equivalences via
2669         SSA_NAME_EQUIV.
2670         (cprop_into_phis): Likewise.
2671
2672 2004-09-20  Matt Austern <austern@apple.com>
2673             Zack Weinberg  <zack@codesourcery.com>
2674
2675         * c-common.c (fix_string_type): Build the unqualified array
2676         type unconditionally, then use c_build_qualified_type to get
2677         the proper const-qualified variant, and set its
2678         TYPE_MAIN_VARIANT to refer to the unqualified type.
2679         * c-lex.c (c_lex_return_raw_string): New global.
2680         (c_lex_with_flags): Honor it.
2681         * c-pragma.h: Declare it.
2682
2683 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
2684
2685         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
2686
2687 2004-09-21  Jan Hubicka  <jh@suse.cz>
2688
2689         PR middle-end/17126
2690         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
2691         (tree_rest_of_compilation): Cleanup.
2692
2693 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
2694
2695         * config/s390/s390.c (s390_select_rtx_section): Remove.
2696         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
2697
2698 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2699
2700         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
2701         note to pretend a direct save from the original register when an
2702         intermediate register is used for the save.
2703
2704 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2705
2706         * tsystem.h (alloca): Provide a default definition.
2707
2708         Revert:
2709         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2710             * unwind-dw2.c: Call __builtin_alloca, not alloca.
2711
2712 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
2713
2714         PR tree-opt/17558
2715         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
2716         aliasing sets are the same rather than just conflicting.
2717
2718 2004-09-20  Jan Hubicka  <jh@suse.cz>
2719
2720         PR middle-end/16460
2721
2722         * cgraph.c (cgraph_unnest_node): New function.
2723         (c_finalize): Rename to ....
2724         (c_warn_unused_result_recursivly): ... this one; do only the warning
2725         (finish_function): Finalize the toplevel function; do not lower nested tree.
2726         * cgraph.h (cgraph_unnest_node): Declare.
2727         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
2728         nestedness datastructure.
2729         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
2730         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
2731         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
2732
2733 2004-09-20  Richard Henderson  <rth@redhat.com>
2734
2735         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
2736         from some_small_symbolic_operand_1; export.
2737         (some_small_symbolic_operand): Remove.
2738         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
2739         extra C check.
2740         * config/alpha/predicates.md (some_small_symbolic_operand): New.
2741
2742 2004-09-20  Jan Hubicka  <jh@suse.cz>
2743
2744         * predict.c (return_prediction): New function.
2745         (apply_return_prediction): Likewise.
2746         (tree_bb_level_predictions): Likewise.
2747         (tree_estimate_probability): Add noreturn exit edges; call
2748         bb_level_predictions; fix logic of return heuristics.
2749         (predict_paths_leading_to):  Rescuesce from old CVS version of
2750         process_note_prediction function.
2751         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
2752
2753 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
2754
2755         * config/s390/s390.c (s390_frame_info): Added alignment statement for
2756         floating point register area on stack.
2757
2758 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
2759
2760         * predict.c (expr_expected_value): Use *_CLASS_P macros.
2761
2762 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
2763
2764         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
2765         generating useless garbage.
2766
2767 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
2768
2769         * builtins.c (fold_builtin): Call the new omonymous
2770         target hook for machine-dependent built-ins.
2771         * target-def.h (TARGET_FOLD_BUILTIN): New.
2772         * target.h (struct gcc_target): Add the fold_builtin hook.
2773         * targhooks.c (default_fold_builtin): New.
2774         * targhooks.h (default_fold_builtin): Declare it.
2775
2776 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
2777
2778         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
2779         comment typos.
2780
2781 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
2782
2783         PR target/17565
2784         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
2785
2786 2004-09-20  Jan Hubicka  <jh@suse.cz>
2787
2788         * predict.c (estimate_probability): Remove unnecesary code.
2789
2790 2004-09-19  Ira Rosen  <irar@il.ibm.com>
2791
2792         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
2793         (STMT_VINFO_VECT_DR_BASE): Declare.
2794         (VECT_SMODULO): Declare.
2795         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
2796         (vect_compute_array_base_alignment): New function.
2797         (vect_analyze_data_ref_access): Check array indices. Remove one
2798         dimensional arrays restriction.
2799         (vect_get_ptr_offset): New function.
2800         (vect_get_symbl_and_dr): New function.
2801         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
2802         (former name vect_get_base_decl_and_bit_offset).
2803         (vect_create_index_for_array_ref): Removed.
2804         (vect_create_index_for_vector_ref): New function.
2805         (vect_create_addr_base_for_vector_ref): New function.
2806         (vect_create_data_ref): Handle additional data refs. Call
2807         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
2808         (vect_compute_data_ref_alignment): Support the changes. Call
2809         vect_get_base_and_bit_offset.
2810         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
2811         data refs. Store vect_dr_base.
2812         (vect_analyze_data_ref_accesses): Support nonconstant init.
2813         (new_stmt_vec_info): Initialize vect_dr_base field.
2814         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
2815         (get_vectype_for_scalar_type): Check for BLKmode.
2816         * tree-chrec.h (initial_condition_in_loop_num): Declare.
2817         * tree-chrec.c (initial_condition_in_loop_num): New function.
2818         (chrec_component_in_loop_num): New function.
2819         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
2820         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
2821         to be pointer to varray_type.
2822
2823 2004-09-19  Jan Hubicka  <jh@suse.cz>
2824
2825         * basic-block.h (update_bb_profile_after_threading): Declare.
2826         * cfg.c (update_bb_profile_after_threading): Break out from ...
2827         * cfgcleanup.c (try_forward_edges): ... here; use it.
2828         * tree-ssa-dom.c (thread_across_edge): Use it.
2829         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
2830         profile of the new BB.
2831
2832 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
2833
2834         * tree-ssa-pre.c (insert_into_set): Don't put
2835         is_gimple_min_invariant values into the set.
2836
2837 2004-09-19  Andreas Jaeger  <aj@suse.de>
2838
2839         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
2840         prototype.
2841
2842 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
2843
2844         * config/cris/cris.h: Preserve the original spelling in a
2845         quote.
2846
2847 2004-09-18 Jeff Law  <law@redhat.com>
2848
2849         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
2850         global varrays to replace the block local varrays.
2851         (struct dom_walk_block_data): Remove, no longer used.
2852         (get_eq_expr_value): No longer need to pass around pointers to local
2853         varrays.  Callers updated.  Unused markers added to unused parameters.
2854         (record_range, record_equivalences_from_stmt): Likewise.
2855         (record_equivalences_from_incoming_edge): Likewise.
2856         (record_var_is_nonzero): Likewise.  Update now that we have a
2857         single global varray of SSA_NAMEs that need restoring.
2858         (dom_opt_initialize_block_local_data): Kill, no longer used.
2859         (tree_ssa_dominator_optimize): Initialize new global varrays.
2860         Update callbacks in dominator walker structure.
2861         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
2862         VRP_VARIABLES_STACK.
2863         (restore_nonzero_vars_to_original_value): Update now that we have
2864         a single global varray of SSA_NAMEs that need restoring.
2865         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
2866         Remove unused variables.
2867         (optimize_stmt): Remove unused variable.
2868
2869 2004-09-18  Jan Hubicka  <jh@suse.cz>
2870
2871         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
2872
2873         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
2874         verify_cgraph call.
2875
2876 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
2877
2878         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
2879         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
2880         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
2881         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
2882         tree-ssa-operands.c, tree-ssa-phiopt.c,
2883         tree-ssa-threadupdate.c: Fix comment typos.
2884
2885 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
2886
2887         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
2888         config/arm/README-interworking, config/arm/arm-cores.def,
2889         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
2890         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
2891         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
2892         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
2893         config/frv/frv.md, config/i386/winnt.c,
2894         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
2895         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
2896         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
2897         config/mcore/mcore.c, config/mips/mips.h,
2898         config/mn10300/mn10300.md, config/pa/pa.c,
2899         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
2900         config/rs6000/rs6000.c, config/sh/symbian.c,
2901         config/sparc/sparc.h: Fix comment typos.  Follow spelling
2902         conventions.
2903
2904 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
2905
2906         PR c/17424
2907         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
2908
2909 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
2910
2911         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
2912         remove TREE_ADDRESSABLE from RESULT_DECL.
2913
2914 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
2915
2916         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
2917
2918 2004-09-18  Jan Hubicka  <jh@suse.cz>
2919
2920         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
2921         NULL.
2922         * tree-ssa-alias.c (init_alias_info): Likewise.
2923         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
2924         (verify_ssa): Likewise.
2925         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
2926
2927 2004-09-18  Jan Hubicka  <jh@suse.cz>
2928
2929         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
2930         huge offset.
2931
2932 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2933
2934         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
2935         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
2936         DW_EH_PE_sdata* for data.
2937         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2938
2939 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
2940
2941         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
2942         shared anyway.
2943
2944         PR pch/13361
2945         * c-typeck.c (constructor_asmspec): Delete.
2946         (struct initializer_stack): Delete field 'asmspec'.
2947         (start_init): Delete saving of asmspec.
2948         (finish_init): Don't update constructor_asmspec.
2949         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
2950         * stmt.c (expand_asm): Duplicate strings from tree.
2951         (expand_asm_operands): Likewise.
2952         * tree.c (tree_size): Update computation of size of STRING_CST.
2953         (make_node): Don't make STRING_CST nodes.
2954         (build_string): Allocate string with tree node.
2955         (tree_code_size): Clean up assertions, don't allow requests
2956         for "the size of a STRING_CST".
2957         * tree.def (STRING_CST): Update comment.
2958         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
2959         (tree_string): Place contents of string in tree node.
2960         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
2961         from tree.
2962
2963 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
2964
2965         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
2966         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
2967
2968 2004-09-17  Jones Desougi  <jones@ingate.com>
2969
2970         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
2971         * configure, config.in: Regenerate.
2972
2973 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
2974
2975         * tree.c, tree.h (tree_class_strings): Make array const.
2976         Reindent per coding convention.  Move asterisk to proper place
2977         per coding convention.
2978
2979 2004-09-18  Andreas Schwab  <schwab@suse.de>
2980
2981         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
2982         (tree-vectorizer.o): Likewise.
2983         (targhooks.o): Likewise.
2984
2985 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
2986             Zack Weinberg  <zack@codesourcery.com>
2987
2988         * alias.c (find_base_decl): Remove unreachable case '3' block.
2989         * expr.c (safe_from_p): Abort if passed a type.
2990         * tree-gimple.c (recalculate_side_effects): Abort if passed
2991         anything other than an expression.
2992         * tree-ssa-pre.c (phi_translate): Return expr immediately if
2993         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
2994         Abort on un-handled tree classes.
2995         (valid_in_set): Likewise.
2996         * tree.c (tree_code_class_strings): New static data.
2997
2998         * tree.h (enum tree_code_class): New.
2999         (tree_code_class_strings): Declare.
3000         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
3001         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
3002         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
3003         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
3004         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
3005
3006         * tree.def, c-common.def, objc/objc-tree.def: Use
3007         tree_code_class enumeration constants instead of code letters.
3008
3009         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
3010         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
3011         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
3012         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
3013         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
3014         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
3015         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
3016         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
3017         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
3018         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
3019         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
3020         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
3021         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
3022         Update to match.
3023
3024         * LANGUAGES: Add note about change.
3025
3026 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
3027
3028         PR tree-optimization/17319
3029         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
3030         examine pointers on the LHS of an assignment.
3031         (collect_points_to_info_r): Handle RETURN_EXPR.
3032
3033 2004-09-17 Jeff Law  <law@redhat.com>
3034
3035         * tree-ssa-dom.c (const_and_copies_stack): New.
3036         (dom_walk_block_data): Remove const_and_copies field.
3037         (record_const_or_copy): No longer need to pass in varray_type *.
3038         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
3039         Callers updated.
3040         (record_equality): Similarly.
3041         (restore_vars_to_original_value): Similarly.  Revamp to use new
3042         single global stack rather than per-block stacks.
3043         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
3044         (thread_across_edge): Remove now unused parameters.
3045         (dom_opt_initialize_block_local_data): No longer test the block
3046         local CONST_AND_COPIES.
3047         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
3048
3049 2004-09-17  Jan Hubicka  <jh@suse.cz>
3050
3051         PR tree-optimization/17509
3052         * tree-optimize.c (update_inlined_to_pointers): New function.
3053         (tree_rest_of_compilation): Use it.
3054
3055 2004-09-17  Devang Patel  <dpatel@apple.com>
3056
3057         * dbxout.c (get_lang_number): New.
3058         (dbxout_init): Include lang number in N_SO  stab.
3059         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
3060         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
3061
3062 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
3063
3064         PR tree-optimization/17273
3065         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
3066         replacement is a constant.
3067
3068 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
3069
3070         * c-tree.h (enum c_typespec_keyword): New.
3071         (struct c_declspecs): Adjust description of "type".  Remove
3072         specbits, explicit_int_p and explicit_char_p.  Rename
3073         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
3074         short_p, signed_p, unsigned_p and complex_p.
3075         (finish_declspecs): New.
3076         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
3077         typename): Call finish_declspecs.
3078         * c-decl.c (finish_declspecs): New.
3079         (declspecs_add_type): Check for combinations which cannot occur in
3080         valid specifier lists.  Update comments.
3081         (shadow_tag_warned): Remove checks done in finish_declspecs.
3082         Don't report useless type name if type defaulted to int.
3083         (grokdeclarator): Remove checks and actions done in
3084         finish_declspecs.  Don't allow for type being NULL.  Update for
3085         datastructures changes.  Initialize decl_attr.
3086         (build_null_declspecs, quals_from_declspecs): Update for
3087         datastructures changes.
3088
3089 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
3090
3091         * doc/extend.texi: Fix duplicated word.
3092
3093 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
3094
3095         * doc/invoke.texi: Remove stray explanation on
3096         -freduce-all-givs and -fmove-all-movables.
3097
3098 2004-09-17  James Morrison  <phython@gcc.gnu.org>
3099
3100         * doc/cfg.texi: Use @smallexample.
3101         * doc/md.texi: Likewise.
3102         * doc/tree-ssa.texi: Likewise.
3103         * doc/extend.texi: Likewise.  Use @r{} in comments.
3104         * doc/trouble.texi: Use @r{} in comments.
3105
3106 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
3107
3108         * configure.ac (gcc_cv_gld_version): Handle whitespace before
3109         "VERSION=".
3110         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
3111         * configure: Regenerate.
3112
3113 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
3114
3115         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
3116         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
3117         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
3118         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
3119         slashes in substitutions.
3120         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
3121
3122 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
3123
3124         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
3125         gimplify.c, lambda-code.c, optabs.c, predict.c,
3126         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
3127         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
3128         conventions.
3129
3130 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
3131
3132         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
3133         doc/extend.texi, doc/install.texi, doc/invoke.texi,
3134         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
3135         doc/trouble.texi: Use @option around options.
3136
3137 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
3138
3139         * Makefile.in (gen-protos.o): Depend on errors.h.
3140
3141 2004-09-17  Steven Bosscher  <stevenb@suse.de>
3142
3143         PR tree-optimization/17513
3144         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
3145         for successors of the entry block.
3146
3147 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
3148
3149         PR rtl-optimization/15187
3150         * ifcvt.c (noce_try_cmove_arith): Exit early if total
3151         insn_rtx_cost of both branches > BRANCH_COST
3152
3153 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
3154
3155         PR tree-optimization/17528
3156         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
3157         erase the may-alias set for a tag when merging it with
3158         another.
3159
3160 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3161
3162         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
3163         for 32-bit TARGET_SHMEDIA.
3164         (call_value): Likewise.
3165
3166 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
3167
3168         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
3169         test apply only to TREE_STATIC and DECL_EXTERNAL.
3170
3171 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3172
3173         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
3174         * basic-block.h (get_dominated_by_region): Declare.
3175         * dominance.c (get_dominated_by_region): New function.
3176         * tree-cfg.c: Include cfglayout.h.
3177         (tree_duplicate_bb): Duplicate also phi nodes.
3178         (struct ssa_name_map_entry): New type.
3179         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
3180         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
3181         allocate_ssa_names, rewrite_to_new_ssa_names_def,
3182         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
3183         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
3184         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
3185         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
3186         rewrite_to_new_ssa_names, allocate_ssa_names,
3187         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
3188         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
3189         (copy_loop_headers): Use tree_duplicate_sese_region.
3190
3191 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
3192
3193         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
3194
3195 2004-09-16 Jeff Law  <law@redhat.com>
3196
3197         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
3198         (rewrite_block_data): Remove, no longer used.
3199         (rewrite_initialize_block_local_data): Remove, no longer used.
3200         (rewrite_initialize_block): Mark parameters as unused as needed.
3201         Change references to the block local block_defs to be block_defs_stack.
3202         Push a marker onto the block_defs_stack.
3203         (ssa_rewrite_initialize_block): Similarly.
3204         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
3205         (ssa_register_new_def): No longer needs varray argument.  Use
3206         block_defs_stack instead.  No longer handle possibly null block_defs
3207         varray.  Reverse order of items we push on the stack to make it
3208         easier to identify our marker.
3209         (register_new_def): No longer handle possibly null block_defs
3210         varray.
3211         (rewrite_finalize_block): Revamp to look for markers in the global
3212         block_defs_stack varray rather than wiping a block local varray.
3213         Mark arguments as unused as needed.
3214         (ssa_rewrite_finalize_block): Similarly.
3215         (rewrite_into_ssa): Update initialization of dom walker structure
3216         to reflect that we don't need block local data anymore.  Initialize
3217         the block_defs_stack varray.
3218         (rewrite_ssa_into_ssa): Similarly.
3219         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
3220         (struct dom_walk_data): Kill block_defs field.
3221         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
3222         (thread_across_edge): Use the global block_defs_stack instead of
3223         the old block_defs varray.
3224         (dom_opt_initialize_block_local_data): Update now that we don't have
3225         block_defs field to check anymore.
3226         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
3227         (restore_currdefs_to_original_value): Use the new block_defs_stack
3228         instead of a block local varray.
3229         (dom_opt_finalize_block): Similarly.
3230         (record_equivalencs_from_phis): Similarly.
3231         (optimize_stmt, register_definitions_for_stmt): Similarly.
3232
3233 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
3234
3235         PR tree-optimization/17517
3236         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
3237         coalesce same-root variables without checking for abnormal PHI usage.
3238
3239 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
3240
3241         * cfgloop.h (duplicate_loop):  Add prototype.
3242         * cfgloopmanip.c (duplicate_loop): Make non-static.
3243         * lambda-code.c (perfect_nestify): Factor out test whether
3244         we can handle this loop into separate function.
3245         Call it.
3246         (can_convert_to_perfect_nest): New function.
3247         (replace_uses_of_x_with_y): Add modify_stmt call.
3248         * tree-loop-linear.c (linear_transform_loops): Call
3249         rewrite_into_loop_closed_ssa and free_df.
3250
3251 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
3252
3253         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
3254         loop invariant as well.
3255         (perfect_nestify): new function.
3256         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
3257         upper bounds, and steps.
3258         Set outerinductionvar properly.
3259         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
3260         parameters.
3261         Return NULL if we need a perfect loop and can't make one.
3262         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
3263         (not_interesting_stmt): New function.
3264         (phi_loop_edge_uses_def): Ditto.
3265         (stmt_uses_phi_result): Ditto.
3266         (stmt_is_bumper_for_loop): Ditto.
3267         (perfect_nest_p): Ditto.
3268         (nestify_update_pending_stmts): Ditto.
3269         (replace_uses_of_x_with_y): Ditto.
3270         (stmt_uses_op): Ditto.
3271         (perfect_nestify): Ditto.
3272         * lambda-mat.c (lambda_matrix_id_p): New function.
3273         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
3274         * lambda.h: Update prototypes.
3275         * tree-loop-linear (linear_transform_loop): Use new
3276         perfect_nest_p. Detect and ignore identity transform.
3277         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
3278
3279 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
3280
3281         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
3282         Gather also strides of accessed data.  Pass in the data references
3283         array.
3284         (try_interchange_loops): Add a new heuristic for handling the temporal
3285         locality.  Pass in the data references array.
3286         (linear_transform_loops): Pass the data references array to
3287         try_interchange_loops.
3288
3289 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
3290
3291         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
3292
3293 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
3294
3295         * doc/c-tree.texi (Classes): Remove index entries for
3296         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
3297
3298 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3299
3300         * fold-const.c (fold): Fold difference of addresses.
3301         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
3302         get_inner_reference.
3303         * tree-ssa-loop-ivopts.c (peel_address): Removed.
3304         (ptr_difference_const): Moved to fold-const.c.
3305         (split_address_cost): Use get_inner_reference instead of peel_address.
3306         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
3307         * tree.h (ptr_difference_const): Export.
3308
3309         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
3310         variable type to the dump.  Fix indentation.
3311         (idx_find_step): Handle nonconstant array_ref_element_size and
3312         array_ref_low_bound.
3313         (idx_record_use): Handle array_ref_element_size and
3314         array_ref_low_bound.
3315         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
3316         statements correctly.
3317         (get_computation_at, iv_value): Do not unshare expressions here.
3318         (rewrite_use_outer): Unshare the expression before it is emitted
3319         to code.
3320         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
3321         Moved to tree.c.
3322         * tree.c (unsigned_type_for, signed_type_for): Moved from
3323         tree-ssa-loop-niter.c.  Use langhooks.
3324         * tree.h (signed_type_for): Export.
3325
3326 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
3327
3328         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
3329         prototype.
3330
3331 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
3332
3333         PR target/11572
3334         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
3335         Add two parameters to extra_includes.
3336         (C_INCPATH_INIT): Remove.
3337         * c-incpath.c (register_include_chains): Call extra_pre_includes
3338         before adding the standard include directory.
3339         Update call to extra_includes.
3340         (!defined TARGET_EXTRA_INCLUDES): Update
3341         hook_void_charptr_charptr_int and add !define
3342         TARGET_EXTRA_PRE_INCLUDES.
3343         (!define TARGET_EXTRA_INCLUDES): Define as
3344         hook_void_charptr_charptr_int.
3345         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
3346         (target_c_incpath): Always declare.
3347         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
3348         empty function.
3349         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
3350         * config/darwin.h: (darwin_register_frameworks): Update for
3351         the two new parameters.
3352         (darwin_register_objc_includes): Add prototype.
3353         (TARGET_EXTRA_PRE_INCLUDES): Define.
3354         * config/darwin-c.c (darwin_register_objc_includes): New function.
3355         (darwin_register_frameworks): Update for the two new parameters.
3356         (target_c_incpath): Remove.
3357         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
3358         the compile line.
3359         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
3360         parameters.
3361         (TARGET_EXTRA_PRE_INCLUDES): Document.
3362
3363         * gcc.c (spec_function): Add replace-outfile.
3364         (replace_outfile_spec_function): New function.
3365         * config/darwin.h (LINK_SPEC): Add replace
3366         -lobjc with -lobjc-gnu if -fgnu-runtime is
3367         supplied.
3368         * invoke.texi (replace-outfile): Document.
3369
3370 2004-09-13  Jan Hubicka  <jh@suse.cz>
3371
3372         * predict.c (expr_expected_value, strip_builtin_expect): New function.
3373         (tree_predict_by_opcode): Use it.
3374         (tree_estimate_probability): Add, for now disabled,
3375         strip_builtin_expect call.
3376
3377 2004-09-15  James E Wilson  <wilson@specifixinc.com>
3378
3379         PR target/17455
3380         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
3381         if current_function_decl is a sibcall.
3382
3383 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
3384
3385         * varasm.c (default_function_rdodata_section): Make sure to pass
3386         along a decl for a link-once section.
3387
3388 2004-09-15  Richard Henderson  <rth@redhat.com>
3389
3390         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
3391         warning with code disable.  Fix formatting.
3392
3393 2004-09-15  Steven Bosscher  <stevenb@suse.de>
3394
3395         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
3396         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
3397         after propagating into an ADDR_EXPR.
3398
3399 2004-09-15  Andrew Pinski  <apinski@apple.com>
3400
3401         PR rtl-opt/17427
3402         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
3403         Move it out of gcc_assert.
3404
3405 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3406
3407         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
3408         except.c, fold-const.c, function.c, langhooks.c, params.c,
3409         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
3410         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
3411         for quoting in diagnostics going through pretty-print.c.  Use ''
3412         for quoting in other diagnostic text.
3413         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
3414         translation.
3415         * Makefile.in (langhooks.o): Update dependencies.
3416         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
3417         formats.
3418
3419 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
3420
3421         * configure.ac: Check for COMDAT support.  Robustify check for
3422         SHF_MERGE support.
3423         * configure: Regenerated.
3424         * config.in: Likewise.
3425         * langhooks-def.h (lhd_comdat_group): New function.
3426         (LANG_HOOKS_COMDAT_GROUP): New macro.
3427         (LANG_HOOKS_DECLS): Use it.
3428         * langhooks.c (lhd_comdat_group): Define.
3429         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
3430         * output.h (named_section_flags): Make it a macro.
3431         (named_section_real): New function.
3432         (default_no_named_section): Add decl parameter.
3433         (default_elf_asm_named_section): Likewise.
3434         (default_coff_asm_named_section): Likewise.
3435         (default_pe_asm_named_section): Likewise.
3436         * target.h (gcc_target): Adjust type of named_section.
3437         * varasm.c (named_section_flags): Rename to named_section_real.
3438         Add decl parameter.
3439         (default_no_named_section): Add decl parameter.
3440         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
3441         with the case that ASM_COMMENT_START is "@".
3442         (default_coff_asm_named_section): Add decl parameter.
3443         (default_pe_asm_named_section): Likewise.
3444         * config/alpha/alpha.c (vms_asm_named_section): Add decl
3445         parameter.
3446         (unicosmk_asm_named_section): Likewise.
3447         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
3448         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
3449         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
3450         * config/cris/cris-protos.h (cris_target_asm_named_section):
3451         Likewise.
3452         * config/cris/cris.c (cris_target_asm_named_section):
3453         Likewise.
3454         * config/darwin/darwin-protos.h (darwin_asm_named_section):
3455         Likewise.
3456         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
3457         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
3458         * config/i386/i386-protos.h (i386_pe_asm_named_section):
3459         Likewise.
3460         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
3461         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
3462         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
3463         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
3464         Likewise.
3465         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
3466         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
3467         * cp/cp-tree.h (cxx_comdat_group): Declare.
3468         * cp/decl.c (cxx_comdat_group): New function.
3469
3470 2004-09-15  Jan Hubicka  <jh@suse.cz>
3471
3472         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
3473         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
3474
3475         * tree-cfg.c (remove_bb): Release SSA defs.
3476
3477 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
3478
3479         * doc/tm.texi: Follow spelling conventions.
3480
3481 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
3482
3483         * tree-ssa-dom.c: Fix comment typos.
3484
3485 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
3486
3487         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
3488         include ccr.
3489         (ppc_fallback_frame_state): Save location of CR.
3490
3491 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
3492
3493         * expr.c (string_constant): Handle also read-only variables
3494         initialized to string literals.
3495
3496         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
3497         into memcpy (x, y, 1) if memcpy can be expanded inline.
3498
3499 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3500
3501         PR tree-optimization/17468
3502         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
3503         definition inside a block precede uses.
3504         * tree-tailcall.c (adjust_return_value): Emit statements in the
3505         correct order.
3506
3507 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
3508
3509         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
3510
3511 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
3512
3513         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
3514
3515 2004-09-14 Jeff Law  <law@redhat.com>
3516
3517         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
3518         (struct dom_walk_block_data): Remove avail_exprs member.
3519         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
3520         (lookup_avail_expr): No longer need to pass in address of
3521         the block local available exprs stack.  All callers changed.
3522         (simplify_cond_and_lookup_avail_expr): Similarly.
3523         (simplify_switch_and_lookup_avail_expr): Similarly.
3524         (get_eq_expr_value, record_cond): Likewise.
3525         (record_dominating_conditions): Likewise.
3526         (update_rhs_and_lookup_avail_expr): Likewise.
3527         (record_equivalences_from_stmt): Likewise.
3528         (dom_opt_initialize_block_local_data): No longer test state of
3529         block local avail_exprs.
3530         (dom_opt_initialize_block): Mark unwind point in the global
3531         avail_expr stack.
3532         (remove_expressions_from_table): Update to unwind to the
3533         most recent unwind marker in the global avail_expr stack.
3534         All callers changed.
3535         (dom_opt_finalize_block): Mark unwind point in the global
3536         avail_expr stack as needed.
3537         (record_cond): Push elements into the global avail_exprs stack.
3538
3539         * tree-dfa.c (free_df_for_stmt): No longer static.
3540         (free_df): Update comments.
3541         * tree-flow.h (free_df_for_stmt): Prototype.
3542         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
3543         call release_defs.
3544
3545 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
3546
3547         PR tree-optimization/17252
3548         * tree-ssa-alias.c (may_alias_p): Don't assume that a
3549         pointer may not point to itself when using relaxed
3550         aliasing rules.
3551
3552 2004-09-14  Richard Henderson  <rth@redhat.com>
3553
3554         PR middle-end/17397
3555         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
3556         while folding <ADDR_EXPR <INDIRECT_REF X>>.
3557
3558 2004-09-14  Andrew Pinski  <apinski@apple.com>
3559
3560         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
3561         sets of the pointers but the aliasing sets of what they point to.
3562
3563 2004-09-14  Roger Sayle  <roger@eyesopen.com>
3564
3565         PR rtl-optimization/9771
3566         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
3567         conditional compilation in init_reg_sets_1.
3568         (init_reg_sets_1): Let global_regs[i] take priority over the frame
3569         (but not stack) pointer exceptions to regs_invalidated_by_call.
3570         (globalize_reg): Globalizing a fixed register may need to update
3571         regs_invalidated_by_call.
3572
3573 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
3574
3575         PR tree-optimization/15262
3576         * tree-dfa.c (dump_variable): Also print the type of the
3577         variable.
3578         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
3579         memory tags are of conflicting alias sets but have no aliased
3580         symbols in common, add one tag to the alias set of the other.
3581         (setup_pointers_and_addressables): Remove hack to deal with
3582         programs with no aliased symbols.
3583         (may_alias_p): Don't special case aggregate types.
3584
3585 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
3586
3587         PR c/15498
3588         * doc/invoke.texi (Environment Variables): Correct example locale.
3589
3590 2004-09-14  Jan Hubicka  <jh@suse.cz>
3591
3592         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
3593
3594 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
3595
3596         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
3597
3598 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
3599
3600         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
3601         restrict_p.
3602         (struct c_declarator): Change u.array.quals and pointer_quals to
3603         int.  Add u.array.attrs.
3604         (quals_from_declspecs): New.
3605         * c-decl.c (quals_from_declspecs): New.
3606         (shadow_tag_warned): Give more specific message for useless type
3607         qualifiers.
3608         (build_array_declarator, set_array_declarator_inner,
3609         grokdeclarator, make_pointer_declarator, build_null_declspecs,
3610         declspecs_add_qual): Update for changed structures.
3611
3612 2004-09-14  Jeff Law  <law@redhat.com>
3613
3614         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
3615         to a global varray.
3616         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
3617         (dom_opt_initialize_block_local_data): No longer test state
3618         of stmts_to_rescan.
3619         (dom_opt_finalize_block): Update due to change in scope of
3620         stmts_to_rescan.
3621         (optimize_stmt): Similarly.
3622
3623 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
3624
3625         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
3626         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
3627         comment typos.  Follow spelling conventions.
3628
3629 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
3630
3631         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
3632         config/i386/predicates.md, config/sparc/sparc.c: Follow
3633         spelling conventions.
3634
3635 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3636             Steven Bosscher  <stevenb@suse.de>
3637
3638         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
3639         * basic-block.h (struct reorder_block_def): Add copy_number field.
3640         * cfgloop.h (biv_p): Declare.
3641         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
3642         * common.opt (fsplit-ivs-in-unroller): New flag.
3643         * loop-iv.c (biv_p): New function.
3644         * loop-unroll.c: Include hashtab.h and recog.h.
3645         (struct iv_to_split, struct split_ivs_info): New types.
3646         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
3647         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
3648         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
3649         insert_base_initialization, split_iv): New functions.
3650         (peel_loop_completely, unroll_loop_constant_iterations,
3651         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
3652         Use them.
3653         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
3654
3655 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3656
3657         * tree-cfg.c (thread_jumps): Update dominators correctly in
3658         case destination of threaded edge dominates its source.
3659
3660 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3661
3662         * unroll.c: Removed.
3663         * loop.h: Removed.
3664         * Makefile.in (LOOP_H, unroll.o): Removed.
3665         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
3666         dependency.
3667         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
3668         reference.
3669         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
3670         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
3671         * loop.c: Do not include loop.h.
3672         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
3673         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
3674         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
3675         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
3676         struct loop_regs, struct loop_movables, struct loop_info): Moved
3677         from loop.h.
3678         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
3679         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
3680         find_common_reg_term, loop_iterations, final_giv_value): Moved
3681         from unroll.c.
3682         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
3683         loop_dump_stream, for_each_insn_in_loop, express_from,
3684         extend_value_for_giv, loop_iv_add_mult_emit_before,
3685         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
3686         loop_insn_first_p, get_condition_for_loop,
3687         loop_insn_emit_before, loop_insn_hoist,
3688         loop_insn_sink): Made static.
3689         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
3690         reference.
3691         (strength_reduce): Do not call unroller.
3692         (record_giv): Do not initialize unrolled field.
3693         (prescan_loop): Do not set loop_info->preconditioned.
3694         * passes.c: Do not include loop.h.
3695         (rest_of_handle_loop_optimize): Do not call unroller.
3696         * predict.c: Do not include loop.h.
3697         * rtl.h (NOTE_PRECONDITIONED): Removed.
3698         * stmt.c: Do not include loop.h.
3699         * toplev.c: Do not include loop.h.
3700         (process_options): Do not handle flag_old_unroll_loops.
3701
3702         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
3703         Documentation removed.
3704         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
3705
3706 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
3707
3708         * Makefile.in (STAGE1_CHECKING): New variable.
3709         (stage1_build): Use it.
3710         * tree-ssa.c (verify_ssa): Preserve state of dominance
3711         information.
3712
3713 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
3714
3715         * config/i386/i386.c (output_fp_compare): Add generation
3716         of ftst instruction.
3717         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
3718         Use output_fp_compare () function.
3719         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
3720         (fix_truncdi_memory): Remove operands[5] copy.
3721
3722 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
3723
3724         * config/m32r/m32r.md, config/m68k/m68kelf.h,
3725         config/mcore/mcore.md, config/rs6000/linux64.h,
3726         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
3727         typos.
3728
3729 2004-09-13  James E Wilson  <wilson@specifixinc.com>
3730
3731         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
3732         * gen-protos.c: Include errors.h.
3733         (progname): Delete.
3734
3735 2004-09-14  Jan Hubicka  <jh@suse.cz>
3736
3737         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
3738         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
3739         (predict_loops): Use number_of_iterations_exit to predict
3740         number of iterations on trees.
3741
3742 2004-09-13  Dale Johannesen  <dalej@apple.com>
3743
3744         PR 17408
3745         PR 17409
3746         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
3747         objects declared extern.
3748
3749 2004-09-14  Paul Brook  <paul@codesourcery.com>
3750
3751         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
3752         HOST_WIDE_INT.
3753
3754 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
3755
3756         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
3757         Only use TYPE_BINFO for aggregates.
3758
3759 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
3760
3761         * expmed.c (synth_mult): Initialize latency.  Check cost before
3762         checking ops count.
3763
3764 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
3765
3766         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
3767         add_call_clobber_ops and add_call_read_ops.
3768         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
3769         the number of vdefs and vuses inserted based on analysis of global
3770         variables across calls.  * tree-dfa.c (find_referenced_vars):
3771         Needed to reset static var maps before each function is compiled.
3772         * cgraphunit.c:
3773         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
3774         static_vars_info,functions_to_static_vars_info,module_statics_escape,
3775         all_module_statics,searchc_env,dfs_info): New fields to support
3776         analysis of static global variables.
3777         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
3778         cgraph_reset_static_var_maps, get_global_static_vars_info,
3779         get_global_statics_not_read, get_global_statics_not_written,
3780         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
3781         check_rhs_var, check_lhs_var, get_asm_expr_operands,
3782         process_call_for_static_vars, scan_for_static_refs,
3783         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
3784         clear_static_vars_maps, cgraph_propagate_bits,
3785         cgraph_characterize_statics): New. Functions to support analysis
3786         of static global variables.
3787         (cgraph_mark_local_and_external_functions): Renamed from:
3788         (cgraph_mark_local_functions)
3789         (cgraph_expand_all_functions): Remove call to
3790         cgraph_mark_local_and_external_functions.
3791         (cgraph_optimize): Added driver to analyze static variables whose
3792         scope is within the compilation unit.  * cgraph.h (struct
3793         cgraph_local_info, GTY): Added statics_read, statics_written,
3794         local, calls_read_all, calls_write_all, for_functions_valid.
3795         (struct cgraph_node): Added next_cycle.  * cgraph.c
3796         (dump_cgraph_node): Added print routines for new fields.  *
3797         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
3798         list.
3799
3800 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
3801
3802         * c-decl.c (grokdeclarator): Correct comments about where storage
3803         class specifiers are rejected by grammar and add corresponding
3804         asserts.  Diagnose typedefs and parameters declared inline.
3805         Change warning for inline main to a pedwarn.  Only diagnose inline
3806         main if hosted.
3807         (declspecs_add_scspec): Allow duplicate "inline".
3808
3809 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
3810
3811         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
3812         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
3813
3814 2004-09-13  Richard Henderson  <rth@redhat.com>
3815
3816         PR 17436
3817         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
3818         (tree_type): Replace spare with contains_placeholder_bits.
3819         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
3820         make static.  Remove seen_types list.
3821         (type_contains_placeholder_p): New.
3822
3823 2004-09-13  James E Wilson  <wilson@specifixinc.com>
3824
3825         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
3826         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
3827         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
3828         bdesc_arrays instead of mips_bdesc.
3829         (mips_init_builtins): Likewise.
3830         * config/mips/mips.h (TARGET_SB1): New.
3831         (HAVE_SQRT_P): Delete.
3832         * config/mips/mips.md (divide_condition): Support V2SF.
3833         (sqrt_condition, recip_condition): New.
3834         (div<mode>3): Use ANYF instead of SCALARF.
3835         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
3836         MODE.
3837         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
3838         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
3839         instead of MODE.
3840         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
3841         instead of SCALARF.  Use UNITMODE instead of MODE.
3842
3843 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
3844
3845         * config.in: Regenerate after removal of libbanshee.
3846
3847 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
3848
3849         PR tree-optimization/17400
3850         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
3851         coalesce partitions when one occurs in an abnormal PHI.
3852
3853 2004-09-13  Andrew Pinski  <apinski@apple.com>
3854
3855         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
3856         name to _new_size.
3857
3858 2004-09-13  Richard Henderson  <rth@redhat.com>
3859
3860         PR inline-asm/6806
3861         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
3862         (cselib_invalidate_rtx_note_stores): New.
3863         (cselib_record_sets, cselib_process_insn): Update to match.
3864         * cselib.h (cselib_invalidate_rtx): Declare.
3865         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
3866
3867 2004-09-13  Richard Henderson  <rth@redhat.com>
3868
3869         PR tree-opt/10528
3870         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
3871         after copying its argument.
3872
3873 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
3874
3875         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
3876         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
3877         in diagnostics.  Use %' for English apostrophes.
3878         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
3879         (pedwarn_c90, pedwarn_c99): Use it.
3880         * c-decl.c (lookup_label): Quote label name in diagnostic.
3881         * c-parse.in (yyprint): Use ' instead of ` for left quote.
3882         * c-typeck.c (warn_for_assignment): Likewise.
3883
3884 2004-09-13  Jan Hubicka  <jh@suse.cz>
3885
3886         * i386.c (x86_schedule): New global variable.
3887         (override_options): Disable scheduling when not supported.
3888         * i386.h (x86_schedule): Declare.
3889         (TARGET_SCHEDULE): New macro.
3890
3891 2004-09-12  Richard Henderson  <rth@redhat.com>
3892
3893         PR c++/16254
3894         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
3895         * tree.c, tree.h (has_cleanups): Remove.
3896
3897 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3898
3899         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
3900         arguments of the phi nodes correctly.
3901
3902 2004-09-12  Jan Hubicka  <jh@suse.cz>
3903
3904         * ggc-common.c (cmp_statistics): Fix sorting.
3905
3906 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
3907
3908         PR target/16795
3909         * expmed.c (expand_divmod): If cheap power of 2 divide is
3910         available, use it for negative constant as well.
3911
3912 2004-09-12  Andrew Pinski  <apinski@apple.com>
3913
3914         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
3915         size of 0.
3916
3917         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
3918
3919 2004-09-12  Richard Henderson  <rth@redhat.com>
3920
3921         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
3922         or minus one.
3923         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
3924         post-reload, and scratch NULL.
3925         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
3926         (x86_shift_adj_2): Use ix86_expand_clear.
3927         (ashldi3): Remove CMOVE expansion difference.
3928         (ashldi3_1): Remove.
3929         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
3930         add constraints for immediates.  New peephole for split-with-temp.
3931         Run splitter after peep2 pass.
3932         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
3933         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
3934         (setcc_2): Rename with *.
3935         * config/i386/predicates.md (reg_or_pm1_operand): New.
3936         (ashldi_input_operand): New.
3937
3938 2004-09-12  Richard Henderson  <rth@redhat.com
3939
3940         * print-rtl.c (print_decl_name): New.
3941         (print_mem_expr): Use it.
3942
3943 2004-09-12  Richard Henderson  <rth@redhat.com
3944
3945         PR 17186, part deux
3946         * except.c (sjlj_emit_function_exit): Fix logic locating
3947         sjlj_exit_after in final block.
3948
3949 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
3950
3951         * common.opt: Remove flags -fmove-all-movables and
3952         -freduce-all-givs.
3953         * loop-invariant.c (find_invariants_to_move):
3954         Remove all uses of flag_move_all_movables.
3955         * loop.c (move_movables): Remove all uses of
3956         flag_move_all_movables.
3957         (strength_reduce): Remove all uses of
3958         flag_reduce_all_givs.
3959         * doc/invoke.texi: Remove documentation of flags
3960         -fremove-all-movables and -freduce-all-givs.
3961
3962 2004-09-11  Roger Sayle  <roger@eyesopen.com>
3963
3964         PR middle-end/17411
3965         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
3966         change. elt->type may be a floating point type, so use fold_convert.
3967
3968 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
3969
3970         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
3971         the thing referenced as used, not the stub itself.
3972
3973 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
3974
3975         * c-tree.h (enum c_storage_class): New.
3976         (struct c_declspecs): Add storage_class, inline_p and thread_p.
3977         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
3978         declarations and "auto" or "register" in file scope empty
3979         declarations.  Give more specific warnings for other cases of
3980         storage class specifiers in empty declarations.
3981         (grokdeclarator): Update for new structures.  Don't check for
3982         multiple storage classes.  Diagnose file-scope "register" if
3983         pedantic.
3984         (build_null_declspecs): Update.
3985         (declspecs_add_scspec): Update.  Diagnose multiple storage class
3986         specifiers and invalid uses of "__thread".
3987
3988 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
3989
3990         * tree.c (tree_code_size): New function, bulk of code from tree_size.
3991         (tree_size, make_node): Use it.
3992         * tree-ssa-pre.c (init_pre): Use it.
3993         * tree.h: Prototype it.
3994
3995 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3996
3997         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
3998         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
3999         redirect_immediate_use): Use PHI_DF.
4000         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
4001         (bb_for_stmt): Use PHI_BB.
4002         (get_immediate_uses): Use PHI_DF.
4003         * tree-ssa-dse.c (max_stmt_uid): New variable.
4004         (get_stmt_uid): New function.
4005         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
4006         node annotations.
4007         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
4008         (max_uid): Renamed to max_stmt_uid.
4009         (get_stmt_uid): New function.
4010         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
4011         phi node annotations.
4012         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
4013         * tree.h (PHI_BB, PHI_DF): New accessor functions.
4014         (struct tree_phi_node): Add bb and df fields.
4015
4016 2004-09-11  Richard Henderson  <rth@redhat.com>
4017
4018         PR middle-end/17416
4019         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
4020         in conflict loop.
4021
4022 2004-09-11  Jan Hubicka  <jh@suse.cz>
4023
4024         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
4025         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
4026         * i386.md (i387_cw): Add 'uninitialized' mode.
4027
4028         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
4029         (output_location): Break out from ....
4030         (branch_prob): ... here; handle gcov output on trees.
4031         * toplev.c (process_options): No longer be sorry about coverage for
4032         trees.
4033
4034 2004-09-11  Steven Bosscher  <stevenb@suse.de>
4035
4036         PR c++/17412
4037         * fold-const.c (fold): Do not try to fold the operand of a
4038         CLEANUP_POINT_EXPR if that operand does itself not have any
4039         operands.
4040
4041         PR middle-end/17417
4042         * langhooks.c (lhd_decl_printable_name): Make sure that this
4043         function is called with is a decl node that has an identifier.
4044         * tree-pretty-print.c (dump_function_name): New function to
4045         wrap PRINT_FUNCTION_NAME and dump_decl_name.
4046         (print_call_name): Use it.
4047
4048 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
4049
4050         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
4051         "config.h" if not.
4052
4053 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
4054
4055         * tree-ssa-alias.c (collect_points_to_info_r): Handle
4056         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
4057         to OFFSET.
4058
4059 2004-09-11  Richard Henderson  <rth@redhat.com>
4060
4061         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
4062         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
4063         operand of the ADDR_EXPR.
4064         (expand_expr_real_1): Update to match.
4065
4066 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
4067
4068         PR target/17277
4069         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
4070         choose 64-bit version.
4071
4072 2004-09-11  Richard Henderson  <rth@redhat.com>
4073
4074         PR c/17396
4075         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
4076
4077 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
4078
4079         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
4080         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
4081         Insert @: after i.e. or e.g.
4082
4083 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
4084
4085         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
4086         D.xxx rather than <Dxxx>.
4087
4088 2004-09-10  Adam Nemet  <anemet@lnxw.com>
4089
4090         * configure.ac (AC_MSG_CHECKING(what linker to use)):
4091         in_tree_ld_is_elf should be true for LynxOS.
4092         * configure: Regenerate.
4093
4094 2004-09-10  Adam Nemet  <anemet@lnxw.com>
4095
4096         * Makefile.in (all.cross): Add srcextra.
4097
4098 2004-09-10  Roger Sayle  <roger@eyesopen.com>
4099
4100         PR middle-end/17024
4101         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
4102         floating point comparison operators.  Change aborts to gcc_asserts.
4103
4104 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
4105
4106         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
4107
4108 2004-09-10  James E Wilson  <wilson@specifixinc.com>
4109
4110         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
4111         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
4112
4113         * convert.c (convert_to_vector): Replace recursive call with
4114         error_mark_node.
4115
4116         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
4117         Add integer argument named constant.  Use const_tiny_rtx instead of
4118         CONST0_RTX.
4119         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
4120         and CONST1_RTX.
4121         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
4122         vector types.
4123         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
4124         of gen_rtx_raw_CONST_VECTOR.
4125
4126 2004-09-10  Eric Christopher  <echristo@redhat.com>
4127
4128         PR c/16046
4129         * c-parse.in (attribute): Add NULL_TREE for error case
4130         for error recovery.
4131
4132 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
4133
4134         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
4135         (extract_interface_info): Delete prototype.
4136         * c-decl.c (extract_interface_info): Delete stub.
4137         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
4138         it's not already been done ...
4139         (init_c_lex): ... not here.
4140         (fe_file_change): Don't call extract_interface_info.
4141
4142 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
4143
4144         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
4145         typedef_p and typedef_signed_p.
4146         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
4147         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
4148         Check typedef_p and typedef_signed_p, not typedef_decl.
4149         (grokfield): Check typedef_p, not typedef_decl.
4150         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
4151         not typedef_decl.
4152         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
4153         typedef_decl.
4154
4155 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
4156
4157         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
4158
4159 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
4160
4161         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
4162         temporary variables.
4163
4164         * dbxout.c (dbxout_block): Update for
4165         current_function_func_begin_label a string.
4166         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
4167         * except.c (dw2_output_call_site_table): Likewise.
4168         * toplev.c (current_function_func_begin_label): Likewise.
4169         * tree.h (current_function_func_begin_label): Likewise.
4170         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
4171
4172         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
4173         loop.
4174
4175         * config/darwin.c: Include target.h.
4176         (struct machopic_indirection): Make ptr_name a string.
4177         (machopic_indirection_hash): Update for ptr_name a string.
4178         (machopic_indirection_eq): Likewise.
4179         (machopic_indirection_name): Likewise.
4180         (machopic_output_indirection): Likewise.
4181         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
4182         string.  Don't expect stub names to be in the identifier hash table.
4183         Do call strip_name_encoding before looking up entry in ID hash table.
4184         * config/t-darwin (darwin.o): Add target.h to dependencies.
4185
4186         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
4187         of fprintf for register names.
4188
4189         * output.h (unlikely_section_label): Delete declaration.
4190         (unlikely_text_section_name): Likewise.
4191         * varasm.c (unlikely_section_label_printed): Make static.
4192         (unlikely_section_label): Likewise.
4193         (unlikely_text_section_name): Likewise.
4194         (assemble_start_function): Use reconcat.
4195
4196         * rtl.def (REG): Add comment to describe third field.
4197
4198 2004-09-10  Andrew Pinski  <apinski@apple.com>
4199
4200         * config/darwin.c (machopic_mcount_stub_name): Call
4201         machopic_indirection_name instead of making the string
4202         ourselves.
4203
4204 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
4205
4206         Revert
4207
4208         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
4209
4210             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
4211             memory tag is call clobbered, so are its aliases.
4212             (group_aliases): When two memory tags being grouped, if one is
4213             call clobbered, so are the other and its aliases.
4214             (add_may_alias): Remove call-clobbering stuff.
4215             (replace_may_alias): Likewise.
4216             (merge_pointed_to_info): Merge pt_global_mem
4217
4218 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
4219
4220         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
4221         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
4222         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
4223         tree-scalar-evolution.c, tree-ssa-copyrename.c,
4224         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
4225
4226 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
4227
4228         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
4229         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
4230         pair.  Remove match_dup from inputs.  Remove masaccs handling.
4231         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
4232         (masaccs, mdasaccs): Turn into define_insns.
4233
4234 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
4235
4236         * tree-tailcall.c (process_assignment): Only do accumulator transforms
4237         for floating-point types if flag_unsafe_math_optimizations.
4238
4239 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
4240
4241         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
4242         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
4243         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
4244         config/h8300/h8300.md, config/i386/gmm_malloc.h,
4245         config/ia64/ia64.md, config/ip2k/libgcc.S,
4246         config/mips/mips-ps-3d.md, config/mips/mips.c,
4247         config/rs6000/rs6000.c, config/s390/s390.c,
4248         config/sh/symbian.c: Fix comment typos.
4249
4250 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4251
4252         * config/s390/s390.c (s390_emit_prologue): Added missing
4253         "{}" brackets.
4254
4255 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
4256
4257         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
4258         typos.  Follow spelling conventions.
4259
4260 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
4261
4262         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
4263         in diagnostic.  Don't dereference NULL TYPE_NAME.
4264
4265 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
4266
4267         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
4268         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
4269         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
4270         value-prof.c: Fix comment typos.  Follow spelling conventions.
4271
4272 2004-09-10  Jan Hubicka  <jh@suse.cz>
4273
4274         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
4275         * tree-split_edge.c (tree_split_edge): Likewise.
4276         (thread_jumps): Likewise.
4277
4278 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
4279
4280         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
4281         typos.
4282
4283 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
4284
4285         * cgraph.h (cgraph_dump_file): Do not declare.
4286         * cgraphunit.c (cgraph_dump_file): Declare as static.
4287         (init_cgraph): New.
4288         * toplev.c (cgraph_dump_file): Do not declare.
4289         (compile_file): Call init_cgraph.
4290         * tree-dump.c (dump_files): Add IPA dump file, remove
4291         XML dump of call graph.
4292         (get_dump_file_name): Support IPA dump file naming scheme.
4293         * tree.h (enum tree_dump_index): Add IPA dump file, remove
4294         XML dump of call graph.
4295         * doc/invoke.texi (Debugging Options): Document the new options.
4296
4297 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
4298
4299         * doc/extend.texi: Document the FR-V built-in functions.
4300
4301 2004-09-09  James E Wilson  <wilson@specifixinc.com>
4302
4303         * doc/sourcebuild.texi: Delete libbanshee reference.
4304
4305 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
4306
4307         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
4308
4309 2004-09-09  James E Wilson  <wilson@specifixinc.com>
4310
4311         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
4312         before calling vector_types_convertible_p.
4313         (digest_init): Check that inside_init has VECTOR_TYPE before calling
4314         vector_types_convertible_p.  Don't give another error if
4315         convert_for_assignment returns error_mark_node.
4316
4317 2004-09-09  Roger Sayle  <roger@eyesopen.com>
4318
4319         PR middle-end/17055
4320         * fold-const.c (build_zero_vector): New function to construct a
4321         vector (either floating point or integer) of zeros.
4322         (fold_convert): Internally, enable conversions of integer zero
4323         to arbitrary vector types, using the new build_zero_vector.
4324
4325 2004-09-09  Roger Sayle  <roger@eyesopen.com>
4326
4327         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
4328         expand a left shift by an immediate constant as either an ashl or
4329         a sequence of additions.
4330         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
4331         instead of calling gen_ashlsi3 with a constant directly.
4332
4333 2004-09-09  Roger Sayle  <roger@eyesopen.com>
4334
4335         * config/i386/i386.c (ix86_split_long_move): When optimizing for
4336         size, and the low and high parts of a DImode constant are equal,
4337         copy one register to another instead of loading the same immediate
4338         value twice.
4339
4340 2004-09-09  Richard Henderson  <rth@redhat.com>
4341
4342         PR middle-end/17367
4343         * function.c (assign_parm_setup_block): Only put PARALLELs into
4344         a register if use_register_for_decl.
4345
4346 2004-09-09  Eric Christopher  <echristo@redhat.com>
4347
4348         * ra-colorize.c (reset_lists): Move variable declaration inside
4349         ENABLE_CHECKING to avoid unused variable warnings when
4350         not --enable-checking.
4351         (check_colors): Ditto.
4352
4353 2004-09-09  Mike Stump  <mrs@apple.com>
4354
4355         * version.c (version_string): Bump to 4.0.0.
4356         * doc/include/gcc-common.texi (version-GCC): Likewise.
4357
4358 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
4359
4360         * doc/extend.texi (nothrow attribute): The attribute is not
4361         implemented in 3.2 and earlier.
4362
4363 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
4364
4365         * genrecog.c (compute_predicate_codes): Use op0_codes
4366         instead of codes.
4367
4368 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
4369
4370         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
4371         implementation changes.
4372
4373 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
4374
4375         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
4376         a PARALLEL instead of a SET due to added clobbers.
4377
4378 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
4379
4380         * reload.c (find_reloads_address): Pass correct operand to
4381         maybe_memory_address_p.
4382
4383 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
4384
4385         * Makefile.in: Remove libbanshee, tree-alias-*.
4386         Remove tree-alias-common.h dependencies.
4387         * common.opt: Remove -ftree-points-to.
4388         * configure.ac: Remove libbanshee.
4389         * flags.h: Remove pta_type, flag_tree_points_to.
4390         * gengtype.c (open_base_files): Remove tree-alias-type.h.
4391         * opts.c (OPT_ftree_points_to): Remove.
4392         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
4393         * tree-dfa.c: Remove tree-alias-common.h
4394         * tree-into-ssa.c: Ditto.
4395         * tree-outof-ssa.c: Ditto.
4396         * tree-ssa-copyrename.c: Ditto.
4397         * tree-ssa-live.c: Ditto.
4398         * tree-optimize.c: Ditto.
4399         * tree-ssa.c: Ditto.
4400         Remove pass_build_pta, pass_del_pta.
4401         * tree-pass.h: Ditto.
4402         * tree-ssa-alias.c: Remove tree-alias-common.h.
4403         (struct alias_stats_d): Remove pta_queries, pta_resolved.
4404         (pass_may_alias): Remove PROP_pta requirement.
4405         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
4406         (get_tmt_for): Ditto.
4407         (dump_alias_stats): Ditto.
4408         * doc/passes.texi: Remove blurb about points-to analysis.
4409         * fortran/Make-lang.in: Remove tree-alias-*.o.
4410
4411 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
4412
4413         * genattrtab.c (write_insn_cases): New function, split out from
4414         write_attr_case.  Correctly handle define_peepholes when printing
4415         the instruction name.
4416         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
4417
4418 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
4419
4420         PR target/17377
4421         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
4422         * config/cris/cris.c (cris_return_address_on_stack): New function.
4423         * config/cris/cris.md ("return"): For location of return address,
4424         also check cris_return_address_on_stack.
4425
4426 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
4427
4428         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
4429         calling phi_ssa_name_p.
4430
4431 2004-09-09  Richard Henderson  <rth@redhat.com>
4432
4433         PR c/17322
4434         * c-typeck.c (valid_compound_expr_initializer): Use only
4435         initializer_constant_valid_p, and not TREE_CONSTANT.
4436         (digest_init): Likewise.
4437         (output_init_element): Likewise.
4438
4439 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
4440
4441         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
4442         live_out_1, prune_hardregs_for_mode, init_one_web_common,
4443         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
4444         record_conflict, compare_and_free_webs, init_webs_defs_uses,
4445         parts_to_webs_1, parts_to_webs, reset_conflicts,
4446         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
4447         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
4448         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
4449         put_move, remove_move, combine, select_spill, colorize_one_web,
4450         try_recolor_web, insert_coalesced_conflicts, check_colors,
4451         break_precolored_alias, restore_conflicts_from_coalesce,
4452         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
4453         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
4454         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
4455         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
4456         check_df): Likewise.
4457         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
4458         real_arithmetic, real_compare, real_exponent, real_ldexp,
4459         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
4460         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
4461         real_digit, real_nan, real_maxval, round_for_format, real_convert,
4462         real_to_target, real_from_target, real_hash, encode_ieee_single,
4463         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
4464         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
4465         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
4466         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
4467         extract_insn, peep2_next_insn, peep2_reg_dead_p,
4468         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
4469         if_test_bypass_p): Likewise.
4470         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
4471         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
4472         emit_swap_insn, swap_to_top, move_for_stack_reg,
4473         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
4474         compensate_edge, convert_regs_1): Likewise.
4475         * regclass.c (init_reg_sets, init_reg_sets_1,
4476         memory_move_secondary_cost): Likewise.
4477         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
4478         Likewise.
4479         * reload.c (push_secondary_reload, find_valid_class, push_reload,
4480         operands_match_p, decompose, immune_p, find_reloads,
4481         find_reloads_toplev, find_reloads_address_1, subst_reloads,
4482         copy_replacements, refers_to_regno_for_reload_p,
4483         reg_overlap_mentioned_for_reload_p): Likewise.
4484         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
4485         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
4486         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
4487         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
4488         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
4489         do_output_reload, fixup_abnormal_edges): Likewise.
4490         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
4491         fill_slots_from_thread, relax_delay_slots): Likewise.
4492         * resource.c (mark_referenced_resources, mark_set_resources):
4493         Likewise.
4494         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
4495         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
4496         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
4497         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
4498         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
4499         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
4500         * rtlhooks.c (gen_lowpart_general): Likewise.
4501         * sbitmap.c (sbitmap_difference): Likewise.
4502         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
4503         sched_analyze, add_forward_dependence): Likewise.
4504         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
4505         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
4506         schedule_insns): Likewise.
4507         * sched-vis.c (print_pattern): Likewise.
4508         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
4509         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
4510         simplify_const_relational_operation, simplify_ternary_operation,
4511         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
4512         Likewise.
4513         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
4514         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
4515         resolve_operand_name_1, expand_return, expand_decl,
4516         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
4517         * stor-layout.c (put_pending_size, smallest_mode_for_size,
4518         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
4519         set_sizetype, get_mode_bounds): Likewise.
4520
4521 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
4522
4523         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
4524         * config/arm/pecoff.h, config/i386/beos-elf.h
4525         * config/i386/cygming.h, config/i386/i386-interix.h:
4526         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
4527         comment cloned from manual.
4528         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
4529
4530 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
4531
4532         * builtins.c (build_va_arg_indirect_ref): New function.
4533         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
4534         build_fold_indirect_ref.
4535         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
4536         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
4537         * tree.h: Declare new function.
4538
4539 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
4540
4541         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
4542         dumping for development builds.
4543         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
4544         development builds only.
4545         * genattrtab.c (write_eligible_delay): Fix typo in previous
4546         commit.
4547         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
4548         gcc_assert.
4549
4550 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
4551
4552         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
4553         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
4554         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
4555         hoist_code, extract_mentioned_regs_helper, compute_store_table,
4556         insert_store): Use gcc_assert and gcc_unreachable.
4557         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
4558         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
4559         ggc_record_overhead): Likewise.
4560         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
4561         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
4562         ggc_pop_context, clear_marks, validate_free_objects,
4563         ggc_pch_read): Likewise.
4564         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
4565         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
4566         ggc_push_context, check_cookies, ggc_collect,
4567         ggc_print_statistics): Likewise.
4568         * gimple-low.c (lower_function_body, lower_stmt,
4569         lower_bind_expr): Likewise.
4570         * gimplify.c (gimple_tree_eq, push_gimplify_context,
4571         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
4572         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
4573         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
4574         gimplify_case_label_expr, gimplify_exit_block_expr,
4575         canonicalize_component_ref, gimplify_compound_lval,
4576         gimplify_self_mod_expr, gimplify_call_expr,
4577         gimplify_init_ctor_eval, gimplify_init_constructor,
4578         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
4579         gimplify_expr, check_pointer_types_r,
4580         force_gimple_operand): Likewise.
4581         * global.c (global_alloc, build_insn_chain): Likewise.
4582         * graph.c (clean_graph_dump_file,
4583         finish_graph_dump_file): Likewise.
4584         gcov-io.c (gcov_open): Use GCOV_CHECK.
4585
4586 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
4587
4588         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
4589
4590 2004-09-09  Jan Hubicka  <jh@suse.cz>
4591
4592         middle-end/17128
4593         * tree-inline.c (expand_call_inline): Make overactive sanity check
4594         happy.
4595
4596 2004-09-09  Jan Hubicka  <jh@suse.cz>
4597
4598         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
4599         VIEW_CONVERT_EXPR.
4600
4601 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
4602
4603         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
4604         (gengtype.o): Depend on errors.h.
4605         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
4606         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
4607         attr_alt_subset_p, attr_alt_subset_of_compl_p,
4608         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
4609         write_test_expr, write_attr_value, write_eligible_delay,
4610         make_internal_attr, make_numeric_value): Likewise.
4611         * genautomata.c (regexp_name, get_str_vect,
4612         gen_presence_absence_set, automaton_decl_hash,
4613         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
4614         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
4615         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
4616         test_unit_reserv, it_is_empty_reserv_sets,
4617         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
4618         reserv_sets_and, output_cycle_reservs, get_free_state,
4619         intersected_state_reservs_p, states_union, remove_arc,
4620         copy_insn_regexp, transform_1, transform_2, transform_3,
4621         regexp_transform_func, store_alt_unit_usage,
4622         check_regexp_units_distribution, process_seq_for_forming_states,
4623         process_alts_for_forming_states, make_automaton,
4624         form_arcs_marked_by_insn, create_composed_state,
4625         set_out_arc_insns_equiv_num, partition_equiv_class,
4626         process_insn_equiv_class, set_insn_equiv_classes,
4627         units_to_automata_heuristic_distr, form_regexp,
4628         longest_path_length, output_dfa_max_issue_rate, add_vect,
4629         out_state_arcs_num, add_vect_el, output_trans_table,
4630         output_state_alts_table, output_dead_lock_vect,
4631         output_max_insn_queue_index_def,
4632         output_min_insn_conflict_delay_func,
4633         output_internal_insn_latency_func, output_print_reservation_func,
4634         output_cpu_unit_reservation_p, output_state_arcs,
4635         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
4636         make_default_insn_latency_attr,
4637         form_important_insn_automata_lists): Likewise.
4638         * genemit.c (gen_exp, output_add_clobbers,
4639         output_added_clobbers_hard_reg_p): Likewise.
4640         * genextract.c (print_path, main): Likewise.
4641         * genflags.c (gen_macro): Likewise.
4642         * gengenrtl.c: Include errors.h
4643         (type_from_format, accessor_from_format): Likewise.
4644         * gengtype.c (get_file_basename, output_mangled_typename,
4645         walk_type, write_types_process_field,
4646         write_types_local_process_field): Likewise.
4647         * genmodes.c (complete_mode): Likewise.
4648         * genopinit.c (gen_insn): Likewise.
4649         * genoutput.c (output_insn_data, check_constraint_len,
4650         constraint_len): Likewise.
4651         * genpreds.c (add_mode_tests):Likewise.
4652         * gen-protos.c (add_hash): Likewise.
4653         * genrecog.c (find_operand, find_matching_operand,
4654         validate_pattern, add_to_sequence, maybe_both_true,
4655         nodes_identical_1, merge_trees, write_switch, write_cond,
4656         write_action, is_unconditional, make_insn_sequence,
4657         debug_decision_2): Likewise.
4658         * gensupport.c (is_predicable, collect_insn_data,
4659         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
4660
4661 2004-09-09  Jan Hubicka  <jh@suse.cz>
4662
4663         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
4664         * cfgbuild.c (compute_outgoing_frequencies): When probability is
4665         missing, guess it.
4666         (find_many_sub_basic_blocks): Do update profile only when it is
4667         present.
4668         * predict.c (set_even_probabilities): Break out from ...
4669         (combine_predictions_for_insn): ... here; deal with
4670         !can_predict_insn_p insns.
4671         (combine_predictions_for_bb): Use set_even_probabilities.
4672         (bb_estimate_probability_locally): Break out from ....
4673         (estimate_probability): ... here.
4674         (guess_outgoing_edge_probabilities): New entry point.
4675
4676 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
4677
4678         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
4679         handle_braces, process_brace_body, main, used_arg,
4680         set_multilib_dir, print_multilib_info): Use fatal, not abort.
4681
4682         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
4683
4684         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
4685         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
4686         Morgan's theorem in last checkin.
4687
4688 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
4689             Nathan Sidwell  <nathan@codesourcery.com>
4690
4691         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
4692         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
4693         * timevar.c (timevar_push, timevar_pop, timevar_start,
4694         timevar_stop): Likewise.
4695         * toplev.c (default_pch_valid_p): Likewise.
4696         * tracer.c (tail_duplicate): Likewise.
4697         * tree-alias-common.c (get_alias_var_decl,
4698         get_values_from_constructor, create_alias_var, delete_alias_vars,
4699         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
4700         Likewise.
4701         * tree.c (tree_size, make_node_stat, copy_node_stat,
4702         build_int_cst_wide, integer_all_onesp, list_length, chainon,
4703         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
4704         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
4705         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
4706         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
4707         build_method_type_directly, decl_type_context, get_callee_fndecl,
4708         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
4709         tree_fold_gcd): Likewise.
4710         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
4711         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
4712         cleanup_control_expr_graph, find_taken_edge,
4713         find_taken_edge_switch_expr, phi_alternatives_equal,
4714         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
4715         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
4716         tree_split_edge, tree_verify_flow_info, thread_jumps,
4717         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
4718         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
4719         chrec_fold_multiply_poly_poly): Likewise.
4720         * tree-complex.c (extract_component, expand_complex_division,
4721         expand_complex_comparison, expand_complex_operations_1,
4722         build_replicated_const, expand_vector_operations_1): Likewise.
4723         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
4724         build_classic_dir_vector): Likewise.
4725         * tree-dfa.c (compute_immediate_uses_for_phi,
4726         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
4727         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
4728         * tree-dump.c (dequeue_and_dump): Likewise.
4729         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
4730         record_in_finally_tree, replace_goto_queue_1,
4731         maybe_record_in_goto_queue, verify_norecord_switch_expr,
4732         do_return_redirection): Likewise.
4733         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
4734         add_to_dst_predicate_list, find_phi_replacement_condition,
4735         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
4736         Likewise.
4737         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
4738         initialize_inlined_parameters, declare_return_variable,
4739         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
4740         optimize_inline_calls, copy_tree_r): Likewise.
4741         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
4742         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
4743         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
4744         tsi_split_statement_list_after, tsi_split_statement_list_before):
4745         Likewise.
4746         * tree-mudflap.c (mf_varname_tree): Likewise.
4747         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
4748         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
4749         * tree-optimize.c (tree_rest_of_compilation): Likewise.
4750         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
4751         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
4752         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
4753         Likewise.
4754         * tree-phinodes.c (resize_phi_node, add_phi_arg,
4755         remove_all_phi_nodes_for): Likewise.
4756         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
4757         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
4758         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
4759         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
4760         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
4761         generate_one_element_ref, generate_element_copy,
4762         generate_element_zero, scalarize_copy, scalarize_init,
4763         scalarize_ldst): Likewise.
4764         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
4765         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
4766         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
4767         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
4768         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
4769         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
4770         widen_bitfield, ccp_fold_builtin): Likewise.
4771         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
4772         replace_exp_1, propagate_tree_value): Likewise.
4773         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
4774         * tree-ssa-dce.c (set_control_dependence_map_bit,
4775         find_control_dependence, find_pdom, mark_operand_necessary,
4776         mark_stmt_if_obviously_necessary,
4777         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
4778         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
4779         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
4780         eliminate_redundant_computations, avail_expr_eq): Likewise.
4781         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
4782         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
4783         duplicate_blocks): Likewise.
4784         * tree-ssa-loop-im.c (for_each_index, set_level,
4785         is_call_clobbered_ref): Likewise.
4786         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
4787         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
4788         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
4789         peel_address, ptr_difference_cost, may_replace_final_value,
4790         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
4791         rewrite_use, rewrite_uses): Likewise.
4792         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
4793         check_loop_closed_ssa_use): Likewise.
4794         * tree-ssanames.c (make_ssa_name): Likewise.
4795         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
4796         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
4797         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
4798         get_indirect_ref_operands, add_stmt_operand): Likewise.
4799         * tree-ssa-pre.c (value_exists_in_set_bitmap,
4800         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
4801         phi_translate, valid_in_set, compute_antic,
4802         find_or_generate_expression, create_expression_by_pieces, insert_aux,
4803         create_value_expr_from, eliminate): Likewise.
4804         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
4805         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
4806         Likewise.
4807         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
4808         eliminate_tail_call): Likewise.
4809         * tree-vectorizer.c (vect_create_index_for_array_ref,
4810         vect_align_data_ref, vect_create_data_ref,
4811         vect_create_destination_var, vect_get_vec_def_for_operand,
4812         vect_finish_stmt_generation, vect_transform_stmt,
4813         vect_transform_loop_bound, vect_transform_loop,
4814         vect_analyze_operations): Likewise.
4815         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
4816         Likewise.
4817         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
4818         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
4819         bsi_after_labels, bsi_last): Likewise.
4820         * tree-ssa-live.c (var_union, change_partition_var,
4821         create_ssa_var_map, calculate_live_on_entry, root_var_init,
4822         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
4823         Likewise.
4824         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
4825         tpa_find_tree): Likewise.
4826         (register_ssa_partition_check): Declare.
4827         (register_ssa_partition): use it.
4828         * tree-ssa-live.c: Include errors.h.
4829         (register_ssa_partition_check): New.
4830         * tree-ssa-operands.c: Include errors.h.
4831         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
4832
4833 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
4834             Catherine Moore  <clm@redhat.com>
4835
4836         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
4837         (FRV_CPU_FR405): New processor enums.
4838         (frv_issue_rate, frv_acc_group): Declare.
4839         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
4840         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
4841         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
4842         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
4843         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
4844         handled by CPP_SPEC.
4845         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
4846         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
4847         (ACC_MASK): New macro.
4848         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
4849         (TARGET_MEDIA_FR450): New macro.
4850         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
4851         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
4852         (LABEL_ALIGN_AFTER_BARRIER): Define.
4853         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
4854         (IACC_FIRST, IACC_LAST): New pair of SPRs.
4855         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
4856         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
4857         (REGISTER_NAMES): Add entries for new registers.
4858         (REG_CLASS_CONTENTS): Update for new register ranges.
4859         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
4860         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
4861         (PACKING_FLAG_USED_P): Delete.
4862         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
4863         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
4864         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
4865         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
4866         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
4867         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
4868         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
4869         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
4870         (CPU_UNITS_QUERY): Define to 1.
4871         * config/frv/frv.c: Include gt-frv.h
4872         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
4873         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
4874         (frv_insn_group): New enumeration.
4875         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
4876         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
4877         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
4878         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
4879         gap left by REGSTATE_LIVE.
4880         (regstate_t): New typedef.
4881         (TARGET_MACHINE_DEPENDENT_REORG): Define.
4882         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
4883         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
4884         Initialize frv_unit_codes[] and frv_type_to_unit[].
4885         (frv_conditional_register_usage): Remove redundant fixing of
4886         accumulator registers.
4887         (frv_insn_packing_flag): Update specification.
4888         (frv_function_prologue): Don't set frv_insn_packing_flag here.
4889         Zero out frv_nops[].
4890         (frv_expand_epilogue): Remove comments about the no-longer-present
4891         SIBCALL_P argument.
4892         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
4893         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
4894         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
4895         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
4896         packing is disabled and if INSN can only issue to M1.
4897         (call_operand): Check TARGET_LONG_CALLS.
4898         (acc_operand, even_acc_operand, quad_acc_operand)
4899         (accg_operand): Simplify.  Don't accept pseudo registers.
4900         (output_move_single): Handle SPR<-zero moves.
4901         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
4902         (frv_registers_update, frv_registers_used_p): Delete.
4903         (frv_registers_set_p): Delete.
4904         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
4905         (frv_issues_to_branch_unit_p): New function.
4906         (frv_packet): New structure.
4907         (frv_cond_flags, frv_regstate_conflict_p): New functions.
4908         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
4909         (frv_registers_update_1, frv_registers_update): New functions.
4910         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
4911         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
4912         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
4913         (frv_sort_insn_group, frv_reorder_packet): New functions.
4914         (frv_pack_insns): Use frv_reorder_packet.
4915         (frv_packet_address): New variable.
4916         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
4917         (frv_register_nop, frv_reorg): New functions.
4918         (bdesc_1arg): Add __SCUTSS.
4919         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
4920         __SUBSS, __SLASS and __SCAN.
4921         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
4922         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
4923         (frv_init_builtins): Register the above builtins.
4924         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
4925         registers.  Turn the referenced accumulators into global registers.
4926         (frv_read_iacc_argument): New function.
4927         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
4928         (frv_split_iacc_move): New function.
4929         (frv_expand_builtin): Handle the new builtins.
4930         * config/frv/frv.md: Replace old schedulers with new order-independent
4931         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
4932         packing algorithm.
4933         (cpu): Add fr550, fr450 and fr405.
4934         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
4935         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
4936         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
4937         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
4938         (fnop, mnop): New patterns.
4939         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
4940         New constants.
4941         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
4942         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
4943         registers.
4944         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
4945         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
4946         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
4947         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
4948         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
4949         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
4950         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
4951         (frv_prefetch0, frv_prefetch): New patterns.
4952         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
4953         -mcpu=simple.  Add -mcpu=fr550.
4954         (MULTILIB_DIRNAMES): Update accordingly.
4955         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
4956         -mcpu=fr450.
4957         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
4958         -mlong-calls and -malign-labels options for FR-V.
4959
4960 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
4961
4962         PR c/8420
4963         * c-tree.h (struct c_declspecs): New.
4964         (struct c_declarator, struct c_type_name, struct c_parm): Update
4965         element types.
4966         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
4967         start_function, start_decl, build_c_parm,
4968         make_pointer_declarator): Update prototypes.
4969         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
4970         declspecs_add_scspec, declspecs_add_attrs): New.
4971         (split_specs_attrs): Remove.
4972         * c-parse.in (%union): Add dsptype.
4973         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
4974         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
4975         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
4976         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
4977         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
4978         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
4979         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
4980         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
4981         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
4982         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
4983         maybe_type_quals_attrs): Change to dsptype.
4984         (struct c_declspec_stack): New.
4985         (current_declspecs, declspec_stack): Change type.
4986         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
4987         structures.
4988         (extdefs): Likewise.
4989         (setspecs): Likewise.
4990         (fndef): Use current_declspecs for empty declspecs list.
4991         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
4992         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
4993         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
4994         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
4995         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
4996         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
4997         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
4998         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
4999         structures and helper functions.  Update comments.
5000         (typespec_nonattr): Correct comment.
5001         (maybe_type_quals_attrs, typename): Update to new structures.
5002         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
5003         shadow_tag, shadow_tag_warned, start_function, start_decl,
5004         build_c_parm, make_pointer_declarator,
5005         set_array_declarator_inner, groktypename): Update to new
5006         structures.
5007         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
5008         declspecs_add_scspec, declspecs_add_attrs): New.
5009         (split_specs_attrs): Remove.
5010         (shadow_tag_warned): Make warning for useless type names a
5011         pedwarn.  Give hard error for long, short, signed, unsigned or
5012         _Complex used with struct, union or enum in empty declaration.
5013         Make found_tag a bool.
5014         (grokdeclarator): Remove checks now done at parse time.
5015
5016 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
5017
5018         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
5019         c_declarator, struct c_type_name, struct c_parm): New.
5020         (build_array_declarator, set_array_declarator_inner,
5021         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
5022         start_function, start_decl, build_c_parm, build_attrs_declarator,
5023         build_function_declarator, make_pointer_declarator, c_cast_expr,
5024         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
5025         (build_id_declarator): New.
5026         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
5027         structures.
5028         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
5029         ARG_INFO_OTHERS): Remove.
5030         (build_id_declarator): New.
5031         (build_array_declarator, set_array_declarator_inner, groktypename,
5032         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
5033         grokfield, start_function, store_parm_decls_newstyle,
5034         store_parm_decls_oldstyle, store_parm_decls,
5035         build_c_parm, build_attrs_declarator, build_function_declarator,
5036         make_pointer_declarator, grokdeclarator): Update to new
5037         structures.
5038         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
5039         parmtype.
5040         (declarator, notype_declarator, after_type_declarator,
5041         parm_declarator, parm_declarator_starttypename,
5042         parm_declarator_nostarttypename, array_declarator, typename,
5043         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
5044         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
5045         parmlist_1, parmlist_2, parmlist_or_identifiers,
5046         parmlist_or_identifiers_1): Use these types.
5047         (primary, after_type_declarator, parm_declarator_starttypename,
5048         notype_declarator, component_decl, component_declarator,
5049         component_notype_declarator, typename, absdcl,
5050         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
5051         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
5052
5053 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
5054
5055         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
5056         in_typeof, record_maybe_used_decl, pop_maybe_used,
5057         c_expr_sizeof_expr, c_expr_sizeof_type): New.
5058         * c-decl.c (parser_obstack): New.
5059         (c_init_decl_processing): Initialize parser_obstack.
5060         (c_write_global_declarations_1): Check for used but undefined
5061         static functions.
5062         * c-parse.in (%union): Add otype.
5063         (save_obstack_position): New.
5064         (extdefs): Use it.
5065         (unary_expr): Update in_sizeof and in_alignof.  Use
5066         c_expr_sizeof_expr and c_expr_sizeof_type.
5067         (sizeof): Update in_sizeof.
5068         (alignof): Update in_alignof.
5069         (typeof): Update in_typeof.
5070         (typespec_nonreserved_nonattr): Call pop_maybe_used.
5071         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
5072         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
5073         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
5074         (build_external_ref): Set C_DECL_USED or call
5075         record_maybe_used_decl if appropriate.
5076         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
5077
5078 2004-09-08  Eric Christopher  <echristo@redhat.com>
5079
5080         * builtins.c: Fix prototype for fold_builtin_atan.
5081
5082 2004-09-08  Eric Christopher  <echristo@redhat.com>
5083
5084         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
5085         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
5086         fold_builtin_atan): New functions. Migrate function bodies...
5087         (fold_builtin_1): ... from here.
5088
5089 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
5090
5091         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
5092         save_size.
5093
5094 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
5095
5096         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
5097         * config/rs6000/power5.md (power5-lmul): Same.
5098
5099 2004-09-08  Richard Henderson  <rth@redhat.com>
5100
5101         PR rtl-opt/17186
5102         * function.c (expand_function_end): Have fall-off-the-end
5103         return path jump around return register setup.
5104
5105 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5106
5107         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
5108         (output_return): Do not test for the presence of the 'unimp' insn.
5109         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
5110         as predicates instead of custom ones.  Return raw strings when
5111         possible.
5112         (output_sibcall): Likewise.  Concatenate strings.
5113         (output_ubranch): Remove kludge for TurboSPARC.
5114         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
5115         (output_v9branch): Likewise.
5116         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
5117         <#>: Set sparc_indent_opcode if the delay slot is filled.
5118         <(>: Likewise.
5119         <)>: New operand to emit the displacement from the saved PC on return.
5120         <@>: Remove.
5121         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
5122         (ASM_OUTPUT_OPCODE): New macro.
5123         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
5124         * config/sparc/sparc.md (normal_branch, inverted_branch,
5125         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
5126         inverted_fpe_branch): Adjust call to output_cbranch.
5127         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
5128         call to output_v9branch.
5129         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
5130         (output_v9branch): Likewise.
5131
5132 2004-09-08  Devang Patel  <dpatel@apple.com>
5133
5134         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
5135         -segs_read_only_addr and -segs_read_write_addr.
5136         (WORD_SWITCH_TAKES_ARG): Same.
5137         (LINK_SPEC): Same.
5138         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
5139         -segs_read_write_addr.
5140
5141 2004-09-08  Richard Henderson  <rth@redhat.com>
5142
5143         * function.c (reference_callee_copied): New.
5144         (assign_parm_setup_reg): Use it.
5145         * calls.c (initialize_argument_information): Likewise.
5146         (emit_library_call_value_1): Likewise.
5147         * function.h (reference_callee_copied): Declare.
5148
5149         * target.h (struct gcc_target): Add callee_copies.
5150         * target-def.h (TARGET_CALLEE_COPIES): New.
5151         (TARGET_PASS_BY_REFERENCE): Update default.
5152         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5153         * targhooks.c (hook_callee_copies_named): New.
5154         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
5155         hook_pass_by_reference_false.
5156         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
5157         * targhooks.h: Update decls.
5158         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
5159         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5160         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
5161         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
5162         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5163         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
5164         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5165         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
5166         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5167         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
5168         (mips_callee_copies): New.
5169         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5170         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
5171         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5172         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
5173         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5174         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
5175         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5176         * config/sh/sh.c (sh_callee_copies): New.
5177         (TARGET_CALLEE_COPIES): New.
5178         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5179         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
5180         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5181         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
5182         for FUNCTION_ARG_CALLEE_COPIES.
5183         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
5184
5185 2004-09-08  Devang Patel  <dpatel@apple.com>
5186
5187         * tree-if-conv.c (find_phi_replacement_condition): Return true
5188         edge block.
5189         (replace_phi_with_cond_modify_expr): Select conditional expr args
5190         based on true edge basic block.
5191
5192 2004-09-08  Jan Hubicka  <jh@suse.cz>
5193
5194         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
5195         variables being alias set.
5196
5197 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
5198
5199         * final.c (shorten_branches, final, get_insn_template,
5200         output_alternate_entry_point, final_scan_insn, alter_subreg,
5201         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
5202         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
5203         * fix-header.c (lookup_std_proto): Likewise.
5204         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
5205         verify_local_live_at_start, update_life_info, mark_reg,
5206         calculate_global_regs_live, allocate_reg_life_data,
5207         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
5208         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
5209         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
5210         * fold-const.c (force_fit_type, div_and_round_double,
5211         may_negate_without_overflow_p, int_const_binop, const_binop,
5212         size_binop, size_diffop, fold_convert_const, fold_convert,
5213         invert_tree_comparison, swap_tree_comparison,
5214         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
5215         range_binop, make_range, fold_cond_expr_with_comparison,
5216         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
5217         fold_abs_const, fold_not_const, fold_relational_const, round_up,
5218         round_down): Likewise.
5219         * function.c (find_function_data, assign_stack_temp_for_type,
5220         instantiate_virtual_regs_lossage, aggregate_value_p,
5221         assign_parm_find_entry_rtl, assign_parm_setup_block,
5222         expand_function_start, expand_function_end, keep_stack_depressed,
5223         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
5224
5225 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
5226
5227         * Makefile.in (tree-loop-linear.o): Added.
5228         (OBJS-common): Add tree-loop-linear.o
5229         * common.opt: New flag, ftree-loop-linear.
5230         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
5231         * tree-flow.h: Add prototype for linear_transform_loops.
5232         * tree-optimize.c: Add linear transform after vectorization.
5233         * tree-pass.h: Add struct pass_linear_transform.
5234         * tree-ssa-loop.c: Add pass_linear_transform.
5235         * tree-loop-linear.c: New file.
5236         * lambda-code.c: gcc_assertify.
5237         (gcc_loop_to_lambda_loop): Handle all exit tests.
5238         Handle case where we have (invariant >= induction var).
5239         (find_induction_var_from_exit_cond): Ditto.
5240
5241 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
5242
5243         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
5244         memory tag is call clobbered, so are its aliases.
5245         (group_aliases): When two memory tags being grouped, if one is
5246         call clobbered, so are the other and its aliases.
5247         (add_may_alias): Remove call-clobbering stuff.
5248         (replace_may_alias): Likewise.
5249         (merge_pointed_to_info): Merge pt_global_mem
5250
5251 2004-09-08  Jan Hubicka  <jh@suse.cz>
5252
5253         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
5254         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
5255         (cgraph_expand_function): Remove stale cgraph edges of currently
5256         compiled function; fix non-unit-at-a-time code copying function
5257         node for later reuse.
5258
5259 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
5260
5261         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
5262         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
5263         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
5264         (vec_gc_free, vec_heap_free): New.
5265         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
5266         (DEF_VEC_P): Add allocator argument. Adjust.
5267         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
5268         (DEF_VEC_O): Add allocator argument. Adjust.
5269         (VEC(free)): New.
5270
5271         * tree.h (tree): Define a GC'd vector.
5272         * lamba-code.c (lambda_loop): Likewise.
5273         * value-prof.h (histogram_value): Likewise.
5274
5275 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
5276
5277         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
5278         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
5279         gen_lowpart_common, gen_highpart, gen_highpart_mode,
5280         subreg_highpart_offset, operand_subword, operand_subword_force,
5281         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
5282         set_mem_alias_set, change_address_1, verify_rtx_sharing,
5283         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
5284         try_split, add_insn_after, add_insn_before, remove_insn,
5285         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
5286         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
5287         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
5288         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
5289         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
5290         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
5291         record_path_before_1, check_path_after_1, check_path_after): Likewise.
5292         * except.c (gen_eh_region, resolve_one_fixup_region,
5293         remove_unreachable_regions, convert_from_eh_region_ranges_1,
5294         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
5295         connect_post_landing_pads, sjlj_emit_function_exit,
5296         remove_exception_handler_label, remove_eh_handler,
5297         reachable_next_level, collect_one_action_chain,
5298         output_function_exception_table): Likewise.
5299         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
5300         optimize_save_area_alloca, allocate_dynamic_stack_space,
5301         probe_stack_range, hard_function_value): Likewise.
5302         * expmed.c (mode_for_extraction, store_bit_field,
5303         store_fixed_bit_field, extract_bit_field, expand_shift,
5304         expand_mult_const, expand_mult, choose_multiplier,
5305         expand_mult_highpart, expand_divmod, emit_store_flag,
5306         do_cmp_and_jump): Likewise.
5307         * expr.c (convert_move, convert_modes, move_by_pieces,
5308         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
5309         move_block_from_reg, gen_group_rtx, emit_group_load,
5310         emit_group_move, emit_group_store, use_reg, use_regs,
5311         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
5312         emit_move_insn, emit_move_insn_1, emit_push_insn,
5313         expand_assignment, store_expr, count_type_elements,
5314         store_constructor, store_field, safe_from_p, expand_var,
5315         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
5316
5317 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
5318
5319         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
5320         gcc_assert and gcc_unreachable.
5321         * ddg.c (create_ddg_dependence, add_deps_for_def,
5322         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
5323         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
5324         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
5325         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
5326         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
5327         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
5328         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
5329         dataflow_set_copy, hybrid_search, diagnostic.c,
5330         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
5331         * dojump.c (do_jump): Likewise.
5332         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
5333         compute_dom_fast_query, calculate_dominance_info,
5334         free_dominance_info, get_immediate_dominator,
5335         set_immediate_dominator, get_dominated_by,
5336         redirect_immediate_dominators, nearest_common_dominator,
5337         dominated_by_p, verify_dominators, recount_dominator,
5338         iterate_fix_dominators, add_to_dominance_info,
5339         delete_from_dominance_info): Likewise.
5340         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
5341         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
5342         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
5343         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
5344         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
5345         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
5346         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
5347         output_call_frame_info, output_loc_operands, build_cfa_loc,
5348         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
5349         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
5350         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
5351         splice_child_die, attr_checksum, same_dw_val_p,
5352         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
5353         unmark_dies, value_format, output_loc_list, output_die,
5354         output_pubnames, output_aranges, base_type_die, is_base_type,
5355         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
5356         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
5357         field_byte_offset, add_data_member_location_attribute,
5358         add_const_value_attribute, rtl_for_decl_location,
5359         add_location_or_const_value_attribute, add_byte_size_attribute,
5360         add_bit_offset_attribute, add_bit_size_attribute,
5361         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
5362         decl_start_label, gen_formal_parameter_die,
5363         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
5364         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
5365         force_decl_die, force_type_die, gen_decl_die,
5366         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
5367         dwarf2out_finish): Likewise.
5368
5369 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
5370
5371         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
5372         * builtins.c: Include tree-mudflap.h.
5373
5374 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
5375
5376         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
5377         force operand 0.0 into register in XFmode. Also do not force
5378         operand 0.0 into register if !TARGET_CMOVE.
5379         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
5380         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
5381         implement ftst x87 instruction.
5382         (*fp_jcc_7): New insn pattern. Change corresponding split
5383         pattern to handle "general_operand" instead of
5384         "nonimmediate_operand".
5385
5386 2004-09-08  Ben Elliston  <bje@au.ibm.com>
5387
5388         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
5389
5390 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
5391
5392         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
5393         generated from standard va_arg expansion.
5394         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
5395         marked nodes.
5396         (mf_varname_tree, mf_file_function_line_tree): Add some support
5397         for column numbers if compiled with USE_MAPPED_LOCATION.
5398
5399 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
5400
5401         * c-decl.c (groktypename_in_parm_context): Remove function.
5402         * c-tree.h (groktypename_in_parm_context): Remove prototype.
5403
5404 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
5405
5406         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
5407         * c-parse.in: Include c-common.h instead of objc-act.h.
5408         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
5409         myparms, myparm): Remove %type declarations.
5410         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
5411         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
5412         declarations.
5413         (objc_inherit_code, objc_public_flag): Remove.
5414         (typespec_nonreserved_nonattr): Call
5415         objc_get_protocol_qualified_type() instead of get_static_reference()
5416         and get_protocol_reference().
5417         (stmt_nocomp): Call grokparm() on @catch parameter.
5418         (objcdef): Move semantic action to objc_finish_implementation().
5419         (classdef): Move semantic action to objc_start_class_interface(),
5420         objc_continue_interface(), objc_finish_interface(),
5421         objc_start_class_implementation(), objc_continue_implementation(),
5422         objc_start_category_interface() and
5423         objc_start_category_implementation().
5424         (protocoldef): Move semantic actions to objc_start_protocol() and
5425         objc_finish_interface().
5426         (ivar_decl_list): Remove nonterminal.
5427         (visibility_spec): Move semantic actions to objc_set_visibility().
5428         (ivar_decls): Remove assignment to $$.
5429         (ivar_decl): Rephrase in terms of component_decl; call
5430         objc_add_instance_variable().
5431         (ivars, ivar_declarator): Remove nonterminals.
5432         (opt_semi): New nonterminal.
5433         (methodtype): Remove semantic actions.
5434         (methoddef): Move semantic actions to objc_set_method_type(),
5435         objc_start_method_definition() and objc_finish_method_definition().
5436         (methodproto): Move semantic actions to objc_set_method_type() and
5437         objc_add_method_declaration().
5438         (methoddecl): Use objc_typename instead of typename; move semantic
5439         actions to objc_build_method_signature().
5440         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
5441         (optparmlist): Express in terms of optparms and optellipsis.
5442         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
5443         nonterminals.
5444         (keyworddecl): Use objc_typename instead of typename.
5445         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
5446         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
5447
5448 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
5449
5450         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
5451         (MD_FALLBACK_FRAME_STATE_FOR): Update.
5452         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
5453         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
5454         (MD_FROB_UPDATE_CONTEXT): Remove default.
5455         (uw_update_context_1): Instead #ifdef invocation.
5456         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
5457         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
5458         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
5459         (MD_UNWIND_SUPPORT): Undefine this instead.
5460         * config/i386/gnu.h: Likewise.
5461         * config/alpha/linux-unwind.h: New file, macro converted to
5462         function, extracted from..
5463         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
5464         (MD_UNWIND_SUPPORT): Define.
5465         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
5466         * config/i386/linux-unwind.h, config/i386/linux.h,
5467         config/i386/linux64.h: Likewise.
5468         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
5469         MD_HANDLE_UNWABI too.
5470         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
5471         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
5472         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
5473         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
5474         * config/sparc/linux-unwind.h, config/sparc/linux.h,
5475         config/sparc/linux64.h: Likewise.
5476         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
5477         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
5478         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
5479         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
5480         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
5481
5482 2004-09-07  Jan Hubicka  <jh@suse.cz>
5483
5484         * cse.c (fold_rtx):  Avoid building of
5485         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
5486
5487         * tree-ssa-pre.c (grand_bitmap_obstack): New.
5488         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
5489         (init_pre): Initialize obstack.
5490         (fini_pre): Free obstack.
5491
5492 2004-09-07  David Daney  <ddaney@avtrex.com>
5493
5494         * config.gcc: Added support for --with-divide=[breaks|traps] for
5495         mips targets.
5496         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
5497         (TARGET_DIVIDE_TRAPS): New macro.
5498         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
5499         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
5500         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
5501         GENERATE_DIVIDE_TRAPS.
5502         (mips_output_division): Emit conditional trap if
5503         GENERATE_DIVIDE_TRAPS is set.
5504         * doc/install.texi: Document --with-divide.
5505         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
5506
5507 2004-09-07  Caroline Tice  <ctice@apple.com>
5508
5509         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
5510         EDGE_CROSSING, to flags test case.
5511
5512 2004-09-07  Jan Hubicka  <jh@suse.cz>
5513
5514         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
5515         class too.
5516
5517 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
5518
5519         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
5520         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
5521         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
5522         or gcc_unreachable.
5523         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
5524         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
5525         alloc_aux_for_edges, free_aux_for_edges): Likewise.
5526         * cfgcleanup.c (try_forward_edges,
5527         merge_blocks_move_predecessor_nojumps,
5528         merge_blocks_move_successor_nojumps): Likewise.
5529         * cfgexpand.c (expand_gimple_cond_expr,
5530         expand_gimple_tailcall): Likewise.
5531         * cfghooks.c (duplicate_block): Likewise.
5532         * cfglayout.c (record_effective_endpoints,
5533         insn_locators_initialize, change_scope, fixup_reorder_chain,
5534         verify_insn_chain, fixup_fallthru_exit_predecessor,
5535         duplicate_insn_chain, cfg_layout_finalize): Likewise.
5536         * cfgloopanal.c (check_irred): Likewise.
5537         * cfgloop.c (superloop_at_depth, flow_loops_free,
5538         flow_loop_entry_edges_find, flow_loops_find,
5539         flow_loop_outside_edge_p, get_loop_body,
5540         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
5541         get_loop_exit_edges, num_loop_branches, cancel_loop,
5542         verify_loop_structure): Likewise.
5543         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
5544         duplicate_loop_to_header_edge, create_preheader,
5545         create_loop_notes): Likewise.
5546         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
5547         edirect_branch_edge, force_nonfallthru_and_redirect,
5548         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
5549         commit_edge_insertions, commit_edge_insertions_watch_calls,
5550         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
5551         cfg_layout_redirect_edge_and_branch_force,
5552         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
5553         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
5554         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
5555         cgraph_varpool_node): Likewise.
5556         * cgraphunit.c (cgraph_finalize_function,
5557         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
5558         cgraph_expand_function, cgraph_remove_unreachable_nodes,
5559         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
5560         cgraph_mark_inline, cgraph_expand_all_functions,
5561         cgraph_build_static_cdtor): Likewise.
5562         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
5563         simplify_logical, distribute_notes, insn_cuid): Likewise.
5564         * conflict.c (conflict_graph_add, print_conflict): Likewise.
5565         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
5566         coverage_checksum_string): Likewise.
5567         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
5568         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
5569         cse_cc_succs, cse_condition_code_reg): Likewise.
5570         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
5571         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
5572         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
5573         cselib_record_set): Likewise.
5574
5575 2004-09-07  Jan Hubicka  <jh@suse.cz>
5576
5577         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
5578
5579 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
5580
5581         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
5582         fold_convert.
5583         (fold_builtin_strpbrk): Likewise.
5584         * expr.c (array_ref_low_bound): Likewise.
5585         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
5586         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
5587         * tree-sra.c (generate_element_zero): Likewise.
5588         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
5589         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
5590         add_old_iv_candidates, add_iv_candidates): Likewise.
5591         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
5592
5593 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
5594
5595         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
5596         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
5597         c_expand_expr, boolean_increment, nonnull_check_p,
5598         check_function_arguments_recurse, fold_offsetof_1): Likewise.
5599         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
5600         builtin_define_type_max): Likewise.
5601         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
5602         implicit_decl_warning, builtin_function, build_compound_literal,
5603         complete_array_type, grokdeclarator, get_parm_info,
5604         start_function, store_parm_decls_oldstyle,
5605         c_write_global_declarations): Likewise.
5606         * c-format.c (get_constant, decode_format_attr,
5607         maybe_read_dollar_number, get_flag_spec, check_format_arg,
5608         check_format_types, format_type_warning,
5609         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
5610         init_dynamic_diag_info, handle_format_attribute): Likewise.
5611         * c-gimplify.c (push_context, pop_context, finish_bc_block):
5612         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
5613         * c-objc-common.c (c_tree_printer): Likewise.
5614         * c-pch.c (pch_init): Likewise.
5615         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
5616         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
5617         * c-typeck.c (c_incomplete_type_error, composite_type,
5618         common_pointer_type, common_type, same_translation_unit_p,
5619         tagged_types_tu_compatible_p, finish_init, pop_init_level,
5620         set_designator, set_nonincremental_init_from_string,
5621         process_init_element, c_finish_if_stmt): Likewise.
5622         * caller-save.c (init_caller_save, save_call_clobbered_regs,
5623         insert_restore, insert_save, insert_one_insn): Likewise.
5624         * calls.c (emit_call_1, compute_argument_block_size,
5625         precompute_arguments, expand_call, emit_library_call_value_1,
5626         store_one_arg): Likewise.
5627
5628 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
5629
5630         * configure.ac (enable-checking): Add release option. Reorganize
5631         to avoid repetition.
5632         * configure: Rebuilt.
5633         * doc/install.texi (enable-checking): Amend documentation.
5634
5635 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
5636
5637         PR bootstrap/17313
5638         * Makefile.in (specs.ready): Depend on cc1$(exeext).
5639
5640 2004-09-06  James E Wilson  <wilson@specifixinc.com>
5641
5642         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
5643         movdf_hardfloat_32bit): Split fG into two alternatives.
5644         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
5645
5646         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
5647
5648 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
5649
5650         * final.c (output_in_slot): Delete.
5651         (final_scan_insn): Revert 2004-09-03 change.
5652         (output_asm_insn): Likewise.
5653         * config/sparc/sparc.c (output_return): Likewise.
5654         (output_sibcall): Likewise.
5655
5656 2004-09-06  Jan Hubicka  <jh@suse.cz>
5657
5658         * loop.c (loop_dump_aux): Do not print RTL when not available.
5659         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
5660         frontend specific type nodes.
5661         (produce_memory_decl_rtl): Break out from ...
5662         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
5663         (get_computation_at): Avoid random tree sharing.
5664         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
5665
5666 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
5667
5668         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
5669         unnecessary commands.
5670
5671 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
5672
5673         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
5674         (bitmap.o): Likewise.
5675
5676 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
5677
5678         Unify the management of RTL and tree-level dump files.
5679
5680         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
5681         Don't print function name to the dump file, the pass manager
5682         would do this for us. Add code from the top of
5683         rest_of_compilation, up to the initial RTL dump.
5684         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
5685         close the DFI_sibling dump file.
5686         (rest_of_compilation): Don't do that here.  Remove code up to the
5687         initial RTL dump.
5688         (init_optimization_passes): Remove.
5689         (pass_rest_of_compilation): Change pass name to NULL.
5690         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
5691         Do not call init_optimization_passes.
5692         * toplev.h (init_optimization_passes): Remove.
5693
5694         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
5695         finish_graph_dump_file): Remove SUFFIX parameter.
5696         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
5697         finish_graph_dump_file): Likewise.
5698
5699         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
5700         * cfgexpand.c (pass_expand): Adjust.
5701         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
5702         * passes.c (pass_rest_of_compilation): Adjust.
5703         * predict.c (pass_profile): Adjust.
5704         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
5705         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
5706         pass_split_crit_edges, pass_warn_function_return): Adjust.
5707         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
5708         * tree-dfa.c (pass_referenced_vars): Adjust.
5709         * tree-eh.c (pass_lower_eh): Adjust.
5710         * tree-if-conv.c (pass_build_ssa): Adjust.
5711         * tree-into-ssa.c (pass_build_ssa): Adjust.
5712         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
5713         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
5714         * tree-nrv.c (pass_nrv): Adjust.
5715         * tree-optimize.c (pass_gimple, pass_all_optimizations,
5716         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
5717         pass_init_datastructures): Adjust.
5718         * tree-outof-ssa.c (pass_del_ssa): Adjust.
5719         * tree-profile.c (pass_tree_profile): Adjust.
5720         * tree-sra.c (pass_sra): Adjust.
5721         * tree-ssa-alias.c (pass_may_alias): Adjust.
5722         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
5723         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
5724         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
5725         * tree-ssa-dom.c (pass_dominator): Adjust.
5726         * tree-ssa-dse.c (pass_dse): Adjust.
5727         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
5728         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
5729         * tree-ssa-loop-ch.c (pass_ch): Adjust.
5730         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
5731         pass_loop_done, pass_complete_unroll, pass_iv_canon,
5732         pass_iv_optimize, pass_vectorize): Adjust.
5733         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
5734         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
5735         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
5736         pass_late_warn_uninnitialized): Adjust.
5737         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
5738
5739         * Makefile.in (tree-dump.o): Add new dependencies.
5740         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
5741         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
5742         Likewise.
5743         * toplev.c (dump_file_name): New.
5744         * tree-dump.c (dump_enable_all): Add LETTER parameter.
5745         (struct dump_file_info): Add NUM and LETTER fields.
5746         (dump_files): Adjust and add RTL dump files.
5747         (dump_register): Add NUM and LETTER fields.
5748         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
5749         (dump_begin): Use get_dump_file_name.
5750         (dump_switch_p_1): Adjust call to dump_enable_all.
5751         * tree-dump.h (dump_register): Adjust prototype.
5752         * tree-optimize.c (register_one_dump_file): Take dump file index.
5753         Support flags for RTL dumps.
5754         (register_dump_files): Fill in NUM field of struct dump_file_info.
5755         Track properties both when the gate is executed and when it is not.
5756         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
5757         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
5758         dumps of RTL.
5759         * tree-pass.h (dump_file_name): New.
5760         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
5761         New.
5762
5763         * Makefile.in (passes.o): Add new dependencies.
5764         * passes.c (struct dump_file_info, enum dump_file_index,
5765         dump_file_tbl, init_optimization_passes): Remove.
5766         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
5767         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
5768         dump_enabled_p.
5769         (finish_optimization_passes): Update finish_graph_dump_file loop.
5770         (enable_rtl_dump_file): Remove.
5771         * tree-dump.c (dump_files): Adjust and add RTL dump files.
5772         (enable_rtl_dump_file): Add here.
5773         * tree.h (enum tree_dump_index): Add RTL dump file indices.
5774         * doc/invoke.texi (Debugging options): Document new RTL debugging
5775         options.  Update.
5776
5777 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
5778
5779         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
5780         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
5781         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
5782         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
5783         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
5784         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
5785         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
5786         vec.h: Fix comment formatting.
5787
5788 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
5789
5790         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
5791         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
5792         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
5793         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
5794         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
5795         tree-ssa-loop-niter.c, tree-ssa-operands.c,
5796         tree-ssa-operands.h, tree-ssa-propagate.c,
5797         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
5798         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
5799
5800 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
5801
5802         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
5803         vectorizer is enabled.
5804
5805 2004-09-05  Andreas Jaeger  <aj@suse.de>
5806
5807         * tree-if-conv.c: Spell check comments and clean up whitespace.
5808
5809 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5810
5811         * tree-ssa-loop-ivopts.c: New file.
5812         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
5813         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
5814         target_pres_cost, target_spill_cost): Declare.
5815         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
5816         spill_cost): Renamed to ...
5817         (target_avail_regs, target_res_regs, target_small_cost,
5818         target_pres_cost, target_spill_cost): ... and exported.
5819         (init_set_costs, global_cost_for_size): Work with renamed variables.
5820         * common.opt (flag_ivopts): New flag.
5821         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
5822         REF_ORIGINAL.
5823         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
5824         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
5825         generating SSA form.
5826         (force_gimple_operand): New function.
5827         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
5828         * tree-cfg.c (stmt_bsi): New function.
5829         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
5830         PARAM_IV_MAX_CONSIDERED_USES): New.
5831         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
5832         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
5833         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
5834         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
5835         * tree-nested.c (build_addr): Export.
5836         * tree-optimize.c (init_tree_optimization_passes): Add
5837         pass_iv_optimize.
5838         * tree-pass.h (pass_iv_optimize): Declare.
5839         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
5840         IMAGPART_EXPR.
5841         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
5842         as a phi node argument.
5843         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
5844         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
5845         functions.
5846         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
5847         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
5848         pass_iv_optimize): New pass.
5849         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
5850         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
5851         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
5852         * tree.h (REF_ORIGINAL): New macro.
5853         (build_int_cst_type, unsigned_type_for, zero_p,
5854         cst_and_fits_in_hwi, build_addr): Declare.
5855         * doc/invoke.texi (-fivopts): Document.
5856         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
5857         PARAM_IV_MAX_CONSIDERED_USES): Document.
5858         * doc/passes.texi: Document induction variable optimizations pass.
5859
5860 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5861
5862         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
5863         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
5864         * c-common.c (c_common_attribute_table): Accept parameters to
5865         sentinel attribute.
5866         (check_function_sentinel, handle_sentinel_attribute): Likewise.
5867         * doc/extend.texi: Update accordingly.
5868
5869 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5870
5871         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
5872         New.
5873         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
5874         attribute.
5875         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
5876         New functions.
5877         (c_common_attribute_table): Add `sentinel' attribute.
5878         (check_function_arguments): Handle `sentinel' attribute.
5879         * doc/extend.texi: Document `sentinel' attribute.
5880
5881 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
5882
5883         * configure: Regenerated.
5884
5885 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5886
5887         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
5888
5889         * tree.c (save_expr): No longer TREE_READONLY.
5890
5891 2004-09-04  Jan Hubicka  <jh@suse.cz>
5892
5893         * passes.c (rest_of_clean_state):  Fix merge conflict made during
5894         commiting the patch.
5895
5896 2004-09-04  Jan Hubicka  <jh@suse.cz>
5897
5898         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
5899
5900 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
5901
5902         * doc/md.texi (shift patterns): New anchor.  Add reference to
5903         TARGET_SHIFT_TRUNCATION_MASK.
5904         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
5905         * target.h (shift_truncation_mask): New target hook.
5906         * targhook.h (default_shift_truncation_mask): Declare.
5907         * targhook.c (default_shift_truncation_mask): Define.
5908         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
5909         (TARGET_INITIALIZER): Include it.
5910         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
5911         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
5912         reject all out-of-range values.  Fix sign-extension code for modes
5913         whose width is smaller than HOST_BITS_PER_WIDE_INT.
5914         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
5915         (expand_superword_shift, expand_subword_shift): Likewise.
5916         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
5917         (expand_binop): Use them to implement double-word shifts.
5918         * config/arm/arm.c (arm_shift_truncation_mask): New function.
5919         (TARGET_SHIFT_TRUNCATION_MASK): Define.
5920
5921 2004-09-04  Jan Hubicka  <jh@suse.cz>
5922
5923         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
5924         (mix): New macro copied from hashtab.c
5925         (iterative_hash_hashval_t, iterative_hash_pointer,
5926         iterative_hash_host_wide_int): New functions based on hashtab.c
5927         implementation.
5928
5929 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
5930
5931         * config/mips/mips.md (mask): New mode attribute.
5932         (zero_extendsidi2): Add memory alternative.
5933         (*zero_extendsidi2_mem): Delete.
5934         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
5935         memory_operand in the TARGET_MIPS16 check.
5936         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
5937         Redefine using :GPR and :SHORT.
5938         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
5939
5940 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
5941
5942         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
5943         using rint_optab.
5944         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
5945         expand_builtin_mathfn.
5946         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
5947         btrunc?f patterns for btrunc_optab. Implement rint_optab using
5948         rint?f patterns.
5949         * optabs.c (init_optabs): Initialize rint_optab.
5950         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
5951         Add new OTI_rint.
5952         (btrunc_optab): Rename macro from trunc_optab.
5953         (rint_optab): Define corresponding macro.
5954
5955         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
5956         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
5957
5958         * config/i386/i386-protos.h (emit_i387_cw_initialization):
5959         Change prototype. Add new int parameter.
5960         * config/i386/i386.c (emit_i387_cw_initialization):
5961         Handle new rounding modes.
5962
5963         * config/i386/i386.h (enum fp_cw_mode): Delete.
5964         (MODE_NEEDED): Handle new rounding modes.
5965         (EMIT_MODE_SET): Change condition to handle new rounding modes.
5966
5967         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
5968         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
5969         represent different rounding modes of frndint insn.
5970         (type): Add frndint type.
5971         (i387, length, memory): Handle this type.
5972         (i387_cw): New attribute definition.
5973         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
5974         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
5975         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
5976         Add "i387_cw" attribute defined to "trunc".
5977         (x86_fnstcw_1): Remove comment.
5978         (*frndintxf2): Rename insn definition to frndintxf2. Move
5979         insn definition near rint?f2 expanders.
5980         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
5981         rintf and rintl built-ins as inline x87 intrinsics.
5982         (frndintxf2_floor): New pattern to implement floor rounding
5983         mode with frndint x87 instruction.
5984         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
5985         floorf and floorl built-ins as inline x87 intrinsics.
5986         (frndintxf2_ceil): New pattern to implement ceil rounding
5987         mode with frndint x87 instruction.
5988         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
5989         ceilf and ceill built-ins as inline x87 intrinsics.
5990         (frndintxf2_trunc): New pattern to implement trunc rounding
5991         mode with frndint x87 instruction.
5992         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
5993         truncf and truncl built-ins as inline x87 intrinsics.
5994         (frndintxf2_mask_pm): New pattern to implement rounding
5995         mode with exceptions with frndint x87 instruction.
5996         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
5997         implement nearbyint, nearbyintf and nearbyintl built-ins as
5998         inline x87 intrinsics.
5999
6000 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
6001
6002         * config/mips/mips.md (SHORT): New mode macro.
6003         (size): New mode attribute.
6004         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
6005         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
6006         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
6007         !ISA_HAS_SEB_SEH.
6008         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
6009         *extend[qh]isi2_hw patterns and extending them to di.
6010         (extendqihi2): Implement as define_insn_and_split that produces
6011         extendqisi2 after reload.
6012
6013 2004-09-03  Devang Patel  <dpatel@apple.com>
6014
6015         * Makefile.in (OBJS-common): Add tree-if-conv.o
6016         (tree-if-conv.o): New rule.
6017         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
6018         (get_loop_body_in_bfs_order): New.
6019         * cfgloop.h (get_loop_body_in_bfs_order): New.
6020         * tree-flow.h (enum move_pos): Move here from ..
6021         * tree-ssa-loop-im.c (enum move_pos): here.
6022         (movement_possibility): Make externally visible.
6023         * tree-optimize.c (init_tree_optimization_passes): New entry for
6024         if conversion pass.
6025         * tree-pass.h (pass_if_conversion): New.
6026         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
6027         * tree-if-conv.c: New file.
6028         * doc/passes.texi: Document tree if-conversion pass.
6029         * doc/tree-ssa.texi: Same.
6030
6031 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
6032
6033         PR target/14925:
6034         Makefile.in (LIB2ADDEHSTATIC): New.
6035         (LIB2ADDEHSHARED): New.
6036         (LIBUNWIND): New.
6037         (LIBUNWINDDEP): New.
6038         (SHLIBUNWIND_LINK): New.
6039         (SHLIBUNWIND_INSTALL): New.
6040         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
6041         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
6042         (clean): Remove libunwind*
6043         (stage1-start): Remove and copy stage1/libunwind*.
6044         (stage2-start): Remove and copy stage2/libunwind*.
6045         (stage3-start): Remove and copy stage3/libunwind*.
6046         (stage4-start): Remove and copy stage4/libunwind*.
6047         (stageprofile-start): Remove and copy stageprofile/libunwind*.
6048         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
6049
6050         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
6051         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
6052         tmake_file if --with-system-libunwind isn't used.
6053
6054         * config/ia64/t-glibc-libunwind: New file.
6055         * config/t-libunwind-elf: Likewise.
6056         * unwind-compat.c: Likewise.
6057         * unwind-compat.h: Likewise.
6058         * unwind-dw2-fde-compat.c: Likewise.
6059
6060         * config/ia64/t-glibc (LIB2ADDEH): Updated.
6061         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
6062
6063         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
6064         aliases if needed.
6065         * unwind-dw2-fde-glibc.c: Likewise.
6066         * unwind-dw2.c: Likewise.
6067
6068         * config/t-libunwind (LIB2ADDEH): Updated.
6069         (LIB2ADDEHSTATIC): New.
6070         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
6071         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
6072
6073         * configure.ac: Change --enable-libunwind-exceptions to
6074         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
6075         * configure: Regenerated.
6076         * config.in: Updated.
6077
6078         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
6079         above and mention --with-system-libunwind.
6080         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
6081         removed in gcc 3.4.3 and later.
6082
6083         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
6084         USE_LIBUNWIND_EXCEPTIONS is defined.
6085
6086         * mklibgcc.in: Support libunwind.
6087
6088 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
6089
6090         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
6091         m_NOCONA.
6092
6093 2004-09-03  Richard Henderson  <rth@redhat.com>
6094
6095         PR middle-end/9997
6096         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
6097         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
6098         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
6099         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
6100         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
6101         resize_stack_vars_conflict, add_stack_var_conflict,
6102         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
6103         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
6104         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
6105         expand_one_static_var, expand_one_hard_reg_var,
6106         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
6107         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
6108         (expand_used_vars): Rewrite.
6109         * Makefile.in (cfgexpand.o): Update dependencies.
6110
6111 2004-09-04  Jan Hubicka  <jh@suse.cz>
6112
6113         * cfg.c (free_edge): Use ggc_free.
6114         (expunge_block): Use ggc_free.
6115         * passes.c (rest_of_clean_state): Free after compilation.
6116         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
6117         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
6118
6119 2004-09-03  James E Wilson  <wilson@specifixinc.com>
6120
6121         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
6122         DECL_EXTERNAL check.
6123
6124 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
6125
6126         * final.c (output_in_slot): New global variable.
6127         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
6128         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
6129         'output_in_slot' before invoking output_asm_insn.
6130         (output_asm_insn): Add a space after the tab if 'output_in_slot'
6131         is set.
6132         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
6133         final_scan_insn.
6134         (output_sibcall): Likewise.
6135
6136 2004-09-03  Jan Hubicka  <jh@suse.cz>
6137
6138         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
6139         * tree-ssanames (init_ssanames): Likewise.
6140
6141 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
6142
6143         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
6144         objc_declare_protocols, objc_start_protocol,
6145         objc_start_class_interface, objc_start_category_interface,
6146         objc_continue_interface, objc_finish_interface,
6147         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
6148         objc_start_class_implementation, objc_start_category_implementation,
6149         objc_continue_implementation, objc_finish_implementation,
6150         objc_add_method_declaration, objc_start_method_definition,
6151         objc_finish_method_definition, objc_build_keyword_decl,
6152         objc_build_method_signature, objc_build_encode_expr,
6153         objc_build_protocol_expr, objc_build_selector_expr,
6154         objc_build_message_expr, objc_build_string_object,
6155         objc_get_class_reference, objc_get_protocol_qualified_type,
6156         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
6157
6158 2004-09-03  James E Wilson  <wilson@specifixinc.com>
6159
6160         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
6161
6162         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
6163         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
6164         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
6165         (mips_recip1_<fmt>): Use frdiv1 type.
6166         (mips_recip2_<fmt>): Use frdiv2 type.
6167         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
6168         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
6169         and frsqrt1.
6170         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
6171
6172 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
6173
6174         * reload.c (find_reloads): Swap operand_loc pointers for
6175         find_dummy_reload if we have swapped two operands.
6176
6177 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
6178
6179         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
6180         to get the tablejump-insn before the jump-table label.
6181
6182 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
6183
6184         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
6185         objc_declare_protocols, objc_build_message_expr,
6186         objc_finish_message_expr, objc_build_selector_expr,
6187         objc_build_protocol_expr, objc_build_encode_expr,
6188         objc_build_string_object, objc_get_protocol_qualified_type,
6189         objc_get_class_reference, objc_get_class_ivars,
6190         objc_start_class_interface, objc_start_category_interface,
6191         objc_start_protocol, objc_continue_interface, objc_finish_interface,
6192         objc_start_class_implementation, objc_start_category_implementation,
6193         objc_continue_implementation, objc_finish_implementation,
6194         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
6195         objc_add_method_declaration, objc_start_method_definition,
6196         objc_finish_method_definition, objc_add_instance_variable,
6197         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
6198         objc_finish_try_stmt, objc_begin_catch_clause,
6199         objc_finish_catch_clause, objc_build_finally_clause,
6200         objc_build_synchronized, objc_static_init_needed_p,
6201         objc_generate_static_init_call): New prototypes.
6202
6203 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
6204
6205         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
6206         is only one reg.
6207         (ia64_function_value): Ditto.
6208
6209 2004-09-03  Jan Beulich  <jbeulich@novell.com>
6210
6211         * config.gcc: Resurrect NetWare as a target. Handle special case of
6212         Novell linker to be used (specified through --with-ld=) and threading
6213         model of either Posix (default) or NKS.
6214         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
6215         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
6216         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
6217         * config/i386/netware.c, config/i386/netware.h: New.
6218         * config/i386/nwld.c, config/i386/nwld.h: New.
6219         * config/i386/netware-crt0.c: New.
6220         * config/i386/netware-libgcc.c: New.
6221         * config/i386/netware-libgcc.def: New.
6222         * config/i386/netware-libgcc.exp: New.
6223         * config/i386/t-netware, config/i386/t-nwld: New.
6224         * gthr-nks.h: New.
6225         * doc/install.texi: Document NKS threading model.
6226
6227 2004-09-03  Jan Beulich  <jbeulich@novell.com>
6228
6229         PR c/7054
6230         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
6231         * tree.h (initial_max_fld_align): Declare
6232         * stor-layout.c (initial_max_fld_align): Define and initialize.
6233         (maximum_field_alignment): Initialize to the same value.
6234         * common.opt: Add -fpack-struct= variant of switch.
6235         * opts.c: Handle -fpack-struct= variant of switch.
6236         * c-pragma.c: Change #pragma pack() handling so that it becomes
6237         compatible to other compilers: accept individual 'push' argument,
6238         make final pop restore (command line) default, correct interaction
6239         of push/pop and sole specification of a new alignment (so that the
6240         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
6241         to #pragma pack(push, <n>).
6242         * doc/extend.texi: New node "Structure-Packing Pragmas" under
6243         "Pragmas", describing #pragma pack.
6244         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
6245         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
6246         Document new TARGET_DEFAULT_PACK_STRUCT.
6247
6248 2004-09-03  Devang Patel  <dpatel@apple.com>
6249
6250         * dwarf2out.c (gen_field_die). Equate decl number to die.
6251
6252 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
6253
6254         PR target/15832
6255         * global.c (modify_reg_pav): New function.
6256         (make_accurate_live_analysis): Call the new function.  Move pavin
6257         modification by earlyclobber set into the new function.
6258
6259 2004-09-03  Andreas Schwab  <schwab@suse.de>
6260
6261         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
6262         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
6263         extended.
6264
6265 2004-09-02  Jan Beulich  <jbeulich@novell.com>
6266
6267         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
6268         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
6269         not unwind code specific ones.
6270         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
6271         Remove unwind code specific dependencies.
6272         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
6273         Remove gbl-ctors.h.
6274         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
6275         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
6276         * tsystem.h: Declare memcpy and memset when inhibit_libc.
6277
6278 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
6279
6280         * combine.c (try_combine): Delay modifying of insns which cannot
6281         be easily undone.
6282
6283 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
6284
6285         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
6286         tree-loop-im.
6287         * gcc/tree-ssa-loop.c: Ditto
6288         * gcc/tree-ssa-loop-ivcanon.c: Ditto
6289         * gcc/doc/invoke.texi: Ditto.
6290
6291 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
6292
6293         * c-decl.c (store_parm_decls_newstyle): Make static.
6294         (store_parm_decls_from): New function.
6295         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
6296         (store_parm_decls_from): New prototype.
6297
6298 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
6299
6300         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
6301         HImode with STRICT_ALIGNMENT.
6302
6303 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
6304
6305         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
6306         (TARGET_OS_CPP_BUILTINS): Likewise.
6307         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
6308         TARGET_BPABI_CPP_BUILTINS.
6309
6310 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
6311
6312         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
6313
6314 2004-09-02  Eric Christopher  <echristo@redhat.com>
6315
6316         * builtins.c (expand_builtin_cabs): Delete.
6317         (expand_builtin): If unable to fold the values do a normal
6318         library call for builtin_cab*.
6319         (fold_builtin_cabs): Depend on optimize and optimize_size.
6320         * optabs.c (expand_cmplxdiv_straight): Delete.
6321         (expand_cmplxdiv_wide): Ditto.
6322         (expand_vector_binop): Ditto.
6323         (expand_vector_unop): Ditto.
6324         (expand_complex_abs): Delete.
6325         (expand_binop): Remove calls to above functions.
6326         Remove open coding of complex arithmetic.
6327         (expand_unop): Ditto.
6328         * optabs.h: Remove prototypes.
6329
6330 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
6331
6332         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
6333         * c-tree.h (store_parm_decls_newstyle): New prototype.
6334
6335 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
6336
6337         * config/rs6000/rs6000.c (expand_block_clear): Use vector
6338         instructions if available.
6339         (expand_block_move): Likewise.
6340
6341 2004-09-03  Jan Hubicka  <jh@suse.cz>
6342
6343         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
6344
6345 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
6346
6347         * config/arm/symbian.h (LIB_SPEC): Define to empty.
6348         * config/arm/t-symbian (SHLIB_LC): Likewise.
6349
6350 2004-09-02  Paul Brook  <paul@codesourcery.com>
6351
6352         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
6353
6354 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
6355
6356         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
6357         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
6358         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
6359         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
6360         (mips_issue_rate): Remove unreachable abort.
6361         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
6362         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
6363         (mips_block_move_straight, print_operand_address, mips_file_start)
6364         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
6365         (mips_output_conditional_branch, mips_expand_builtin_direct)
6366         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
6367         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
6368         with gcc_assert.
6369
6370 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
6371
6372         * config/mips/mips.md (*lea_high64): Change split condition to
6373         flow2_completed.  Add a peephole2 to generate a more parallel version.
6374
6375 2004-09-02  Jan Hubicka  <jh@suse.cz>
6376
6377         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
6378         GGC.
6379
6380         * ggc-page.c: include tree-flow.h.
6381         (extra_order_size_table): Add stmt_ann_d.
6382         (STAT_LABEL): Rename from ....
6383         (LABEL): ... this one.
6384         * Makefile.in (ggc-page.o): Add dependency.
6385
6386         * ggc-common.c (ggc_force_collect): New global variable.
6387         (loc_description): Add fields "freed", "collected"
6388         (ptr_hash): New static hash
6389         (ptr_hash_entry): New structure.
6390         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
6391         (ggc_record_overhead): Take ptr argument, record it
6392         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
6393         (cmp_statistics): Imrove sorting.
6394         (dump_ggc_loc_statistics): Output newly collected statistics
6395         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
6396         (ggc_free): Call ggc_free_overhead.
6397         (ggc_collect): Force collection when asked to be forced.
6398         (ggc_collect): Call ggc_prune_overhead_list.
6399         * ggc.h (ggc_force_collect): Declare
6400         (ggc_record_overhead): Update prototype.
6401         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
6402
6403 2004-09-02  James E Wilson  <wilson@specifixinc.com>
6404
6405         * common.opt (ftrapping-math): Default to on.
6406
6407 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
6408
6409         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
6410
6411 2004-09-02  Denis Chertykov  <denisc@overta.ru>
6412
6413         PR target/16884
6414         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
6415         match_scratch.
6416         (*movmemqi_insn): Likewise.
6417         (*movmemhi): Likewise.
6418         (clrmemhi): Likewise.
6419         (*clrmemqi): Likewise.
6420         (*clrmemhi): Likewise.
6421
6422 2004-09-02  Paul Brook  <paul@codesourcery.com>
6423
6424         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
6425         default_use_cxa_atexit=yes.
6426
6427 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
6428
6429         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
6430         (struct kernel_old_ucontext): Delete.
6431         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
6432         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
6433         when IN_LIGGCC2.
6434
6435 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
6436
6437         * toplev.c (process_options): Fix typo.
6438
6439 2004-09-01  Richard Henderson  <rth@redhat.com>
6440
6441         PR middle-end/17258
6442         * calls.c (initialize_argument_information): Tighten pass-through
6443         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
6444         Use build_fold_addr_expr.
6445         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
6446         that assumes ADDR_EXPR allocates stack space.
6447         * fold-const.c (build_fold_addr_expr_with_type): Look through
6448         WITH_SIZE_EXPR.
6449
6450 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
6451
6452         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
6453         * ggc.h (ggc_alloc_rtx): Delete.
6454
6455 2004-09-01  Roger Sayle  <roger@eyesopen.com>
6456
6457         * expmed.c (enum alg_code): Remove long unused enumeration values.
6458         (struct mult_cost): New structure to hold the "score" of a synthetic
6459         multiply sequence, including both a rtx_cost and a latency field.
6460         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
6461         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
6462         (struct algorithm): Change type of cost field to be mult_cost.
6463         (synth_mult): Change type of cost_limit argument to be a
6464         pointer to a mult_cost.  Update all cost comparisons to use the
6465         new mult_cost infrastructure.  For alg_add_factor and
6466         alg_sub_factor operations, latency is lower than the rtx_cost.
6467         (choose_mult_variant):  Update calls to synth_mult.  Perform
6468         cost comparisons using the new mult_cost infrastructure.
6469         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
6470         to optain the total rtx_cost of a synth_mult "algorithm".
6471
6472 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
6473
6474         * config/rs6000/power4.md: Increase store latency to 12.
6475         * config/rs6000/power5.md: Same.
6476
6477 2004-09-01  James E Wilson  <wilson@specifixinc.com>
6478
6479         PR target/14064
6480         * config/avr/avr.c (avr_unique_section): Delete prototype and
6481         definition.
6482         (TARGET_ASM_UNIQUE_SECTION): Delete.
6483
6484 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
6485
6486         * c-parse.in (primary): Call objc_build_message_expr(),
6487         objc_build_selector_expr(), objc_build_protocol_expr(),
6488         objc_build_encode_expr() and objc_build_string_object() instead of
6489         build_message_expr(), build_selector_expr(), build_protocol_expr(),
6490         build_encode_expr() and build_objc_string_object(), respectively.
6491         (component_decl_list2): Call objc_get_class_ivars() instead of
6492         get_class_ivars_from_name().
6493         (keyworddecl): Call objc_build_keyword_decl() instead of
6494         build_keyword_decl().
6495         (receiver): Call objc_get_class_reference() instead of
6496         get_class_reference().
6497         (reswords): Add blank line before @@ifobjc section, for clarity.
6498
6499 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
6500
6501         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
6502         to Altivec vetors.
6503
6504 2004-09-01  Wu Yongwei  <adah@sh163.net>
6505             Danny Smith  <dannysmith@users.sourceforge.net>
6506
6507         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
6508         not Windows 'DWORD'.
6509         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
6510         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
6511         (__gthr_win32_recursive_mutex_init_function): Add prototype for
6512         __GTHREAD_HIDE_WIN32API case..
6513         (__gthr_win32_recursive_mutex_lock): Likewise.
6514         (__gthr_win32_recursive_mutex_trylock): Likewise.
6515         (__gthr_win32_recursive_mutex_unlock): Likewise.
6516         (__gthread_recursive_mutex_init_function); Add definition for
6517         __GTHREAD_HIDE_WIN32API case.
6518         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
6519         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
6520         call to InterlockedDecrement.
6521
6522 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6523
6524         * tree-tailcall.c (find_tail_calls): Also fail is statement has
6525         volatile operands.
6526
6527         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
6528
6529         * doc/c-tree.texi: Document new operands for ARRAY_REF and
6530         COMPONENT_REF.
6531
6532 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6533
6534         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
6535         * common.opt (fspeculative-prefetching): New.
6536         * flags.h (flag_speculative_prefetching_set): Declare.
6537         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
6538         values.
6539         * opts.c (flag_sepculative_prefetching_set): New variable.
6540         (common_handle_option): Handle -fspeculative-prefetching.
6541         * passes.c (rest_of_compilation): Ditto.
6542         * profile.c (instrument_values, compute_value_histograms, branch_prob):
6543         Use vectors instead of arrays.
6544         * toplev.c (process_options): Handle -fspeculative-prefetching.
6545         * rtl-profile.c: Include ggc.h.
6546         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
6547         rtl_gen_one_value_profiler_no_edge_manipulation,
6548         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
6549         argument changed.
6550         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
6551         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
6552         argument changed.
6553         * value-prof.c: Include ggc.h.
6554         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
6555         macros.
6556         (insn_prefetch_values_to_profile, find_mem_reference_1,
6557         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
6558         speculative_prefetching_transform): New.
6559         (value_profile_transformations): Call speculative_prefetching_transform.
6560         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
6561         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
6562         tree_find_values_to_profile, find_values to profile): Use vectors
6563         instead of arrays.
6564         (free_profiled_values): Removed.
6565         * value-prof.h (struct histogram_value): Renamed to
6566         struct histogram_value_t.
6567         (histogram_value, histogram_values): New types.
6568         (find_values_to_profile): Declaration changed.
6569         (free_profiled_values): Removed.
6570         (struct profile_hooks): Type of argument of the hooks changed to
6571         histogram_value.
6572         * doc/invoke.texi (-fspeculative-prefetching): Document.
6573
6574 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6575
6576         PR rtl-optimization/16408
6577         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
6578
6579 2004-09-01  Richard Henderson  <rth@redhat.com>
6580
6581         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
6582         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
6583
6584 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
6585
6586         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
6587
6588 2004-09-01  Mike Stump  <mrs@apple.com>
6589
6590         * config/darwin.c (machopic_symbol_defined_p): In addition to
6591         being SYMBOL_REF_LOCAL_P, a symbol must also be
6592         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
6593         defined in this output file, or translation unit in the case
6594         of IMA not being used.
6595         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
6596         never need .indirect_symbol when indirecting.
6597
6598 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
6599
6600         * Makefile.in (bb-reorder.o): Add several dependencies.
6601
6602 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
6603
6604         * fold-const.c (operand_equal_p): Require equal sign also for
6605         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
6606
6607 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
6608
6609         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
6610         for use in configargs.h.  Put the cname in a separate variable.  Use
6611         that to set target_cpu_default2.
6612
6613 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
6614             Nick Clifton  <nickc@redhat.com>
6615
6616         * config/sh/sh.md ("length"): Increase branch length when
6617         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
6618         constant, 2 byte for aligning the constant.
6619
6620 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
6621
6622         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
6623         CPU.
6624         (arm7tdmi-s): New CPU name.
6625         * arm/arm.c (ARM_CORE): Update for new format.
6626         * arm/arm.h (ARM_CORE): Likewise.
6627         * arm/gentune.sh: Update for extra field.
6628         * config.gcc: Likewise.
6629         * arm/arm-tune.md: Regenerate.
6630         * doc/invoke.texi: Document the real processor names for ARM cpus.
6631
6632 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
6633
6634         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
6635         (floatdidf): New functions.
6636         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
6637         (floatdisf): New functions.
6638         * t-arm-elf: Use them.
6639
6640 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
6641
6642         * c-common.h (lookup_interface): Remove prototype.
6643         (is_class_name): Rename to objc_is_class_name.
6644         (lookup_objc_ivar): Rename to objc_lookup_ivar.
6645         (get_current_scope): Rename to objc_get_current_scope.
6646         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
6647         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
6648         (yylexname): Call objc_is_class_name() instead of is_class_name().
6649         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
6650         instead of lookup_objc_ivar().
6651         * stub-objc.c (lookup_interface): Remove stub.
6652         (is_class_name): Rename to objc_is_class_name.
6653         (lookup_objc_ivar): Rename to objc_lookup_ivar.
6654
6655 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
6656
6657         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
6658         * config/arm/lib1funcs.asm: Do not include supplemental .S files
6659         when compiling for Symbian.
6660         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
6661         (TARGET_OS_CPP_BUILTINS): Likewise.
6662         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
6663
6664 2004-08-31  Stan Shebs  <shebs@apple.com>
6665
6666         * toplev.c (process_options): Ensure debug_hooks is initialized.
6667
6668 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
6669
6670         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
6671         * target.h (cxx): Add export_class_data.
6672         * config/arm/arm.c (arm_cxx_export_class_data): New function.
6673         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
6674         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
6675
6676 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
6677
6678         * config/sh/sh.c (output_branch): Check the insn length possibly
6679         in the delayed slot.
6680
6681 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6682
6683         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
6684         blank after ')'.
6685         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
6686
6687         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
6688         (c_sizeof_of_alignof_type): Likewise.
6689         * expr.c (array_ref_element_size): Likewise.
6690         (highest_pow2_factor_for_target): Likewise.
6691         * gimplify.c (canonicalize_addr_expr): Likewise.
6692         (gimplify_compound_lval): Likewise.
6693         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
6694         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
6695         * varasm.c (assemble_variable): Likewise.
6696         (output_constant_def_contents): Alignments are unsigned.
6697
6698 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6699             Jeff Law  <law@redhat.com>
6700
6701         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
6702         gets modified.
6703
6704 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
6705
6706         * hooks.c (hook_bool_void_true): New function.
6707         * hooks.h (hook_bool_void_true): Declare.
6708         * target-def.h (TARGET_CXX): Add
6709         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
6710         * target.h (struct cxx): Add key_method_may_be_inline.
6711         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
6712         function.
6713         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
6714         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
6715         __THUMB_INTERWORK.
6716
6717 2004-08-31  Denis Chertykov  <denisc@overta.ru>
6718
6719         PR target/15417
6720         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
6721         frame pointer register only in Pmode while reload in progress.
6722
6723 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
6724
6725         PR target/15334
6726         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
6727         because it breaks the 32-bit shift patterns that rely on a match_dup.
6728
6729 2004-08-31  Matt Austern  <austern@apple.com>
6730
6731         * config/darwin.c (darwin_make_decl_one_only): Allocate section
6732         names once per compilation, instead of once per symbol.
6733
6734 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
6735
6736         * Makefile.in (build_subdir): New substitution.
6737         (fixinc.sh): Simplify heavily since fixincludes is already built.
6738         (stmp-fixinc): Depend on specs.ready.
6739         (install-mkheaders): Use new location of fixincludes.
6740         (clean): Do not descend into fixinc.
6741         (FORBUILD): Replace with ../$(build_subdir).
6742         * configure.ac (build_subdir): Substitute.
6743         (FORBUILD): Do not set.
6744         (all_outputs): Remove fixinc/Makefile.
6745         (default commands): Do not create links in fixinc.
6746         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
6747         the fixincludes configuration steps and substituting
6748         @FIXINCL@ in fixinc.in.
6749         * fixinc.in: New, from fixinc/fixincl.sh.
6750
6751         * fixinc/*: Removed.
6752
6753 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
6754
6755         * attribs.c (strip_attrs): Remove.
6756         (split_specs_attrs): Move ...
6757         * c-decl.c: ... to here.
6758         * tree.h (split_specs_attrs, strip_attrs): Remove.
6759         * c-tree.h (split_specs_attrs): Declare.
6760
6761 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
6762
6763         * read-rtl.c: Disable RTL checking.
6764         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
6765
6766 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
6767
6768         * config/mips/mips.md (fcond): New code macro and attribute.
6769         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
6770         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
6771         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
6772
6773 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
6774
6775         Revert:
6776         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
6777         PR rtl-optimization/16590
6778         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
6779
6780 2004-08-30  Andrew Pinski  <apinski@apple.com>
6781
6782         * hard-reg-set.h:
6783         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
6784         * ChangeLog: Fix previous ChangeLog entry.
6785
6786         PR rtl-opt/13987
6787         * config.host (use_long_long_for_widest_fast_int): New, default is
6788         off.
6789         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
6790         * configure.ac: If use_long_long_for_widest_fast_int, then
6791         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
6792         * configure: Regenerate.
6793         * config.in: Regenerate.
6794         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
6795         New: widest integer type supported efficiently in hardware for the
6796         host.
6797         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
6798         HOST_BITS_PER_WIDEST_FAST_INT.
6799         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
6800         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
6801         HOST_WIDEST_FAST_INT
6802         instead of HOST_WIDE_INT.
6803         (HARD_REG_SET_LONGS): Likewise.
6804         (UHOST_BITS_PER_WIDE_INT): Likewise.
6805         Change the checks for the fast cases to be based on
6806         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
6807
6808 2004-08-30  Steven Bosscher  <stevenb@suse.de>
6809
6810         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
6811         not the pointers.
6812
6813 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
6814
6815         PR 12738
6816         PR 17205
6817         Radar 3460526
6818         Radar 3775729
6819         * c-decl.c (grokdeclarator): Produce error for 'static' on local
6820         function declaration.
6821
6822 2004-08-30  Richard Henderson  <rth@redhat.com>
6823
6824         * expr.c (array_ref_element_size): Force aligned_size back to
6825         sizetype.
6826         (component_ref_field_offset): Similarly for aligned_offset.
6827         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
6828         low-bound, element-size, field-offset fields rather than
6829         computed values.
6830
6831 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
6832
6833         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
6834         redundant code.
6835
6836 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
6837
6838         * c-tree.h (struct language_function): Add arg_info element.
6839         * c-decl.c (current_function_arg_info): New.
6840         (grokdeclarator, store_parm_decls): Use it instead of
6841         DECL_ARGUMENTS.
6842         (c_push_function_context, c_pop_function_context): Save and
6843         restore it.
6844
6845 2004-08-30  Richard Henderson  <rth@redhat.com>
6846
6847         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
6848         COMPONENT_REF to pointer arithmetic.
6849         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
6850         constant "c" as a valid constant initializer.  Allow narrowing of
6851         differences against the same base object, for any base object.
6852
6853 2004-08-30  Richard Henderson  <rth@redhat.com>
6854
6855         * expr.c (expand_expr_addr_expr): New.
6856         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
6857
6858 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
6859
6860         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
6861         (mips_fp_condition): New enum.
6862         (mips_fp_conditions): New array.
6863         (print_fcc_operand): Delete.
6864         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
6865         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
6866         (builtin_description): Add "cond" field.
6867         (DIRECT_BUILTIN): Initialize it.
6868         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
6869         into INSN and CODE.  Initialize the "cond" field.
6870         (CMP_BUILTINS): Update accordingly.
6871         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
6872         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
6873         mips_fp_condition as argument.  Make it the final operand of the
6874         comparison instruction.
6875         (mips_expand_builtin): Update accordingly.
6876         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
6877         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
6878         the gaps.
6879         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
6880         Don't use the 'Q' operand prefix; just print the operand normally.
6881         (mips_cabs_*, mips_c_*): Delete, replacing with...
6882         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
6883         patterns.  Split the 4s versions into 2 ps patterns after reload.
6884
6885 2004-08-30  Richard Henderson  <rth@redhat.com>
6886
6887         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
6888         assuming an ADDR_EXPR is non-null.
6889
6890 2004-08-30  Jason Merrill  <jason@redhat.com>
6891
6892         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
6893
6894 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
6895
6896         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
6897         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
6898         gcc_assert and gcc_unreachable instead of abort.
6899         * alloc-pool.c (abort, fancy_abort): Remove.
6900         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
6901         gcc_assert or gcc_unreachable.
6902         * attribs.c (init_attributes, decl_attributes): Likewise.
6903         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
6904         mark_bb_for_unlikely_executed_section,
6905         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
6906         fix_crossing_unconditional_branches):  Likewise.
6907         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
6908         bitmap_operation):  Likewise.
6909         * bt-load.c (insn_sets_btr_p, augment_live_range,
6910         move_btr_def):  Likewise.
6911         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
6912         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
6913         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
6914         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
6915         expand_builtin_memcmp, expand_builtin_args_info,
6916         std_gimplify_va_arg_expr, expand_builtin_unop,
6917         expand_builtin_fputs, expand_builtin_profile_func,
6918         expand_builtin_fork_or_exec, fold_builtin_bitop,
6919         fold_builtin_classify, fold_builtin_fputs): Likewise.
6920
6921 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
6922
6923         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
6924         * gcov.c (abort): Remove undef.
6925
6926         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
6927         (struct tree_binfo): Remove primary field.
6928
6929 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
6930
6931         * fixinc/Makefile.in (machname.h): Remove.
6932         (fixincl.x): Do not pass $@ to genfixes.
6933         * fixinc/genfixes: Remove code to produce machname.h.
6934         * fixinc/fixincl.sh: Move it here instead.
6935         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
6936         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
6937         return a bool indicating whether pz_mn_name_pat is NULL.
6938         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
6939         Declare extern C variables for the ENV_TABLE.
6940         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
6941         instead use the result of mn_get_regexps.
6942         * fixinc/fixtests.c: Likewise.
6943
6944 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
6945
6946         * configure.ac: Do not run fixincludes after stage1 during
6947         toplevel bootstrap.
6948         * configure: Regenerate.
6949
6950 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
6951
6952         * sched-deps.c (get_condition): Partially revert previous, by never
6953         trying to extract the condition from a condjump.
6954
6955 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
6956
6957         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
6958         (handle_visibility_attribute, c_determine_visibility): Likewise.
6959         * c-common.h (my_friendly_assert): Remove.
6960
6961 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
6962
6963         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
6964         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
6965         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
6966         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
6967         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
6968
6969 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
6970
6971         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
6972         in COMPONENT_REF nodes.
6973
6974 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6975
6976         PR c++/15378
6977         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
6978         global_dc->warning_as_error_requested.
6979         * diagnostic.c (diagnostic_initialize): Tidy.
6980         * diagnostic.h (diagnostic_context::x_data): Remove
6981         (diagnostic_context::issue_warnings_are_errors_message): Rename
6982         from warnings_are_errors_message.
6983         (diagnostic_context::warning_as_error_requested): New.
6984
6985 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
6986
6987         * sched-deps.c (get_condition): Fix breakage in previous patch.
6988
6989 2004-08-30  Paul Brook  <paul@codesourcery.com>
6990
6991         * doc/install.texi: Fix broken mpfr link.
6992
6993 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
6994
6995         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
6996         other FreeBSD platforms.
6997
6998 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
6999
7000         * arm.h (REVERSE_CONDITION): Define.
7001         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
7002
7003 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
7004
7005         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
7006         just the codes, call reversed_comparison_code ().
7007         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
7008         (not_reg_cond): Use reversed_comparison_code.
7009         (and_reg_cond): Likewise.
7010         * ifcvt.c (cond_exec_process_if_block): Likewise.
7011         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
7012
7013 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
7014
7015         * sched-deps.c (get_condition): Rewrite using jump support functions.
7016         Use reversed_comparison_code.
7017         (conditions_mutex_p): Use reversed_comparison_code.
7018
7019 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7020
7021         * config/mips/mips.c (override_options): Disable hot/cold partitioning
7022         for MIPS16.
7023
7024 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7025
7026         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
7027         (mips_function_type): Move to mips.c.
7028         * config/mips/mips.c (mips_builtin_type): New enum.
7029         (builtin_description): Replace code and ftype with builtin_type
7030         and function_type.
7031         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
7032         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
7033         (CODE_FOR_mips_abs_ps): Define.
7034         (mips_bdesc): Use new macros.
7035         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
7036         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
7037         (mips_expand_builtin_direct): New function.
7038         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
7039         builtin.  Replace boolean parameter with builtin_type.
7040         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
7041         (mips_expand_4s_compare_builtin): Delete, replacing with...
7042         (mips_expand_builtin_compare): ...this new function.
7043
7044 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
7045
7046         PR rtl-optimization/16590
7047         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
7048
7049 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
7050
7051         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
7052         * tree-ssa-propagate.c: Fix documentation.
7053
7054 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7055
7056         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
7057         (mov[sd]fcc): Likewise.
7058
7059 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7060
7061         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
7062
7063 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7064
7065         * config/mips/mips.md (divide_condition): New mode attribute.
7066         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
7067         (sqrt[sd]f3): Redefine using SCALARF.
7068         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
7069         patterns.
7070
7071 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7072
7073         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
7074         (loadx, storex, fmt, UNITMODE): New mode attributes.
7075         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
7076         (mul[sd]f3): Redefine using :SCALARF.
7077         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
7078         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
7079         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
7080         Check TARGET_FUSED_MADD for V2SF too.
7081         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
7082         were already named.
7083         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
7084         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
7085
7086 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7087
7088         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
7089         V2SF_type_node if it will be needed.
7090
7091 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7092
7093         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
7094         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
7095         (mips_prepare_builtin_target): New function.
7096         (mips_expand_builtin): Use them.  Update calls to subroutines.
7097         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
7098         cmp_choice with a boolean argument to select between movt and movf.
7099         Take the comparison's icode as an argument, not the function's fcode.
7100         (mips_expand_compare_builtin): New function.  Rename existing function
7101         to mips_expand_scalar_compare_builtin.
7102         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
7103         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
7104         comparison's icode as an argument, not the builtin's fcode.
7105
7106 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7107
7108         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
7109         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
7110         registers are false and -1 if all registers are true.
7111         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
7112         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
7113         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
7114         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
7115         (bc1any2t, bc1any2f): Likewise CCV2.
7116         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
7117
7118 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7119
7120         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
7121         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
7122         UNSPEC rather than an IF_THEN_ELSE.
7123         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
7124         mips_cond_move_tf_ps by name.
7125
7126 2004-08-29  Chao-ying Fu  <fu@mips.com>
7127             James E Wilson  <wilson@specifixinc.com>
7128
7129         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
7130         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
7131         * config/mips/mips-ps-3d.md: New file.
7132         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
7133         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
7134         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
7135         (mips_output_move): Emit "mov.ps" for V2SFmode.
7136         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
7137         MODE_VECTOR_FLOAT.
7138         (override_options): Check if TARGET_MIPS3D and there was an explicit
7139         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
7140         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
7141         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
7142         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
7143         and allow CCV2 and CCV4 to occupy two and four CC registers.
7144         (print_fcc_operand): New function.
7145         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
7146         %Z to call print_fcc_operand.
7147         (mips_function_value): Handle MODE_VECTOR_FLOAT.
7148         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
7149         (mips_vector_mode_supported_p): New function.
7150         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
7151         (builtin_description): New struct.
7152         (mips_bdesc): New array of struct builtin_description.
7153         (mips_expand_builtin, mips_init_builtins,
7154         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
7155         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
7156         functions.
7157         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
7158         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
7159         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
7160         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
7161         "-mips3d", and "-mno-mips3d".
7162         (ASM_SPEC): Map -mips3d to -mips3d in gas.
7163         (EXTRA_CONSTRAINT_Y): New macro.
7164         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
7165         multi-letter constraint 'Y'.
7166         (CONSTRAINT_LEN): New macro.
7167         (enum mips_builtins): New for MIPS builtin functions.
7168         (enum mips_function_type): New for the types of MIPS builtin functions.
7169         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
7170         * config/mips/mips.md: New constants for paired single and MIPS-3D
7171         instructions.  Include the new mips-ps-3d.md file.
7172         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
7173         movv2sf_hardfloat_64bit): New named patterns.
7174         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
7175         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
7176         sdxc1_v2sf_di): New unnamed patterns.
7177         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
7178         const_vector support.
7179         (const_0_or_1_operand): New predicate.
7180         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
7181
7182 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
7183
7184         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
7185         (tree-ssa-propagate.o): New rule.
7186         (GTFILES): Add tree-ssa-propagate.c.
7187         * tree-flow.h (struct stmt_ann_d): Remove field
7188         in_ccp_worklist.
7189         * tree-ssa-propagate.c: New file.
7190         * tree-ssa-propagate.h: New file.
7191         * tree-ssa-ccp.c: Re-write to use the routines from
7192         tree-ssa-propagate.c.
7193
7194 2004-08-28  Andrew Pinski  <apinski@apple.com>
7195
7196         * tree-ssa-loop.c: Remove extra include of basic-block.h.
7197
7198 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
7199
7200         * c-common.h: Update comments about ObjC/ObjC++ entry points.
7201         (objc_is_reserved_word): New prototype.
7202         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
7203         separate section; these are call-backs.
7204         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
7205         ObjC/ObjC++ "@" keywords.
7206         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
7207         prototypes; they already live in c-common.h.
7208         * stub-objc.c: Update copyright notice.
7209         (objc_is_reserved_word): New stub.
7210
7211 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
7212
7213         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
7214         even when not checking.
7215
7216 2004-08-27  Jason Merrill  <jason@redhat.com>
7217
7218         PR c++/13684
7219         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
7220         (gimple_push_cleanup): Add eh_only parm.
7221         (gimplify_target_expr): Pass it.
7222         * c.opt (-fno-threadsafe-statics): New option.
7223         * c-opts.c (c_common_handle_option): Handle it.
7224         * c-common.h (flag_threadsafe_statics): Declare it.
7225         * c-common.c (flag_threadsafe_statics): Record it.
7226         * doc/invoke.texi: Document it.
7227         * tsystem.h (_GNU_SOURCE): Define.
7228         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
7229         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
7230         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
7231         (__gthread_recursive_mutex_init_function): New fn.
7232         (__gthread_recursive_mutex_lock): New fn.
7233         (__gthread_recursive_mutex_trylock): New fn.
7234         (__gthread_recursive_mutex_unlock): New fn.
7235         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
7236         * gthr-win32.h, gthr-vxworks.h: Likewise.
7237         * gthr.h: Document.
7238
7239 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
7240
7241         * config/rs6000/rs6000.c (rs6000_override_options): Increase
7242         maximum skip to 15.  Set function alignment, jump alignment, and
7243         loop alignment to 16 for processors that form dispatch groups.
7244         (rs6000_rtx_costs): outer_code is used.
7245
7246 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
7247
7248         * stor-layout.c (sizetype_set): Remove.
7249         (set_sizetype): Don't test or set it.
7250
7251         * tree.h (size_int_type): Remove.
7252         * fold-const.c: Do not #include gt-fold-const.h.
7253         (size_htab_hash, size_htab_eq): Remove.
7254         (size_int_kind): Use build_int_cst.
7255         (new_const, size_htab): Remove.
7256         (size_int_type): Remove.
7257         (round_up): Use build_int_cst.
7258         (round_down): Likewise. Remove spurious constant build.
7259
7260 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
7261
7262         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
7263         Add is_release variable, use it for --enable-werror and
7264         --enable-checking defaults.
7265         * system.h (gcc_assert, gcc_unreachable): New.
7266         * doc/install.texi (--enable-checking): Update.
7267         * configure, config.in: Rebuilt.
7268
7269 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
7270
7271         * rtl.h (read_rtx): Change prototype.
7272         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
7273         line number.  Return true on success.
7274         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
7275         callers accordingly.
7276
7277 2004-08-26  Richard Henderson  <rth@redhat.com>
7278
7279         * c-typeck.c (build_offsetof): Remove.
7280         * c-tree.h (build_offsetof): Remove.
7281         * c-common.c (fold_offsetof_1, fold_offsetof): New.
7282         * c-common.h (fold_offsetof): Declare.
7283         * c-parse.in (offsetof_base): New.
7284         (offsetof_member_designator): Use it.  Build references, not just
7285         a tree list.
7286         (primary): Use fold_offsetof, not build_offsetof.
7287
7288 2004-08-26  Richard Henderson  <rth@redhat.com>
7289
7290         * tree.c (staticp): Return the static object.
7291         * tree.h (staticp): Update decl.
7292         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
7293         * langhooks.c (lhd_staticp): Return NULL_TREE.
7294         * langhooks-def.h (lhd_staticp): Update decl.
7295         * c-common.c (c_staticp): Return the static object.
7296         * c-common.h (c_staticp): Update decl.
7297
7298 2004-08-26  Richard Henderson  <rth@redhat.com>
7299
7300         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
7301         modes.
7302
7303 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
7304
7305         PR c/13801
7306         * c-decl.c (struct c_binding): Add type and inner_comp fields.
7307         (bind): Set type and inner_comp fields.
7308         (pop_scope): Restore type of decl to the correct type from an
7309         outer scope.  Give error when popping file scope for incomplete
7310         arrays completed incompatibly with default initialization in an
7311         inner scope.
7312         (diagnose_mismatched_decls): Handle externs with initializers at
7313         block scope.
7314         (pushdecl): Set type of external declaration at block scope based
7315         only on the visible declarations.  Save type when changing the
7316         type of a declaration.  Merge an external declaration at block
7317         scope with a visible static declaration at file scope.
7318         (implicitly_declare): Give recycled old declaration the new type
7319         except for incompatible declarations of built-in functions, saving
7320         the old type.
7321
7322 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
7323
7324         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
7325
7326 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
7327
7328         * tree-alias-common.c (gate_pta): New function.
7329         (pass_build_pta): Use it.
7330         (pass_del_pta): Use it.
7331         (delete_alias_vars): Don't check flag_tree_points_to.
7332
7333 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
7334
7335         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
7336         TFmode as additional register mode cloberred by call.
7337
7338 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
7339
7340         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
7341         parallel pattern for library call returning DImode in
7342         mixed mode.
7343
7344 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
7345
7346         * config/rs6000/rs6000.c (function_arg): Generate parallel
7347         pattern for more split args.
7348
7349 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
7350
7351         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
7352         either gen_movdi_di_update or gen_movdi_si_update depending on
7353         target mode.
7354         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
7355         to generate two versions.
7356
7357 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
7358
7359         * Makefile.in (lambda-code.o): New.
7360         (lambda-trans.o): Ditto.
7361         (TREE_DATA_REF_H): Ditto.
7362         (LAMBDA_H): Ditto.
7363         (lambda-mat.o): Use LAMBDA_H.
7364         (tree-data-ref.o): Ditto.
7365         * lambda-code.c: New file.  Lambda code generation algorithm.
7366         * lambda-trans.c: Ditto. Lambda transformation matrix support.
7367         * lambda.h: Add lambda loop structures.
7368         Add lambda loopnest structures.
7369         Add lambda body vector structure.
7370         Add lambda linear expression structures.
7371         Add prototypes for functions in new files.
7372         * lambda-mat.c: Include tree.h
7373
7374 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
7375             Sebastian Pop  <pop@cri.ensmp.fr>
7376
7377         * tree-data-ref.h: Include lambda.h
7378         (free_dependence_relation): Declared here.
7379         (free_dependence_relations): Ditto.
7380         (free_data_refs): Ditto.
7381         * tree-data-ref.c (free_dependence_relation): New function.
7382         (free_dependence_relations): Ditto.
7383         (free_data_refs): Ditot.
7384         (analyze_all_data_dependences): Free datarefs and dependence_relations.
7385         (build_classic_dist_vector): Store in the dependence_relations the
7386         information. Each arc in the dependence_relations graph is labelled
7387         with the distance and direction vectors.
7388         (build_classic_dir_vector): Ditto.
7389         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
7390         Now computes again the whole dependence graph including read-read
7391         relations.
7392         (compute_data_dependences_for_loop): Now dependence_relations contains
7393         all the data, and thus it doesn't need to initialize the classic_dir
7394         and classic_dist vectors.
7395         (analyze_all_data_dependences): Adjusted for using the new interface of
7396         compute_data_dependences_for_loop.  Remove the statistics dump.
7397
7398 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
7399
7400         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
7401         (xtensa_expand_block_move): Update comment.
7402         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
7403
7404 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
7405
7406         PR target/13506
7407         * toplev.c (crash_signal): If we crashed while emitting
7408         a user asm, then die more gracefully.
7409
7410 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
7411
7412         PR target/17119.
7413         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
7414         checking for a valid constant, regardless of sign.
7415
7416 2004-08-25  Richard Henderson  <rth@redhat.com>
7417
7418         PR target/16974
7419         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
7420         if the constant satisfies add_operand.
7421
7422 2004-08-25  Richard Henderson  <rth@redhat.com>
7423
7424         PR debug/10695
7425         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
7426         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
7427         unwind info for >16-bit frames.
7428
7429 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
7430
7431         PR target/17171
7432         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
7433
7434 2004-08-25  Richard Henderson  <rth@redhat.com>
7435
7436         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
7437         (TARGET_CANNOT_FORCE_CONST_MEM): New.
7438
7439 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
7440
7441         * doc/tree-ssa.texi: Document new operand iterator.
7442
7443 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
7444
7445         PR target/16480
7446         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
7447         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
7448         as PLUS base regs.
7449
7450 2005-08-28  Paul Brook  <paul@codesourcery.com>
7451
7452         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
7453         -mfpu=vfp -march=armv5t
7454         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
7455
7456 2004-08-25  Richard Henderson  <rth@redhat.com>
7457
7458         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
7459         * target.h (struct gcc_target): Add scalar_mode_supported_p.
7460         * targhooks.c (default_scalar_mode_supported_p): New.
7461         * targhooks.h (default_scalar_mode_supported_p): Declare.
7462         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
7463
7464         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
7465         before attempting to create types.  Tidy.
7466         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
7467
7468         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
7469         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
7470
7471 2004-08-25  Richard Henderson  <rth@redhat.com>
7472
7473         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
7474         set REAL_MODE_FORMAT for TFmode.
7475
7476 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
7477
7478         * c-decl.c (grokparm): New function.
7479         * c-tree.h (grokparm): New prototype.
7480
7481 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
7482
7483         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
7484         iterator controlling structure.
7485         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
7486         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
7487         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
7488         iterator flags.
7489         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
7490         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
7491         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
7492         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
7493         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
7494         Empty operand pointers.
7495         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
7496         (op_iter_next_use): New.  Return next use_operand_p.
7497         (op_iter_next_def): New.  Return next def_operand_p.
7498         (op_iter_next_tree): New.  Return next operands as a tree.
7499         (op_iter_init): New.  Initialize an iterator structure.
7500         (op_iter_init_use): New.  Initialize structure and get the first use.
7501         (op_iter_init_def): New.  Initialize structure and get the first def.
7502         (op_iter_init_tree): New.  Initialize structure and get the first tree.
7503         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
7504         (op_iter_init_maydef): New.  Initialize structure and get the first
7505         V_MAY_DEF operands.
7506         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
7507         * tree-dfa.c (compute_immediate_uses_for_stmt,
7508         redirect_immediate_uses): Use new operand iterator.
7509         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
7510         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
7511         operands instead of using *_disappeared_p routines.
7512         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
7513         ssa_rewrite_stmt): Use new operand iterator.
7514         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
7515         rewrite_trees): Use new operand iterator.
7516         * tree-pretty-print.c (dump_vops): Use new operand iterator.
7517         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
7518         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
7519         dump_points_to_info): Use new operand iterator.
7520         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
7521         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
7522         operand iterator.
7523         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
7524         propagate_necessity): Use new operand iterator.
7525         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
7526         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
7527         a parameter instead of a stmt_ann_t.
7528         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
7529         build_tree_conflict_graph): Use new operand iterator.
7530         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
7531         rewrite_mem_refs): Use new operand iterator.
7532         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
7533         check_loop_closed_ssa_use): Use new operand iterator.
7534         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
7535         * tree-ssanames.c (release_defs): Use new operand iterator.
7536         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
7537
7538 2004-08-25  Adam Nemet  <anemet@lnxw.com>
7539
7540         * tlink.c (initial_cwd): New variable.
7541         (tlink_init): Initialize it.
7542         (recompile_files): Use tlink_execute() instead of system().  Don't
7543         duplicate verbose output of collect_execute.  Restore initial_cwd.
7544         Update comment before the function.
7545
7546 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
7547
7548         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
7549         accept) a cast from one Objective-C pointer type to another.
7550
7551 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
7552
7553         * doc/install.texi: Document that libstdc++-v3 requires
7554         now automake 1.9.1.
7555
7556 2004-08-25  Caroline Tice  <ctice@apple.com>
7557
7558         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
7559         to comments at start of function.
7560         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
7561         comment.
7562         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
7563         merge_blocks_move_predecessor_nojumps,
7564         merge_blocks_move_successor_nojumps, merge_blocks_move,
7565         try_crossjump_to_edge, try_crossjump_bb): Likewise.
7566         * cfglayout.c (fixup_reorder_chain): Likewise.
7567         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
7568         cfg_layout_can_merge_blocks_p):  Likewise.
7569         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
7570         * passes.c (rest_of_compilation): Update comments for calling
7571         optimization that partitions hot/cold basic blocks.
7572         * doc/invoke.texi:  Update documentation of
7573         freorder-blocks-and-partition flag.
7574
7575 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
7576
7577         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
7578         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
7579
7580 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
7581
7582         * config/mips/mips.md (any_shift): New code macro.
7583         (optab, insn): New code attributes.
7584         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
7585         Use the standard rather than internal patterns for the MIPS16
7586         double-shift optimization.
7587         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
7588         Redefine using :GPR and any_shift.
7589         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
7590         to cover all three shifts.
7591         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
7592         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
7593         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
7594
7595 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
7596
7597         * gimplify.c (lookup_tmp_var): Separate temporaries when not
7598         optimizing.
7599
7600 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7601
7602         PR libstdc++/17005 (fix for HP-UX 11.11)
7603         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
7604         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
7605         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
7606         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
7607         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
7608         (LINK_SPEC): Handle march=1.0 option.
7609         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
7610         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
7611         (SUBTARGET_OPTIONS): New define.
7612         (LINK_SPEC): Handle march=1.0 option.
7613         (STARTFILE_SPEC): New define.
7614         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
7615         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
7616         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
7617         (SUBTARGET_OPTIONS): New define.
7618         (LINK_SPEC): Handle march=1.0 option.
7619         (STARTFILE_SPEC): New define.
7620         * config/pa/pa.c (override_options): Add code to process -munix= option.
7621         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
7622         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
7623         defines.
7624         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
7625         (SUBTARGET_OPTIONS): Provide default define.
7626         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
7627         STANDARD_STARTFILE_PREFIX_2): New defines.
7628         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
7629         (ENDFILE_SPEC): Use %O.
7630         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
7631         Mention issue caused by changing namespace and runtime to UNIX 95/98.
7632         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
7633         Document -munix=std option.
7634
7635 2004-08-25  Steven Bosscher  <stevenb@suse.de>
7636
7637         * cse.c (cse_around_loop, cse_check_loop_start,
7638         cse_set_around_loop): Remove.
7639         (cse_basic_block): Remove the around_loop argument.
7640         (cse_end_of_basic_block): Remove the after_loop argument.
7641         (cse_main): Likewise.
7642         * rtl.h (cse_main): Update prototype.
7643         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
7644         rest_of_handle_gcse): Update cse_main calls.
7645
7646 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
7647
7648         * tree.h  (build_int_cst): New, sign extended constant.
7649         (build_int_cstu): New, zero extended constant.
7650         (build_int_cst_wide): Renamed from build_int_cst.
7651         * tree.c (build_int_cst, build_int_cstu): New.
7652         (build_int_cst_wide): Renamed from build_int_cst.
7653         (make_vector_type, build_common_tree_nodes,
7654         build_common_tree_nodes_2): Adjust build_int_cst calls.
7655         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
7656         expand_builtin_strpbrk, expand_builtin_fputs,
7657         build_string_literal, expand_builtin_printf,
7658         expand_builtin_sprintf, fold_builtin_classify_type,
7659         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
7660         fold_builtin_toascii, fold_builtin_isdigit,
7661         simplify_builtin_strstr, simplify_builtin_strpbrk,
7662         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
7663         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
7664         DEF_ATTR_INT): Likewise.
7665         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
7666         Likewise.
7667         * c-lex.c (interpret_integer, lex_charconst): Likewise.
7668         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
7669         * c-pretty-print.c (pp_c_integer_constant): Likewise.
7670         * c-typeck.c (really_start_incremental_init, push_init_level,
7671         set_nonincremental_init_from_string): Likewise.
7672         * calls.c (load_register_parameters): Likewise.
7673         convert.c (convert_to_pointer): Likewise.
7674         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
7675         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
7676         build_gcov_info): Likewise.
7677         * except.c (init_eh, assign_filter_values): Likewise.
7678         * expmed.c (store_fixed_bit_field, extract_bit_field,
7679         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
7680         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
7681         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
7682         * expr.c (convert_move, emit_group_load, emit_group_store,
7683         expand_assignment, store_constructor, store_field,
7684         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
7685         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
7686         invert_truthvalue, optimize_bit_field_compare,
7687         decode_field_reference, all_ones_mask_p, constant_boolean_node,
7688         fold_div_compare, fold, fold_read_from_constant_string,
7689         fold_negate_const, fold_abs_const, fold_not_const, round_up,
7690         round_down): Likewise.
7691         * function.c (assign_parm_setup_block): Likewise.
7692         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
7693         Likewise.
7694         * stor-layout.c (layout_type, initialize_sizetypes,
7695         set_min_and_max_values_for_integral_type): Likewise.
7696         * tree-chrec.c (chrec_fold_multiply_poly_poly,
7697         reset_evolution_in_loop): Likewise.
7698         * tree-chrec.h (build_polynomial_chrec): Likewise.
7699         * tree-complex.c (build_replicated_const): Likewise.
7700         * tree-eh.c (honor_protect_cleanup_actions,
7701         lower_try_finally_onedest, lower_try_finally_copy,
7702         lower_try_finally_switch): Likewise.
7703         * tree-mudflap.c (mf_build_string, mx_register_decls,
7704         mudflap_register_call, mudflap_enqueue_constant): Likewise.
7705         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
7706         * tree-pretty-print.c (dump_generic_node): Likewise.
7707         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
7708         Likewise.
7709         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
7710         * tree-ssa-loop-niter.c (number_of_iterations_cond,
7711         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
7712         Likewise.
7713         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
7714         canonicalize_loop_induction_variables): Likewise.
7715         * tree-vectorizer.c (vect_create_index_for_array_ref,
7716         vect_transform_loop_bound, vect_compute_data_ref_alignment):
7717         Likewise.
7718
7719         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
7720         alpha_gimplify_va_arg_1): Likewise.
7721         * config/arm/arm.c (arm_get_cookie_size): Likewise.
7722         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
7723         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
7724         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
7725         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
7726         mips_gimplify_va_arg_expr): Likewise.
7727         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
7728         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
7729         add_compiler_branch_island): Likewise.
7730         * config/s390/s390.c (s390_va_start): Likewise.
7731         * config/sh/sh.c (sh_va_start): Likewise.
7732         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
7733         Likewise.
7734         * config/xtensa/xtensa.c (xtensa_va_start,
7735         xtensa_gimplify_va_arg_expr): Likewise.
7736
7737         * objc/objc-act.c (build_objc_string_object,
7738         build_objc_symtab_template, init_def_list, init_objc_symtab,
7739         init_module_descriptor, generate_static_references,
7740         build_selector_translation_table, get_proto_encoding,
7741         build_typed_selector_reference, build_selector_reference,
7742         build_next_objc_exception_stuff,
7743         build_method_prototype_list_template, generate_descriptor_table,
7744         generate_protocols, build_protocol_initializer,
7745         build_ivar_list_template, build_method_list_template,
7746         build_ivar_list_initializer, generate_ivars_list,
7747         generate_dispatch_table, generate_protocol_list,
7748         build_category_initializer, build_shared_structure_initializer,
7749         generate_shared_structures, handle_impent,
7750         generate_objc_image_info): Likewise.
7751
7752 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
7753
7754         * cfglayout.c (duplicate_insn_chain): Remove references to
7755         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
7756         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
7757         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
7758         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
7759         and NOTE_INSN_LOOP_CONT.
7760         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
7761         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
7762         and NOTE_INSN_LOOP_CONT.
7763         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
7764         check_dbra_loop, loop_dump_aux): Remove references to removed notes
7765         and fields.
7766         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
7767         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
7768         references to removed notes and fields.
7769         (subtract_reg_term, ujump_to_loop_cont): Remove.
7770
7771 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
7772
7773         * doc/install.texi: Document that libcpp does not require
7774         Automake any longer.  Document that Automake 1.9.1 should
7775         work everywhere.
7776
7777 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
7778
7779         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
7780         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
7781         DWARF_DEBUGGING_INFO from choice-of-definition chain;
7782         restructure using C89 features (#elif, #error).
7783         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
7784         * config/sh/sh.h: Remove references to DWARF_DEBUG.
7785         * doc/invoke.texi: Remove references to DWARF version 1;
7786         clarify why -gdwarf-2<n> doesn't work.
7787
7788 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
7789
7790         * basic-block.h (BB_SET_PARTITION): Clear old value first.
7791         * cfg.c (clear_bb_flags): Don't clear partition setting.
7792         * ifcvt.c (find_if_case_1): Remove ??? comment.
7793
7794 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
7795
7796         PR target/17052
7797         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
7798         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
7799         current_function_stdarg in place of sysv_varargs_p.
7800         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
7801         sysv_varargs_p.
7802
7803 2004-08-24  Richard Henderson  <rth@redhat.com>
7804
7805         PR target/16298
7806         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
7807         random codes within CONST.
7808
7809 2004-08-24  James E Wilson  <wilson@specifixinc.com>
7810
7811         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
7812         -freorder-blocks-and-partition.
7813
7814 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7815
7816         PR middle-end/17044
7817         * tree-ssa-threadupdate.c (redirection_data): Make static.
7818         (thread_block): Use ggc_alloc_cleared to allocate struct
7819         redirection_data.  Don't free elements in redirection_data.
7820
7821 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7822
7823         * config/mips/predicates.md (small_data_pattern): Match prefetches.
7824
7825 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7826
7827         PR tree-optimization/17016
7828         * tree-ssa-loop-niter.c (number_of_iterations_cond,
7829         number_of_iterations_exit): Use POINTER_TYPE_P instead
7830         of testing for POINTER_TYPE.
7831
7832 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7833
7834         * tree-ssa-loop-ivcanon.c: New file.
7835         * tree-ssa-loop-manip.c (create_iv): New function.
7836         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
7837         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
7838         * cfgloop.c (mark_single_exit_loops): New function.
7839         (verify_loop_structure): Verify single-exit loops.
7840         * cfgloop.h (struct loop): Add single_exit field.
7841         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
7842         (mark_single_exit_loops): Declare.
7843         (tree_num_loop_insns): Declare.
7844         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
7845         (duplicate_loop_to_header_edge): Use it.
7846         * common.opt (fivcanon): New flag.
7847         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
7848         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
7849         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
7850         (bsi_insert_on_edge_immediate): New function.
7851         * tree-flow.h (bsi_insert_on_edge_immediate,
7852         canonicalize_induction_variables, tree_unroll_loops_completely,
7853         create_iv): Declare.
7854         * tree-optimize.c (init_tree_optimization_passes): Add
7855         pass_iv_canon and pass_complete_unroll.
7856         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
7857         * tree-scalar-evolution.c (get_loop_exit_condition,
7858         get_exit_conditions_rec, number_of_iterations_in_loop,
7859         scev_initialize): Use single_exit information.
7860         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
7861         missing assumptions.
7862         (loop_niter_by_eval):  Return number of iterations as unsigned
7863         int.
7864         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
7865         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
7866         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
7867         New passes.
7868         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
7869         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
7870         the defining statement is ready.
7871         * tree-vectorizer.c (vect_create_iv_simple): Removed.
7872         (vect_create_index_for_array_ref, vect_transform_loop_bound):
7873         Use create_iv.
7874         (vect_transform_loop_bound): Use single_exit information.
7875         (vect_analyze_loop_form): Cleanup bogus tests.
7876         (vectorize_loops): Do not call flow_loop_scan.
7877         * tree.h (may_negate_without_overflow_p): Declare.
7878         * fold-const.c (may_negate_without_overflow_p): Split out from ...
7879         (negate_expr_p): ... this function.
7880         (tree_expr_nonzero_p): Handle overflowed constants correctly.
7881         * doc/invoke.texi (-fivcanon): Document.
7882         * doc/passes.texi: Document canonical induction variable creation.
7883
7884 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7885
7886         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
7887         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
7888         using the mode of the operand to decide between them.
7889         * config/mips/mips.md (MOVECC): New mode macro.
7890         (ccreg): New mode attribute.
7891         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
7892         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
7893         (mov[sd]icc): Redefine using :GPR.
7894
7895 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7896
7897         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
7898         (mips_prefetch_cookie): New function.
7899         * config/mips/mips.c (print_operand_address): Fix handling of
7900         ADDRESS_CONST_INT.
7901         (mips_emit_prefetch): Delete.
7902         (mips_prefetch_cookie): New function.
7903         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
7904         mode of QImode for the address_operand.  Use mips_prefetch_cookie
7905         to calculate the first "pref" operand.
7906         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
7907         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
7908
7909 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
7910
7911         * arm.md: Include predicates.md.
7912         * predicates.md: New file.
7913         * arm.c (s_register_operand, arm_hard_register_operand)
7914         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
7915         (arm_immediate_operand, arm_neg_immediate_operand)
7916         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
7917         (arm_add_operand, arm_addimm_operand, arm_not_operand)
7918         (offsettable_memory_operand, alignable_memory_operand)
7919         (arm_reload_memory_operand, arm_float_rhs_operand)
7920         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
7921         (index_operand, shiftable_operator, logical_binary_operator)
7922         (shift_operator, equality_operator, arm_comparison_operator)
7923         (minmax_operator, cc_register, dominant_cc_register)
7924         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
7925         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
7926         (const_shift_operand, load_multiple_operation)
7927         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
7928         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
7929         (cirrus_register_operand, cirrus_fp_register)
7930         (cirrus_shift_const): Delete, replaced with equivalents in
7931         predicates.md.
7932         (shift_op): Handle ROTATE.
7933         * arm-protos.h: Delete declarations for above.
7934         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
7935         * t-arm (MD_INCLUDES): Add predicates.md.
7936         (s-preds): Depends on MD_INCLUDES.
7937
7938 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7939
7940         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
7941         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
7942         patterns.  Redefine using :GPR.  Give the match_operator a mode.
7943         Use '%2' rather than '%z2' for operand 2.
7944
7945 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7946
7947         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
7948         attribute.
7949
7950 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7951
7952         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
7953         of internal patterns.
7954         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
7955         Redefine using :P.
7956         (tablejump): Use expand_binop to calculate address.  Adjust names
7957         of internal patterns.
7958         (tablejump[sd]i): Renamed from tablejump_internal[12].
7959         Redefine using :P.
7960         (tablejump_mips16[12]): Delete.
7961
7962 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7963
7964         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
7965         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
7966         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
7967         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
7968         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
7969
7970 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7971
7972         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
7973         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
7974         using :GPR.
7975         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
7976         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
7977         (*branch_equality[sd]i_inverted): Likewise
7978         branch_equality{,_di}_inverted.
7979         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
7980         Redefine using :GPR.
7981
7982 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
7983
7984         * rtl.def: Reorganize, placing all codes used only in machine
7985         descriptions at the end.
7986
7987         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
7988         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
7989         rtx_name, rtx_format arrays by direct reference to rtl.def,
7990         first undefining GENERATOR_FILE.  Define enum insn_note and
7991         note_insn_name array by direct reference to insn-notes.def.
7992         (adjust_field_rtx_def): Remove local definition of rtx_name.
7993         Use symbolic names for insn notes.
7994         * Makefile.in (gengtype.o): Update dependencies.
7995
7996 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
7997
7998         * basic-block.h (struct basic_block_def): Reorder fields to
7999         eliminate interior padding.  Remove 'partition' field.
8000         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
8001         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
8002         (BB_COPY_PARTITION): New macros.
8003         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
8004         Replace all references to the 'partition' field of a basic
8005         block with new macros.
8006
8007         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
8008         * final.c (final_scan_insn): Don't handle it.
8009         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
8010         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
8011         * sched-rgn.c (sched_is_disabled_for_current_region_p):
8012         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
8013
8014 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
8015
8016         * c-decl.c (c_init_decl_processing): Adjust
8017         build_common_tree_nodes call.
8018         * expmed.c (const_mult_add_overflow_p): Use
8019         build_distinct_type_copy.
8020         * stor-layout.c (early_type_list): Remove.
8021         (layout_type): Don't append to early_type_list.
8022         (initialize_sizetypes): Add signed_p argument.
8023         (set_sizetype): Overwrite the stub type nodes directly.
8024         * tree.c (copy_node_stat): Clear a type's value cache here ...
8025         (build_distinct_type): ... not here.
8026         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
8027         * tree.h (initialize_sizetypes): Add signed_p argument.
8028         (build_common_tree_nodes): Likewise.
8029
8030         * objc/objc-act.c (get_static_reference): Use
8031         build_variant_type_copy.
8032         (get_protocol_reference): Likewise.
8033         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
8034
8035 2004-08-24  Richard Henderson  <rth@redhat.com>
8036             Andrew Pinski  <apinski@apple.com>
8037
8038         * gimplify.c (gimplify_array_ref_to_plus): Delete.
8039         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
8040         for ARRAY_REF.
8041
8042         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
8043         ARRAY_REF also to get to the STRING_CST.
8044
8045 2004-08-24  Paul Brook  <paul@codesourcery.com>
8046
8047         * config/arm/arm.c (arm_override_options): Update error message.
8048         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
8049         TARGET_HARD_FLOAT_ABI.
8050         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
8051         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
8052
8053 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
8054
8055         PR target/17093
8056         * config/m32r.md (movsi_sda): Add SI mode specification to
8057         UNSPEC.
8058
8059 2004-08-24  Nick Clifton  <nickc@redhat.com>
8060
8061         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
8062         of seth_add3_operand.
8063
8064 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
8065
8066         * Makefile.in (PROTO_OBJS): Add errors.o.
8067         * protoize.c (fancy_abort): Remove.
8068         * mips-tfile.c (fancy_abort): Add parameters.
8069
8070 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
8071
8072         * doc/trouble.texi (C++ misunderstandings): Fix example code.
8073
8074 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
8075
8076         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
8077         (host-default.o): Add dependency on HOOKS_H.
8078         * config/x-linux: Likewise.
8079         * config/x-solaris: Likewise.
8080         * config/i386/x-mingw32: Likewise.
8081         * config/rs6000/x-darwin: Likewise.
8082
8083 2004-08-23  James E Wilson  <wilson@specifixinc.com>
8084
8085         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
8086         DEF_REG_NOTE.
8087
8088 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
8089
8090         PR c/14492
8091         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
8092
8093 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
8094
8095         * cfg.c (check_bb_profile): Fix typos.
8096         * function.c (assign_parm_is_stack_parm): Likewise.
8097         * tree-nested.c: Likewise.
8098
8099 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
8100
8101         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
8102         Remove TYPECODE.
8103         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
8104
8105 2004-08-23  Eric Christopher  <echristo@redhat.com>
8106
8107         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
8108         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
8109         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
8110         * target.h: Ditto.
8111         * hooks.h: Include machmode.h.
8112         (hook_bool_mode_false): Declare.
8113         * hooks.c (hook_bool_mode_false): Define.
8114         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
8115         * stor-layout.c (layout_type): Ditto.
8116         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
8117         Define to target macro.
8118         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
8119         * config/arm/arm.c: Ditto. Use.
8120         * config/arm/arm.h: Ditto.
8121         * config/arm/arm-protos.h: Ditto.
8122         * config/i386/i386.c: Ditto.
8123         * config/i386/i386.h: Ditto.
8124         * config/rs6000/rs6000.c: Ditto.
8125         * config/rs6000/rs6000.h: Ditto.
8126         * config/sh/sh.c: Ditto.
8127         * config/sh/sh.h: Ditto.
8128         * config/sh/sh-protos.h: Ditto.
8129         * config/sh/sh.md: Use.
8130         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
8131         to TARGET_VECTOR_MODE_SUPPORTED_P.
8132
8133 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
8134
8135         * Makefile.in (BUILD_ERRORS): Set to build-errors.
8136         (errors.o): New target for host.
8137         (build-errors.o): New target for build.
8138         (genobjs): Replace errors.o with build-errors.
8139         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
8140         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
8141         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
8142         (fix-header.o): Add errors.h
8143         * collect2.c (fancy_abort): Add parameters.
8144         * collect2.h (fancy_abort): Don't declare.
8145         * errors.h (fancy_abort): Don't declare.
8146         * errors.c: Include either bconfig.h or config.h.
8147         (fancy_abort): Trim filename.
8148         * fix-header.c (v_fatal, fatal): Remove.
8149         (progname): Remove definition.
8150         (main): Set progname here.
8151         * gcc.c (fancy_abort): Add parameters.
8152         * gcc.h (fancy_abort): Remove declaration.
8153         * gcov.c (fancy_abort): Remove.
8154         * rtl.h (fancy_abort): Don't declare.
8155         (abort): Don't define.
8156         * tree.h (fancy_abort): Don't declare.
8157         (abort): Don't define.
8158         * system.h (fancy_abort): Declare.
8159         (abort): Define to fancy_abort.
8160         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
8161
8162         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
8163         (usize_type, ubitsizetype): Remove.
8164         * stor-layout.c (set_sizetype): Don't initialize usizetype,
8165         ubitsizetype.
8166         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
8167
8168         * tree.h (build_distinct_type_copy): New.
8169         (build_type_copy): ... here.  Rename to ...
8170         (build_variant_type_copy): ... here.
8171         * tree.c (build_qualified_type): Rename build_type_copy call.
8172         (build_distinct_type_copy): New, broken out of ...
8173         (build_type_copy): ... here.  Rename to ...
8174         (build_variant_type_copy): ... here.  Use
8175         build_distinct_type_copy.
8176         (build_common_tree_nodes_2): Rename build_type_copy call.
8177         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
8178         call.
8179         (handle_packed_attribute, handle_unused_attribute,
8180         handle_transparanet_union_attribute, handle_aligned_attribute,
8181         handle_deprecated_attribute): Likewise.
8182         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
8183         Likewise.
8184         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
8185         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
8186         build_distinct_type_copy.
8187
8188 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8189
8190         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
8191         attribute.
8192
8193 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8194
8195         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
8196         loads and stores.
8197         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
8198         formerly unnamed patterns.  Redefine using :P for the address.  Remove
8199         explicit length attributes.
8200
8201 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8202
8203         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
8204         New functions.
8205         (single_reachable_address): Use them.
8206         (schedule_sm): Add dump.
8207         (is_call_clobbered_ref): New function.
8208         (determine_lsm_reg): Check whether the reference is call clobbered.
8209         Only work for gimple_reg_type values.
8210
8211 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8212
8213         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
8214         $31 store insns.  Redefine using :GPR.
8215
8216 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8217
8218         * config/mips/mips.md (P): New mode macro.
8219         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
8220         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
8221         Add mode attributes.
8222
8223 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8224
8225         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
8226         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
8227         later constants to cover the gap.
8228         (load, store): New mode attributes.
8229         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
8230         Use new unspec constants.
8231
8232 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8233
8234         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
8235         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
8236         to use register_operand rather than uns_arith_operand as the predicate
8237         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
8238         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
8239         Redefine using :GPR.  Make same predicate change here.  Extend the
8240         commutativity of operands 1 and 2 from the SImode version to the
8241         DImode one.
8242         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
8243         but with no predicate changes.
8244         (*nor[sd]i3): Redefine using :GPR.
8245
8246 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8247
8248         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
8249         noreturn functions.
8250
8251 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8252
8253         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
8254         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
8255         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
8256         rather than "%z2" (with a fake const0_rtx for operand 2).
8257         (ffs[sd]i2): Redefine using :GPR.
8258         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
8259
8260 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8261
8262         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
8263
8264 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8265
8266         * config/mips/mips.md (any_extend): New code macro.
8267         (u, su): New code attributes.
8268         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
8269         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
8270         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
8271         (*{s,u}mul_acc_di): Redefine using any_extend.
8272         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
8273         to reflect real insn names.
8274         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
8275         with an any_extend template.
8276         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
8277         Add '*' to name.
8278
8279 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8280
8281         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
8282         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
8283         (mul[sd]i3_r4000): Redefine using :GPR.
8284         (mulsi3_mult3): Don't check TARGET_MAD separately.
8285         (muldi3_mult3): Moved after mulsi_mult3.
8286
8287 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8288
8289         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
8290         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
8291         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
8292         (TARGET_GAS, TARGET_MIPS_AS): Delete.
8293         (TARGET_GPWORD): Define to true for n32 on IRIX.
8294         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
8295         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
8296         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
8297         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
8298         (MDEBUG_ASM_SPEC): Delete, folding into...
8299         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
8300         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
8301         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
8302         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
8303         to define asm_abi_default_spec.
8304         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
8305         (TARGET_ASM_SELECT_SECTION): Delete.
8306         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
8307         for non-mips16 code, removing previous workaround for SGI assemblers.
8308         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
8309         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
8310         (override_options): Remove !TARGET_GAS and !have_named_sections code.
8311         (print_operand): Fold TARGET_GAS conditionals into asm strings.
8312         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
8313         ASM_STABS_OP and ASM_STABN_OP.
8314         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
8315         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
8316         (mips_output_function_prologue): Remove !TARGET_GAS code.
8317         (mips_select_rtx_section): Remove !have_named_sections code.
8318         (mips_select_section): Delete.
8319         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
8320         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
8321         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
8322         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
8323         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
8324         * config/mips/windiss.h (ASM_SPEC): Likewise.
8325
8326 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8327
8328         * read-rtl.c (map_value, mapping, macro_group): New structures.
8329         (BELLWETHER_CODE): New macro.
8330         (modes, codes, bellwether_codes): New variables.
8331         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
8332         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
8333         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
8334         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
8335         (add_map_value, initialize_macros): New functions.
8336         (def_hash, def_hash_eq_p): Generalize to anything that points to,
8337         or starts with, a char * field.
8338         (find_macro, read_mapping, check_code_macro): New functions.
8339         (read_rtx_1): New, split out from read_rtx.  Handle the new
8340         define_{mode,code}_{macro,attr} constructs.  Use find_macro
8341         to parse the name of a code or mode.  Use BELLWETHER_CODE to
8342         extract the format and to choose a suitable code for rtx_alloc.
8343         Modify recursive invocations to use read_rtx_1.
8344         (read_rtx): Call initialize_macros.  Apply code and mode macros
8345         to the rtx returned by read_rtx_1.  Cache everything after the
8346         first macro expansion for subsequent read_rtx calls.
8347         * doc/md.texi: Document new .md constructs.
8348         * config/mips/mips.md (GPR): New mode macro.
8349         (d, si8_di5): New mode attributes.
8350         (any_cond): New code macro.
8351         (add[sd]i3): Redefine using :GPR.
8352         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
8353         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
8354         previously unnamed MIPS16 patterns.
8355         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
8356         lines.  Don't match (plus (const_int 0) ...).
8357         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
8358         Use a define_split to generate the addition.
8359         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
8360         (subsi3_internal): Delete.
8361         (*subsi3_extended): Renamed from subsi3_internal_2.
8362         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
8363         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
8364         using an any_cond template.
8365
8366 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8367
8368         * read-rtl.c (read_rtx): Tidy use of format_ptr.
8369
8370 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8371
8372         * read-rtl.c (string_obstack): New file-scope variable.
8373         (read_string, read_quoted_string, read_braced_string)
8374         (read_escape): Remove obstack parameter and use string_obstack instead.
8375         (read_rtx): Remove function-local rtl_obstack and initialize
8376         string_obstack instead.  Update call to read_string.
8377
8378 2004-08-22  Andrew Pinski  <apinski@apple.com>
8379
8380         PR c/15262
8381         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
8382         expression is not constant.
8383         (c_finish_return): Do not go through INDIRECT_REF when looking
8384         for the inner expression of an ADDR_EXPR for warning about.
8385
8386 2004-08-22  Richard Henderson  <rth@redhat.com>
8387
8388         PR 17075
8389         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
8390         create new blocks and fall through.
8391         (expand_gimple_basic_block): Update to match.
8392
8393 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
8394
8395         * reload.c (find_reloads_address): Make return value tri-state.
8396         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
8397         (find_reloads): Assume that reloaded addresses match 'o' or
8398         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
8399         returned 1 (not -1).  Omit optional reloads for address operands
8400         only if find_reloads_address returned 1 (not -1).
8401
8402         * config/s390/s390.c (legitimize_reload_address): New function.
8403         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
8404         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
8405         legitimize_reload_address.
8406
8407 2004-08-22  Richard Hendersion  <rth@redhat.com>
8408
8409         * tree.h (SAVE_EXPR_RESOLVED_P): New.
8410         * gimplify.c (gimplify_save_expr): Use it.
8411         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
8412         on the temporary variable.
8413
8414 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
8415
8416         * fold-const.c (rtl_expr_nonnegative_p): Delete.
8417         * tree.h (rtl_expr_nonnegative_p): Remove.
8418
8419 2004-08-22  Steven Bosscher  <stevenb@suse.de>
8420
8421         * config/i386/ppro.md (ppro_complex_insn): Add missing check
8422         for cpu==pentiumpro.
8423
8424         * combine.c (struct reg_stat): Fix comment typo.
8425
8426 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
8427
8428         * c-tree.h (c_sizeof_nowarn): Remove.
8429
8430 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8431
8432         * c-decl.c (set_array_declarator_type): Rename to
8433         set_array_declarator_inner.
8434         (build_c_parm, build_attrs_declarator, build_function_declarator):
8435         New functions.
8436         (make_pointer_declarator): Call build_attrs_declarator.
8437         * c-tree.h (set_array_declarator_type): Rename to
8438         set_array_declarator_inner.
8439         (build_c_parm, build_attrs_declarator, build_function_declarator):
8440         New prototypes.
8441         * c-parse.in (after_type_declarator,
8442         parm_declarator_starttypename, parm_declarator_nostarttypename,
8443         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
8444         firstparm): Use these functions
8445
8446 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8447
8448         * c-decl.c (build_array_declarator, set_array_declarator_type,
8449         start_decl, grokdeclarator, grokparms): Change boolean parameters
8450         to type bool.
8451         * c-tree.h (build_array_declarator, set_array_declarator_type,
8452         start_decl): Update prototypes.
8453         * c-decl.c, c-parse.in: All callers changed.
8454
8455 2004-08-21  Mike Stump  <mrs@apple.com>
8456
8457         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
8458         (darwin_fix_and_continue): Likewise.
8459         (darwin_fix_and_continue_switch): Likewise.
8460         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
8461         (darwin_fix_and_continue): Likewise.
8462         (darwin_fix_and_continue_switch): Likewise.
8463
8464 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
8465
8466         PR  c++/16030
8467         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
8468         Remove, merging into ...
8469         (gen_stdcall_or_fastcall_suffix): New function, returning tree
8470         rather than const char*, and accepting additional parameter.
8471         Don't add suffix to '*'-prefixed symbols or variadic functions.
8472         (i386_pe_encode_section_info): Adjust for call to new function.
8473         Call change_decl_assembler_name.
8474
8475 2004-08-20  Mike Stump  <mrs@apple.com>
8476
8477         * config/darwin.c (machopic_indirect_data_reference): Mark
8478         stubs as defined.
8479         * config/386/386.c (darwin_local_data_pic): Add.
8480         (legitimate_constant_p): Reorder so that PLUS handling runs
8481         before darwin_local_data_pic to match the ordering in
8482         legitimate_pic_address_disp_p and so that MINUS runs after
8483         darwin_local_data_pic as otherwise the darwin_local_data_pic
8484         logic can be skipped, which would be very bad.
8485         (legitimate_pic_address_disp_p): Move from from here to
8486         darwin_local_data_pic so it can be reused.
8487
8488 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
8489
8490         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
8491         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
8492         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
8493         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
8494         (RS6000_ABI_NAME): Define as "linux".
8495         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
8496         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
8497         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
8498         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
8499         * config/rs6000/rs6000.c (dot_symbols): New global var.
8500         (rs6000_output_function_entry): New function, modified for
8501         !DOT_SYMBOLS..
8502         (print_operand <case 'z'>): ..extracted from here.
8503         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
8504         (rs6000_output_function_epilogue): Likewise.
8505         (rs6000_elf_declare_function_name): Likewise.
8506         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
8507         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
8508         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
8509         * configure: Regenerate.
8510         * config.in: Regenerate.
8511
8512 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
8513
8514         * reload.c (find_reloads_address): Fix thinko in previous change.
8515
8516         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
8517         a CONST_INT.
8518
8519 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
8520
8521         PR rtl-optimization/17099
8522         * combine.c (force_to_mode): Check if inner_mask has any bits set
8523         outside of GET_MODE (x) instead of op_mode.
8524
8525 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
8526
8527         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
8528         fragment.
8529         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
8530         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
8531         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
8532         architecture.
8533         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
8534         configurations.
8535         * config/arm/t-symbian: New file.
8536
8537 2004-08-20  Andrew Pinski  <apinski@apple.com>
8538
8539         * regrename.c (kill_value_regno): ANSIfy.
8540
8541 2004-08-20  Dale Johannesen  <dalej@apple.com>
8542
8543         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
8544
8545 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
8546
8547         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
8548         (kill_value_regno): New function, derived from kill_value.
8549         (kill_value): Update.
8550         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
8551
8552 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
8553
8554         Fix PR tree-optimization/17111
8555         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
8556         of non-value_handles.
8557         (bitmap_set_contains): All constants are in every set.
8558
8559 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
8560
8561         * fold-const.c (round_up, round_down): Use build_int_cst.
8562         Optimize common case.
8563
8564 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
8565             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8566
8567         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
8568         one_only_data_section): Rename to som_readonly_data_section,
8569         som_one_only_readonly_data_section and som_one_only_data_section.
8570         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
8571         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
8572         conditional defines.
8573         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
8574         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
8575         string values.
8576         (pa_select_section): Use renamed section functions.
8577         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
8578         SOM_READONLY_DATA_SECTION_FUNCTION,
8579         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
8580         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
8581         Define here ...
8582         * config/pa/som.h: ... not here.
8583         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
8584         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
8585         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
8586         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
8587         (READONLY_DATA_SECTION): Use som_readonly_data_section.
8588
8589 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
8590
8591         * fold-const.c (int_const_binop): Don't generate non-overflowing
8592         size-types specially.
8593         (fold_convert_const): Likewise.
8594
8595         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
8596         clear cache on copied sizetype.
8597
8598 2004-08-20  Ben Elliston  <bje@au.ibm.com>
8599
8600         * configure.ac: Don't escape apostrophe in --enable-coverage help.
8601         * configure: Regenerate.
8602
8603 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
8604
8605         PR 5620
8606         * gcc.c (struct stat input_stat): Don't define if
8607         HOST_LACKS_INODE_NUMBERS
8608         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
8609         than stat to determine if temp file is same as input file.
8610         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
8611         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
8612
8613 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
8614
8615         * configure.ac (mips*-*-*): Print an error if not using GAS.
8616         * configure: Regenerated.
8617         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
8618         comments about buggy MIPSpro assemblers.
8619         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
8620         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
8621         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
8622         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
8623         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
8624         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
8625         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
8626         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
8627         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
8628         of more general IRIX 6 definitions.
8629         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
8630         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
8631         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
8632         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
8633         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
8634         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
8635         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
8636         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
8637         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
8638         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
8639         (LINK_SPEC): Move most of definition to iris.h.
8640         (SUBTARGET_LINK_SPEC): New macro.
8641         (IRIX_STARTFILE_SPEC): Fold into...
8642         (STARTFILE_SPEC): ...here.
8643         (IRIX_ENDFILE_SPEC): Fold into...
8644         (ENDFILE_SPEC): ...here.
8645         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
8646         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
8647         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
8648         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
8649         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
8650         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
8651         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
8652         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
8653         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
8654         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
8655         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
8656         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
8657         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
8658         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
8659         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
8660         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
8661         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
8662         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
8663         (TARGET_IRIX6): Define to 1.
8664         (DRIVER_SELF_SPECS): Define.
8665         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
8666         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
8667         (SUBTARGET_LINK_SPEC): New macro.
8668         (IRIX_STARTFILE_SPEC): Fold into...
8669         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
8670         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
8671         (LIB_SPEC, LIBGCC_SPEC): Use them.
8672         (LIB_SPEC): Remove !mabi=* case.
8673         (IRIX_ENDFILE_SPEC): Fold into...
8674         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
8675         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
8676         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
8677         (TARGET_IRIX6): New macro.
8678         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
8679         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
8680         (LABEL_AFTER_LOC): Delete.
8681         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
8682         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
8683         (mips_build_builtin_va_list): Check TARGET_IRIX6.
8684         (override_options): Remove TARGET_SGI_O32_AS-related code.
8685         (irix_output_external_libcall): Make static.
8686         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
8687         LABEL_AFTER_LOC.
8688         (mips_file_start): Tidy guard for ABI sections.  Remove use of
8689         ABICALLS_ASM_OP; use .abicalls instead.
8690         (mips_output_aligned_decl_common, mips_declare_object_name)
8691         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
8692         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
8693         .globl foo .text directives.
8694         (irix_asm_named_section_1, irix_asm_named_section)
8695         (irix_section_align_entry, irix_section_align_htab)
8696         (irix_orig_asm_out_file, irix_section_align_entry_eq)
8697         (irix_section_align_entry_hash, irix_asm_output_align)
8698         (irix_file_start, irix_section_align_1, copy_file_data)
8699         (irix_file_end, irix_section_type_flags): Delete.
8700         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
8701         Use standard section syntax.  Remove protective "jr $31".
8702         (__gcc_fini): Likewise .gcc_fini.
8703         * config/mips/irix-crtn.asm: Adjust sections accordingly.
8704         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
8705         iris5gas.h.
8706         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
8707         from t-irix-gld.
8708         (EXTRA_MULTILIB_PARTS): Define.
8709         * config/mips/t-iris6: Remove bogus comment.
8710         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
8711         * config/mips/iris5gas.h, config/mips/iris5gld.h,
8712         config/mips/iris6gas.h, config/mips/iris6gld.h,
8713         config/mips/t-iris5-as, config/mips/t-iris5-gas
8714         config/mips/t-irix-gld: Delete.
8715         * config/mips/iris.h: New file.
8716         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
8717
8718 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
8719
8720         * postreload.c (reload_cse_move2add): Allow any condjump, but check
8721         that the implicit set isn't clobbered in the jump insn.
8722
8723 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
8724
8725         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
8726         * optabs.c (init_optabs): Don't check it.
8727         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
8728         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
8729
8730 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
8731
8732         * config/s390/s390.md (s390_warn_framesize_string)
8733         (s390_warn_dynamic_string, s390_stack_size_string)
8734         (s390_stack_guard_string): New global string variables.
8735         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
8736         (s390_stack_guard): New global variables.
8737         (override_options): Added checks for the new options.
8738         (s390_emit_prologue): Emit stack check and trap code and perform
8739         compile time stack size checking.
8740
8741         * config/s390/s390.h (TARGET_OPTIONS): Added new options
8742         "warn-framesize", "warn-dynamicstack", "stack-size" and
8743         "stack-guard".
8744
8745         * doc/invoke.texi: Added documentation for the new options.
8746
8747 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
8748
8749         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
8750         to eliminate warning.
8751         (linear_search_fdes): Declare p as unsigned.
8752         (binary_search_mixed_encoding_fdes): Likewise.
8753         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
8754         to eliminate warning.
8755         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
8756         type cast.
8757
8758 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
8759
8760         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
8761         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
8762         instead of one.  Check for strictly legitimate address.
8763         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
8764         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
8765
8766 2004-08-19  Eric Christopher  <echristo@redhat.com>
8767
8768         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
8769         * langhooks.h (unsave_expr_now): Ditto.
8770         * tree.h (unsave_expr_1): Remove prototype.
8771         (lhd_unsave_expr_now): Rename to unsave_expr_now.
8772         * tree-inline.c (unsave_expr_1): Move here
8773         from tree.c. Make static.
8774         (unsave_expr_now): Rename from lhd_unsave_expr_now.
8775         * tree-sra.c: Fix up for rename.
8776         * tree-ssa-copy.c: Ditto.
8777         * tree-eh.c: Ditto.
8778         * tree.c (unsave_expr_1): Move to tree-inline.c.
8779
8780 2004-08-19  Caroline Tice  <ctice@apple.com>
8781
8782         * config/i386/cygming.h (switch_to_section):  Fix typo (change
8783         in_unlikely_text_section to in_unlikely_executed_text).
8784
8785 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
8786
8787         * vec.h (VEC_lower_bound): New macro.
8788
8789 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
8790
8791         PR target/16446
8792         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
8793         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
8794         treat each ABI separately.  Deal with n32/n64 complex float arguments.
8795         (function_arg): Add associated complex handling here.
8796
8797 2004-08-19  Richard Henderson  <rth@redhat.com>
8798
8799         * config/arm/arm.c (arm_gen_load_multiple): Use
8800         adjust_automodify_address.  Take base memory and offset instead
8801         of unchanging/struct/scalar bits.
8802         (arm_gen_store_multiple): Likewise.
8803         (arm_gen_movmemqi): Use adjust_automodify_address.
8804         * config/arm/arm-protos.h: Update decls.
8805         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
8806         (store_multiple): Similarly.
8807
8808 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
8809
8810         * regclass.c (globalize_reg): Update call_really_used_regs.
8811
8812 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
8813
8814         * doc/invoke.texi (integer-share-limit): Document.
8815
8816         * tree.h (TYPE_CACHED_VALUES_P): New.
8817         (TYPE_CACHED_VALUES): New.
8818         (TYPE_ORIG_SIZE_TYPE): Adjust.
8819         * tree.def (INTEGER_CST): Update documentation.
8820         * tree.c: Inlcude params.h.
8821         (build_int_cst): Cache small values.
8822         (build_type_copy): Do not copy the value cache.
8823         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
8824         unneeded zeroing.
8825         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
8826         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
8827         cache.
8828         * fold-const.c (force_fit_type): Copy value when setting
8829         overflows.
8830         (int_const_binop): Likewise.
8831         * stor-layout.c: Include params.h
8832         (set_sizetype): Create values cache.
8833         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
8834         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
8835         * params.h (INTEGER_SHARE_LIMIT): New.
8836         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
8837
8838 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
8839
8840         * gimplify.c (gimplify_minimax_expr): Remove.
8841         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
8842
8843 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
8844
8845         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
8846         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
8847
8848 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
8849
8850         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
8851
8852 2004-08-18  Andrew Pinski  <apinski@apple.com>
8853
8854         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
8855
8856 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
8857
8858         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
8859         (__aeabi_ul2f): Likewise.
8860
8861 2004-08-18  Richard Henderson  <rth@redhat.com>
8862
8863         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
8864         move to rtl completely.
8865         (struct meminsnbuf, xtensa_emit_block_move): Remove.
8866         (xtensa_find_mode_for_size): Remove.
8867         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
8868         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
8869
8870 2004-08-18  Richard Henderson  <rth@redhat.com>
8871
8872         * config/mcore/mcore.c (mode_from_align): Remove DImode.
8873         (block_move_sequence): Rewrite to use adjust_address.
8874         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
8875         Return boolean indicating success/failure.
8876         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
8877         * config/mcore/mcore.md (movmemsi): Update to match.
8878
8879 2004-08-18  Mike Stump  <mrs@apple.com>
8880
8881         * doc/invoke.texi (-mfix-and-continue): Add support for
8882         fast turn around debugging.
8883         (-ffix-and-continue): Likewise.
8884         (-mindirect-data): Likewise.
8885         (-findirect-data): Likewise.
8886         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
8887         (indirect_data): Likewise.
8888         (machopic_data_defined_p): Likewise.
8889         (machopic_output_indirection): Likewise.
8890         (darwin_encode_section_info): Likewise.
8891         (darwin_fix_and_continue): Likewise.
8892         (darwin_fix_and_continue_switch): Likewise.
8893         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
8894         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
8895         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
8896         (SUBTARGET_OPTIONS): Likewise.
8897         (darwin_fix_and_continue): Likewise.
8898         (darwin_fix_and_continue_switch): Likewise.
8899         (TARGET_FIX_AND_CONTINUE): Likewise.
8900         * config/rs6000.c (rs6000_emit_prologue): Likewise.
8901
8902 2004-08-19  Steven Bosscher  <stevenb@suse.de>
8903
8904         * basic-block.h (struct edge_def): Remove crossing_edge.
8905         (EDGE_CROSSING): New define.
8906         (EDGE_ALL_FLAGS): Update.
8907         * bb-reorder.c (find_traces_1_round, better_edge_p,
8908         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
8909         find_jump_block, fix_crossing_conditional_branches,
8910         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
8911         Replace all occurences of crossing_edge with an edge flag check
8912         or set/reset.
8913         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
8914         try_crossjump_bb): Likewise.
8915         * cfglayout.c (fixup_reorder_chain): Likewise.
8916         * cfgrtl.c (force_nonfallthru_and_redirect,
8917         commit_one_edge_insertion): Likewise.
8918
8919         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
8920         * tree-flow.h (compute_dominance_frontiers): Move prototype...
8921         * basic-block.h:  ...here.
8922         * tree-cfg.c (compute_dominance_frontiers_1,
8923         compute_dominance_frontiers): Move from here...
8924         * cfganal.c: ...to here.  Include timevar.h.
8925
8926 2004-08-18  James E Wilson  <wilson@specifixinc.com>
8927
8928         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
8929         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
8930
8931         * config/mips/mips.md (type): Add frdiv.
8932         (divsf3+1, divsf3+2): Change type to frdiv.
8933         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
8934         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
8935
8936         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
8937         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
8938         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
8939         * config/mips/5000.md (r5k_fdiv_single): Likewise.
8940         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
8941         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
8942         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
8943         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
8944         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
8945         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
8946         Likewise.
8947         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
8948
8949 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
8950
8951         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
8952         get regression tester working again.
8953
8954 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
8955
8956         * insn-notes.def, reg-notes.def: New files.
8957         * rtl.h: Use them to define enum insn_note and enum reg_note.
8958         * rtl.c: Use them to define note_insn_name and reg_note_name.
8959         * Makefile.in (RTL_BASE_H): Update.
8960
8961         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
8962         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
8963
8964 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
8965
8966         * arm.c (arm_size_rtx_costs): New function.
8967         (arm_override_options): Use it if optimizing for space.
8968
8969 2004-08-18  Richard Henderson  <rth@redhat.com>
8970
8971         * emit-rtl.c (gen_const_mem): New.
8972         * rtl.h (gen_const_mem): Declare.
8973         * expr.c (do_tablejump): Use it.
8974         * varasm.c (force_const_mem): Likewise.
8975         * config/darwin.c (machopic_indirect_data_reference): Likewise.
8976         (machopic_legitimize_pic_address): Likewise.
8977         * config/arm/arm.c (legitimize_pic_address): Likewise.
8978         * config/i386/i386.c (legitimize_pic_address): Likewise.
8979         (legitimize_tls_address): Likewise.
8980         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
8981         * config/ia64/ia64.md (load_fptr): Likewise.
8982         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
8983         * config/pa/pa.c (legitimize_pic_address): Likewise.
8984         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
8985         (rs6000_emit_move): Likewise.
8986         * config/s390/s390.c (legitimize_pic_address): Likewise.
8987         (legitimize_tls_address): Likewise.
8988         * config/s390/s390.md (casesi): Likewise.
8989         * config/sh/sh.c (sh_reorg): Likewise.
8990         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
8991         * config/v850/v850.md (casesi): Likewise.
8992
8993         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
8994         * config/sh/sh.c (prepare_move_operands): Remove incorrect
8995         use of MEM_READONLY_P.
8996
8997 2004-08-18  Steven Bosscher  <stevenb@suse.de>
8998
8999         * Makefile.in (OBJS-common): Add postreload-gcse.c.
9000         Add new postreload-gcse.o.
9001         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
9002         (lookup_as_function, insert, rehash_using_reg, use_related_value,
9003         equiv_constant): Use SAFE_HASH instead of safe_hash.
9004         (exp_equiv_p): Export.  Add for_gcse argument when comparing
9005         for GCSE.
9006         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
9007         find_comparison_args, fold_rtx, cse_insn): Update callers.
9008         (hash_rtx): New function derived from old canon_hash and bits
9009         from gcse.c hash_expr_1.
9010         (canon_hash_string): Rename to hash_rtx_string.
9011         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
9012         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
9013         (cselib_lookup): Update this caller.
9014         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
9015         Make static.
9016         (hash_expr): Call hash_rtx.
9017         (ldst_entry): Likewise.
9018         (expr_equiv_p): Call exp_equiv_p.
9019         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
9020         reg_used_on_edge, reg_set_between_after_reload_p,
9021         reg_used_between_after_reload_p, get_avail_load_store_reg,
9022         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9023         get_bb_avail_insn, hash_scan_set_after_reload,
9024         compute_hash_table_after_reload,
9025         eliminate_partially_redundant_loads, gcse_after_reload,
9026         get_bb_avail_insn, gcse_after_reload_main): Remove.
9027         * postreload-gcse.c: New file, reincarnating most of the above.
9028         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
9029         (gcse_after_reload_main): Update prototype.
9030         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
9031         * passes.c (rest_of_handle_gcse2): Use it.
9032
9033 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
9034
9035         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
9036         (pass_loop_done): Likewise.
9037
9038 2004-08-18  Andrew Pinski  <apinski@apple.com>
9039
9040         * config/rs6000/darwin.md: Delete the altivec patterns which are
9041         handled differently now.
9042         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
9043         (macho_correct_pic_di): Likewise.
9044         (call_indirect_nonlocal_darwin64): Likewise.
9045         Delete the save world/saveFP/saveVec patterns.
9046
9047         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
9048         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
9049         * config/rs6000/rs6000.md: Include darwin.md.
9050         (builtin_setjmp_receiver): Add DImode case.
9051         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
9052         Darwin bits.
9053
9054 2004-08-18  Matt Austern  <austern@apple.com>
9055
9056         Dead code stripping
9057         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
9058         * darwin.c (darwin_file_end): Mark file as potentially strippable.
9059
9060 2004-08-18  Richard Henderson  <rth@redhat.com>
9061
9062         * alias.c (readonly_fields_p): Remove.
9063         (objects_must_conflict_p): Don't call it.
9064         * tree.h (readonly_fields_p): Remove.
9065         * langhooks.h (struct lang_hooks): Remove honor_readonly.
9066         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
9067
9068 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
9069
9070         * tree-dfa.c (add_referenced_var): Only global variables are
9071         call-clobbered.
9072         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
9073         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
9074         all pointers dereferenced if the statement dereferences them.
9075         (create_name_tags): Do not create memory tags for pointers
9076         that have PT_ANYTHING set.
9077         Also check if PT_VARS is not empty before creating a name tag.
9078         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
9079         variables that share the same alias set with a pointer that
9080         may point anywhere.
9081         (add_may_alias): Add FIXME comment to remove clobbering
9082         aliased variables and tags.
9083         (replace_may_alias): Likewise.
9084         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
9085         (merge_pointed_to_info): If the original variable has not
9086         points-to information, call set_pt_anything.
9087         (add_pointed_to_var): Do not prevent adding a pointed-to
9088         variable if the pointers is PT_ANYTHING.
9089         If the variable is a global, set PT_GLOBAL_MEM.
9090         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
9091         pointer type only come in PTR+OFFSET flavours.
9092         Always call merge_pointed_to_info on PHI arguments that are
9093         SSA_NAMEs.
9094         (get_nmt_for): Mark call-clobbered tags whose pointer points
9095         to global memory.
9096         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
9097         values.
9098         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
9099         FLAGS.
9100         (add_stmt_operand): Abort if the caller tried to add a killing
9101         definition for a memory tag.
9102         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
9103         unnecessary checks.
9104
9105 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
9106
9107         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
9108         from call_used_regs.  Update call_really_used_regs.
9109         (CALL_REALLY_USED_REGISTERS): Define.
9110         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
9111         Replace call_used_regs with call_really_used_regs.
9112         (calc_live_regs, sh_media_register_for_return): Likewise.
9113         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
9114         * sh.md (return_media): Likewise.
9115
9116 2004-08-18  Andrew Pinski  <apinski@apple.com>
9117
9118         * config/darwin.c (machopic_legitimize_pic_address): Only set
9119         MEM_READONLY_P in the non TARGET_TOC case.
9120
9121 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
9122
9123         * rtl.def (NIL): Delete.
9124         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
9125         Tighten the syntax a little.
9126
9127         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
9128         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
9129         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
9130         * config/i386/predicates.md, config/m32r/m32r.h
9131         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
9132         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
9133         * config/sparc/sparc.h, doc/tm.texi:
9134         Replace all occurrences of NIL with UNKNOWN.
9135
9136 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
9137
9138         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
9139         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
9140         sequence inline.  Move drop_through_label code into this
9141         block, being the only place it is used.  Adjust comments.
9142
9143 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
9144
9145         * config/rs6000/altivec.md: Add new patterns for calls to
9146         save_world/rest_world functions.
9147
9148         * config/rs6000/rs6000-protos.h: (save_world_operation,
9149         restore_world_operation) new declarations.
9150
9151         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
9152         field added.
9153         (rs6000_stack_info): Set world_save_p field.
9154         (save_world_operation): New function.
9155         (restore_world_operation): New function.
9156         (compute_save_world_info): New function.
9157         (rs6000_stack_info): Call compute_save_world_info.
9158         (rs6000_emit_prologue): Check for world_save_p and generate
9159         pattern to call save_world for saving all non-volatile and
9160         special registers.
9161         (rs6000_emit_epilogue): Check for world_save_p and generate
9162         pattern to call rest_world to restore saved registers.
9163
9164         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
9165         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
9166         (rs6000_reg_names): New entries added for save_world_operation and
9167         restore_world_operation.
9168
9169 2004-08-18  Caroline Tice  <ctice@apple.com>
9170
9171         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
9172         "-freorder-blocks-and-partition" to the flags used in second
9173         stage of profiledbootstrap.
9174         * bb-reorder.c (push_to_next_round_p): Add new variable,
9175         next_round_is_last; set and use variable to make sure, when
9176         partitioning, that the last trace construction round consists
9177         of all (and only) cold basic blocks.
9178         (rotate_loop): Don't copy blocks that end in a section
9179         crossing jump.
9180         (copy_bb): Correctly initialize "partition" of duplicated bb.
9181         (add_unlikely_executed_notes): Add a comment.
9182         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
9183         to make sure, if function contains hot blocks, that the
9184         successors of ENTRY_BLOCK_PTR are hot; also, only look for
9185         crossing edges if the architecture supports named sections.
9186         (mark_bb_for_unlikely_executed_section): Modify to always
9187         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
9188         the basic block note insn.
9189         (fix_crossing_unconditional_branches): Remove extra space.
9190         (fix_edges_for_rarely_executed_code): Modify to only do
9191         partitioning work if the architecture supports named sections.
9192         (reorder_basic_blocks): Modify to only add
9193         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
9194         supports named sections.
9195         * c-common.c (handle_section_attribute): Initialize new global
9196         variable, user_defined_section_attribute, to true if user has
9197         specified one.
9198         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
9199         forward edges that cross section boundaries.
9200         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
9201         partitioning information if the architecture supports named
9202         sections.
9203         * cfgrtl.c (target.h): Add statement to include this.
9204         (rtl_split_block): Make sure newly created bb gets correct
9205         partition.
9206         (try_redirect_by_replacing_jump): Make sure redirection isn't
9207         attempting to cross section boundaries.
9208         (force_nonfallthru_and_redirect): Only do partition fix up if
9209         architecture supports named sections.
9210         (rtl_split_edge): Make sure newly created bb ends up in
9211         correct partition.
9212         (commit_one_edge_insertion): Remove code that incorrectly
9213         updated basic block partition; Make sure partition fix up only
9214         happens if architecture supports named sections and it's not
9215         already done.
9216         (rtl_verify_flow_info_1): Fix if-condition on test/error
9217         condition that fallthru edges are not allowed to cross section
9218         boundaries.
9219         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
9220         * final.c (final_scan_insn): Remove redundant test from if-statement;
9221         change calls to text_section into calls to function_section; add code
9222         to only to partitioning fix up if architecture supports named
9223         sections.
9224         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
9225         partition.
9226         (if_convert): Add targetm.have_named_sections to test.
9227         * output.h (unlikely_section_label): Extern declaration for new global
9228         variable.
9229         (unlikely_text_section_name): Likewise.
9230         * opts.c (decode_options): If both partitioning and DWARF debugging
9231         are turned on, issue a warning that this doesn't work, and change
9232         partitiong to basic block reordering (without hot/cold partitions).
9233         * passes.c (rest_of_handle_final): Re-set new global variable,
9234         user_defined_section_attribute, to false.
9235         (rest_of_compilation): Change options for calling partitioning
9236         function: Don't call if the user defined the section attribute, and
9237         don't call if DECL_ONE_ONLY is true for the current function.
9238         * predict.c (choose_function_section): Return immediately if we
9239         are doing hot/cold partitioning (i.e. let the basic block partitioning
9240         determine where the function belongs).
9241         * reg-stack.c (emit_swap_insn): Add condition to step over
9242         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
9243         * toplev.c (user_defined_section_attribute): New global variable.
9244         * toplev.h (user_defined_section_attribute): Extern declaration
9245         for new global variable.
9246         * varasm.c (unlikely_section_label): New global variable.
9247         (unlikely_text_section_name): New global variable.
9248         (unlikely_text_section): Add code to initialize
9249         unlikely_text_section_name if necessary; modify to use
9250         unlikely_text_section_name and unlikely_section_label; also to use
9251         named_section properly.
9252         (in_unlikely_text_section):  Modify to work correctly with
9253         named_section and to use unlikely_text_section_name.
9254         (named_section):  Add code to work properly with cold section.
9255         (function_section): Clean up if-statement.
9256         * config/darwin.c (darwin_asm_named_section): Return to original
9257         code, removing use of SECTION_FORMAT_STRING.
9258         * config/arm/pe.h (switch_to_section):  Add case for
9259         in_unlikely_executed_text to switch statement.
9260         * config/i386/cygming.h (switch_to_section): Likewise.
9261         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
9262         (SECTION_FORMAT_STRING): Likewise.
9263         * config/mcore/mcore.h (switch_to_section): Likewise.
9264         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
9265         (SECTION_FORMAT_STRING): Remove.
9266
9267 2004-08-18  Roger Sayle  <roger@eyesopen.com>
9268
9269         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
9270         -ffixed-reg safe, by preserving the meanings of zero and one.
9271         (CALL_USED_REGISTERS): Likewise.
9272         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
9273
9274 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
9275
9276         * config/sh/sh.c (split_branches): Check the result of
9277         next_active_insn.
9278         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
9279         Call rtl_register_cfg_hooks.
9280
9281 2004-08-18  Richard Henderson  <rth@redhat.com>
9282
9283         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
9284         * alias.c (true_dependence): Update to match new semantics.
9285         (canon_true_dependence, write_dependence_p): Likewise.
9286         (anti_dependence, output_dependence): Update write_dependence_p args.
9287         (unchanging_anti_dependence): Remove.
9288         * calls.c (purge_mem_unchanging_flag): Remove.
9289         (fixup_tail_calls): Don't call it.
9290         (expand_call): Don't add unchanging memory to function usage.
9291         * expr.c (emit_block_move_via_libcall): Likewise.
9292         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
9293         (get_subtarget): Don't use RTX_UNCHANGING_P.
9294         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
9295         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
9296         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
9297         * cse.c (insert): Don't use RTX_UNCHANGING_P.
9298         (cse_insn, canon_hash): Use MEM_READONLY_P.
9299         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
9300         instead of RTX_UNCHANGING_P.
9301         * explow.c (maybe_set_unchanging): Remove.
9302         * expr.h (maybe_set_unchanging): Remove.
9303         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
9304         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
9305         (assign_parm_setup_reg, expand_function_start): Likewise.
9306         * integrate.c (copy_rtx_and_substitute): Likewise.
9307         * ra-rewrite.c (emit_colors): Likewise.
9308         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
9309         (fixup_match_1): Likewise.
9310         * reload1.c (reload, alter_reg): Likewise.
9311         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
9312         not RTX_UNCHANGING_P.
9313         (equiv_init_varies_p): Likewise.
9314         * loop-invariant.c (check_maybe_invariant): Likewise.
9315         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
9316         * loop.c (note_addr_stored): Likewise.
9317         (prescan_loop): Likewise. Don't check function usage for clobbered
9318         unchanging memory.
9319         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
9320         not RTX_UNCHANGING_P.
9321         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
9322         * varasm.c (force_const_mem): Likewise.
9323         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
9324         * web.c (entry_register): Likewise.
9325         * tree-gimple.h (get_base_address): Move decl ...
9326         * tree.h: ... here.
9327         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
9328
9329         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
9330         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
9331         (alpha_set_memflags): Update to match.
9332
9333         * config/darwin.c (machopic_indirect_data_reference): Set
9334         MEM_READONLY_P instead of RTX_UNCHANGING_P.
9335         (machopic_indirect_call_target): Likewise.
9336         (machopic_legitimize_pic_address): Likewise.
9337         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
9338         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
9339         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
9340         * config/frv/frv.md (symGOT2reg): Likewise.
9341         * config/i386/i386.c (legitimize_pic_address,
9342         legitimize_tls_address, ix86_split_to_parts): Likewise.
9343         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
9344         * config/ia64/ia64.md (load_fptr): Likewise.
9345         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
9346         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
9347         * config/mcore/mcore.c (block_move_sequence): Likewise.
9348         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
9349         * config/pa/pa.c (legitimize_pic_address): Likewise.
9350         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
9351         (rs6000_emit_move): Likewise.
9352         * config/s390/s390.c (legitimize_pic_address): Likewise.
9353         (legitimize_tls_address): Likewise.
9354         * config/s390/s390.md (casesi): Likewise.
9355         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
9356         * config/sh/sh.md (symGOT2reg): Likewise.
9357         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
9358         * config/v850/v850.md (casesi): Likewise.
9359
9360         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
9361         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
9362         * config/mips/mips.c (mips_restore_gp): Likewise.
9363         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
9364         * config/sh/sh.c (sh_reorg): Likewise.
9365
9366 2004-08-18  Richard Henderson  <rth@redhat.com>
9367
9368         * tree.h (struct tree_decl): Add gimple_formal_temp.
9369         (DECL_GIMPLE_FORMAL_TEMP_P): New.
9370         * gimplify.c (pop_gimplify_context): Clear it.
9371         (lookup_tmp_var): Set it, if is_formal.
9372         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
9373         Use is_gimple_val for VECTOR.  Simplify return value.
9374         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
9375         (gimplify_expr): Likewise.
9376         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
9377         is_gimple_tmp_rhs for clarity.  Update all callers.
9378         (is_gimple_reg_rhs): Simplify logic.
9379         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
9380         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
9381         (is_gimple_formal_tmp_reg): Similarly.
9382         * tree-gimple.h: Update decls.
9383         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
9384         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
9385         * tree-ssa-live.c (var_union, type_var_init): Likewise.
9386
9387 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
9388
9389         * c4x.c (legitimize_operands): Remove calls to
9390         preserve_subexpressions_p.
9391
9392 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
9393
9394         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
9395         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
9396
9397 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
9398
9399         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
9400         Objective-C++ extensions.
9401         * gengtype.c (get_file_basename): Match entire subdirectory name
9402         ('cp', 'objc', 'objcp') rather than just its suffix.
9403         (get_base_file_bitmap): Allow for files to belong to more than one
9404         language.
9405         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
9406         used by more than one front-end.
9407
9408 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
9409
9410         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
9411         avoid use of preserve_subexpressions_p.
9412
9413 2004-08-17  Richard Henderson  <rth@redhat.com>
9414
9415         PR 17051
9416         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
9417
9418 2004-08-17  DJ Delorie  <dj@redhat.com>
9419
9420         * doc/extend.texi: Document new xstormy16 attribute.
9421
9422         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
9423         (xstormy16_splittable_below100_or_register): New.
9424         (combine_bnp): New.
9425         (xstormy16_reorg): New.
9426         (TARGET_MACHINE_DEPENDENT_REORG): Define.
9427
9428         * config/stormy16/stormy16.md (movqi_internal): Make name public.
9429         (movhi_internal): Likewise.
9430         (cbhranchhi): Likewise.
9431         (cbhranchhi_neg): Likewise.
9432         (andhi3): Only allow splittable below100 operands.
9433         (iorhi3): Likewise.
9434         (peephole2): New and/zero_extend->and peephole.
9435         (peephole2): New load/ior/save->set1 peephole.
9436         (peephole2): New load/and/save->clr1 peephole.
9437         (bclrx, bclrx2, bclr7, bclr15): New.
9438         (bsetx, bsetx2, bset7, bset15): New.
9439
9440         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
9441         liberal about acceptable 'B' masks.
9442
9443         * config/stormy16/stormy16-protos.h
9444         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
9445         xstormy16_below100_operand, xstormy16_below100_or_register,
9446         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
9447         (PREDICATE_CODES): Add new predicates.
9448
9449         * config/stormy16/stormy16.c
9450         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
9451         xstormy16_below100_operand, xstormy16_below100_or_register,
9452         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
9453         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
9454         (xstormy16_legitimate_address_p): Allow below100 symbols.
9455         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
9456         (xstormy16_expand_move): Leave below100 operands as-is.
9457         (xstormy16_encode_section_info): Encode below100 symbols.
9458         (xstormy16_strip_name_encoding): New.
9459         (xstormy16_print_operand): Print 'b' as shift mask.
9460         (xstormy16_attribute_table): Add below100 attributes.
9461         (xstormy16_handle_below100_attribute): New.
9462
9463         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
9464         (XSTORMY16_SECTION_FUNCTION): New.
9465         (EXTRA_SECTION_FUNCTIONS): Define using the above.
9466         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
9467         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
9468         (ASM_OUTPUT_LABELREF): Define.
9469
9470         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
9471         (movhi_internal): Add below100 support.
9472         (andhi3): Add below100 support.
9473         (iorhi3): Add below100 support.
9474         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
9475
9476 2004-08-17  James E Wilson  <wilson@specifixinc.com>
9477
9478         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
9479         of VOIDmode for comparison code mode.
9480         * config/mips/mips.md: For conditional move patterns, use mode of
9481         first compare operand for comparison mode, instead of VOIDmode.
9482
9483         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
9484         normal and -ffast-math code.
9485
9486 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
9487
9488         PR c++/15871
9489         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
9490
9491 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
9492
9493         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
9494
9495 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
9496
9497         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
9498         for non Darwin targets.
9499         (*call_value_nonlocal_darwin64): Likewise.
9500
9501 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
9502
9503         * config/rs6000/rs6000.c (rs6000_function_value): Check for
9504         altivec mode for altivec return register.
9505
9506 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
9507
9508         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
9509         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
9510         * config/rs6000/rs6000.md: Include darwin.md.
9511         (builtin_setjmp_receiver): Add DImode case.
9512         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
9513         Darwin bits.
9514
9515 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
9516
9517         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
9518         trees.
9519         * tree-vectorizer.h: New File: Same.
9520         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
9521         * common.opt (ftree-vectorize): New flag to enable vectorization.
9522         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
9523         vectorization pass.
9524         * tree-data-ref.h (init_data_ref): Additional argument.
9525         (array_base_name_differ_p): Moved to tree-data-ref.c.
9526         * tree-data-ref.c (array_base_name_differ_p): Revised.
9527         (initialize_data_dependence_relation): Call array_base_name_differ_p
9528         with an extra argument.
9529         (analyze_all_data_dependences): Same.
9530         (init_data_ref): Additional argument is_read to set DR_IS_READ.
9531         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
9532         file.
9533         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
9534         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
9535         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
9536         vectorization pass.
9537         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
9538         (tree_ssa_loop_done): Call scev_finalize.
9539         (tree_vectorize): Define the new vectorization pass.
9540         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
9541         size of the vector they support (until support for multiple vector
9542         sizes is added to the vectorizer).
9543         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
9544         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
9545         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
9546         documentation.
9547
9548 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
9549
9550         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
9551         usage.
9552         (generate_protocol_list, handle_impent): Likewise.
9553
9554 2004-08-17  Roger Sayle  <roger@eyesopen.com>
9555
9556         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
9557         ensure that call_used_regs is a superset of both fixed_regs and
9558         call_really_used_regs.
9559
9560 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
9561
9562         PR target/17019
9563         * arm.md (addsi3_cbranch_scratch): Correct case labels.
9564
9565 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
9566
9567         PR middle-end/17036
9568         * fold-const.c (fold): Check for integer operand when
9569         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
9570         Pinski  <pinskia@physics.uc.edu>.
9571
9572 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
9573
9574         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
9575         No need to check if in a cross configuration.
9576         * configure: Regenerate.
9577
9578         * calls.c (precompute_register_parameters):
9579         Inline preserve_subexpressions_p ().
9580         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
9581         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
9582         Likewise.
9583         * expr.c (get_subtarget): Likewise.
9584         * rtl.h (preserve_subexpressions_p): Remove.
9585         * stmt.c (preserve_subexpressions_p): Remove.
9586
9587         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
9588         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
9589         Abort on gimplified cases.
9590
9591 2004-08-16  James E Wilson  <wilson@specifixinc.com>
9592
9593         * tree.h (VECTOR_FLOAT_TYPE_P): New.
9594         (FLOAT_TYPE_P): Use it.
9595         * c-typeck.c (build_binary_op): After convert calls, check for
9596         check for ERROR_MARK operands.
9597
9598 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
9599
9600         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
9601         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
9602         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
9603         (genobjs static pattern rule): Remove %.c dependency.
9604         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
9605         Rename rules; delete commands; fix dependencies.
9606         (mostlyclean): Do not delete temporary source copies.
9607         * configure.ac: Delete all references to BUILD_PREFIX and
9608         BUILD_PREFIX_1.
9609         * configure: Regenerate.
9610
9611         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
9612         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
9613         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
9614         with #ifndef GENERATOR_FILE so that nothing from those headers
9615         is used.
9616
9617         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
9618
9619 2004-08-16  Adam Nemet  <anemet@lnxw.com>
9620
9621         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
9622
9623 2004-08-16  Andrew Pinski  <apinski@apple.com>
9624
9625         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
9626         extraneous semicolon.
9627
9628 2004-08-16  Devang Patel  <dpatel@apple.com>
9629
9630         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
9631         * print-tree.c (print_node): Print DECL_PRESERVE_P.
9632         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
9633         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
9634         * target.h (struct gcc_target): New member, mark_decl_preserved.
9635         * hooks.c (hook_void_charptr): Rename to ...
9636         (hook_void_constcharptr): ... new name.
9637         * hooks.h (hook_void_charptr): Rename to ..
9638         (hook_void_constcharptr): ... new name.
9639         * tree.h (DECL_PRESERVE_P): New #define.
9640         (struct tree_decl): New member, preserve_flag.
9641         * varasm.c (assemble_start_function): Mark decl preserved.
9642         (assemble_variable): Same.
9643         * darwin.c (darwin_mark_decl_preserved): New function.
9644         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
9645         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
9646         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
9647
9648 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
9649
9650         * c-decl.c (grokdeclarator): Allow for function definition where
9651         innermost declarator has attributes.
9652
9653 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
9654
9655         * except.c (get_exception_filter, build_post_landing_pads,
9656         dw2_build_landing_pads): Use target-specific mode for 'filter'.
9657         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
9658         * target.h (eh_return_filter_mode): New field added.
9659         * targhooks.c (default_eh_return_filter_mode): Defined.
9660         * targhooks.h (default_eh_return_filter_mode): Declared.
9661         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
9662
9663 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
9664
9665         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
9666         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
9667         * configure: Regenerate.
9668
9669 2004-08-16  Stan Shebs  <shebs@apple.com>
9670
9671         Basic support for 64-bit Darwin.
9672         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
9673         (machopic_legitimize_pic_address): Similarly, plus use Pmode
9674         instead of SImode.
9675         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
9676         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
9677         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
9678         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
9679         (PROCESSOR_DEFAULT64): Define.
9680         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
9681         Darwin.
9682         * config/rs6000/rs6000.md: Include darwin.md.
9683         (builtin_setjmp_receiver): Add DImode case.
9684         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
9685         Darwin.
9686         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
9687         (rs6000_emit_move): Add DImode case to Darwin bits.
9688         (machopic_output_stub): Use .quad if 64-bit.
9689         * invoke.texi: Document -m32 and -m64.
9690
9691 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
9692
9693         * doc/extend.texi (AltiVec builtins): Document additional differences
9694         from the Motorola AltiVec PIM.
9695
9696 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
9697
9698         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
9699         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
9700         (struct tree_common): Update public_flag documentation.
9701
9702 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
9703
9704         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
9705         Check for artificial variables, not is_gimple_tmp_var.
9706         * tree-ssa-live.c (var_union): Likewise.
9707
9708 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
9709
9710         * calls.c (load_register_parameters): Remove spurious FIXME token.
9711
9712 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
9713
9714         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
9715         (c-lang.o): Depend on c-objc-common.h.
9716         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
9717         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
9718         * c-lang.c: Include c-objc-common.h.
9719         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
9720         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
9721         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
9722         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
9723         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
9724         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
9725         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
9726         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
9727         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
9728         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
9729         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
9730         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
9731         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
9732         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
9733         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
9734         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
9735         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
9736         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
9737         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
9738         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
9739         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
9740         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
9741         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
9742         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
9743         Move to c-objc-common.h.
9744         * c-objc-common.c: Include c-objc-common.h.
9745         * c-objc-common.h: New file.
9746
9747 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
9748             Andrew Pinski  <pinskia@physics.uc.edu>
9749
9750         PR target/14931
9751         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
9752         style.
9753
9754 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
9755
9756         * tree.h (build_int_cst): New.
9757         (build_int_2): Remove.
9758         * tree.c (build_int_2): Remove.
9759         (build_int_cst): New.
9760         (make_vector_type, build_common_tree_nodes,
9761         build_common_tree_nodes_2): Use build_int_cst.
9762         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
9763         expand_builtin_strpbrk, expand_builtin_fputs,
9764         build_string_literal, expand_builtin_printf,
9765         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
9766         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
9767         fold_builtin_isdigit, simplify_builtin_strstr,
9768         simplify_builtin_strpbrk, fold_builtin_fputs,
9769         simplify_builtin_sprintf): Use build_int_cst.
9770         * c-common.c (start_fname_decls, fix_string_type,
9771         c_common_nodes_and_builtins, c_init_attributes,
9772         shorten_compare): Likewise.
9773         * c-decl.c (complete_array_type,
9774         check_bitfield_type_and_width): Likewise.
9775         * c-lex.c (interpret_integer, lex_charconst): Likewise.
9776         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
9777         * c-pretty-print.c (pp_c_integer_constant): Likewise.
9778         * c-typeck.c (really_start_incremental_init, push_init_level,
9779         set_nonincremental_init_from_string): Likewise.
9780         * calls.c (load_register_parameters): Likewise.
9781         * convert.c (convert_to_pointer): Likewise.
9782         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
9783         build_fn_info_type, build_ctr_info_value, build_gcov_info):
9784         Likewise.
9785         * except.c (init_eh, assign_filter_values, assign_filter_values):
9786         Likewise.
9787         * expmed.c (store_fixed_bit_field, extract_bit_field,
9788         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
9789         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
9790         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
9791         * expr.c (convert_move, emit_group_load, emit_group_store,
9792         expand_assignment, store_constructor, store_field,
9793         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
9794         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
9795         invert_truthvalue, optimize_bit_field_compare,
9796         decode_field_reference, all_ones_mask_p, constant_boolean_node,
9797         fold_div_compare, fold, fold_read_from_constant_string,
9798         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
9799         * function.c (assign_parm_setup_block): Likewise.
9800         * stmt.c (shift_return_value, expand_end_case_type,
9801         estimate_case_costs): Likewise.
9802         * stor-layout.c (layout_type, initialize_sizetypes,
9803         set_min_and_max_values_for_integral_type): Likewise.
9804         * tree-chrec.c (chrec_fold_multiply_poly_poly,
9805         reset_evolution_in_loop): Likewise.
9806         * tree-chrec.h (build_polynomial_chrec): Likewise.
9807         * tree-complex.c (build_replicated_const): Likewise.
9808         * tree-eh.c (honor_protect_cleanup_actions,
9809         lower_try_finally_onedest, lower_try_finally_copy,
9810         lower_try_finally_switch): Likewise.
9811         * tree-mudflap.c (mf_build_string, mx_register_decls,
9812         mudflap_register_call, mudflap_enqueue_constant): Likewise.
9813         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
9814         * tree-pretty-print.c (dump_generic_node): Likewise.
9815         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
9816         Likewise.
9817         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
9818         * tree-ssa-loop-niter.c (number_of_iterations_cond,
9819         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
9820         Likewise.
9821
9822         * config/alpha/alpha.c (alpha_initialize_trampoline,
9823         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
9824         * config/arm/arm.c (arm_get_cookie_size): Likewise.
9825         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
9826         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
9827         * config/i860/i860.c (i860_va_start): Likewise.
9828         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
9829         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
9830         mips_gimplify_va_arg_expr): Likewise.
9831         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
9832         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
9833         add_compiler_branch_island): Likewise.
9834         * config/s390/s390.c (s390_va_start): Likewise.
9835         * config/sh/sh.c (sh_va_start): Likewise.
9836         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
9837         Likewise.
9838         * config/xtensa/xtensa.c (xtensa_va_start,
9839         xtensa_gimplify_va_arg_expr): Likewise.
9840
9841         * objc/objc-act.c (build_objc_string_object,
9842         build_objc_symtab_template, init_def_list, init_objc_symtab,
9843         init_module_descriptor, generate_static_references,
9844         build_selector_translation_table, get_proto_encoding,
9845         build_typed_selector_reference, build_selector_reference,
9846         build_next_objc_exception_stuff,
9847         build_method_prototype_list_template, generate_descriptor_table,
9848         generate_protocols, build_protocol_initializer,
9849         build_ivar_list_template, build_method_list_template,
9850         build_ivar_list_initializer, generate_ivars_list,
9851         generate_dispatch_table, generate_protocol_list,
9852         build_category_initializer, build_shared_structure_initializer,
9853         generate_shared_structures, handle_impent,
9854         generate_objc_image_info): Use build_int_cst.
9855
9856 2004-08-15  Ben Elliston  <bje@au.ibm.com>
9857
9858         * vec.h: Comment improvements.
9859
9860 2004-08-14  Roger Sayle  <roger@eyesopen.com>
9861
9862         * c-common.c (shorten_compare, pointer_int_sum,
9863         c_common_truthvalue_conversion, boolean_increment): Replace calls
9864         to build with calls to buildN.
9865         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
9866         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
9867         gimplify_switch_stmt): Likewise.
9868         * c-typeck.c (default_function_array_conversion,
9869         build_component_ref, build_array_ref, build_function_call,
9870         pointer_diff, build_unary_op, build_conditional_expr,
9871         build_compound_expr, build_modify_expr, c_finish_goto_label,
9872         c_finish_goto_ptr, c_finish_return, c_finish_loop,
9873         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
9874         build_binary_op): Likewise.
9875
9876 2004-08-15  Steven Bosscher  <stevenb@suse.de>
9877
9878         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
9879
9880 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9881
9882         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
9883         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
9884         * fixinc/fixincl.x: Rebuilt.
9885
9886 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
9887
9888         * config/mips/mips-protos.h (mips_symbolic_constant_p)
9889         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
9890         (mips_small_data_pattern_p): Declare.
9891         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
9892         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
9893         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
9894         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
9895         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
9896         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
9897         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
9898         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
9899         (pc_or_label_operand, call_insn_operand, move_operand)
9900         (consttable_operand, symbolic_operand, general_symbolic_operand)
9901         (global_got_operand, local_got_operand, stack_operand)
9902         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
9903         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
9904         (mips_small_data_pattern_p): Replace previous small_data_pattern
9905         predicate.  Turn into a bool () (rtx) function.
9906         * config/mips/predicates.md: New file.
9907         * config/mips/mips.md: Include it.  Use the target-independent
9908         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
9909         trap_comparison_operator and equality_op to equality_operator.
9910         Replace uses of small_int with the equivalent const_arith_operand.
9911         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
9912         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
9913         to fcc_reload_operand.
9914         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
9915
9916 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9917
9918         PR libstdc++/17005 partial fix.
9919         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
9920         except when generating ANSI/C89 code.
9921
9922 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
9923
9924         * c-common.c (shorten_compare): Use force_fit_type directly.
9925
9926 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
9927             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
9928             Dave Korn  <dk@artimi.com>
9929
9930         * doc/install.texi (Building): Avoid duplicate reference to GNU
9931         make requirement.
9932         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
9933
9934 2004-08-14  Richard Henderson  <rth@redhat.com>
9935
9936         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
9937         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
9938
9939 2004-08-13  Richard Henderson  <rth@redhat.com>
9940
9941         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
9942         for constant_call_address_operand.
9943         (call_value_pop_1, call_value_1): Likewise.
9944         (sibcall_value_1, call_value_1_rex64): Likewise.
9945
9946 2004-08-13  James E Wilson  <wilson@specifixinc.com>
9947
9948         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
9949         Correct mode from SFmode to DFmode.
9950
9951 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
9952
9953         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
9954         __cstring_object and __image_info sections with the no_dead_strip
9955         attribute.
9956
9957 2004-08-13  Roger Sayle  <roger@eyesopen.com>
9958             David Billinghurst  <David.Billinghurst@riotinto.com>
9959
9960         PR libgfortran/15930
9961         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
9962         * fixinc/fixincl.x: Regenerate.
9963         * fixinc/tests/base/internal/math_core.h: New file.
9964
9965 2004-08-13  Richard Henderson  <rth@redhat.com>
9966
9967         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
9968         (dbxout_function_end): Remove ifdefs for it.
9969         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
9970
9971 2004-08-13  Richard Henderson  <rth@redhat.com>
9972
9973         * Makefile.in (insn-preds.o): Depend on TREE_H.
9974         * genpreds.c (write_insn_preds_c): Include tree.h.
9975         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
9976         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
9977         const48_operand, and_operand, or_operand, mode_width_operand,
9978         mode_mask_operand, mul8_operand, const0_operand,
9979         hard_fp_register_operand, hard_int_register_operand,
9980         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
9981         samegp_function_operand, direct_call_operand, small_symbolic_operand,
9982         global_symbolic_operand, call_operand, symbolic_operand,
9983         dtp16_symbolic_operand, dtp32_symbolic_operand,
9984         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
9985         gottp_symbolic_operand, alpha_comparison_operator,
9986         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
9987         signed_comparison_operator, alpha_fp_comparison_operator,
9988         divmod_operator, fix_operator, aligned_memory_operand,
9989         unaligned_memory_operand, reg_or_unaligned_mem_operand,
9990         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
9991         reg_no_subreg_operand, addition_operation): Move to predicates.md.
9992         (reg_or_const_int_operand): Remove.  Replace all users with
9993         reg_or_cint_operand.
9994         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
9995         (resolve_reload_operand): Split out of aligned_memory_operand.
9996         * config/alpha/alpha-protos.h: Update for exports.
9997         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
9998         * config/alpha/alpha.md: Include predicates.md.
9999         * config/alpha/predicates.md: New file.
10000
10001 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
10002
10003         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
10004         fields with a pointer to the instruction definition.
10005         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
10006         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
10007         (write_attr_case, write_const_num_delay_slots): Update accordingly.
10008         (write_attr_case, write_const_num_delay_slots): Write the name of
10009         an insn next to its case statement.
10010         * genoutput.c (data): Add a filename field.
10011         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
10012         (output_insn_data): Print the location of each insn definition.
10013         * genrecog.c (write_action): Print the name of an insn above
10014         the statement that returns its code.
10015
10016 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
10017
10018         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
10019         * config/libgloss.h: Likewise.
10020         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
10021         * c4x/c4x-modes.def: Likewise.
10022         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
10023         (c4x_rptb_nop_p): Likewise.
10024         (c4x_rptb_valid_p): Likewise.
10025         (c4x_rptb_insert): Likewise.
10026         (c4x_address_conflict): Likewise.
10027         * config/c4x/c4x.md: Likewise.
10028         * config/frv/frv.md: Likewise.
10029         * config/i386/athlon.md: Likewise.
10030         * config/i386/i386.md: Likewise.
10031         * config/i386/predicates.md: Likewise.
10032         * config/ia64/ia64.c: Likewise.
10033         * config/ia64/itanium1.md: Likewise.
10034         * config/ia64/itanium2.md: Likewise.
10035         * config/iq2000/iq2000.md: Likewise.
10036         * config/mcore/mcore.c: Likewise.
10037         * config/mips/mips.c: Likewise.
10038         * config/mips/r3900.h: Likewise.
10039         * config/mips/sb1.md: Likewise.
10040         * config/pa/milli64.S: Likewise.
10041         * config/pa/pa.c: Likewise.
10042         * config/pa/pa.h: Likewise.
10043         * config/rs6000/8540.md: Likewise.
10044
10045 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
10046
10047         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
10048
10049 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
10050
10051         * sh.md (cbranch define_delay) Use cond_delay_slot for
10052         non-anulled condition too.
10053
10054 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
10055
10056         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
10057         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
10058         any_parallel_operand, lmw_operation, stmw_operation,
10059         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
10060         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
10061         any_parallel_operand.
10062         (return_and_restore_fpregs_{si,di}): Same.
10063
10064 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
10065
10066         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
10067         if pred->singleton != PARALLEL, issue a warning and pretend it was.
10068         Also issue a warning for any predicate we don't know about.
10069
10070 2004-08-12  Richard Henderson  <rth@redhat.com>
10071
10072         * config/i386/i386.c (internal_label_prefix): Export.
10073         (internal_label_prefix_len, struct ix86_address,
10074         ix86_decompose_address, maybe_get_pool_constant,
10075         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
10076         memory_address_length): Export.
10077         (any_fp_register_operand, fp_register_operand,
10078         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
10079         x86_64_general_operand, x86_64_szext_general_operand,
10080         x86_64_nonmemory_operand, x86_64_movabs_operand,
10081         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
10082         x86_64_zext_immediate_operand, const_int_1_31_operand,
10083         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
10084         tls_symbolic_operand, global_dynamic_symbolic_operand,
10085         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
10086         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
10087         constant_call_address_operand, const0_operand, const1_operand,
10088         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
10089         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
10090         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
10091         general_no_elim_operand, nonmemory_no_elim_operand,
10092         index_register_operand, q_regs_operand, flags_reg_operand,
10093         non_q_regs_operand, zero_extended_scalar_load_operand,
10094         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
10095         ix86_comparison_operator, ix86_carry_flag_operator,
10096         fcmov_comparison_operator, promotable_binary_operator,
10097         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
10098         mult_operator, div_operator, arith_or_logical_operator,
10099         memory_displacement_operand, cmpsi_operand, long_memory_operand,
10100         aligned_operand): Move to predicates.md as define_predicates.
10101         (tls_symbolic_operand_1): Remove.
10102         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
10103         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
10104         (legitimize_address): Merge tls_symbolic_operand contents.
10105         (ix86_expand_move): Likewise.
10106         * config/i386/i386-protos.h: Update for exports.
10107         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
10108         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
10109         * config/i386/i386.md: Include predicates.md.
10110         * config/i386/predicates.md: New file.
10111
10112 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
10113
10114         PR c++/16924
10115         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
10116         SYMBOL_REF_DECL.
10117         (i386_pe_mark_dllimport): Likewise.
10118         (i386_pe_encode_section_info): Likewise, when overriding
10119         dllimport attribute.
10120
10121 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
10122
10123         * configure.ac: When testing for flex, nm, ar, and bison, check
10124         that they will actually be built.
10125         * configure: Regenerate.
10126
10127 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
10128
10129         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
10130         (MOVE_MAX_PIECES): Define.
10131
10132 2004-08-12  Devang patel  <dpatel@apple.com>
10133
10134         * dbxout.c (dbxout_begin_prologue): New function.
10135         (dbx_debug_hooks): Use new begin prologue hook.
10136         (dbxout_function_end): Emit N_ENSYM.
10137         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
10138
10139 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
10140
10141         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
10142         argument is float*.
10143
10144         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
10145         for vec_dss.
10146
10147         * doc/extend.texi (AltiVec builtins): Fix description for recent
10148         changes.  Update operation list to match current support.
10149
10150 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
10151
10152         * config/s390/s390.c (struct s390_frame_layout): New struct as element
10153         of struct machine_function.
10154         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
10155         changed all uses.
10156         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
10157         changed all uses.
10158         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
10159         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
10160         (s390_frame_area, s390_register_info): New functions.
10161         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
10162         for base register.
10163         (s390_return_addr_rtx, s390_return_address_offset)
10164         (s390_va_start, s390_gimplify_va_arg)
10165         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
10166         layouts.
10167         (s390_frame_info): Functionality partly moved to s390_register_info.
10168         Made adaptions for new stack layout.
10169         (save_gprs, restore_gprs): Changed meaning of second parameter and
10170         adapted all callers.
10171
10172         * config/s390/s390.h (s390_backchain_string): New global variable.
10173         (MASK_BACKCHAIN): Removed definition.
10174         (TARGET_BACKCHAIN): Changed check.
10175         (TARGET_KERNEL_BACKCHAIN): New macro.
10176         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
10177         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
10178         "kernel-backchain".
10179         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
10180
10181         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
10182         as condition.  Adjusted for new stack layout.
10183
10184         * doc/invoke.texi: Added documentation for new option
10185         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
10186         "-mno-backchain".
10187
10188 2004-08-12  Paul Brook  <paul@codesourcery.com>
10189
10190         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
10191         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
10192
10193 2004-08-12  David Daney  <ddaney@avtrex.com>
10194
10195         * java/gcj.texi:  Add subsection on signal usage.
10196
10197 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
10198
10199         * expr.c (move_by_pieces): Set alignment for move to minimum of
10200         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
10201         alignment, but not less than the original alignment.
10202         (move_by_pieces_ninsns): Same.
10203         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
10204         (store_by_pieces_1): Same.
10205
10206 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
10207
10208         PR tree-optimization/16867
10209         * tree.c (is_global_var): New function.
10210         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
10211         Call is_global_var.
10212         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
10213         Update all users.
10214         (is_global_var): Declare.
10215         * tree-dfa.c (dump_variable): Display global and addressable
10216         attributes.
10217         (add_referenced_var): Clarify documentation when marking
10218         variables call-clobbered.
10219         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
10220         instead of needs_to_live_in_memory.
10221         (mark_call_clobbered): If the variable is a tag, mark it
10222         DECL_EXTERNAL.
10223         * tree-gimple.c (is_gimple_reg): Don't check for
10224         TREE_ADDRESSABLE.
10225         (is_gimple_non_addressable): Likewise.
10226         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
10227         needs to be marked call-clobbered.
10228         (setup_pointers_and_addressables): Call is_global_var instead
10229         of needs_to_live_in_memory.
10230         * tree-ssa-dce.c (need_to_preserve_store): Remove.
10231         Update all users with is_global_var.
10232         (mark_stmt_if_obviously_necessary): Fix processing of aliased
10233         stores.  Don't check the virtual definitions.  Rather, check
10234         whether the store is going into global memory.
10235         (find_obviously_necessary_stmts): Get the symbol from the PHI
10236         result.
10237         * tree-ssa-operands.c (get_call_expr_operands): Do not add
10238         clobbering may-defs if the call does not have side effects.
10239
10240 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
10241
10242         PR c++/16276
10243         * output.h (default_function_rodata_section,
10244         default_no_function_rodata_section): New prototypes.
10245         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
10246         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
10247         (TARGET_ASM_OUT): Add it.
10248         * varasm.c (default_function_rodata_section,
10249         default_no_function_rodata_section): New functions.
10250         * final.c (final_scan_insn): Call
10251         targetm.asm_out.function_rodata_section instead of
10252         readonly_data_section.
10253         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
10254         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
10255         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
10256         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
10257         Likewise.
10258         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
10259         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
10260         Likewise.
10261         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
10262         Likewise.
10263         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
10264         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
10265         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
10266
10267 2004-08-12  Paul Brook  <paul@codesourcery.com>
10268
10269         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
10270         frame info.
10271         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
10272         DWARF2_UNWIND_INFO.
10273
10274 2004-08-12  Ben Elliston  <bje@au.ibm.com>
10275
10276         PR target/16286
10277         * config/rs6000/altivec.h: Change vector to __vector throughout.
10278         (Except for the `vector' macro itself).
10279
10280 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
10281
10282         * genpreds.c: Add capability to generate predicate bodies as
10283         well as function prototypes.  Write function prototypes for
10284         the generic predicates too.
10285         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
10286         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
10287         (write_match_code, write_predicate_expr, write_one_predicate_function)
10288         (parse_option): New functions.
10289         (output_predicate_decls): Delete.
10290         (main): Read the machine description, process DEFINE_PREDICATE or
10291         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
10292         as appropriate.
10293
10294         * genrecog.c (struct decision_test): Replace index with
10295         struct pred_data pointer.
10296         (next_index): Remove, unused.
10297         (pred_table, preds, special_mode_pred_table): Delete.
10298         (compute_predicate_codes, process_define_predicate): New functions.
10299         (validate_pattern, add_to_sequence, write_switch): Update for
10300         new data structures.
10301         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
10302         Check both error_count and have_error.
10303
10304         * gensupport.c (in_fname, first_predicate): New globals.
10305         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
10306         (predicate_table, last_predicate, old_pred_table)
10307         (old_special_pred_table): New statics.
10308         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
10309         (add_predicate, init_predicate_table): New functions.
10310         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
10311         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
10312         it or max_include_len.  Call init_predicate_table.
10313         (read_rtx): Run the predicate queue after the attribute queue
10314         but before all the others.
10315         * gensupport.h (in_fname, struct pred_data, first_predicate)
10316         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
10317         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
10318         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
10319         * dummy-conditions.c: Don't include bconfig.h, system.h,
10320         coretypes.h, tm.h, or system.h.  Do include stddef.h.
10321         Duplicate declaration of struct c_test from gensupport.h.
10322
10323         * Makefile.in (OBJS-common): Add insn-preds.o.
10324         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
10325         (insn-preds.c, insn-preds.o): New rules.
10326         (s-preds): Also generate insn-preds.c.
10327         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
10328         Update dependencies.
10329         (print-rtl.o, print-rtl1.o): Correct dependencies.
10330
10331         * recog.h: Delete prototypes of predicate functions.
10332
10333         * doc/md.texi (Predicates): New section with complete
10334         documentation of operand/operator predicates.  Remove some
10335         incomplete documentation of predicates from other places.
10336         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
10337         PREDICATE_CODES; indicate that both are deprecated in favor
10338         of define_predicate/define_special_predicate.
10339
10340         * config/ia64/ia64.c: All predicate function definitions moved
10341         to ia64.md, except
10342         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
10343         (ia64_expand_load_address, ia64_expand_move):
10344         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
10345
10346         * config/ia64/ia64.md: All predicates now defined here.
10347         (symbolic_operand): Is now a special predicate.
10348
10349         * config/ia64/ia64.h: Declare ia64_section_threshold.
10350         (PREDICATE_CODES): Delete.
10351
10352 2004-08-12  Richard Henderson  <rth@redhat.com>
10353
10354         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
10355         * c-semantics.c (add_stmt): Set it.
10356         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
10357         before instantiating a variable sized type.
10358
10359 2004-08-12  Richard Henderson  <rth@redhat.com>
10360
10361         * stor-layout.c (round_up, round_down): Move ...
10362         * fold-const.c (round_up, round_down): ... here.  Use
10363         multiple_of_p to avoid any arithmetic at all.
10364
10365 2004-08-12  Richard Henderson  <rth@redhat.com>
10366
10367         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
10368         (gimplify_init_ctor_preeval_1): New.
10369         (gimplify_init_ctor_preeval): New.
10370         (gimplify_init_ctor_eval): New.
10371         (gimplify_init_constructor): Use them.  Always gimplify the LHS
10372         object first.
10373
10374 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
10375
10376         (This patch is part of merge of objc-improvements-branch
10377         into mainline.)
10378
10379         * doc/frontends.texi: Mention Objective-C++ in addition to
10380         Objective-C.
10381         * doc/install.texi: Add 'obj-c++' to list of configurable
10382         languages.
10383         * doc/invoke.texi: Rename Objective-C option headings to
10384         indicate they also apply to Objective-C++.  List file
10385         extensions for Objective-C++ sources.  Mention that
10386         ObjC and ObjC++ compilations may also use C and C++ options,
10387         respectively.  Point users to doc/standards.texi for
10388         further info on ObjC and ObjC++.
10389         * doc/sourcebuild.texi: Mention the objcp/ directory and
10390         the Objective-C++ sources it contains.
10391         * doc/standards.texi: Update link to Apple ObjC site;
10392         add link to gcc readings.html WWW doc.
10393
10394 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
10395
10396         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
10397         and 2004-07-14 changes.
10398
10399 2004-08-12  Paul Brook  <paul@codesourcery.com>
10400
10401         * doc/invoke.texi: Fix typo.
10402
10403 2004-08-11 Devang Patel  <dpatel@apple.com>
10404
10405         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
10406         and -no_dead_strip_inits_and_terms.
10407         (LINK_SPEC): Same.
10408         * doc/invoke.texi (Darwin Options): Document -dead_strip and
10409         -no_dead_strip_inits_and_terms.
10410
10411 2004-08-11  Paul Brook  <paul@codesourcery.com>
10412
10413         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
10414         (arm_load_pic_register): ... to this.
10415         * config/arm/arm.c (arm_finalize_pic): Rename ...
10416         (arm_load_pic_register): ... to this.  Always output insns at the
10417         current location.  Load via low reg in thumb mode.
10418         (arm_expand_prologue): Call arm_load_pic_register.
10419         (thumb_expand_prologue): Ditto.
10420         * config/arm/arm.h (FINALIZE_PIC): Remove.
10421         * config/arm/arm.md (builtin_setjmp_receiver): Call
10422         arm_load_pic_register.
10423
10424 2004-08-11  Paul Brook  <paul@codesourcery.com>
10425
10426         * arm.c (thumb_force_lr_save): Add prototype.
10427         (thumb_compute_save_reg_mask): New function.
10428         (thumb_find_work_register): New function.
10429         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
10430         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
10431         Don't clobber r3 when removing pretend args.
10432         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
10433         (thumb_output_function_prologue): Use new functions.
10434         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
10435         * arm.h (THUMB_REG_PUSHED_P): Remove.
10436
10437 2004-08-11  James E Wilson  <wilson@specifixinc.com>
10438
10439         PR rtl-optimization/16490
10440         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
10441         global_live_at_end for new basic block if already set for other blocks.
10442
10443 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
10444
10445         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
10446
10447         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
10448         (mfcr rlwinm rlwinm patterns): Set length to 12.
10449
10450 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
10451
10452         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
10453         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
10454         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
10455         (start_ssa_stmt_operands): Delete.
10456         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
10457         struct stmt_operands_d.
10458         (build_ssa_operands): New extern entry point.
10459         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
10460         building code, replace with create_ssa_artficial_load_stmt().
10461         * tree-ssa-operands.c (struct voperands_d): Delete.
10462         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
10463         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
10464         (free_uses, free_defs, free_vuses, free_v_may_defs,
10465         free_v_must_defs): Remove dealloc parameter.
10466         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
10467         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
10468         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
10469         vector comparisons, ssa_name reuse, and allocations here.
10470         (verify_start_operands): Delete.
10471         (finalize_ssa_stmt_operands): Set new operands by calling finalize
10472         routines.
10473         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
10474         (append_def, append_usei): Simplify to simple accumulation.
10475         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
10476         duplicates and simple accumulation.
10477         (free_ssa_operands): Free vectors in a stmt_operand structure.
10478         (build_ssa_operands): New. Create a new stmt_operand structure from
10479         a stmt and an old set of stmt_operands.
10480         (get_stmt_operands): Simplify and call build_ssa_operands.
10481         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
10482         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
10483         add_call_read_ops): Don't pass prev_vops around anymore.
10484         (note_addressable): Return if no stmt annotation.
10485         (copy_virtual_operands): Access v_may_def operands through a struct.
10486         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
10487         hash tables without treating the stmt as a real stmt.
10488         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
10489         v_may_def def and use through a struct instead of 2 array elements.
10490         (struct v_may_def_optype_d): Use v_may_def_operand_type.
10491         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
10492
10493 2004-08-11  Nick Clifton  <nickc@redhat.com>
10494
10495         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
10496         this funciton's behaviour.  Return true when the current function
10497         has a section attribute and -mlong-calls is in effect.
10498         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
10499         short-call marker when -mlong-calls is in effect and the function
10500         has a section attribute.
10501
10502 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
10503
10504         * stmt.c (expand_return): If asked to return the RESULT_DECL,
10505         just call expand_value_return on result_rtl.
10506
10507 2004-08-10  Richard Henderson  <rth@redhat.com>
10508
10509         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
10510         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
10511         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
10512         (add_location_or_const_value_attribute): ... not here.  Use
10513         loc_descriptor_from_tree if possible.
10514         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
10515         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
10516         values specially.
10517         (loc_descriptor_from_tree): New.  Update callers.
10518         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
10519         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
10520         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
10521         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
10522         and BUILT_IN_STACK_RESTORE.
10523         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
10524         * stmt.c (expand_stack_alloc): Remove.
10525         * tree-mudflap.c (mx_register_decls): Don't look for
10526         BUILT_IN_STACK_ALLOC.
10527         * tree-nested.c (convert_local_reference): Likewise.
10528         * tree.h (DECL_VALUE_EXPR): New.
10529
10530 2004-08-10  Richard Henderson  <rth@redhat.com>
10531
10532         * stor-layout.c (round_up): Check for 0/1 before dividing.
10533         (round_down): Likewise.
10534
10535         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
10536
10537 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
10538
10539         * config.gcc (arm*-*-eabi*): New target.
10540         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
10541         (TARGET_LIB_INT_CMP_BIASED): Likewise.
10542         * expmed.c (expand_divmod): Try a two-valued divmod function as a
10543         last resort.
10544         * gthr.h: Remove bogus tokens at end of #pragma.
10545         * optabs.c (expand_twoval_binop_libfunc): New function.
10546         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
10547         (prepare_float_lib_cmp): Try reversing the condition.
10548         (debug_optab_libfuncs): New function.
10549         * optabs.h (expand_twoval_binop_libfunc): Declare.
10550         * config/arm/arm.c (arm_init_libfuncs): New function.
10551         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
10552         (TARGET_INIT_LIBFUNCS): Define it.
10553         * config/arm/arm.h (TARGET_BPABI): New macro.
10554         * config/arm/arm-protos.h
10555         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
10556         * config/arm/bpabi.S: New file.
10557         * config/arm/bpabi.c: Likewise.
10558         * config/arm/bpabi.h: Likewise.
10559         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
10560         (__aeabi_drsub): Likewise.
10561         (__aeabi_dsub): Likewise.
10562         (__aeabi_dadd): Likewise.
10563         (__aeabi_ui2d): Likewise.
10564         (__aeabi_i2d): Likewise.
10565         (__aeabi_f2d): Likewise.
10566         (__aeabi_dmul): Likewise.
10567         (__aeabi_ddiv): Likewise.
10568         (__aeabi_cdrcmple): Likewise.
10569         (__aeabi_cdcmpeq): Likewise.
10570         (__aeabi_cdcmple): Likewise.
10571         (__aeabi_dcmpeq): Likewise.
10572         (__aeabi_dcmplt): Likewise.
10573         (__aeabi_dcmple): Likewise.
10574         (__aeabi_dcmpge): Likewise.
10575         (__aeabi_dcmpgt): Likewise.
10576         (__aeabi_dcmpun): Likewise.
10577         (__aeabi_d2iz): Likewise.
10578         (__aeabi_d2uiz): Likewise.
10579         (__aeabi_d2f): Likewise.
10580         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
10581         (__aeabi_frsub): Likewise.
10582         (__aeabi_fsub): Likewise.
10583         (__aeabi_fadd): Likewise.
10584         (__aeabi_ui2f): Likewise.
10585         (__aeabi_i2f): Likewise.
10586         (__aeabi_fmul): Likewise.
10587         (__aeabi_fdiv): Likewise.
10588         (__aeabi_cfrcmple): Likewise.
10589         (__aeabi_cfcmpeq): Likewise.
10590         (__aeabi_cfcmple): Likewise.
10591         (__aeabi_fcmpeq): Likewise.
10592         (__aeabi_fcmplt): Likewise.
10593         (__aeabi_fcmple): Likewise.
10594         (__aeabi_fcmpge): Likewise.
10595         (__aeabi_fcmpgt): Likewise.
10596         (__aeabi_fcmpun): Likewise.
10597         (__aeabi_f2iz): Likewise.
10598         (__aeabi_f2uiz): Likewise.
10599         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
10600         (__aeabi_uidivmod): New function or alias.
10601         (__aeabi_idivmod): Likewise.
10602         (__aeabi_idiv0): Likewise.
10603         (__aeabi_ldiv0): Likewise.
10604         (__aeabi_llsr): Likewise.
10605         (__aeabi_lasr): Likewise.
10606         (__aeabi_llsl): Likewise.
10607         (bpabi.S): Include it.
10608         * config/arm/libgcc-bpabi.ver: New file.
10609         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
10610         (LINK_SPEC): Remove.
10611         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
10612         __aeabi_ulcmp.
10613         * config/arm/t-bpabi: New file.
10614         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
10615         (TARGET_LIB_INT_CMP_BIASED): Likewise.
10616
10617 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
10618
10619         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
10620         * config/rs6000/rs6000.md (clrmemsi): New pattern.
10621         * config/rs6000/rs6000.c (expand_block_clear): New function.
10622         (expand_block_move): Convert alignment to bits.  Use SImode and
10623         HImode for unaligned addresses if not STRICT_ALIGNMENT.
10624
10625 2004-08-10  Caroline Tice  <ctice@apple.com>
10626
10627         * varasm.c (unlikely_section_label): New global variable.
10628         (unlikely_text_section_name): New global variable.
10629         (text_section):  Remove alignment statement.
10630         (unlikely_text_section): Remove alignment statement; use
10631         unlikely_section_label rather than hard-coded string.
10632         (assemble_start_function): Initialize unlikely_section_label and
10633         unlikely_text_section_name;  make sure cold section is properly
10634         aligned at start of function; output unlikely_section_label if
10635         appropriate.
10636
10637 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
10638
10639         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
10640         * config/s390/s390.c (s390_canonicalize_comparison): New function.
10641         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
10642         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
10643         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
10644         ("*tmqi_mem"): Remove SUBREG from pattern.
10645         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
10646         ("*andsi3_cconly"): Likewise.
10647
10648 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
10649
10650         PR target/16909
10651         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
10652
10653 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
10654
10655         * doc/sourcebuild.texi (compat testing): Document available test
10656         framework commands.  Use the preferred spelling of DejaGnu.
10657
10658 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
10659
10660         * lambda.h: Add matrix type, and prototypes for remainder of
10661         matrix and vector functions.
10662         (lambda_vector_mult_const): New function.
10663         (lambda_vector_negate): Ditto.
10664         (lambda_vector_add): Ditto.
10665         (lambda_vector_add_mc): Ditto.
10666         (lambda_vector_copy): Ditto.
10667         (lambda_vector_zerop): Ditto.
10668         (lambda_vector_equal): Ditto.
10669         (lambda_vector_min_nz): Ditto.
10670         (lambda_vector_first_nz): Ditto.
10671         (lambda_vector_matrix_mult): Ditto.
10672         * lambda-mat.c: New file.
10673         * Makefile.in (lambda-mat.o): New.
10674
10675 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
10676
10677         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
10678         after linking stmt into the program.
10679         (bsi_remove): Don't call modify_stmt.
10680         * tree-complex.c (update_complex_assignment,
10681         expand_complex_comparison): Call modify_stmt after changing the stmt.
10682         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
10683         removing the stmt.
10684         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
10685         the stmt, and only if needed.
10686         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
10687         expression.
10688         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
10689         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
10690         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
10691         (eliminate_redundant_computations): Don't pass an annotation. Call
10692         modify_stmt rather than setting the annotation directly.
10693         (record_equivalences_from_stmt): Remove unused local 'j'.
10694         (cprop_operand): Take a stmt rather than an annotation as a parameter.
10695         Call modify_stmt.
10696         (cprop_into_stmt): Pass stmt rather than annotation.
10697         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
10698         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
10699         modify_stmt.
10700         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
10701
10702 2004-08-10  Jason Merrill  <jason@redhat.com>
10703
10704         PR middle-end/16948
10705         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
10706         the RESULT_DECL.
10707
10708 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
10709
10710         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
10711         hash function.
10712
10713 2004-08-10  Roger Sayle  <roger@eyesopen.com>
10714
10715         * config/mips/mips.md: New reciprocal square root patterns that
10716         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
10717
10718 2004-08-10  Paul Brook  <paul@codesourcery.com>
10719
10720         * config/arm/arm-protos.h (arm_set_return_address,
10721         thumb_set_return_address): Add prototypes.
10722         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
10723         * config/arm/arm.c (arm_compute_func_type,
10724         use_return_insn, arm_compute_save_reg0_reg12_mask,
10725         arm_compute_save_reg_mask, arm_output_function_prologue,
10726         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
10727         current_function_calls_eh_return.
10728         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
10729         old eh code.
10730         (arm_set_return_address, thumb_set_return_address): New functions.
10731         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
10732         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
10733         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
10734         (epilogue): Use the stackadj register.
10735         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
10736
10737 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
10738
10739         PR target/3144
10740         * expr.c (move_by_pieces_ninsns): Add max_size argument.
10741         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
10742         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
10743         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
10744         but using MOVE_RATIO.
10745         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
10746         (can_store_by_pieces): Change max_size type to unsigned int.
10747         (store_by_pieces_1): Likewise.  Pass max_size to
10748         move_by_pieces_ninsns.
10749         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
10750         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
10751         to move_by_pieces_ninsns.
10752         (STORE_BY_PIECES_P): Define.
10753         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
10754         to move_by_pieces_ninsns.
10755         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
10756
10757         * config/i386/i386.h (CLEAR_RATIO): Define.
10758
10759 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
10760
10761         * expr.c (expand_expr_real_1): Add back code that was not dead.
10762
10763 2004-08-09  Andrew Pinski  <apinski@apple.com>
10764
10765         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
10766         which is found to be compatible before returning the aliasing set.
10767
10768 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
10769
10770         * ggc-zone.c (struct alloc_zone): Add statistics counters.
10771         (always_collect): New flag.
10772         (ggc_alloc_zone_1): Update statistics support.  Don't include
10773         overhead in allocated counter.
10774         (sweep_pages): Update allocated counter for large pages.  Don'y
10775         include overhead.
10776         (ggc_collect_1): Always collect.
10777         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
10778         whether to collect.
10779         (SCALE, LABEL): New macros.
10780         (ggc_print_statistics): Add statistics support.
10781
10782 2004-08-09  Roger Sayle  <roger@eyesopen.com>
10783
10784         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
10785         (init_expmed): Fix potential overrun problem with "all.reg".
10786         (expand_sdiv2_pow2): Add an alternate implementation for signed
10787         division, if the target provides a suitable conditional move insn.
10788
10789 2004-08-09  Paul Brook  <paul@codesourcery.com>
10790         Richard Henderson  <rth@redhat.com>
10791
10792         * unwind-dw2.c (uw_install_context_1): Update target saved stack
10793         pointer.
10794
10795 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
10796
10797         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
10798         Check DATA limit only if there's no AS limit.  Ignore insanely
10799         low DATA limits.
10800         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
10801         but take care that the AS limit isn't overrun.
10802         * doc/invoke.texi: Update documentation of min-heapsize parameter.
10803
10804 2004-08-09  Jeff Law  <law@redhat.com>
10805
10806         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
10807         (tree-ssa-threadupdate.o): Add dependencies.
10808         * tree-ssa-threadupdate.c: New file.
10809         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
10810         (rewrite_vars_out_of_ssa): Remove prototype.
10811         (cleanup_tree_cfg): Returns a bool.
10812         * tree.h (thread_through_all_blocks): Prototype.
10813         * tree-outof-ssa.c  (SSANORM_*): Move into here.
10814         (remove_ssa_form): Now static.
10815         (rewrite_vars_out_of_ssa): Kill.
10816         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
10817         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
10818         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
10819         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
10820         anything was changed.
10821         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
10822         from the PHI's annotation rather than the edge associated with
10823         the new argument.
10824         * tree-ssa-dom.c (redirection_edges): Kill.
10825         (redirect_edges_and_update_ssa_graph): Kill.
10826         (tree_ssa_dominator_optimize): Do not reset forwardable flag
10827         for blocks anymore.  Do not initialize redirection_edges.
10828         Call thread_through_all_blocks.  Simplify code for cleanup
10829         of the CFG and iterating.  No longer call cleanup_tree_cfg
10830         outside the iteration loop.
10831         (thread_across_edge): No longer mess with forwardable blocks.
10832
10833 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
10834
10835         * explow.c (memory_address): Use memory_address_p.
10836         * recog.c (general_operand): Likewise.
10837         * regrename.c: No need to define REG_OK_STRICT.
10838
10839 2004-08-09  Steven Bosscher  <stevenb@suse.de>
10840
10841         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
10842         New timers.
10843         * gcse.c: Include timevar.h.
10844         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
10845         and global_copy_prop_count.
10846         (local_const_prop_count, local_copy_prop_count): New static globals.
10847         (gcse_main): Set the right timevar for each pass.
10848         (cprop_jump): Increment global_const_prop_count when a constant is
10849         propagated.  Add "GLOBAL" to dump output.
10850         (cprop_insn): Increment global_const_prop_count when a constant is
10851         propagated, or global_copy_prop_count when a copy is propagated.
10852         (do_local_cprop): Likewise for local_const_prop_count and
10853         local_copy_prop_count.
10854         (one_cprop_pass): Initialize const/cprop counters to zero.
10855         Print out results of local and global const/cprop separately.
10856         (bypass_block): Break over-length line.
10857         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
10858         for bb-reorder.o and tracer.o.
10859
10860 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
10861
10862         * Makefile.in (GTFILES): Remove stmt.c
10863         (stmt.o): Do not depend on gt-stmt.h.
10864         * emit-rtl.c (emit_line_note): Do not call
10865         set_file_and_line_for_stmt.
10866         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
10867         do everything.
10868         * function.c (free_after_parsing): Do not free STMT field.
10869         (allocate_struct_function): Do not call init_stmt_for_function.
10870         (assign_stack_temp_for_type): Do not accept values of keep
10871         other than 0 or 1.
10872         (init_temp_slots): Do not initialize removed variables.
10873         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
10874         and X_VAR_TEMP_SLOT_LEVEL fields.
10875         * rtl.h (set_file_and_line_for_stmt): Remove.
10876         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
10877         struct stmt_status, cond_stack, case_stack, nesting_stack,
10878         nesting_depth, emit_locus, set_file_and_line_for_stmt,
10879         same_case_target_p, init_stmt_for_function, emit_nop,
10880         expand_start_cond, expand_start_elseif, expand_start_else,
10881         expand_elseif, expand_end_cond): Remove.
10882         (preserve_subexpressions_p): Remove references to CFUN->STMT.
10883         (expand_start_case, expand_end_case_type): Remove, merge into...
10884         (expand_case): ... this one, including other bits from
10885         expand_expr_real_1.  Inline same_case_target_p.  Turn members
10886         of CASE_STACK into local variables.
10887         (emit_case_bit_tests): Inline same_case_target_p.
10888         (add_case_node): Add HEAD argument, return new head of the list,
10889         do not handle default label here.
10890         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
10891         expand_start_elseif, current_nesting_level, expand_start_case,
10892         expand_end_case_type, expand_end_case, add_case_node,
10893         init_stmt_for_function, expand_elseif): Remove prototypes.
10894         (expand_case): Add prototype.
10895
10896 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
10897
10898         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
10899
10900 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
10901
10902         * expr.c (var_rtx): Remove.
10903         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
10904         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
10905         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
10906         Abort.
10907         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
10908         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
10909         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
10910
10911 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
10912         Ayal Zaks <zaks@il.ibm.com>
10913
10914         * common.opt (freschedule-modulo-scheduled-loops): New flag.
10915         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
10916         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
10917         when -freschedule-modulo-scheduled-loops flag is not specified.
10918         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
10919         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
10920         More accurate placing of insn in row of partial schedule.
10921         (ps_insn_find_column): New function.
10922         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
10923         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
10924         (schedule_region): Use sched_is_disabled_for_current_region_p.
10925         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
10926
10927 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
10928
10929         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
10930         change.
10931
10932 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
10933
10934         * config/i386/i386.c (ix86_expand_clrmem): Properly call
10935         gen_strset for 64bit target.
10936
10937 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
10938
10939         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
10940
10941 2004-08-07  Jason Merrill  <jason@redhat.com>
10942
10943         Make return in memory explicit.
10944         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
10945         (assign_parm_find_data_types): Remove code for old front end
10946         invisible reference handling.
10947         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
10948         (expand_function_end): Likewise.
10949         * gimplify.c (gimplify_return_expr): Handle a dereferenced
10950         RESULT_DECL.
10951         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
10952         (declare_return_variable): Handle DECL_BY_REFERENCE.
10953         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
10954         (cp_genericize_r): Use convert_from_reference.
10955         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
10956         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
10957
10958         * c-common.c (c_warn_unused_result): Check TREE_USED before
10959         warning about a CALL_EXPR with an unused value.
10960
10961 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
10962
10963         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
10964         to the compiler.  Use -fshort-wchar by default.
10965
10966 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
10967
10968         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
10969         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
10970         threshhold.
10971         * doc/invoke.texi (param): Document min-crossjump-insns.
10972
10973 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
10974
10975         PR c/13282
10976         * c.opt (Wmissing-field-initializers): New option.
10977         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
10978         * c-typeck.c (pop_init_level): Guard the missing field warning with
10979         warn_missing_field_initializers rather than extra_warnings.
10980         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
10981         some of the explanation from...
10982         (-Wextra): ...here.  Say that the missing field warning can be
10983         seperately controlled by -Wmissing-field-initializers.
10984
10985 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
10986
10987         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
10988         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
10989         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
10990         * tree.def (ENTRY_VALUE_EXPR): Remove.
10991
10992 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
10993
10994         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
10995         the places where it is actually needed.  Don't use repz; stosb
10996         for -Os with sufficiently small constant sizes.
10997         For sufficiently small repz; stos{l,q} repeat counts use a sequence
10998         of stos{l,q} instructions instead.
10999
11000 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11001
11002         PR tree-optimization/16807
11003         * loop-iv.c (dump_iv_info): Dump invariants correctly.
11004         (iv_subreg, iv_extend): Express value of invariant purely in
11005         base field.
11006
11007 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
11008
11009         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
11010         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
11011
11012 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
11013
11014         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
11015         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
11016         pre_dec_operand.
11017         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
11018         pattern until reload is finished to allow better code generation
11019         and split them completely into separate instrunctions.
11020         (*andsi3_split): New pattern.
11021
11022 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
11023
11024         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
11025         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
11026         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
11027         * tree.h (handle_dll_attribute): Declare.  Test
11028         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
11029         * c-common.h (c_determine_visibility): Declare.
11030         * c-common.c (c_determine_visibility): New function.
11031         * c-decl.c (finish_decl): Use it.
11032         (finish_function): Likewise.
11033         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
11034         zero, by default.  Use #if, not #ifdef, to test it.
11035         * config/arm/arm.c (arm_attribute_table): Use
11036         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
11037         #if.
11038         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
11039         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
11040         to 1.
11041         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
11042         * config/i386/i386.c (ix86_attribute_table): Use
11043         handle_dll_attribute for dllimport/dllexport.  Test
11044         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
11045         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
11046         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
11047         it to 1.
11048         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
11049         with #if.
11050         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
11051         it to 1.
11052         * doc/extend.texi (dllexport): Clarify and correct documentation.
11053         (dllimport): Likewise.
11054         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
11055         handle_dll_attribute.
11056
11057 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11058
11059         * tree-ssa-loop-manip.c: New file.
11060         * Makefile.in (tree-ssa-loop-manip.o): Add.
11061         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
11062         Declare.
11063         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
11064         form.
11065         (tree_ssa_loop_done): Verify loop closed ssa form.
11066         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
11067
11068 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11069
11070         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
11071         pa_asm_output_aligned_local): New functions.
11072         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
11073         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
11074         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
11075         pa_asm_output_aligned_common.
11076         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
11077         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
11078         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
11079         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
11080         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
11081         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
11082         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
11083         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
11084         common data.
11085
11086 2004-08-05  Andrew Pinski  <apinski@apple.com>
11087
11088         * objc/objc-act.c (build_objc_string_object): Mark the address
11089         expression as constant.
11090
11091 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
11092
11093         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
11094         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
11095         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
11096
11097 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11098
11099         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
11100         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
11101         out, and associated obsolete comments.
11102
11103 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
11104
11105         * tree.h (force_fit_type): Return a tree, take three flags.
11106         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
11107         TREE_CONSTANT_OVERFLOW here.
11108         (int_const_binop, const_binop): Adjust.
11109         (size_int_type): Do sign extension here.
11110         (fold_convert_const, optimize_bit_field_compare,
11111         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
11112         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
11113         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
11114
11115 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11116
11117         PR tree-optimization/16864
11118         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
11119         for ssa names without default_def.
11120
11121 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
11122
11123         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
11124         frame pointer, restore eax with an ebp-relative address.
11125
11126 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
11127
11128         PR 14516
11129         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
11130         * c-common.h (make_rtl_for_local_static): Delete.
11131         * c-decl.c (shadow_tag_warned): Clean up comment.
11132         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
11133         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
11134         * c-semantics.c (make_rtl_for_local_static): Delete.
11135         * expr.c (init_block_move_fn): Use set_user_assembler_name.
11136         (init_block_clear_fn): Likewise.
11137         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
11138         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
11139         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
11140         * tree.h (make_decl_rtl): Remove second parameter.
11141         (set_user_assembler_name): New.
11142         * varasm.c (set_user_assembler_name): New.
11143         (make_decl_rtl): Remove second parameter.  Update callers in many
11144         files.
11145
11146 2004-08-05  Adam Nemet  <anemet@lnxw.com>
11147
11148         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
11149         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
11150         to LynxOS 4.0.
11151         * gthr-lynx.h: New file.
11152         * config/lynx-ng.h: Remove file.
11153         * config/lynx.h: Update to LynxOS 4.0.
11154         * config/t-lynx: New file.
11155         * config/i386/lynx-ng.h: Remove file.
11156         * config/i386/lynx.h: Update to LynxOS 4.0.
11157         * config/rs6000/lynxbase.h: Remove file.
11158         * config/rs6000/lynx.h: Update to LynxOS 4.0.
11159         * config/rs6000/t-lynx: New file.
11160         * doc/install.texi (Options specification): Remove reference to
11161         LynxOS from systems where --with-gnu-as makes a difference.
11162
11163 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11164
11165         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
11166         __UINTMAX_TYPE__.
11167         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
11168         __INTMAX_MAX__.
11169         (c_cpp_builtins): Call it.
11170         * doc/cpp.texi: Update.
11171
11172 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
11173
11174         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
11175         cost.
11176
11177 2004-08-04  Jan Hubicka  <jh@suse.cz>
11178
11179         * basic-block.h (profile_staus): New global variable.
11180         * cfg.c (profile_status): Declare.
11181         (check_bb_profile): Break out from ....; use profile_status
11182         (dump_flow_info): ... here.
11183         * cfgbuild.c (find_basic_blocks): Set profile_status.
11184         * cfgexpand.c (tree_expand_cfg): Likewise.
11185         * predict.c (estimate_probability): Likewise.
11186         * profile.c (branch_prob): Likewise.
11187         * tree-cfg.c (build_tree_cfg): Likewise.
11188         (dump_function_to_file): Use check_bb_profile.
11189         * tree-pretty-print (dump_bb_header): Likewise.
11190         * tree-profile.c (do_tree_profiling): Cleanup.
11191
11192 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
11193
11194         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
11195         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
11196         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
11197         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
11198         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
11199         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
11200         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
11201         (ggc-none.o, errors.o): Move rule to generators section;
11202         correct dependencies.
11203         (min-insn-modes.o): Move rule to generators section; remove
11204         unnecessary explicit command; correct dependencies.
11205         (print-rtl.o, print-rtl1.o): Correct dependencies.
11206         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
11207         (mostlyclean): Update.
11208
11209         * errors.c: Include bconfig.h not config.h.  Correct comment.
11210         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
11211         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
11212         * print-rtl.c: Don't include tm_p.h.
11213
11214         * rtl.h: Move forward-decl of struct function down where it's
11215         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
11216         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
11217
11218 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11219             Jeff Law  <law@redhat.com>
11220
11221         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
11222         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
11223         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
11224         manipulate the duplicated ssa names.
11225         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
11226         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
11227         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
11228         New functions.
11229         (release_ssa_name): Do not release ssa names that may have multiple
11230         definitions.
11231         * tree.h (release_ssa_name_force, mark_for_rewrite,
11232         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
11233         marked_ssa_names): Declare.
11234         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
11235         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
11236         Update call to rewrite_ssa_into_ssa.
11237
11238 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
11239
11240         * defaults.h (TARGET_DECLSPEC): New macro.
11241         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
11242         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
11243         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
11244         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
11245         __declspec support.
11246         (TARGET_DECLSPEC): Define.
11247         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
11248         __declspec support.
11249         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
11250         __declspec support.
11251         (TARGET_DECLSPEC): Define.
11252         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
11253         __declspec support.
11254         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
11255         support.
11256         * doc/tm.texi (TARGET_DECLSPEC): Document.
11257
11258         * doc/extend.texi: Fix typo in comment.
11259
11260 2004-08-04  Paul Brook  <paul@codesourcery.com>
11261
11262         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
11263         (TARGET_CXX): Use it.
11264         * target.h (struct gcc_target): Add cdtor_returns_this.
11265         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
11266         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
11267         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
11268
11269 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
11270
11271         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
11272         low/high pair. Do range checking directly.
11273         (interpret_integer): Adjust.
11274
11275 2004-08-04  Nick Clifton  <nickc@redhat.com>
11276
11277         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
11278         GCC ABI.
11279         * doc/invoke.texi: Document this new switch and also the -mrenesas
11280         switch.
11281
11282 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
11283
11284         * cfglayout.c (insn_locators_initialize): Update the current
11285         location before initializing a location.
11286
11287 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
11288
11289         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
11290         (dbxout_function_end): Return after emitting the "Lscope" symbol
11291         under the same conditions that this function formerly wasn't called.
11292         Add explanatory comments.
11293
11294         PR 14860
11295         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
11296         on the new decl.
11297
11298         PR 13956
11299         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
11300         functions, broken out of dbxout_block.
11301         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
11302         stabs too, if it contains symbols.  Use the begin_label and
11303         the Lscope label (emitted by dbxout_function_end) for the
11304         range of this block.
11305
11306 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
11307
11308         * doc/install.texi: Update autoconf version requirements.
11309
11310 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
11311
11312         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
11313         * recog.c (general_operand, immediate_operand, nonmemory_operand)
11314         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
11315         * regclass.c (record_reg_classes): Likewise.
11316         * reload.c (find_reloads): Likewise.
11317         * reload1.c (reload): Likewise.
11318
11319 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
11320
11321         * gensupport.c (init_md_reader_args_cb): Renamed from
11322         init_md_reader_args.  Add third option, callback function for
11323         parsing program-specific options.  Add diagnosis of incorrect
11324         number of input files.
11325         (init_md_reader): Fold into init_md_reader_args_cb.
11326         (init_md_reader_args): Now a thin wrapper around
11327         init_md_reader_args_cb.
11328         * gensupport.h: Update prototypes.
11329
11330         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
11331         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
11332         * genrecog.c: No need to diagnose lack of an input file;
11333         init_md_reader_args will handle it.
11334         * genconditions.c: Likewise, and use init_md_reader_args.
11335         * genconstants.c: Likewise, and no need to call read_md_rtx.
11336
11337 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
11338
11339         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
11340         declarations.
11341
11342 2004-08-03  Mike Stump  <mrs@apple.com>
11343
11344         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
11345         for frameworks.
11346         * doc/invoke.texi (Darwin Options): Update to reflect above.
11347
11348 2004-08-03  Roger Sayle  <roger@eyesopen.com>
11349
11350         PR middle-end/16790
11351         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
11352         truncations, not just global truncations.
11353
11354 2004-08-03  Andrew Pinski  <apinski@apple.com>
11355
11356         PR bootstrap/16865
11357         * loop-iv.c (simplify_using_assignment): Initialize lhs.
11358
11359 2004-08-03  Paul Brook  <paul@codesourcery.com>
11360
11361         * gcc/doc/install.texi: Document MPFR requirement.
11362
11363 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
11364
11365         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
11366         and mmap() explicitly instead of relying on preset autoconf cache
11367         variables.
11368         * configure: Regenerate.
11369
11370 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
11371
11372         PR target/16570
11373         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
11374         to tmake_file.
11375         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
11376         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
11377         to tmake_file.
11378
11379         * config/i386/t-gmm_malloc: New file.
11380         * config/i386/t-pmm_malloc: Likewise.
11381
11382         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
11383
11384 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
11385             Tanguy Fautrà <tfautre@pandora.be>
11386
11387         * config/i386/pmm_malloc.h: New file.
11388
11389 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
11390
11391         * config/i386/gmm_malloc.h: New file.
11392
11393 2004-08-03  Dale Johannesen  <dalej@apple.com>
11394
11395         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
11396         * c-common.c: Include opts.h.
11397         (c_common_get_alias_set): Fix check for a single input file.
11398         * toplev.c: Remove current_file_decl.
11399         * tree.h: Ditto.
11400
11401 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
11402
11403         * config.gcc (arm*-*-symbianelf*): New target.
11404         * config/arm/symbian.h: New file.
11405
11406         * gthr-gnat.c: Add visibility #pragmas.
11407         * gthr-gnat.h : Likewise.
11408         * gthr.h: Likewise.
11409         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
11410         (__ffsDI2): Likewise.
11411         (__clzSI2): Likewise.
11412         (__ctzSI2): Likewise.
11413         (__ctzDI2): Likewise.
11414         (__popcountSI2): Likewise.
11415         (__popcountDI2): Likewise.
11416         (__paritySI2): Likewise.
11417         (__parityDI2): Likewise.
11418         * libgcc2.h: Add visibility #pragmas.
11419         (__clzDI2): Add prototype.
11420         (__clzSI2): Likewise.
11421         (__ctzSI2): Likewise.
11422         (__ffsDI2): Likewise.
11423         (__ffsSI2): Likewise.
11424         (__ctzDI2): Likewise.
11425         (__popcountSI2): Likewise.
11426         (__popcountDI2): Likewise.
11427         (__paritySI2): Likewise.
11428         (__parityDI2): Likewise.
11429         * unwind-dw2-fde.h: Add visibility #pragmas.
11430         * unwind.h: Likewise.
11431
11432 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
11433             Dale Johannesen  <dalej@apple.com>
11434             Roger Sayle  <roger@eyesopen.com>
11435
11436         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
11437         constants more accurately.  Adjust costs for FMA instructions.
11438         Add cases for most logical and float operations.  Recurse into
11439         most operands.
11440
11441 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
11442
11443         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
11444
11445 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
11446
11447         * ra-build.c (conflicts_between_webs): For webs that cross a call add
11448         conflicts to regs_invalidated_by_call.
11449
11450 2004-08-03  Paul Brook  <paul@codesourcery.com>
11451
11452         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
11453
11454 2004-08-03  Jan Hubicka  <jh@suse.cz>
11455
11456         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
11457         ARRAY_REF argument.
11458
11459 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
11460
11461         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
11462         arm968es, arm10e, arm1020e, arm1022e.
11463         * invoke.texi: Update list of ARM cores.
11464         * arm-tune.md: Regenerate.
11465
11466 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
11467
11468         * arm/gentune.sh: New file.
11469         * arm/t-arm: New file.
11470         * arm/arm-tune.md: New file (autogenerated).
11471         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
11472         * arm.md (attribute tune): Delete.  Include arm-tune.md.
11473
11474 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
11475
11476         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
11477         penultimate parameter.  All callers adjusted.
11478         (struct prefix_list): Remove used_flag_ptr.
11479         (find_a_file): Do not set *pl->used_flag_ptr.
11480         (warn_B, warn_std_ptr): Remove.
11481
11482 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
11483             Mostafa Hagog <mustafa@il.ibm.com>
11484
11485         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
11486
11487 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
11488
11489         * dwarf2out.c (output_call_frame_info): Don't change data format
11490         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
11491         label.  Use 'true' not '1'.
11492         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
11493         required.
11494
11495 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11496
11497         * gdbinit.in: Reflect previous changes to rtunion_def.
11498
11499 2004-08-02  Roger Sayle  <roger@eyesopen.com>
11500
11501         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
11502         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
11503
11504 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11505
11506         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
11507         vec_p_reserve.
11508         * langhooks.h (lang_hooks::builtin_function): Rename parameter
11509         from "class" to "bt_class".
11510
11511 2004-08-02  Paul Brook  <paul@codesourcery.com>
11512
11513         PR rtl-optimization/15068
11514         * flow.c (init_propagate_block_info): Check condition is reversible.
11515
11516 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11517
11518         * gengtype.h (options::info): Change type to const char *.
11519         (enum gc_used_enum): Move out of struct type scope.
11520         * gengtype.c (create_option): Convert initializer for option::info to
11521         appropiate type.
11522         (adjust_field_type, walk_type, write_func_for_structure,
11523         write_root, write_roots): Remove pointless cast.
11524
11525 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
11526
11527         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
11528
11529 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11530
11531         * rtl.h (union rtunion_def): Have all members  start with the
11532         prefix "rt_".
11533         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
11534         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
11535         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
11536         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
11537         access.
11538         * gengtype.c (adjust_field_rtx_def): Likewise.
11539         * rtlanal.c (loc_mentioned_in_p): Likewise.
11540
11541 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
11542
11543         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
11544         Replace uses of mips/elf64.h with mips/elf.h
11545         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
11546         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
11547         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
11548         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
11549         (HANDLE_SYSV_PRAGMA): Delete.
11550         (ASM_OUTPUT_DEF): Fix formatting.
11551         * config/mips/elf64.h: Delete.
11552
11553 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
11554
11555         * config/ia64/ia64.c (got_symbolic_operand): Do require a
11556         symbol+offset operand to have its offset be zero mod 0x3fff
11557         when GOT entries are in use.  Clarify logic in SYMBOL_REF
11558         case.  Clarify comments.
11559         (ia64_expand_load_address): Split a symbol+offset load when
11560         the offset is nonzero mod 0x3fff, not 0x1fff.
11561
11562 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
11563
11564         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
11565         if trying to *store* to a non-offsettable address.
11566         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
11567         a nonoffsettable address.
11568         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
11569         Clean up.
11570         (movti_string): Don't move GPRs to a nonoffsettable address.
11571         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
11572
11573 2004-08-02  Ben Elliston  <bje@au.ibm.com>
11574
11575         PR target/16155
11576         * config/rs6000/altivec.h: Replace typeof with __typeof__.
11577
11578 2004-08-01  Richard Henderson  <rth@redhat.com>
11579
11580         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
11581         variable sized types.
11582
11583 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
11584
11585         * doc/invoke.texi: In the MIPS options section, remove the passage
11586         saying that -mexplicit-relocs is usually disabled for -mabicalls
11587         -fno-unit-at-a-time.
11588         * config/mips/mips.c (override_options): Remove the code that enforced
11589         this rule.
11590
11591 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
11592
11593         * config/mips/mips.md (cprestore): Provide two alternatives, one for
11594         an in-range offset and one for an out-of-range offset.  Wrap the latter
11595         in .set macro/.set nomacro if it's inside a .set nomacro block.
11596
11597 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
11598
11599         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
11600         (mips_restore_gp): Declare.
11601         * config/mips/mips.c (mips_add_offset): Add a scratch register
11602         argument.  Reimplement in rtl only, reusing MIPS16 logic from
11603         mips_output_mi_thunk.
11604         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
11605         to mips_add_offset.
11606         (mips_gp_save_slot): Delete.
11607         (mips_restore_gp): New function.
11608         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
11609         * config/mips/mips.md (exception_receiver): Turn into a
11610         define_insn_and_split.  Use mips_restore_gp to do the split.
11611         (call_internal, call_value_internal, call_value_multiple_internal): Use
11612         mips_restore_gp to restore $gp.
11613
11614 2004-07-31  Andrew Pinski  <apinski@apple.com>
11615
11616         PR other/16842
11617         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
11618
11619 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
11620
11621         * c-decl.c (diagnose_mismatched_decls): Give error for external
11622         redeclaration of identifier declared with no linkage, not just
11623         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
11624         error for redeclaration with no linkage.
11625
11626 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
11627             Fariborz Jahanian <fjahanian@apple.com>
11628
11629         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
11630         non-offsettable addresses even for DImode.
11631         (rs6000_split_multireg_move): Cope with non-offsettable addresses
11632         being moved into multiple GPRs.
11633
11634         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
11635         to 64.
11636         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
11637         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
11638         to 128.
11639         * config/rs6000/darwin-ldouble.c (isless): New macro.
11640         (inf): New macro.
11641         (nonfinite): New macro.
11642         (FPKINF): Delete.
11643         (_xlqadd): Completely rewrite.
11644         (_xlqmul): Correct overflow handling.
11645         (_xlqdiv): Correct overflow handling.
11646         * config/rs6000/darwin-ldouble-format: New file.
11647
11648 2004-07-30  Roger Sayle  <roger@eyesopen.com>
11649             Richard Henderson  <rth@redhat.com>
11650
11651         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
11652         9 into the equivalent lea instruction.
11653
11654 2004-07-30  Richard Henderson  <rth@redhat.com>
11655
11656         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
11657         with DECL_INITIAL if fb_lvalue.
11658         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
11659         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
11660         with <Cxxx>.
11661         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
11662
11663 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
11664
11665         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
11666         pointer escapes through a function call, assume that the
11667         callee will dereference it.
11668         (add_pointed_to_var): Assume that VALUE is always an
11669         ADDR_EXPR.
11670         (collect_points_to_info_r): Only call add_pointed_to_var if
11671         the value is an ADDR_EXPR.
11672
11673 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
11674
11675         * tree-ssa-alias.c (create_alias_map_for): Do not get the
11676         alias set of the inner type of ARRAY_TYPEs.
11677
11678 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
11679
11680         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
11681         setting a non-register to UNDEFINED right before the call to
11682         set_lattice_value.
11683
11684 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
11685
11686         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
11687
11688 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
11689
11690         * tree-ssa.c (verify_flow_sensitive_alias_info): When
11691         comparing points-to sets of different pointers, make sure the
11692         second pointer is actually referenced in the code.
11693
11694 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
11695
11696         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
11697         (got_symbolic_operand): Remove unreachable code.
11698         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
11699         setjmp_operand; add entry for tls_symbolic_operand.
11700         * config/ia64/ia64-protos.h: Remove all prototypes of
11701         predicate functions.
11702
11703 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
11704
11705         * c-common.h (lang_post_pch_load): New variable.
11706         * c-pch.c (lang_post_pch_load): Define it.
11707         (c_common_read_pch): Use it.
11708         * cgraphunit.c (record_call_1): Give the front end a chance to
11709         record additional needed entities when a variable is marked as
11710         needed.
11711         * tlink.c (recompile_files): Robustify.
11712         (scan_linker_output): If a symbol is assigned to a file,
11713         but after recompilation is not present there, issue an error
11714         message.
11715
11716 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11717
11718         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
11719         Take orig_loop argument and pass it to set_level.
11720         (schedule_sm): Pass the correct orig_loop to force_move_till.
11721
11722 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11723
11724         * cfgloop.c (update_latch_info): Update dominator of the new block.
11725         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
11726         info.
11727         * dominance.c (verify_dominators): Check that the dominance tree is
11728         connected.
11729         (recount_dominator): Ignore unreachable blocks.
11730         (iterate_fix_dominators): Cleanup old dominance information before
11731         recomputing it.
11732
11733 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
11734
11735         * tree-ssa-operands.c (get_expr_operands): Revert changes
11736         to ADDR_EXPR processing introduced by:
11737             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11738             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
11739
11740 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
11741
11742         * doc/implement-c.texi: Add C90 subclause references.  Point to
11743         preprocessor documentation instead of duplicating it.  Add points
11744         only present in C90.  Fill in documentation for all points.
11745
11746 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11747
11748         * pa.c (output_movb): Correct typo.
11749
11750 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
11751
11752         * ra.h (single_reg_in_regclass): Declare.
11753         * ra.c (single_reg_in_regclass): Define.
11754         (first_hard_reg): New.
11755         (init_ra): Initialize single_reg_in_regclass.
11756         * ra-colorize.c (ok_class): New.
11757         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
11758
11759 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
11760
11761         * gcov-io.h: Allow zero tag as EOF indicator.
11762         (gcov_is_eof): Remove.
11763         (gcov_truncate): Remove.
11764         * gcov-io.c (gcov_seek): Always SEEK_SET.
11765         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
11766         EOF tag.
11767         * coverage.c (read_counts_file): Don't use gcov_is_eof.
11768         * gcov-dump.c (dump_file): Likewise.
11769         * gcov.c (read_graph_file, read_count_file): Likewise.
11770
11771         * c-decl.c (complete_array_type): Don't gratuitously copy
11772         maxindex.  Check it always has a type.
11773
11774 2004-07-29  Steven Bosscher  <stevenb@suse.de>
11775
11776         * rtl.c (currently_expanding_to_rtl): New.
11777         * rtl.h (currently_expanding_to_rtl): Export it.
11778         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
11779
11780         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
11781         inliner hack.
11782         * config/sh/sh.c: Replace rtx_equal_function_value_matters
11783         with currently_expanding_to_rtl.
11784         * config/sh/sh.md: Likewise.
11785         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
11786
11787 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
11788
11789         Introduce sh2a support.
11790         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
11791         * config.gcc: Build multilibs for sh2a and sh2a-single by
11792         default.
11793         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
11794         default.  Split their tests out of the corresponding SH4
11795         multilibs.
11796         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
11797         multilibs for SH2a.
11798         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
11799         * config.gcc: Handle sh2a multilibs and cpu selection.
11800         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
11801         * config/sh/t-mlib-sh2a: New.
11802         * config/sh/t-mlib-sh2a-nofpu: New.
11803         * config/sh/t-mlib-sh2a-single: New.
11804         * config/sh/t-mlib-sh2a-single-only: New.
11805         2004-07-09  Nick Clifton  <nickc@redhat.com>
11806         Issue 43400
11807         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
11808         -ml and -m2a are used together.
11809         2004-03-23  DJ Delorie  <dj@redhat.com>
11810         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
11811         when we have a double-sized FPU.
11812         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
11813         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
11814         is set.
11815         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
11816         -msh2a-single and -msh2a-single-only
11817         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
11818         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
11819         is set.
11820         2004-02-20  DJ Delorie  <dj@delorie.com>
11821         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
11822         2004-02-20  Fred Fish <fnf@redhat.com>,
11823         Corinna Vinschen <vinschen@redhat.com>
11824         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
11825         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
11826         2004-02-18  DJ Delorie  <dj@redhat.com>
11827         * config/sh/sh.c (broken_move): Add support for movi20.
11828         * config/sh/sh.h: Likewise.
11829         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
11830         * config/sh/sh.md (udivsi3_sh2a): New.
11831         (udivsi3): Call it.
11832         (divsi3_sh2a): New.
11833         (divsi3): Call it.
11834         (mul_r): New.
11835         (ashlsi3_sh2a): New.
11836         (ashrsi3_sh2a): New.
11837         (lshrsi3_sh2a): New.
11838         (movsi_i): Disable for sh2a.
11839         (movsi_ie): Add movi20.
11840         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
11841         sh2a, for -m2a-nofpu mode.
11842         2004-02-13  DJ Delorie  <dj@redhat.com>
11843         * config/sh/lib1funcs.asm: Handle double vs single better.
11844         * config/sh/sh.h: Likewise.
11845         2004-02-09  DJ Delorie  <dj@redhat.com>
11846         * config/sh/crt1.asm: Add support for sh2a.
11847         * config/sh/elf.h: Likewise.
11848         * config/sh/lib1funcs.asm: Likewise.
11849         * config/sh/sh.c: Likewise.
11850         * config/sh/sh.md: Likewise.
11851         * config/sh/sh.h: Likewise.
11852         * config/sh/t-sh: Likewise.
11853
11854 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
11855
11856         * config/frv/frv.md (movqi_internal, movhi_internal,
11857         movsi_internal): Add backup alternatives for memory inputs.
11858
11859 2004-07-28  Matt Austern  <austern@apple.com>
11860
11861         * config/darwin.c (darwin_one_byte_bool): New global variable.
11862         * config/darwin.h (darwin_one_byte_bool): Declare.
11863         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
11864         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
11865         value of darwin_one_byte_bool.
11866         * doc/invoke.texi: Document -mone-byte-bool flag.
11867
11868 2004-07-28  Eric Christopher  <echristo@redhat.com>
11869
11870         * c-common.c (c_common_unsafe_for_reeval): Delete.
11871         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
11872         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
11873         * calls.c (fix_unsafe_tree): Delete.
11874         (expand_call): Delete code which used above.
11875         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
11876         * expr.c (expand_expr_real_1): Ditto.
11877         * fold-const.c (non_lvalue): Ditto.
11878         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
11879         (lhd_unsafe_for_reeval): Ditto.
11880         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
11881         * langhooks.h (unsafe_for_reeval): Ditto.
11882         (unsave_expr_now): Adjust comment.
11883         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
11884         (estimate_num_insns_1): Ditto.
11885         * tree-pretty-print.c (dump_generic_node): Ditto.
11886         * tree.c (expr_align): Ditto.
11887         (unsave_expr): Delete.
11888         (unsafe_for_reeval): Ditto.
11889         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
11890         * tree.def (UNSAVE_EXPR): Delete.
11891         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
11892
11893 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
11894
11895         * tree.h (enum tls_model): Move ...
11896         * coretypes.h: ... here.
11897
11898 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
11899
11900         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
11901
11902 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
11903
11904         * cse.c (validate_canon_reg): New function, split out from...
11905         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
11906
11907 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
11908
11909         * tree-ssa-alias.c (maybe_create_global_var): Don't just
11910         return if .GLOBAL_VAR has been created.
11911
11912 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
11913
11914         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
11915         every variable that may have aliases, not just tags.
11916
11917 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
11918
11919         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
11920         move_from_CR_eq_bit.
11921         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
11922
11923
11924         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
11925         e500_flip_eq_bit.
11926
11927         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
11928         output_e500_flip_eq_bit.
11929
11930         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
11931         output_e500_flip_eq_bit.
11932         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
11933         output_e500_flip_eq_bit.
11934         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
11935         (print_operand): case D.  Get to EQ bit.
11936
11937 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
11938
11939         * gcov.c (function_summary): Add missing \n.
11940
11941 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
11942
11943         Introduce sh4a support.
11944         * config.gcc: Handle sh4a multilibs and cpu selection.
11945         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
11946         * config/sh/t-mlib-sh4a: New.
11947         * config/sh/t-mlib-sh4al: New.
11948         * config/sh/t-mlib-sh4a-nofpu: New.
11949         * config/sh/t-mlib-sh4a-single: New.
11950         * config/sh/t-mlib-sh4a-single-only: New.
11951         2004-02-20  DJ Delorie  <dj@redhat.com>
11952         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
11953         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
11954         2003-08-22  Eric Christopher  <echristo@redhat.com>
11955         * config/sh/sh4a.md: Update for chip errata.
11956         2003-08-07  Eric Christopher  <echristo@redhat.com>
11957         * config/sh/sh4a.md: New file. sh4a processor description.
11958         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
11959         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
11960         of -m4a-nofpu.
11961         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
11962         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
11963         * doc/invoke.texi (SH Options): Document -m4al.
11964         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
11965         * config/sh/sh.c (expand_block_move): Remove commented-out code
11966         checked in by mistake.
11967         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
11968         single elements from SFmode vectors.
11969         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
11970         register.
11971         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
11972         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
11973         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
11974         sh_fsca_int2sf): Remove variable declarations.
11975         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
11976         sh_fsca_int2sf): New functions.
11977         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
11978         sh_fsca_int2sf_rtx): New static variables.
11979         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
11980         sh_fsca_int2sf): Declare.
11981         * config/sh/sh.md: Adjust.
11982         * doc/invoke.texi (SH Options): Document new options.
11983         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
11984         compatibility from SH4 code.
11985         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
11986         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
11987         early.
11988         (memory_movsrc_operand): Renamed to...
11989         (unaligned_load_operand): ... this.  Simplified.
11990         * config/sh/sh.h (PREDICATE_CODES): Adjust.
11991         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
11992         input operand to SImode, and adjust the others.  Introduce
11993         post-increment by peephole.
11994         * config/sh/sh.c (expand_block_move): Give the target address the
11995         same mode as the temp reg.
11996         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
11997         copying.
11998         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
11999         Introduce support for SH4a.
12000         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
12001         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
12002         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
12003         sh_fsca_int2sf): New.
12004         (sh_init_builtins): Initialize them.
12005         (print_operand): Support `d'.
12006         (expand_block_move): Use movua if src is misaligned.
12007         (memory_movsrc_operand): New.
12008         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
12009         and one of the SH4 macros.
12010         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
12011         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
12012         SELECT_SH4A_SINGLE): New.
12013         (TARGET_NONE): Add SH4A_BIT.
12014         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
12015         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
12016         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
12017         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
12018         (enum processor_type): Added PROCESSOR_SH4A.
12019         (PREDICATE_CODES): Add memory_movsrc_operand.
12020         * config/sh/sh.md: Removed unused variables.
12021         (attr cpu): Add sh4a.
12022         (attr type): Add movua, fsrra and fsca.
12023         (prefetch): New, for SH4.
12024         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
12025         (toggle_sz): Set type to fp.
12026         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
12027         (movua, extv, extzv): New.
12028         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
12029         and 4a-single-only.
12030
12031 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
12032
12033         * tree-optimize.c (init_tree_optimization_passes): Schedule
12034         pass_may_alias right after the program is renamed into SSA.
12035         * tree-pass.h (PROP_alias): Define.
12036         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
12037         * tree-sra.c (pass_sra): Likewise.
12038         * tree-ssa-ccp.c (pass_ccp): Likewise.
12039         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
12040         * tree-ssa-dce.c (pass_dce): Likewise.
12041         * tree-ssa-dom.c (pass_dominator): Likewise.
12042         * tree-ssa-dse.c (pass_dse): Likewise.
12043         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
12044         * tree-ssa-loop-ch.c (pass_ch): Likewise.
12045         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
12046         * tree-ssa-pre.c (pass_pre): Likewise.
12047         * tree-tailcall.c (pass_tail_recursion): Likewise.
12048         * tree-ssa.c (pass_redundant_phi): Likewise.
12049         * tree-ssa-alias.c (aliases_computed_p): Remove.
12050         Update all users.
12051         (init_alias_info): Do not mark all type tags for renaming
12052         unconditionally.
12053         Clear may_aliases from every symbol.
12054         (setup_pointers_and_addressables): If a pointer has not been
12055         dereferenced and it had a type tag, clear it and mark the old
12056         tag for renaming.
12057
12058 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
12059
12060         PR tree-optimization/16705
12061         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
12062         .GLOBAL_VAR.
12063
12064 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12065
12066         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
12067         check.
12068
12069         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
12070         don't make another one.
12071
12072         PR optimization/15077
12073         * function.h (struct function): Add field saved_static_chain_decl.
12074         Fix comment for static_chain_decl.
12075         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
12076         * tree-inline.h (save_body): Add new arg.
12077         * tree-optimize.c (tree_rest_of_compilation): Handle saving
12078         static_chain_decl.
12079
12080 2004-07-27  Richard Henderson  <rth@redhat.com>
12081
12082         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
12083         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
12084         is_gimple_addressable.
12085         * tree-gimple.c (is_gimple_addressable): Rename from
12086         is_gimple_addr_expr_arg; accept INDIRECT_REF.
12087         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
12088         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
12089         rename to is_gimple_addressable.
12090
12091 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
12092
12093         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
12094
12095 2004-07-27  Richard Henderson  <rth@redhat.com>
12096
12097         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
12098         before rounding.
12099
12100 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
12101
12102         * libgcc2.c: Change all conditionals testing
12103         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
12104         * libgcc2.h: Likewise.
12105         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
12106         TYPE_PRECISION of float80_type to 80.
12107         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
12108         of fpreg_type and float80_type to 80.
12109         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
12110         * config/m68k/netbsd-elf.h:
12111         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
12112         to evaluate to 80 whenever they would formerly have evaluated to 96.
12113         * config/i386/sco5.h: Remove unnecessary redefinition of
12114         LONG_DOUBLE_TYPE_SIZE.
12115         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
12116         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
12117         XFmode, with a bitsize of 80.  Update commentary.
12118         * config/ia64/ia64-modes.def: Likewise.
12119         * config/m68k/m68k-modes.def: Likewise.
12120
12121 2004-07-27  Steven Bosscher  <stevenb@suse.de>
12122
12123         * cfgexpand.c (tree_expand_cfg): Fix comment.
12124
12125         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
12126         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
12127         Remove.
12128         (prepare_function_start): Don't set rtx_equal_function_value_matters.
12129         * integrate.c (copy_rtx_and_substitute): Don't test for it.
12130         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
12131         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
12132         here again.  Update leading comment.
12133         * rtl.c (rtx_equal_function_value_matters): Remove.
12134         (rtx_equal_p): Don't test for it.
12135         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
12136         Likewise.
12137
12138         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
12139         * rtl.c (note_insn_name): Likewise.
12140         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
12141         * final.c (final_scan_insn): Likewise.
12142
12143         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
12144         * passes.c (rest_of_handle_eh): Do it here.
12145
12146         * stmt.c (struct nesting): Remove struct nesting block member.
12147         (struct stmt_status): Remove x_block_start_count field.
12148         (current_block_start_count): Remove.
12149
12150 2004-07-27  Brian Booth  <bbooth@redhat.com>
12151
12152         * tree-optimize.c (register_one_dump_file): Update condition that uses
12153         static_pass_number.
12154         (dup_pass_1): Replace with...
12155         (next_pass_1): This.
12156         (NEXT_PASS): Call next_pass_1.
12157         (DUP_PASS): Remove.
12158         (init_tree_optimization_passes): Remove uses of DUP_PASS.
12159         (execute_one_pass): Update condition that uses
12160         static_pass_number.
12161         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
12162         integer.
12163
12164 2004-07-27  Nick Clifton  <nickc@redhat.com>
12165
12166         * config/m32r/m32r.c: Include integrate.h in order to get the
12167         prototype for get_hard_reg_initial_val().
12168
12169         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
12170         and tidy up indentation.
12171         (final_presence_set): Use absence_set instead, so that if there is
12172         nothing in the "o" pipe the "s" pipe can be scheduled.
12173
12174 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
12175
12176         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
12177         don't have PT_VARS nor PT_MALLOC set.
12178         Clear name tag from pointers that have not been dereferenced.
12179         (set_pt_anything, set_pt_malloc): Forward declare.
12180         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
12181         not type compatibility when determining if a pointer can be
12182         copy propagated.
12183
12184 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
12185
12186         * expr.h (canonicalize_condition, get_condition): Add an int argument.
12187         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
12188         it to check whether the condition is still valid at the jump insn.
12189         * ifcvt.c (noce_get_condition): Likewise.
12190         (noce_get_alt_condition): Update call to canonicalize_condition.
12191         * loop-iv.c (simplify_using_initial_values): Update call to
12192         get_condition.  Remove FIXME.
12193         (check_simple_exit): Update call to get_condition.
12194         * loop-unswitch.c (may_unswitch_on): Likewise.
12195         * loop.c (check_dbra_loop): Likewise.
12196         (canonicalize_condition, get_condition): Add an argument to say whether
12197         the condition must still be valid at INSN.
12198         (get_condition_for_loop): Update call to get_condition.  Require that
12199         the condition be valid at INSN.
12200         * predict.c (estimate_probability): Update call to get_condition.
12201         Remove unused earliest parameter.
12202         (expected_value_to_br_prob): Update call to canonicalize_condition.
12203
12204 2004-07-26  Eric Christopher  <echristo@redhat.com>
12205
12206         * tree-dfa.c (add_referenced_var): Register initializers of global
12207         variables.
12208
12209 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
12210
12211         * config/i386/i386.c (function_arg): Always treat 8-
12212         and 16-byte wide vectors the same, even if MMX/SSE
12213         are disabled.
12214         (contains_128bit_aligned_vector_p): Add comment.
12215
12216 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
12217
12218         * ra.h (enum node_type): Rename to:
12219         (enum ra_node_type).
12220         * ra-colorize.c: Likewise.
12221
12222 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
12223
12224         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
12225         after simplifying the jump.
12226
12227 2004-06-26  Richard Henderson  <rth@redhat.com>
12228
12229         * calls.c (combine_pending_stack_adjustment_and_call): Make
12230         preferred_unit_stack_boundary argument unsigned.  Make
12231         unadjusted_alignment unsigned.
12232         (expand_call): Make preferred_stack_boundary and
12233         preferred_unit_stack_boundary variables unsigned.
12234         * function.c (assign_stack_local_1): Make alignment unsigned.
12235         * function.h (struct function): Make stack_alignment_needed,
12236         preferred_stack_boundary unsigned.
12237         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
12238         (ix86_compute_frame_layout): Make stack_alignment_needed,
12239         preferred_alignment variables unsigned.
12240         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
12241
12242 2004-07-26  Tom Tromey  <tromey@redhat.com>
12243
12244         * tree.h: Fix typo in comment.
12245
12246 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
12247
12248         PR bootstrap/12804
12249         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
12250         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
12251         (ggc_free): Remove incorrect freeing.
12252         (sweep_pages): Advance PP for large pages.  Fix indentation.
12253
12254 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
12255
12256         PR rtl-optimization/16643
12257         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
12258         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
12259         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
12260         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
12261         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
12262         * function.c (thread_prologue_and_epilogue_insns): Likewise.
12263         * rtl.h (tracer): Add a flags parameter.
12264         * tracer.c (tracer): Pass it to cfg_layout_initialise.
12265         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
12266         (rest_of_handle_reorder_blocks): Update calls to tracer and
12267         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
12268         (rest_of_handle_tracer): Pass 0 to tracer.
12269         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
12270
12271 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
12272
12273         PR target/16239
12274         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
12275         f->f.
12276
12277 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
12278
12279         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
12280         (BINFO_BASE_ACCESS): Adjust.
12281         (BINFO_BASE_ACCESS_APPEND): New.
12282         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
12283         * dbxout.c (dbxout_type): Adjust binfo access accessing.
12284         * dwarf2out.c (gen_member_die): Likewise.
12285         * tree-dump.c (deque_and_dump): Likewise.
12286
12287 2004-07-26  Falk Hueffner  <falk@debian.org>
12288
12289         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
12290         costs.
12291
12292 2004-07-25  Roger Sayle  <roger@eyesopen.com>
12293
12294         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
12295         value off of the stack if TARGET_USE_FFREEP.
12296
12297 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
12298
12299         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
12300         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
12301         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
12302         check on invocation of XRESIZEVEC ().
12303
12304 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
12305
12306         * c-common.c (disable_builtin_function): Rename variable n to
12307         new_disabled_builtin.
12308         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
12309         Rename local variable old to old_decl.
12310         * gensupport.c (shift_output_template): Rename parameter old to src.
12311         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
12312         old_rtx and newx to new_rtx.
12313
12314 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
12315
12316         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
12317         of c-pragma.h.
12318         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
12319         enum cpp_ttype.
12320         * c-lex.c: Likewise.
12321
12322 2004-07-25  Roger Sayle  <roger@eyesopen.com>
12323
12324         * fold-const.c (constant_boolean_node): Make extern.
12325         (make_range): Wrap long lines.
12326         (fold_cond_expr_with_comparison): Remove unnecessary call to
12327         pedantic_non_lvalue.  Add missing calls to fold_convert.
12328         (fold_truthop): Add missing calls to fold_convert.
12329         (fold): Likewise.
12330         * tree.h (constant_boolean_node): Add prototype here.
12331         * builtins.c (expand_builtin_strncmp): Add missing calls to
12332         fold_convert.
12333         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
12334         Call fold_convert and constant_boolean_node to correct types.
12335         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
12336         missing call to fold_convert to correct types.
12337
12338 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
12339             Brian Ryner  <bryner@brianryner.com>
12340
12341         PR c++/9283
12342         PR c++/15000
12343         * c-common.c (c_common_attribute_table): Allow
12344         handle_visibility_attribute to be called for types.
12345         (handle_visibility_attribute) When given a type, set the visibility
12346         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
12347         so that we can check later whether the attribute was present. Added
12348         warning if attribute applied to non class type.
12349         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
12350         decls and checking that they are consistent.
12351         * common.opt: Added -fvisibility.
12352         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
12353         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
12354         * flags.h, tree.h: Added assorted support defines for overall patch
12355         * opts.c: Added parsing support for -fvisibility.
12356         * tree.c (build_decl): Set visibility for all decls to be whatever
12357         is in force at that time.
12358         * varasm.c (default_binds_local_p_1): Reworked logic determining
12359         when to make a symbol locally bound.
12360         * doc/invoke.texi: Added documentation for -fvisibility and
12361         -fvisibility-inlines-hidden.
12362
12363 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12364
12365         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
12366         * c-common.c: Add missing casts from void * to other types.
12367         * c-decl.c: Likewise.
12368         * c-format.c: Likewise.
12369         * c-lex.c: Likewise.
12370         * c-pragma.c: Likewise.
12371         * c-typeck.c: Likewise.
12372         * defaults.h: Likewise.
12373         * genconstants.c: Likewise.
12374         * gengtype-lex.l: Likewise.
12375         * genmodes.c: Likewise.
12376         * read-rtl.c: Likewise.
12377         * rtl.c: Likewise.
12378
12379 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12380
12381         * bitmap.c: Use type-safe memory allocation macros from libiberty.
12382         * c-common.c: Likewise.
12383         * c-decl.c: Likewise.
12384         * c-lang.c: Likewise.
12385         * c-lex.c: Likewise.
12386         * c-opts.c: Likewise.
12387         * c-parse.in: Likewise.
12388         * c-typeck.c: Likewise.
12389         * genconditions.c: Likewise.
12390         * gengtype-lex.l: Likewise.
12391         * gengtype-yacc.y: Likewise.
12392         * gengtype.c: Likewise.
12393         * genmodes.c: Likewise.
12394         * gensupport.c: Likewise.
12395         * read-rtl.c: Likewise.
12396         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
12397         htab_find_slot().
12398
12399 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12400
12401         * c-decl.c (groktypename, groktypename_in_param_context): Rename
12402         variable typename to type_name.
12403         * c-lex.c (interpret_float): Likewise.
12404
12405 2004-07-25  Roger Sayle  <roger@eyesopen.com>
12406
12407         * convert.c (convert_to_real, convert_to_integer,
12408         convert_to_complex): Replace calls to build with calls to buildN.
12409         * coverage.c (tree_coverage_counter_ref): Likewise.
12410         * dojump.c (do_jump): Likewise.
12411         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
12412         * emit-rtl.c (component_ref_for_mem_expr,
12413         set_mem_attributes_minus_bitpos): Likewise.
12414         * explow.c (update_nonlocal_goto_save_area): Likewise.
12415         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
12416         expand_mult_add): Likewise.
12417         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
12418         store_constructor, get_inner_reference, expand_expr_real_1,
12419         try_casesi, try_tablejump): Likewise.
12420         * function.c (expand_function_start): Likewise.
12421         * stmt.c (emit_case_bit_tests, expand_end_case_type,
12422         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
12423         * stor-layout.c (place_union_field, layout_type): Likewise.
12424         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
12425         * varasm.c (copy_constant): Likewise.
12426
12427 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12428
12429         * c-common.c: Rename all identifiers named `new'.
12430         * c-decl.c: Likewise.
12431         * gensupport.c: Likewise.
12432         * simplify-rtx.c: Likewise.
12433         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
12434         with XNEW().
12435         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
12436         with XNEWVEC().
12437
12438 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
12439
12440         PR c/15360
12441         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
12442         declarations until after calling pushdecl.
12443         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
12444         "extern" and not on whether the declaration is initialized.
12445
12446 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
12447
12448         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
12449         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
12450         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
12451         "cpplib.h", "c-pragma.h", "c-common.h".
12452         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
12453         (solaris_register_pragmas): New functions.
12454         * config/sol2-protos.h: New file.
12455         * config/sol2.c: New file.
12456         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
12457         (REGISTER_TARGET_PRAGMAS): New macros.
12458         (solaris_pending_aligns, solaris_pending_inits)
12459         (solaris_pending_finis): New variables.
12460         * config/t-sol2 (sol2-c.o): Update dependencies.
12461         (sol2.o): New rule.
12462         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
12463         SUBTARGET_INSERT_ATTRIBUTES.
12464         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
12465         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
12466         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
12467         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
12468         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
12469         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
12470         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
12471         * config/sparc/sparc.c (sparc_attribute_table): New.
12472         (TARGET_INSERT_ATTRIBUTES): Define in terms of
12473         SUBTARGET_INSERT_ATTRIBUTES.
12474         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
12475         is defined.
12476         * doc/extend.texi (Solaris Pragmas): New section.
12477
12478 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12479
12480         * c-common.c: Rename all identifiers named `class' to `cl'.
12481         * c-common.h: Likewise.
12482         * c-parse.in: Likewise.
12483         * c-typeck.c: Likewise.
12484         * genmodes.c: Likewise.
12485         * real.c: Likewise.
12486         * real.h: Likewise.
12487         * recog.c: Likewise.
12488         * recog.h: Likewise.
12489         * regrename.c: Likewise.
12490         * tree.h: Likewise.
12491         * c-common.c (builtin_function_2): Change type of 5th parameter from
12492         int to enum built_in_function. Change type of 8th parameter from int
12493         to bool.
12494         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
12495         with GGC_CNEW().
12496         * c-typeck.c (convert_arguments): Change type of formal_prec from
12497         int to unsigned int.
12498         * genmodes.c (blank_mode): Make a few negative constants unsigned.
12499         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
12500         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
12501         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
12502         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
12503         iterator to for_all_modes () instead of an enum because enums can't
12504         be incremented in C++.
12505
12506
12507 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
12508
12509         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
12510         hard registers.
12511
12512 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12513
12514         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
12515         Handle ARRAY_RANGE_REF like ARRAY_REF.
12516
12517 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
12518
12519         * c-typeck.c (digest_init): Don't allow arrays of signed or
12520         unsigned variants of wchar_t to be initialized by wide string
12521         constants.  Do allow arrays of enumerated types compatible with
12522         wchar_t to be initialized by wide string constants.  Refine tests
12523         distinguishing wide and narrow strings and arrays.  Give specific
12524         error for arrays of other integer types initialized by string
12525         constants.
12526         (output_init_element, process_init_element): Check for
12527         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
12528         initializing with string constants.
12529
12530 2004-07-25  Richard Henderson  <rth@redhat.com>
12531
12532         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
12533         on the RESULT_DECL.
12534         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
12535         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
12536         DECL_IGNORED_P to new decl.
12537
12538 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
12539
12540         * config/ia64/ia64.c (general_xfmode_operand)
12541         (destination_xfmode_operand): Delete.
12542         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
12543         * config/ia64/ia64.md (*movxf_internal): Use general_operand
12544         and destination_operand.
12545
12546 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
12547
12548         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
12549         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
12550
12551 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
12552             Zack Weinberg  <zack@codesourcery.com
12553
12554         PR 16684
12555         * c-decl.c (diagnose_mismatched_decls): Don't issue a
12556         redundant-declaration warning the first time a builtin is
12557         declared explicitly.
12558
12559 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12560
12561         * tree.h (staticp): Change return type to bool.
12562
12563 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12564
12565         * c-common.c (c_staticp): Last episode of the staticp saga.
12566
12567 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12568
12569         * c-common.h (c_staticp): Change return type from int to bool.
12570         * tree.c (staticp): Likewise.
12571         * langhooks.h (staticp): Likewise.
12572
12573 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12574
12575         * langhooks-def.h (lhd_staticp): Change return type from int to
12576         bool in prototype to match definition.
12577
12578 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12579
12580         * system.h (bool, true, false): Don't redefine as preprocessor macros
12581         in C++.
12582
12583 2004-07-24  Roger Sayle  <roger@eyesopen.com>
12584
12585         * expmed.c (init_expmed): A signed modulus by a power of two is
12586         considered cheap if its less than or equal to four instructions.
12587
12588 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12589
12590         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
12591         GGC_CNEWVAR): New macros.
12592
12593 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12594
12595         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
12596         lists.
12597         * c-decl.c: Likewise.
12598         * c-format.c: Likewise.
12599         * c-lex.c: Likewise.
12600         * c-opts.c: Likewise.
12601         * c-pragma.c: Likewise.
12602         * c-typeck.c: Likewise.
12603         * gencheck.c: Likewise.
12604         * genconditions.c: Likewise.
12605         * genconfig.c: Likewise.
12606         * genflags.c: Likewise.
12607         * gengtype.c: Likewise.
12608         * gensupport.c: Likewise.
12609         * ggc-none.c: Likewise.
12610         * langhooks.c: Likewise.
12611         * statistics.h: Likewise.
12612         * stub-objc.c: Likewise.
12613         * java/decl.c: Likewise.
12614
12615 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
12616
12617         * config/m68k/m68k.c (output_scc_di): Fix coding style.
12618         (symbolic_operand): Fix prototype.
12619         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
12620         * config/m68k/m68k.md: Add constants for registers a0 and sp and
12621         use them, change from the "{...}" syntax to the simpler {...}
12622         syntax.
12623         (*cfv4_extendqisi2): Fix destination predicate.
12624         * config/m68k/m68k-protos.h: Remove various declarations also
12625         generated via PREDICATE_CODES.
12626
12627 2004-07-23  Mike Stump  <mrs@apple.com>
12628
12629         * c-typeck.c (convert_for_assignment): Tightened up pointer
12630         converstions that differ in signedness.
12631
12632 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
12633
12634         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
12635
12636 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12637
12638         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
12639         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
12640
12641         * gimplify.c (gimplify_compound_lval): Check for no handled
12642         operations, rather than checking for explicit list of nodes.
12643         (is_gimple_addr_expr_arg_or_indirect): New function.
12644         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
12645         redundant setting of TREE_INVARIANT.
12646         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
12647         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
12648
12649 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
12650
12651         PR tree-optimization/16688
12652         PR tree-optimization/16689
12653         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
12654         unnecessary initialization of 'tag'.
12655         (get_tmt_for): Check that the new type tag has the same alias
12656         set as the pointed-to type.
12657         (group_aliases): Only regular variables need to be removed
12658         from the alias set of a name tag.
12659         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
12660         propagation if the two types are not compatible.
12661         (merge_alias_info): Rename from replace_ssa_names_ann.
12662         Add more checking.
12663         (replace_exp_1): If both arguments are SSA_NAMEs, check that
12664         the propagation can be done.
12665         Only call merge_alias_info on pointers.
12666         (propagate_value): Likewise.
12667         * tree-ssa-copyrename.c: Include langhooks.h.
12668         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
12669         to do the merging.
12670         Do not coalesce variables with incompatible types.
12671         (rename_ssa_copies): Call replace_ssa_name_symbol.
12672         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
12673         the same type as the underlying _DECL.
12674         * tree-ssanames.c (replace_ssa_name_symbol): New function.
12675         * tree.h (replace_ssa_name_symbol): Declare.
12676
12677 2004-07-23  Richard Henderson  <rth@redhat.com>
12678
12679         PR c++/16277
12680         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
12681         unshare it properly.
12682         (gimplify_modify_expr_rhs): Push assignment from a conditional into
12683         the conditional for all non-register types.
12684
12685 2004-07-23  Richard Henderson  <rth@redhat.com>
12686
12687         * expr.c (expand_expr_real_1): Don't handle non-local variables.
12688         * expr.h (fix_lexical_addr): Remove.
12689         * function.c (NEED_SEPARATE_AP): Remove.
12690         (fix_lexical_addr): Remove.
12691         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
12692         not null decl_function_context.
12693         (create_alias_vars): Likewise.
12694         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
12695         (simple_goto_p): Likewise.
12696         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
12697         * tree-ssa-ccp.c (get_default_value): Likewise.
12698         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
12699         * tree.c (needs_to_live_in_memory): Likewise.
12700         * tree-flow-inline.h (may_be_aliased): Move...
12701         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
12702         when TREE_STATIC variables may be addressable.
12703
12704 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
12705
12706         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
12707
12708 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
12709
12710         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
12711         bitmap contents if GENERATOR_FILE is defined.
12712         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
12713         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
12714
12715 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
12716
12717         * c-decl.c (start_function): Form composite type of function types
12718         rather than copying type from previous prototype declaration.
12719
12720 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
12721
12722         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
12723         the const qualifier for the second argument in the C++ functions.
12724
12725         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
12726         specific pointer types.
12727
12728         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
12729         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
12730         for vector bool and/or vector pixel, add C++ and C missing support.
12731         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
12732         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
12733         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
12734         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
12735         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
12736         missing C++ and C support for vector bool and/or vector pixel.
12737         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
12738         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
12739         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
12740         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
12741         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
12742         C++ and C types used for vector bool and/or vector pixel.
12743         (vec_st, vec_stl): Add C++ support for vector pixel.
12744         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
12745         (vec_all_ne): Add C++ support for vector pixel.
12746
12747         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
12748         (vec_vmulesb): Add missing C++ function.
12749         (vec_perm): Fix type of third argument in C++ function.
12750         (vec_vsum4shs): Fix C++ function name.
12751         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
12752         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
12753         argument passed to the error handler in C macro.
12754         (vec_nmsub): Remove extra parens around argument names in C macro.
12755         (vec_packpx): Add missing parens in C macro.
12756
12757 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
12758
12759         * machmode.def: Remove vector modes.
12760         * config/alpha/alpha-modes.def: Add supported vector modes.
12761         * config/arm/arm-modes.def: Likewise.
12762         * config/frv/frv-modes.def: Likewise.
12763         * config/i386/i386-modes.def: Likewise.
12764         * config/rs6000/rs6000-modes.def: Likewise.
12765         * config/sh/sh-modes.def: Likewise.
12766
12767 2004-07-23  Matthias Klose  <doko@debian.org>
12768
12769         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
12770         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
12771         * config.h: Regenerate.
12772         * configure: Likewise.
12773
12774 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
12775
12776         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
12777         generated SYMBOL_REFs for labels.
12778         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
12779         Change prototype.
12780         (machopic_stub_name): Remove.
12781         (machopic_indirection_name): New function.
12782         (machopic_mcount_stub_name): Likewise.
12783         (machopic_classify_name): Remove.
12784         (machopic_function_base_sym): New function.
12785         (machpoic_classify_symbol): Likewise.
12786         (machopic_classify_ident): Remove.
12787         (machopic_define_ident): Likewise.
12788         (machopic_define_name): Likewise.
12789         (machopic_name_defined_p): Likewise.
12790         (machopic_ident_defined_p): Likewise.
12791         (darwin_strip_name_encoding): Likewise.
12792         (machopic_define_symbol): New function.
12793         * config/darwin.c (hashtab.h): Include.
12794         (machopic_defined_list): Remove.
12795         (machopic_classify_ident): Likewise.
12796         (machopic_classify_name): Likewise.
12797         (machopic_ident_defined_p): Likewise.
12798         (machopic_define_ident): Likewise.
12799         (machopic_define_name): Likewise.
12800         (machopic_symbol_defined_p): New function.
12801         (machopic_classify_symbol): Likewise.
12802         (machopic_data_defined_p): Use machopic_classify_symbol.
12803         (machopic_define_symbol): New function.
12804         (machopic_function_base_sym): New function.
12805         (machopic_non_lazy_pointers): Remove.
12806         (machopic_non_lazy_ptr_name): Likewise.
12807         (machopic_stubs): Likewise.
12808         (machopic_stub_name): Likewise.
12809         (NON_LAZY_POINTER_SUFFIX): New macro.
12810         (STUB_SUFFIX): Likewise.
12811         (machopic_indirection): New structure.
12812         (machopic_indirections): New variable.
12813         (machopic_indirection_hash): New function.
12814         (machopic_indirection_eq): Likewise.
12815         (machopic_indirection_name): Likewise.
12816         (machopic_mcount_stub_name): New function.
12817         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
12818         hash table.
12819         (machopic_indirect_data_reference): Rework to use new functions.
12820         (machopic_indirect_call_target): Likewise.
12821         (machopic_legitimize_pic_address): Likewise.
12822         (machopic_output_indirection): New function.
12823         (machopic_finish): Use it.
12824         (machopic_operand_p): Rework to use new functions.
12825         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
12826         (darwin_strip_name_encoding): Remove.
12827         (update_non_lazy_ptrs): Remove.
12828         (update_stubs): Likewise.
12829         (darwin_non_lazy_pcrel): Use new functions.
12830         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
12831         (ASM_OUTPUT_LABELREF): Likewise.
12832         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
12833         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
12834         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
12835         (TARGET_STRIP_NAME_ENCODING): Do not use
12836         darwin_strip_name_encoding.
12837         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
12838         darwin_strip_name_encoding.
12839         * config/i386/darwin.h (FUNCTION_PROFILER): Use
12840         machopic_mcount_stub_name.
12841         * config/i386/i386.c (x86_output_mi_thunk): Use
12842         machopic_indirection_name, not machopic_stub_name.
12843         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
12844         machopic_function_base_sym.
12845         (print_operand): Use machopic_classify_symbol.
12846         (rs6000_emit_prologue): Use machopic_function_base_sym.
12847         (output_profile_hook): Do not use machopic_stub_name.
12848         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
12849
12850 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
12851
12852         PR c/7284
12853         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
12854         as multiplication.
12855
12856 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
12857
12858         * doc/implement-c.texi: New file.
12859         * doc/extend.texi (C Implementation): Move to there.
12860         * doc/gcc.texi: Include implement-c.texi.
12861         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
12862
12863 2004-07-22  Jason Merrill  <jason@redhat.com>
12864
12865         * integrate.c (copy_decl_for_inlining): Remove invisible reference
12866         handling.
12867         * tree-inline.c (setup_one_parameter): Likewise.
12868
12869 2004-07-22  Brian Booth  <bbooth@redhat.com>
12870
12871         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
12872         (substitute_and_fold): Propigate into VUSE operands when possible.
12873         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
12874         (cp_lattice_meet): Handle merging of latticevalues when
12875         UNKNOWN_VAL is present.
12876         (visit_stmt): Visit assignments with V_MUST_DEFs.
12877         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
12878         (ccp_fold): Deal with RHS' that are constant and virtual.
12879         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
12880         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
12881         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
12882         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
12883         computing immediate uses.
12884         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
12885         transition.
12886         (replace_vuse_in): New function.
12887         (likely_value): Add check of vuse operands.
12888         (get_default_value): Set the default value of virtually defined
12889         variables to UKNOWN_VAL instead of VARYING.
12890
12891 2004-07-22  Richard Henderson  <rth@redhat.com>
12892
12893         * expr.c (emit_push_insn): Don't use set_mem_attributes.
12894
12895 2004-07-22  Richard Henderson  <rth@redhat.com>
12896
12897         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
12898         variables due to conditional compilation.
12899
12900 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
12901
12902         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
12903         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
12904         Release SSA names that have been re-renamed.
12905         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
12906         variable.
12907         * tree-ssa-alias.c (init_alias_info): If aliases have been
12908         computed before, clear existing alias information.
12909         (create_name_tags): Do no fixup PT_ANYTHING pointers.
12910         If the new name tag for a pointer is different than the one it
12911         had before, mark the old tag for renaming.
12912         (replace_may_alias): New function.
12913         (group_aliases): Call it.
12914         (setup_pointers_and_addressables): Always call get_tmt_for.
12915         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
12916         once.
12917         (set_pt_anything): New local function.
12918         (set_pt_malloc): New local function.
12919         (merge_pointed_to_info): Don't merge pointed-to variables from
12920         the original pointer if the destination is pointing to an
12921         unknown location.
12922         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
12923         (add_pointed_to_var): Do not add a variable to the points-to
12924         set if the pointer is already pointing to anywhere.
12925         (collect_points_to_info_r): If the defining statement is a PHI
12926         node, only merge pointed-to information if the argument has
12927         already been visited.
12928         (get_tmt_for): Only create a new tag if the pointer didn't
12929         have one already.
12930         (dump_alias_info): Emit more information.
12931         (dump_points_to_info_for): Likewise.
12932         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
12933         try to get the annotation of an SSA_NAME.
12934         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
12935         alias sets when checking is enabled.
12936         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
12937         (eliminate): Mark basic blocks that will need
12938         EH information cleaned up.
12939         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
12940         predecessor.
12941         Initialize need_eh_cleanup.
12942         (fini_pre): Call tree_purge_all_dead_eh_edges and
12943         cleanup_tree_cfg if needed.
12944         Free need_eh_cleanup.
12945         * tree-ssa.c (verify_ssa_name): New function.
12946         (verify_def): Call it.
12947         Re-arrange to avoid printing too many error messages.
12948         (verify_use): Likewise.
12949         (verify_phi_args): Likewise.
12950         (verify_flow_insensitive_alias_info): New function.
12951         (verify_flow_sensitive_alias_info): New function.
12952         (verify_alias_info): New function.
12953         (verify_ssa): Call verify_alias_info.
12954         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
12955         program.
12956         Re-arrange to avoid printing too many error messages.
12957         * tree-ssanames.c (make_ssa_name): Clear
12958         SSA_NAME_IN_FREE_LIST.
12959         (release_ssa_name): Never release a default definition.
12960         (release_defs): New function.
12961         * tree.h: Declare it.
12962         * tree-ssa-dce.c (remove_dead_stmt): Call it.
12963
12964 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
12965
12966         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
12967         If true, do a depth-first search.  Do a breadht-first search,
12968         otherwise.
12969         (walk_use_def_chains): Add new argument IS_DFS.
12970         Update all users.
12971         * tree-flow.h (walk_use_def_chains): Update prototype.
12972
12973 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
12974
12975         * config/cris/cris.md: Tweak formatting.
12976         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
12977         (mover2side, moverside, movemside, movei, op3, andu): Replace
12978         live define_peephole:s with define_peephole2 near-equivalents.
12979         Delete the rest.
12980         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
12981         word-size modes.
12982         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
12983         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
12984         "*mov_sidesi_mem" respectively.
12985
12986 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
12987
12988         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
12989         (gimplify_build1): Move from tree-complex.c do_unop.
12990         (gimplify_build2): Move from tree-complex.c do_binop.
12991         (gimplify_build3): New.
12992         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
12993         Adjust throughout to call the functions above.
12994         * tree-flow.h: Declare the functions above.
12995         * tree-nested.c (gimplify_val): Rename to...
12996         (tsi_gimplify_val): ... this.
12997
12998         * Makefile.in (tree_complex.o): Update dependencies.
12999         (stor-layout.o): Depend on regs.h.
13000         * c-common.c (handle_vector_size_attribute): Update for
13001         vector types without corresponding vector modes.
13002         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
13003         a corresponding vector mode is not available.
13004         * print-tree.c (print_node): Print nunits for vector types
13005         * regclass.c (have_regs_of_mode): New.
13006         (init_reg_sets_1): Initialize it and use it instead
13007         of allocatable_regs_of_mode.
13008         * regs.h (have_regs_of_mode): Declare it.
13009         * stor-layout.c (layout_type): Pick a mode for vector types.
13010         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
13011         build_replicated_const, do_unop, do_binop, do_plus_minus,
13012         do_negate, expand_vector_piecewise, expand_vector_parallel,
13013         expand_vector_addition, expand_vector_operations_1,
13014         expand_vector_operations, tree_lower_operations,
13015         pass_lower_vector_ssa, pass_pre_expand): New.
13016         (expand_complex_operations, pass_lower_complex): Remove.
13017         * tree-optimize.c (init_tree_optimization_passes): Adjust
13018         pass ordering for changes in tree-complex.c.
13019         * tree-pass.h: Declare new passes.
13020         * tree.c (finish_vector_type): Remove.
13021         (make_vector_type): New.
13022         (build_vector_type_for_mode, build_vector_type): Rewritten.
13023         * tree.def (VECTOR_TYPE): Document where the number of
13024         subparts is stored.
13025         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
13026         (make_vector): Remove declaration.
13027
13028 2004-07-21  Richard Henderson  <rth@redhat.com>
13029
13030         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
13031         TREE_THIS_VOLATILE, may_aliases, or optimization level.
13032         (remove_useless_vars): Dump debugging info.
13033         (expand_used_vars): Move ...
13034         * cfgexpand.c (expand_used_vars): ... here.  Make static.
13035         * tree-flow-inline.h (set_is_used): New.
13036         (set_default_def): Use get_var_ann.
13037         * tree-flow.h: Update decls.
13038         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
13039         (create_ssa_var_map): Use it.
13040         * tree-ssa.c (set_is_used): Remove.
13041
13042 2004-07-22  Ben Elliston  <bje@au.ibm.com>
13043
13044         * gdbinit.in: Set a breakpoint on internal_error.
13045
13046 2004-07-21  Richard Henderson  <rth@redhat.com>
13047
13048         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
13049         to create a new basic block.
13050
13051 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
13052
13053         PR c/15052
13054         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
13055         return type on function definitions.  Move other warnings for
13056         qualified return type to -Wreturn-type.  Do not condition any such
13057         warnings on -pedantic.  Update comments.
13058         (start_function): Only copy function type from previous prototype
13059         declaration if return types are compatible.
13060         * c-typeck.c (function_types_compatible_p): Don't condition
13061         warning for incompatibility of volatile qualifiers on the return
13062         type on -pedantic.  Update comment.
13063         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
13064
13065 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
13066
13067         * c-typeck.c (set_init_index): Require designator to be of integer
13068         type.
13069
13070 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
13071
13072         PR c/11250
13073         * c-parse.in (init): Change to exprtype.
13074         (primary): Set original_code for STRING to STRING_CST.
13075         Call maybe_warn_string_init for compound literals.
13076         (initdcl, notype_initdcl): Call maybe_warn_string_init.
13077         (initval): Update.
13078         * c-tree.h (maybe_warn_string_init): New.
13079         (pop_init_level, process_init_element): Use struct c_expr.
13080         (struct c_expr): Update comment.
13081         * c-typeck.c (maybe_warn_string_init): New function.
13082         (digest_init): Call it.  Additional parameter strict_string.  All
13083         callers changed.
13084         (output_init_element): Likewise.
13085         (struct constructor_stack): Use struct c_expr for
13086         replacement_value.
13087         (really_start_incremental_init, push_init_level): Update.
13088         (pop_init_level): Update.  Return struct c_expr.
13089         (process_init_level): Update.  Take struct c_expr argument.
13090
13091 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
13092
13093         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
13094         commit.
13095
13096 2004-07-21  Eric Christopher  <echristo@redhat.com>
13097
13098         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
13099         removal.
13100         * c-decl.c (pop_scope): Ditto.
13101         * calls.c (expand_call): Remove call to current_nesting_level,
13102         update comment accordingly. Remove calls to expand_start_target_temps
13103         and expand_end_target_temps.
13104         * cfgexpand.c (construct_init_block): Remove call to
13105         expand_start_bindings_and_block.
13106         (construct_exit_block): Remove call to expand_end_bindings.
13107         * expr.c (safe_from_p): Remove BIND_EXPR handling.
13108         (expand_expr_real_1): Ditto. Fix formatting.
13109         (expand_vars): Delete.
13110         * stmt.c (POPSTACK): Remove block_stack.
13111         (stmt_status): Remove x_block_stack.
13112         (block_stack): Delete.
13113         (expand_start_bindings_and_block): Ditto.
13114         (expand_start_target_temps): Ditto.
13115         (expand_end_target_temps): Ditto.
13116         (current_nesting_level): Ditto.
13117         (warn_about_unused_variables): Ditto.
13118         (expand_end_bindings): Ditto.
13119         * tree.h: Remove declarations for above.
13120
13121 2004-07-21  Steven Bosscher  <stevenb@suse.de>
13122
13123         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
13124         * rtl.c (note_insn_name): Likewise.
13125         * print-rtl.c (print_rtx): Don't print it.
13126         * cfgrtl.h (can_delete_note_p): Don't handle it.
13127         (rtl_delete_block): Likewise.
13128         * passes.c (rest_of_handle_guess_branch_prob): Remove.
13129         (rest_of_compilation): Don't call it.
13130         * predict.c (process_note_predictions, process_note_prediction,
13131         note_prediction_to_br_prob): Remove.
13132         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
13133         * stmt.c (return_prediction): Remove.
13134         (expand_value_return): Don't call it.  Don't add prediction
13135         notes for return statements.
13136
13137 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
13138
13139         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
13140         once.
13141
13142 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
13143
13144         * c-common.c (vector_types_convertible_p): Use vector types'
13145         TYPE_SIZE and TREE_TYPE instead of their mode.
13146         * convert.c (convert_to_integer): Likewise.
13147         (convert_to_vector): Likewise.
13148         * fold-const.c (fold_convert): Likewise.
13149         * varasm.c (output_constant): Likewise.
13150         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
13151         Allow a VECTOR_TYPE initializer to be made of several vectors.
13152         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
13153         of cleared and need_to_clear, and use fold_convert.
13154         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
13155         integer vectors.
13156
13157 2004-07-20  Richard Henderson  <rth@redhat.com>
13158
13159         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
13160         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
13161
13162 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
13163
13164         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
13165         enormous cost if not TARGET_HARD_MUL.
13166
13167 2004-07-20  Andrew Pinski  <apinski@apple.com>
13168
13169         PR target/16557
13170         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
13171         (ASM_SPEC): here.
13172
13173 2004-07-21  Paul brook  <paul@codesourcery.com>
13174
13175         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
13176
13177 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13178
13179         * fold-const.c (operand_equal_p): Temporarily support NULL args.
13180         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
13181         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
13182
13183 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
13184
13185         * rtl.h (plus_constant): Delete.
13186         (plus_constant_wide): Rename to plus_constant.
13187         (plus_constant_for_output_wide): Delete vestigial prototype.
13188         (GEN_INT): Remove unnecessary cast.
13189         * tree.h (build_int_2, size_int_type): Delete.
13190         (build_int_2_wide): Rename to build_int_2.
13191         (size_int_wide): Rename to size_int_kind.
13192         (size_int_type_wide): Rename to size_int_type.
13193         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
13194         Remove unnecessary cast.
13195         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
13196         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
13197         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
13198         (size_int_type_wide): Rename size_int_type.
13199         (int_const_binop): Use size_int_type.
13200         * c-lex.c (interpret_integer): Use build_int_2.
13201         * final.c (split_double): Remove unnecessary casts.
13202         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
13203
13204 2004-07-20  Richard Henderson  <rth@redhat.com>
13205
13206         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
13207         (gimplify_compound_lval): Use is_gimple_tmp_reg.
13208         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
13209         (is_gimple_tmp_reg): New.
13210         * tree-gimple.h (is_gimple_tmp_reg): Declare.
13211
13212 2004-07-20  Richard Henderson  <rth@redhat.com>
13213
13214         * tree-pretty-print.c (dump_generic_node): Dump
13215         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
13216
13217 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
13218
13219         * tree-mudflap.c (mf_set_options_fndecl): New tree.
13220         (mudflap_init): Set it.
13221         (mudflap_register_call): Remove __mf_init call.
13222         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
13223         to pass "-ignore-reads" option to libmudflap if needed.
13224
13225 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
13226
13227         PR c++/14607
13228         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
13229         (MAKE_DECL_ONE_ONLY): Undefine.
13230         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
13231         readonly_data, one_only_data_section, forget_section): New prototypes.
13232         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
13233         functions.
13234         (pa_select_section): Add one-only (COMDAT) support.
13235         * pa.h (struct machine_function): Define.
13236         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
13237         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
13238         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
13239         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
13240         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
13241         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
13242         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
13243         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
13244         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
13245         for EXTRA_SECTION_FUNCTIONS.
13246         * doc/install.texi: Update binutils requirements.
13247
13248 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
13249
13250         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
13251         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
13252         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
13253         size_t.
13254         (struct VEC): Use unsigned for num and alloc.
13255         * vec.c (struct vec_prefix): Likewise.
13256         (vec_o_reserve): Adjust.
13257
13258         * dbxout.c (dbxout_type): Fix printf format.
13259
13260         * tree.h (binfo_member): Remove.
13261         * tree.c (binfo_member): Remove.
13262
13263 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
13264
13265         * tree.h: Include vec.h
13266         (DEF_VEC_P(tree)): New type.
13267         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
13268         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
13269         (BINFO_LANG_SLOT): Remove.
13270         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
13271         (struct tree_binfo): Turn base_binfos into a trailing
13272         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
13273         (binfo_lang_slots): Remove.
13274         * tree.c (binfo_lang_slots): Remove.
13275         (make_tree_binfo_stat): Take a base binfo count, not a
13276         lang slot count.  Adjust.
13277         * Makefile.in (TREE_H): Add vec.h
13278         * alias.c (record_component_aliases): Adjust BINFO access.
13279         * dbxout.c (dbxout_type): Likewise.
13280         * dwarf2out.c (gen_member_die): Likewise.
13281         * sdbout.c (sdbout_one_type): Likewise.
13282         * tree-dump.c (deque_and_dump): Likewise.
13283         * config/i386/i386.c (classify_argument,
13284         contains_128bit_aligned_vector_p): Likewise.
13285         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
13286         * doc/c-tree.texi (Classes): Update BINFO documentation.
13287
13288 2004-07-20  Steven Bosscher  <stevenb@suse.de>
13289
13290         * c-common.h (check_case_value): Remove prototype.
13291         (c_add_case_label): Adjust prototype.
13292         * c-common.c (check_case_value): Make static.
13293         (check_case_bounds): New function.
13294         (c_add_case_label): Use it.  Take new argument orig_type.
13295         * c-typeck.c (struct c_switch): New orig_type field.
13296         (c_start_case): Set it.
13297         (do_case): Pass it to c_add_case_label.
13298         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
13299         cases from here.  Add the labels in reverse order.
13300         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
13301         (add_case_node): Return nothing, don't check for duplicate cases.
13302         Insert new case nodes in a list, not in an AVL tree.
13303         (expand_end_case_type): Don't turn a case tree into a case list.
13304         (case_tree2list): Remove.
13305         * tree.h (add_case_node): Adjust prototype.
13306
13307 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
13308
13309         * genattr.c (struct range, struct function_unit,
13310         write_units, extend_range, init_range): Remove them.
13311         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
13312         Output "#define INSN_SCHEDULING" here.
13313         * genattrtab.c (struct range, struct function_unit_op,
13314         struct function_unit, struct dimension, enum operator,
13315         operate_exp, expand_units, simplify_knowing,
13316         encode_units_mask, simplify_by_exploding,
13317         find_and_mark_used_attributes, unmark_used_attributes,
13318         add_values_to_cover, increment_current_value,
13319         test_for_current_value, simplify_with_current_value,
13320         simplify_with_current_value_aux, gen_unit,
13321         write_unit_name, write_function_unit_info,
13322         write_complex_function, write_toplevel_expr,
13323         find_single_value, extend_range): Remove.
13324         (write_attr_get): Do not handle common_av->value
13325         being an FFS.
13326         (struct attr_desc): Remove func_units_p and blockage_p.
13327         (write_attr_valueq): Do not handle them.
13328         (find_attr): Do not clear them.
13329         (make_internal_attr): Do not initialize them.
13330         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
13331         * sched-vis.c (init_target_units, insn_print_units,
13332         init_block_visualization, print_block_visualization,
13333         visualize_scheduled_insns, visualize_no_unit,
13334         visualize_stall_cycles, visualize_alloc,
13335         visualize_free, target_units, get_visual_tbl_length,
13336         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
13337         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
13338         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
13339         * haifa-sched.c (blockage_range, clear_units,
13340         schedule_unit, actual_hazard, potential_hazard,
13341         insn_unit, unit_last_insn, unit_tick,
13342         actual_hazard_this_instance, potential_hazard,
13343         schedule_unit, max_insn_queue_index_value): Remove.
13344         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
13345         max_insn_queue_index.
13346         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
13347         * doc/md.texi (Processor pipeline description): Remove
13348         references to old pipeline descriptions.
13349         (Automaton pipeline description): Merge with the above.
13350         (Old pipeline description, Comparison of the two descriptions):
13351         Remove.
13352
13353         * bt-load.c (migrate_btr_def): Remove references to
13354         use_pipeline_interface.
13355         * haifa-sched.c (insn_cost, schedule_insn,
13356         schedule_block, advance_one_cycle, sched_init,
13357         queue_to_ready, sched_finish): Likewise.
13358         * modulo-sched.c (sms_schedule, advance_one_cycle,
13359         ps_has_conflicts): Likewise.
13360         * sched-rgn.c (init_ready): Likewise.
13361         (debug_dependencies): Likewise, and remove an "if (1)".
13362         * target.h (use_dfa_pipeline_interface): Remove.
13363         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13364         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13365         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13366         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13367         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13368         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13369         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13370         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13371         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13372         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13373         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13374         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13375         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13376         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13377         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13378         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13379         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13380         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13381         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13382
13383 2004-07-19  Roger Sayle  <roger@eyesopen.com>
13384
13385         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
13386
13387 2004-07-19  Jeff Law  <law@redhat.com>
13388
13389         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
13390         (get_eq_expr_value): Use it.  Simplify slightly.
13391
13392 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
13393
13394         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
13395         (umulsidi3_32bit_r4000): Likewise.
13396
13397 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
13398
13399         * vec.h: Propagate location information properly.
13400         (VEC_T_iterate): Add result pointer parameter.
13401         (VEC_T_space): New.
13402         (VEC_T_reserve): Use it.
13403
13404 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
13405
13406         * Makefile.in (c-format.o): Depend on c-format.h.
13407         * c-format.h: New file.
13408         (struct format_char_info): Add CHAIN member.
13409         * c-format.c: Move some types and constants to c-format.h.
13410         (format_type_error): Set to -1.
13411         (struct function_format_info): Use an int for format_type.
13412         (decode_format_type): Return an int.  Return format_type_error
13413         on error.
13414         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
13415         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
13416         (scan_char_table, time_char_table, monetary_char_table): Initialize
13417         CHAIN to NULL.
13418         (n_format_types): New variable.
13419         (check_format_info_main): Handle CHAIN in format_char_info.
13420         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
13421         TARGET_N_FORMAT_TYPES.
13422         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
13423         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
13424         * config/sol2-c.c: New file.
13425         * config/t-sol2: New file.
13426         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
13427         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
13428         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
13429
13430         * doc/extend.texi (Target Format Checks): New section.
13431         (Function Attributes): Mention it.
13432         * doc/invoke.texi: Mention target format checks.
13433         * doc/sourcebuild.texi: Mention target format checks.
13434         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
13435         TARGET_FORMAT_TYPES.
13436
13437 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
13438
13439         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
13440         added.
13441         * config/s390/s390.c (regclass_map initializer): Register 35 added to
13442         ADDR_REGS.
13443         (load_multiple_operation, store_multiple_operation): Removed
13444         pointless sanity check.
13445         (s390_decompose_address): Added check for return_address_pointer_rtx.
13446         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
13447         (s390_return_address_offset): New function.
13448         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
13449         (FRAME_REGNO_P): Added check for register 35.
13450         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
13451         REG_ALLOC_ORDER): Appended entry for register 35.
13452         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
13453         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
13454         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
13455         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
13456         is eliminable using stack pointer or hard frame pointer.
13457         (REGISTER_NAMES): Added name for register 35.
13458         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
13459         pointless sanity check.
13460
13461 2004-07-19  Roger Sayle  <roger@eyesopen.com>
13462
13463         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
13464         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
13465         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
13466         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
13467         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
13468         (fold_relational_const): Tidy up handling of floating point
13469         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
13470         transformation; fold_relational_const assumes constant operands.
13471
13472 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
13473
13474         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
13475         directory.
13476
13477 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
13478
13479         * c-tree.h (struct c_expr): Define.
13480         (C_SET_EXP_ORIGINAL_CODE): Remove.
13481         (parser_build_binary_op, build_compound_expr): Update prototypes.
13482         * c-parse.in (%union): Add exprtype.
13483         (FUNC_NAME): Mark as ttype.
13484         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
13485         exprtype.
13486         (expr): Update.  Define directly in terms of expr_no_commas
13487         instead of using nonnull_exprlist.
13488         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
13489         offsetof_member_designator, typespec_nonreserved_nonattr, init,
13490         initval, designator, component_declarator,
13491         component_notype_declarator, enumerator, array_declarator,
13492         condition, exexpr, switch_statement, stmt_nocomp, stmt,
13493         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
13494         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
13495         where appropriate.
13496         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
13497         * c-common.c (c_common_truthvalue_conversion): Don't check
13498         C_EXP_ORIGINAL_CODE.
13499         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
13500         Don't use C_EXP_ORIGINAL_CODE.
13501         (default_conversion, default_function_array_conversion): Don't use
13502         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
13503         (internal_build_compound_expr): Merge into build_compound_expr.
13504         (build_compound_expr): Take two operands instead of a TREE_LIST.
13505         * objc/objc-act.c (get_super_receiver): Update calls to
13506         build_compound_expr.
13507
13508 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
13509
13510         * config/sh/sh.c (sh_use_dfa_interface): Remove.
13511         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
13512         hook_int_void_1.
13513         * config/sh/sh.md: Extract pipeline descriptions
13514         into separate files.
13515         * config/sh/sh1.md: New file, extracted from sh.md.
13516         * config/sh/sh4.md: New file, extracted from sh.md.
13517         * config/sh/shmedia.md: New file, extracted from sh.md
13518         and rewritten using new-style pipeline description.
13519
13520 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
13521
13522         * config/pa/pa.md: Delete the two remaining define_peephole
13523         patterns.
13524
13525 2004-07-18  Steven Bosscher  <stevenb@suse.de>
13526             Joseph S. Myers  <jsm@polyomino.org.uk>
13527
13528         * c-common.c (c_common_truthvalue_conversion): Don't warn if
13529         TREE_NO_WARNING is set.
13530
13531 2004-07-18  Roger Sayle  <roger@eyesopen.com>
13532
13533         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
13534         simplify_builtin_strncmp): Delete.
13535         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
13536         Change argument to accept an arglist instead of an "exp".  Assume
13537         that the return type is always integer_type_node.  Copy missing
13538         transformations from their now obsolete simplify_builtin_*
13539         equivalents.
13540         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
13541         fold_builtin_strcmp and fold_builtin_strncmp.
13542         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
13543         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
13544         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
13545
13546 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
13547
13548         * Makefile.in (tree-alias-common.o): Update dependencies.
13549
13550 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
13551
13552         * cfgloop.c (flow_loop_nested_p): Fix comment.
13553
13554 2004-07-17  Jason Merrill  <jason@redhat.com>
13555
13556         PR c++/16115
13557         * stor-layout.c (relayout_decl): New fn.
13558         * tree.h: Declare it.
13559         (DECL_BY_REFERENCE): New macro.
13560
13561 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
13562
13563         * libgcc2.c (__enable_execute_stack): New symbol.
13564         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
13565         and declare __enable_execute_stack.
13566         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
13567         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
13568         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
13569         ENABLE_EXECUTE_STACK.
13570         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
13571         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
13572         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
13573         ENABLE_EXECUTE_STACK.
13574         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
13575         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
13576         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
13577         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
13578         ENABLE_EXECUTE_STACK.
13579         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
13580         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
13581         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
13582         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
13583         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
13584         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
13585         (sparc64_initialize_trampoline): Likewise.
13586         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
13587
13588 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
13589
13590         * langhooks.h (builtin_function): New langhook.
13591         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
13592         (LANG_HOOKS_INITIALIZER): Update.
13593         * tree.h (builtin_function): Remove.
13594         * doc/tm.texi: Update.
13595         * c-tree.h (builtin_function): Declare.
13596         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
13597         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
13598         config/ia64/ia64.c, config/iq2000/iq2000.c,
13599         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
13600         config/stormy16/stormy16.c: All callers of builtin_function
13601         changed.
13602
13603 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
13604
13605         PR target/16556
13606         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
13607         Remove white space after the backslash.
13608
13609 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
13610
13611         PR rtl-optimization/16294
13612         * resource.c (return_insn_p): New predicate.
13613         (mark_target_live_regs): Use it.  Special-case return insns.
13614         (init_resource_info): Use it.  Don't scan the epilogue past
13615         a return.
13616
13617 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13618
13619         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
13620         destroy dominance information.
13621         * passes.c (rest_of_handle_loop2):  Free dominance information.
13622         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
13623         jump threading.
13624         (thread_jumps): Update dominance information and remove unreachable
13625         blocks.
13626         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
13627         information and remove the unreachable block.
13628
13629 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
13630
13631         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
13632
13633 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
13634
13635         * doc/sourcebuild.texi: Remove libf2c entry.
13636
13637 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
13638
13639         * config/i386/i386.md (movv16qi_internal): Fix typo.
13640
13641 2004-07-17  Steven Bosscher  <stevenb@suse.de>
13642
13643         * final.c (final_scan_insn): Fix broken commit from previous
13644         patch.
13645
13646 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
13647
13648         * c-typeck.c (parser_build_binary_op): Condition warnings for
13649         X<=Y<=Z on -Wparentheses instead of -Wextra.
13650         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
13651         supported for C only.
13652
13653 2004-07-17  Steven Bosscher  <stevenb@suse.de>
13654
13655         * cfgcleanup.c (try_simplify_condjump): Don't remove line
13656         notes to avoid unreachable code warnings.
13657         * toplev.c (backend_init): Don't emit line notes for
13658         unreachable code warnings.
13659
13660         * combine.c (distribute_notes): Don't distribute a
13661         REG_VTABLE_REF note.
13662         * final.c (final_scan_insn): Don't handle it.
13663         * rtl.c (reg_note_name): Remove it.
13664         * rtl.h (enum reg_node): Dito.
13665
13666         * emit-rtl.c (force_line_numbers, restore_line_number_status):
13667         Remove.
13668         * rtl.h (force_line_numbers, restore_line_number_status):
13669         Remove prototypes.
13670
13671         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
13672         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
13673         (using_eh_for_cleanups): Also moved here.
13674
13675         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
13676         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
13677         to expand_start_case and add_case_node.
13678         * stmt.c (struct nesting): Cleanup unused fields condition_code,
13679         last_unconditional_cleanup, nominal_type, printname, and
13680         line_number_status.
13681         (struct fixup_goto): Remove.
13682         (struct stmt_status): Remove x_goto_fixup_chain field.
13683         (goto_fixup_chain): Remove.
13684         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
13685         pushcase, pushcase_range): Remove.
13686         (expand_start_bindings_and_block): Don't set unused fields in
13687         the nesting stack.
13688         (expand_start_case, add_case_node): Cleanup unused formal arguments.
13689         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
13690         instead of emit_jump_if_reachable.
13691         (emit_case_nodes): Likewise.
13692         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
13693         static.
13694         (update_eh_label): Work around left-over exception handing regions.
13695         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
13696         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
13697         (pass_cleanup_cfg_post_optimizing): New pass.
13698         (init_tree_optimization_passes): Run the new pass after all
13699         optimizations.
13700         * tree.h (pushcase, pushcase_range): Remove prototypes.
13701         (expand_start_case, add_case_node): Update prototypes.
13702
13703 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
13704
13705         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
13706
13707 2004-07-16  Richard Henderson  <rth@redhat.com>
13708
13709         * builtins.c (std_expand_builtin_va_arg): Remove.
13710         (expand_builtin_va_arg): Remove.
13711         * expr.h: Don't declare them.
13712         * gimplify.c (mark_decls_volatile_r): Remove.
13713         (copy_if_shared_r): Don't call it.
13714         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
13715         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
13716         * gimple-low.c (lower_stmt): Likewise.
13717         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
13718         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
13719         * tree-ssa-operands.c (get_expr_operands): Likewise.
13720         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
13721         EXPAND_BUILTIN_VA_ARG.
13722         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
13723         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
13724         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
13725         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
13726
13727 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
13728
13729         * tree-ssa-pre.c (insert_aux): Break out if we hit
13730         a critical edge.
13731
13732 2004-07-16  Richard Henderson  <rth@redhat.com>
13733
13734         * basic-block.h (remove_fake_exit_edges): Declare.
13735         * cfganal.c (remove_fake_predecessors): Rename from
13736         remove_fake_successors; iterate over predecessors.
13737         (remove_fake_exit_edges): New.
13738         * cfgcleanup.c (try_optimize_cfg): Use it.
13739         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
13740         * predict.c (estimate_probability): Likewise.
13741         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
13742         * tree-cfg.c (make_edges): Likewise.
13743         * tree-ssa-pre.c (fini_pre): Likewise.
13744         * profile.c (instrument_edges): Don't remove_fake_edges.
13745         (branch_prob): Do it earlier here.
13746
13747 2004-07-16  Richard Henderson  <rth@redhat.com>
13748
13749         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
13750         switchification wrt CONSTRUCTOR.  Document the reason.
13751
13752 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
13753
13754         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
13755         that prevented descriptive __mf_check source location strings.
13756
13757 2004-07-16  Richard Henderson  <rth@redhat.com>
13758
13759         * tree-def (WITH_SIZE_EXPR): New.
13760         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
13761         * expr.c (expand_expr_real_1): Likewise.
13762         * gimplify.c (maybe_with_size_expr): New.
13763         (gimplify_arg, gimplify_modify_expr): Use it.
13764         (gimplify_modify_expr_to_memcpy): Take size parameter.
13765         (gimplify_modify_expr_to_memset): Likewise.
13766         (gimplify_expr): Handle WITH_SIZE_EXPR.
13767         * tree-alias-common.c (find_func_aliases): Likewise.
13768         * tree-eh.c (tree_could_trap_p): Likewise.
13769         (tree_could_throw_p): Likewise.
13770         * tree-gimple.c (is_gimple_lvalue): Likewise.
13771         (get_call_expr_in): Likewise.
13772         * tree-inline.c (estimate_num_insns_1): Likewise.
13773         (expand_calls_inline): Likewise.
13774         * tree-nested.c (convert_call_expr): Likewise.
13775         * tree-pretty-print.c (dump_generic_node): Likewise.
13776         * tree-sra.c (sra_walk_expr): Likewise.
13777         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
13778         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
13779         * tree-ssa-operands.c (get_expr_operands): Likewise.
13780         * tree-tailcall.c (find_tail_calls): Likewise.
13781
13782         * calls.c (expand_call): Reset old_stack_allocated after
13783         calling emit_stack_restore.
13784
13785 2004-07-16  Richard Henderson  <rth@redhat.com>
13786
13787         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
13788         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
13789         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
13790         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
13791         copy_res_decl_for_inlining.
13792
13793         * tree-inline.c (declare_return_variable): New modify_dest argument.
13794         Use it as the return value, when possible or manditory.  Handle
13795         TREE_ADDRESSABLE types.
13796         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
13797         replacement of CALL_EXPR.
13798
13799 2004-07-16  Richard Henderson  <rth@redhat.com>
13800
13801         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
13802         * gimple-low.c (expand_var_p): Don't check it.
13803         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
13804         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
13805         * tree-ssa-operands.c (add_stmt_operand): Likewise.
13806         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
13807         (find_referenced_vars): Don't call them.
13808         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
13809
13810 2004-07-16  Richard Henderson  <rth@redhat.com>
13811
13812         * function.c (pass_by_reference): True for all variable sized types.
13813
13814 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
13815
13816         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
13817         * tree-pretty-print.c: Include tree-chrec.h.
13818         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
13819         and POLYNOMIAL_CHREC nodes.
13820
13821 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
13822
13823         * builtins.c (expand_builtin_stpcpy): Do not create temporary
13824         reg with VOIDmode.
13825
13826 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
13827
13828         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
13829
13830 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
13831
13832         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
13833         to BASE_REGNUM.
13834         * config/s390/s390.c: Likewise.
13835         * config/s390/s390.h: Likewise.
13836
13837 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13838
13839         * config/mips/mips.md (addsi3, adddi3): Remove special handling
13840         of $sp adds.  Remove REGNO checks from mips16 patterns.
13841
13842 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13843
13844         * config/mips/mips.md: Delete outdated comment.
13845
13846 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13847
13848         * config/mips/mips.c (get_float_compare_codes): Delete.
13849         (mips_emit_compare): New function, mostly extracted from
13850         get_float_compare_codes and gen_conditional_branch.
13851         (gen_conditional_branch, gen_conditional_move): Use it.
13852
13853 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
13854
13855         * genautomata.c (add_vect): Speedup by using integers as
13856         bit-vectors for walking through the comb_vect and finding
13857         a match.
13858
13859 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13860
13861         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
13862         operand is an uns_arith_operand; use subtraction otherwise.
13863         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
13864         not just arith_operands.
13865
13866 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13867
13868         * config/mips/mips-protos.h (gen_int_relational): Delete.
13869         (mips_emit_scc): Declare.
13870         * config/mips/mips.c (internal_test): Delete.
13871         (sle_operand, sleu_operand): New functions.
13872         (map_test_to_internal_test, gen_int_relational): Delete.
13873         (mips_emit_binary, mips_relational_operand_ok_p)
13874         (mips_emit_int_relational, mips_zero_if_equal)
13875         (mips_emit_scc): New functions.
13876         (gen_conditional_branch): Rework to use mips_emit_int_relational.
13877         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
13878         sleu_operand.
13879         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
13880         (sltu, sleu): Use mips_emit_scc.
13881         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
13882         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
13883         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
13884
13885 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13886
13887         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
13888
13889 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13890
13891         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
13892         (*sne_[sd]i): Likewise sne_[sd]i_zero.
13893         (*sgt_[sd]i): ...and sgt_[sd]i.
13894         (*slt_[sd]i): ...and slt_[sd]i.
13895         (*sgtu_[sd]i): ...and sgtu_[sd]i.
13896         (*sltu_[sd]i): ...and sltu_[sd]i.
13897         (*sleu_[sd]i): ...and sleu_[sd]i_const.
13898         Name previously unnamed mips16 patterns.  Formatting fixes.
13899
13900 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13901
13902         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
13903         (branch_type): Delete.
13904         (gen_conditional_branch, gen_conditional_move)
13905         (mips_gen_conditional_trap): Update after name change.  Get the
13906         comparison mode from cmp_operands[0].
13907         * config/mips/mips.h (cmp_type, branch_type): Delete.
13908         (cmp_operands): Renamed from branch_cmp.
13909         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
13910         name change.  Don't set branch_type.
13911         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
13912         mode class of cmp_operands[0] rather than branch_type.  Update after
13913         name change.
13914
13915 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13916
13917         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
13918         of 0...255 to 0 when inside a SET.
13919
13920 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13921
13922         * config/mips/mips.md: Remove mips16 define_peepholes.
13923
13924 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
13925
13926         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
13927         (fini_pre): Remove fake edges.
13928
13929 2004-07-15  Richard Henderson  <rth@redhat.com>
13930
13931         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
13932         (get_indirect_ref_operands, get_call_expr_operands): ... these.
13933
13934 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
13935
13936         * vec.h (VEC_address): New function.
13937
13938 2004-07-14  Jason Merrill  <jason@redhat.com>
13939
13940         PR middle-end/15885
13941         * gimplify.c (gimplify_arg): New fn, split out from...
13942         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
13943
13944 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
13945
13946         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
13947         generate code which is generated by pushqi1 now
13948         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
13949
13950 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
13951
13952         * combine.c (simplify_set): match the mode of the constant 0 with
13953         the tested operand to match the compare behaviour and the
13954         simplify_relational_operation() expectation.
13955
13956 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
13957
13958         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
13959         ("bordered"): Same.
13960
13961 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
13962
13963         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
13964         unconditionally.
13965         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
13966
13967 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
13968
13969         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
13970         calls in mips16 code.
13971
13972 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
13973
13974         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
13975         the destination of the li as well as for the neg.
13976
13977 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
13978
13979         g++/15861
13980         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
13981         * cgraph.h: Update declaration.
13982         * c-decl.c (build_cdtor): Update call with default priority.
13983         * coverage.c (create_coverage): Ditto.
13984         * tree-mudflap.c (mf_init_fndecl): New tree.
13985         (mudflap_init): Set it.
13986         (mudflap_register_call): Arrange to call __mf_init before the first
13987         __mf_register call.
13988         (mudflap_finish_file): Mark the mudflap static initializer as extra
13989         high priority, to beat all C++ static constructors.
13990
13991 2004-07-15  Jeff Law  <law@redhat.com>
13992
13993         * loop.c (check_insn_for_givs): Restore check for code labels that was
13994         accidentally deleted by a recent checkin.
13995
13996 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
13997
13998         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
13999         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
14000
14001 2004-07-14  Richard Henderson  <rth@redhat.com>
14002
14003         * print-tree.c (print_node): Fix casts last change.
14004
14005 2004-07-15  Paul Brook  <paul@codesourcery.com>
14006
14007         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
14008         to TARGET_UNWIND_INFO.
14009         * except.c (output_function_exception_table): Ditto.
14010         * except.h: Ditto.
14011         * opts.c (decode_options): Ditto.
14012         * passes.c (rest_of_handle_final): Ditto.
14013         * final.c (final_start_function): Ditto.
14014         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
14015         target hook.
14016         * targhooks.h (default_unwind_emit): Declare.
14017         * targhooks.c (default_unwind_emit): New function.
14018         * target-def.h: Define and use TARGET_UNWIND_EMIT.
14019         * target.h (struct gcc_target): Add unwind_emit.
14020         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
14021         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
14022         Remove IA64_UNWIND_EMIT.
14023         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
14024
14025 2004-07-14  Richard Henderson  <rth@redhat.com>
14026
14027         * print-tree.c (print_node): Handle SSA_NAME.
14028
14029 2004-07-14  James E Wilson  <wilson@specifixinc.com>
14030
14031         PR target/16325
14032         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
14033         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
14034
14035 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
14036
14037         * expr.c (expand_assignment): Reenable bitfield += optimizations.
14038         Use alias set 0 for memory, do proper mode calculations and adjust
14039         address for memories.
14040
14041 2004-07-14  Per Bothner  <per@bothner.com>
14042
14043         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
14044         structure with extra column field.
14045         * tree.c (expand_location):  Also fill in column field.
14046         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
14047         gets confused by the two conditionally-compiled definitions.
14048
14049 2004-07-14  Eric Christopher  <echristo@redhat.com>
14050
14051         * calls.c (expand_call): Fix typo in comment.
14052
14053 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
14054
14055         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
14056         comparision of TFmode.
14057
14058 2004-07-14  Richard Henderson  <rth@redhat.com>
14059
14060         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
14061         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
14062         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
14063         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
14064         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
14065         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
14066         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
14067         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
14068         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
14069
14070 2004-07-14  Mike Stump  <mrs@apple.com>
14071
14072         * config/darwin.h (WINT_TYPE): Define to be int to match
14073         system header files.
14074
14075 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
14076
14077         * config/xtensa/xtensa.c (function_arg_advance): Check for args
14078         that must be passed in the stack.
14079         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
14080         arguments if the size is not a constant.
14081
14082 2004-07-14  Per Bothner  <per@bothner.com>
14083
14084         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
14085         instead of EXPR_LOCUS in a boolean context, which is always true
14086         if --enable-mapped-location.
14087         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
14088
14089 2004-07-14  Richard Henderson  <rth@redhat.com>
14090
14091         * dominance.c (struct dom_info): Add fake_exit_edge.
14092         (init_dom_info): Allocate it.
14093         (free_dom_info): Free it.
14094         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
14095         in two passes.
14096         (calc_idoms): Honor fake_exit_edge.
14097
14098 2004-07-13  Jason Merrill  <jason@redhat.com>
14099
14100         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
14101         (rhs_test_for): New fn.
14102         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
14103         * tree-gimple.h: Declare them.
14104         * gimplify.c (gimplify_modify_expr): Use the new fns.
14105
14106 2004-07-14  Richard Henderson  <rth@redhat.com>
14107
14108         * config/arm/arm-protos.h (arm_va_arg): Remove.
14109         * config/arm/arm.c (arm_va_arg): Remove.
14110         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
14111         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
14112
14113 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14114
14115         * pa.c (fix_range): New function to mark a range(s) of registers as
14116         fixed registers.
14117         (override_options): Call fix_range if the -mfixed-range option string
14118         is not empty.
14119         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
14120         * doc/invoke.texi (-mfixed-range): Document new option.
14121
14122 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
14123
14124         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
14125         for TARGET_64BIT.
14126         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
14127
14128 2004-07-14  Roger Sayle  <roger@eyesopen.com>
14129
14130         * expmed.c (expand_sdiv_pow2): New function to expand signed division
14131         by a positive power of two, split out from expand_divmod.  Provide
14132         an alternate implementation when shifts are expensive.  Lower the
14133         threshold for using a branchless implementation to BRANCH_COST >= 2.
14134         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
14135
14136 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
14137
14138         * tree-dfa.c (make_rename_temp): *Really* work just
14139         like create_tmp_var if called while outside SSA form.
14140
14141 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
14142
14143         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
14144         for division by zero.
14145         ("umodsi3"): Likewise.
14146
14147 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
14148
14149         * config/mips/mips.c (mips_output_move): When generating mips16 code,
14150         force loads of negative constants to be split.
14151         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
14152         Generalize SImode li/neg splitter to cope with other modes.
14153
14154 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
14155
14156         * expmed.c: Remove more references to QUEUED in the comments.
14157         * expr.c: Likewise.
14158
14159 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
14160
14161         Revert:
14162         2004-07-13  Richard Henderson  <rth@redhat.com>
14163         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
14164         correctly.
14165
14166 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
14167
14168         * tree-dfa.c (make_rename_temp): Work just like
14169         create_tmp_var if called while outside SSA form.
14170
14171 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
14172
14173         * expr.c (enqueue_insn, finish_expr_for_function,
14174         protect_from_queue, queued_subexp_p, mark_queue,
14175         emit_insns_enqueued_after_mark, emit_queue,
14176         expand_increment): Remove.
14177         (store_constructor): Expand increment as an assignment.
14178         (expand_expr_real_1 <case PREINCREMENT_EXPR,
14179         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
14180         case POSTDECREMENT_EXPR>): Abort.
14181         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
14182         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
14183         protect_from_queue, emit_queue, queued_subexp_p): Remove.
14184         * function.h (pending_chain, x_pending_chain): Remove.
14185         * rtl.def (QUEUED): Remove.
14186
14187         * emit-rtl.c (copy_insn_1, copy_most_rtx,
14188         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
14189         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
14190         encode_units_mask): Likewise.
14191         * local-alloc.c (equiv_init_varies_p): Likewise.
14192         * rtl.c (copy_rtx): Likewise.
14193         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
14194         * simplify-rtx.c (simplify_gen_subreg): Likewise.
14195         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
14196
14197         * builtins.c (expand_builtin, expand_builtin_apply,
14198         expand_builtin_mathfn, expand_builtin_mathfn_2,
14199         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
14200         Remove calls to emit_queue and protect_from_queue.
14201         * calls.c (expand_call, precompute_arguments,
14202         precompute_register_parameters, rtx_for_function_call,
14203         store_one_arg): Likewise.
14204         * dojump.c (do_compare_and_jump, do_jump): Likewise.
14205         * explow.c (memory_address): Likewise.
14206         * expmed.c (clear_by_pieces_1, clear_storage,
14207         clear_storage_via_libcall, emit_group_load,
14208         emit_group_store, emit_store_flag,
14209         expand_expr_real_1, store_by_pieces,
14210         store_constructor, store_expr, try_casesi,
14211         try_tablejump): Likewise.
14212         * function.c (expand_pending_sizes): Likewise.
14213         * optabs.c (emit_cmp_and_jump_insns,
14214         emit_conditional_add, emit_conditional_move,
14215         expand_fix, expand_float, prepare_cmp_insn): Likewise.
14216         * stmt.c (emit_case_bit_tests,
14217         expand_asm_expr, expand_computed_goto,
14218         expand_decl_init, expand_end_case_type,
14219         expand_end_stmt_expr, expand_expr_stmt_value,
14220         expand_return, expand_start_case,
14221         optimize_tail_recursion): Likewise.
14222         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
14223         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
14224
14225 2004-07-14  Ben Elliston  <bje@au.ibm.com>
14226
14227         * vec.h: Comment fix.
14228
14229 2004-07-13  Richard Henderson  <rth@redhat.com>
14230
14231         * target.h (struct gcc_target): Add calls.pass_by_reference.
14232         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
14233         * function.c (pass_by_reference): Use the hook.
14234         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
14235         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
14236         (hook_pass_by_reference_must_pass_in_stack): New.
14237         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
14238         (alpha_pass_by_reference): New.
14239         (TARGET_PASS_BY_REFERENCE): New.
14240         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14241         * config/arc/arc.c (arc_pass_by_reference): New.
14242         (TARGET_PASS_BY_REFERENCE): New.
14243         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14244         (FUNCTION_ARG_CALLEE_COPIES): True.
14245         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
14246         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
14247         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
14248         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14249         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14250         * config/cris/cris.c (cris_pass_by_reference): New.
14251         (TARGET_PASS_BY_REFERENCE): New.
14252         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
14253         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
14254         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14255         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
14256         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14257         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
14258         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
14259         (frv_function_arg_pass_by_reference): Remove.
14260         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14261         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
14262         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
14263         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
14264         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14265         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
14266         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
14267         (ia64_pass_by_reference): Rename from
14268         ia64_function_arg_pass_by_reference.
14269         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14270         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14271         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
14272         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
14273         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
14274         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14275         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
14276         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
14277         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
14278         (m32r_pass_by_reference): Adjust prototype.  Make static.
14279         Handle mode sizes correctly.
14280         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14281         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
14282         (m68hc11_function_arg_pass_by_reference): Remove.
14283         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14284         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
14285         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
14286         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14287         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
14288         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
14289         (mips_va_arg): Use pass_by_reference.
14290         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
14291         Handle mode sizes correctly.
14292         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14293         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
14294         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
14295         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
14296         (mmix_pass_by_reference): Rename from
14297         mmix_function_arg_pass_by_reference.
14298         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14299         (FUNCTION_ARG_CALLEE_COPIES): True.
14300         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
14301         (mn10300_pass_by_reference): New.
14302         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14303         (FUNCTION_ARG_CALLEE_COPIES): True.
14304         * config/pa/pa.c (pa_pass_by_reference): New.
14305         (TARGET_PASS_BY_REFERENCE): New.
14306         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14307         (FUNCTION_ARG_CALLEE_COPIES): True.
14308         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
14309         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
14310         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
14311         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14312         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
14313         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
14314         (s390_pass_by_reference): Rename from
14315         s390_function_arg_pass_by_reference.
14316         (s390_function_arg_advance): Don't query pass-by-ref.
14317         (s390_function_arg): Likewise.
14318         (s390_gimplify_va_arg): Use pass_by_reference.
14319         (s390_call_saved_register_used): Likewise.
14320         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14321         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
14322         (shcompact_byref, sh_pass_by_reference): New.
14323         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14324         (SHCOMPACT_BYREF): Remove.
14325         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
14326         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
14327         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
14328         (sparc_gimplify_va_arg): Use pass_by_reference.
14329         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14330         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14331         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
14332         (v850_pass_by_reference): New.
14333         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14334         (FUNCTION_ARG_CALLEE_COPIES): True.
14335         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
14336         FUNCTION_ARG_PASS_BY_REFERENCE docs.
14337
14338 2004-07-14  Richard Henderson  <rth@redhat.com>
14339             Richard Sandiford  <rsandifo@redhat.com>
14340
14341         * config/mips/mips-protos.h (mips_va_arg): Delete.
14342         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
14343         * config/mips/mips.c: Include tree-gimple.h.
14344         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
14345         (mips_arg_info): Remove special handling of must_pass_in_stck args.
14346         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
14347         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
14348
14349 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
14350
14351         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
14352         arguments for COND_EXPR in big-endian adjustment code.
14353
14354 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14355
14356         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
14357         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
14358         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
14359         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
14360
14361 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
14362
14363         PR tree-optimization/16443
14364         * tree-ssa-alias.c: Add more description for
14365         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
14366         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
14367         clobbering of call-clobbered and addressable variables.  If
14368         there are any before aliases have been computed, add them.
14369
14370 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
14371
14372         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
14373         verification.
14374
14375 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
14376
14377         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
14378         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
14379         to the same type.
14380
14381 2004-07-13  Per Bothner  <per@bothner.com>
14382
14383         * collect2.c (main):  Handle --no-demangle and --demangle flags.
14384
14385 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
14386
14387         * Makefile.in (OBJS-common): Add tree-data-ref.o.
14388         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
14389         (tree-data-ref.o): New rule.
14390         * lambda.h: New file.
14391         * tree-data-ref.c: New file.
14392         * tree-data-ref.h: New file.
14393         * tree.c (int_cst_value, tree_fold_gcd): New functions.
14394         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
14395
14396 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
14397
14398         PR target/13926
14399         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
14400         * config/sparc/sparc.c (output_ubranch): New function.
14401         * config/sparc/sparc.md (jump pattern): Use it.
14402
14403 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
14404
14405         PR target/16494
14406         * config/sparc/sparc.c (output_cbranch): Properly guard
14407         the code handling far branches with TARGET_V9.
14408         * config/sparc/sparc.md (length attribute): Document the
14409         side-effect of having a length greater or equal to 3.
14410
14411 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
14412             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
14413
14414         PR target/15186
14415         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
14416         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
14417
14418 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
14419             Martin Sebor  <sebor@roguewave.com>
14420
14421         PR target/12602
14422         * doc/invoke.texi (SPARC options): Document -threads
14423         and -pthreads on Solaris.
14424
14425 2004-07-13  Richard Henderson  <rth@redhat.com>
14426
14427         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
14428         by reference.
14429         (ind_gimplify_va_arg_expr): Remove.
14430         * tree.h (ind_gimplify_va_arg_expr): Remove.
14431         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
14432         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
14433         argsp to be null.
14434
14435         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
14436         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
14437         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
14438         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
14439         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
14440
14441 2004-07-13  Richard Henderson  <rth@redhat.com>
14442
14443         * function.c (pass_by_reference): New.
14444         (assign_parm_find_data_types): Use it.
14445         * calls.c (initialize_argument_information): Likewise.
14446         (emit_library_call_value_1): Likewise.
14447         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14448         * function.h (pass_by_reference): Declare.
14449
14450 2004-07-13  Richard Henderson  <rth@redhat.com>
14451
14452         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
14453         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
14454         * expr.h (MUST_PASS_IN_STACK): Remove.
14455         * system.h (MUST_PASS_IN_STACK): Poison.
14456         * tree.h (must_pass_in_stack_var_size): Declare.
14457         (must_pass_in_stack_var_size_or_pad): Declare.
14458         * calls.c (must_pass_in_stack_var_size): New.
14459         (must_pass_in_stack_var_size_or_pad): Rename from
14460         default_must_pass_in_stack.
14461         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
14462         (TARGET_MUST_PASS_IN_STACK): New.
14463         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
14464         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
14465         (TARGET_MUST_PASS_IN_STACK): New.
14466         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
14467         * config/frv/frv.c (frv_must_pass_in_stack): New.
14468         (TARGET_MUST_PASS_IN_STACK): New.
14469         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
14470         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
14471         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
14472         (ix86_must_pass_in_stack): Make static.
14473         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
14474         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
14475         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
14476         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
14477         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
14478         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
14479         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
14480         (mcore_must_pass_on_stack): Remove.
14481         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
14482         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
14483         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
14484         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
14485         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
14486         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
14487         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
14488         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
14489         (TARGET_MUST_PASS_IN_STACK): New.
14490         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
14491         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
14492         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
14493         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
14494         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
14495         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
14496         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
14497         MUST_PASS_IN_STACK.
14498
14499         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
14500         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
14501         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
14502         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
14503         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
14504         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
14505         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
14506         config/xtensa/xtensa.c: Use target hook.
14507
14508 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
14509
14510         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
14511         * configure: Rebuilt.
14512
14513 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
14514
14515         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
14516         * config/mips/mips.h (mips_reg_names): Don't declare.
14517         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
14518         (TARGET_NAME_REGS): Delete.
14519         (TARGET_SWITCHES): Remove -mrnames.
14520         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
14521         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
14522         in REGISTER_NAMES.
14523         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
14524         (override_options): Remove handling of TARGET_NAME_REGS.
14525
14526 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
14527
14528         * config/mips/mips.h (TARGET_*): Boolify.
14529
14530 2004-07-12  Nick Clifton  <nickc@redhat.com>
14531
14532         * config.gcc: Add sh-*-symbianelf target.
14533         * config/sh/sh.c: Add new target macros:
14534         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
14535         TARGET_CXX_IMPORT_EXPORT_CLASS.
14536         (sh_file_start): Create a definition of the .directive section.
14537         (sh_attribute): Add dllimport and dllexport attributes.
14538         * config/sh/symbian-pre.h: New file.
14539         * config/sh/symbian-post.h: New file.
14540         * config/sh/symbian.c: New file. Contains Symbian specific
14541         functions.
14542         * config/sh/sh-protos.h: Add prototypes for new functions
14543         provided by symbian.c.
14544         * config/sh/t-symbian: New file.
14545         * doc/extend.texi: Document support for dllimport and dllexport
14546         attributes by the sh-symbianelf target.
14547
14548 2004-07-12  James E Wilson  <wilson@specifixinc.com>
14549
14550         * Makefile.in (AR): Use @AR@ not ar.
14551         (NM): New.
14552         (AR_FOR_TARGET): Use $(AR) not ar for native.
14553         (NM_FOR_TARGET): Use $(NM) not nm for native.
14554         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
14555         * configure: Regenerate.
14556
14557 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
14558
14559         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
14560         special case.
14561         (ashldi3_sp64): Likewise.
14562
14563 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14564
14565         PR target/16477
14566         * pa.c (function_arg): Update comment.
14567         * pa.h (BLOCK_REG_PADDING): Define.
14568
14569 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14570
14571         PR tree-optimization/16461
14572         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
14573         arguments of phi nodes.
14574
14575 2004-07-12  Devang Patel  <dpatel@apple.com>
14576
14577         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
14578
14579 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
14580
14581         * function.c (expand_function_start): Ensure r_save is in Pmode.
14582         * calls.c (prepare_call_address): Ensure static_chain_value is
14583         in Pmode.
14584         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
14585         r_save_area are in Pmode.
14586         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
14587         fnaddr, and static_chain are in Pmode.
14588
14589 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
14590
14591         PR target/16445
14592         * config/ia64/ia64.c (bundling): Don't count ignored insns.
14593
14594 2004-07-12  Richard Henderson  <rth@redhat.com>
14595
14596         * target.h (struct gcc_target): Move gimplify_va_arg_expr
14597         next to build_builtin_va_list.
14598         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
14599         * builtins.c (gimplify_va_arg_expr): Likewise.
14600         * gimplify.c (copy_if_shared_r): Likewise.
14601
14602 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
14603
14604         * passes.c (rest_of_decl_compilation): Don't defer call of
14605         assemble_variable if its DECL_RTL is already set.
14606
14607 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
14608
14609         * cfgloop.h (struct loop): Add nb_iterations field.
14610         (current_loops): Declare.
14611         * tree-chrec.c (chrec_not_analyzed_yet,
14612         chrec_dont_know, chrec_known, count_ev_in_wider_type,
14613         chrec_contains_symbols_defined_in_loop): Remove the temporary
14614         hooks.
14615         * tree-flow-inline.h (loop_containing_stmt): New function.
14616         * tree-scalar-evolution.c: Add implementation.
14617         * tree-scalar-evolution.h: Add declarations.
14618
14619 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
14620
14621         PR rtl-optimization/15921
14622         * Makefile.in (global.o): Add recog.h.
14623
14624         * global.c (recog.h): Add the include-clause.
14625         (bb_info): New member earlyclobber.
14626         (allocate_bb_info, free_bb_info): Initialize/finish the new
14627         member.
14628         (earlyclobber_regclass, earlyclobber_regclass_length): The new
14629         global variables.
14630         (check_earlyclobber, regclass_intersect,
14631         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
14632         New functions.
14633         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
14634         (make_accurate_live_analysis): Modify pavin.
14635
14636 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
14637
14638         * tree-cfg.c (find_taken_edge): Statically compute the truth
14639         value of a predicate comparing an SSA_NAME to itself.
14640
14641 2004-07-12  Roger Sayle  <roger@eyesopen.com>
14642
14643         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
14644         rs6000 doesn't have shift-and-add or shift-and-sub instructions
14645         by returning the cost of a multiplication plus an addition.
14646
14647 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
14648
14649         PR tree-optimization/14107
14650         * gimplify.c (gimplify_return_expr): Accept a
14651         RETURN_EXPR with an error argument.
14652         * tree-optimize.c (init_tree_optimization_passes):
14653         Run pass_warn_function_return at -O0.
14654
14655 2004-07-12  Roger Sayle  <roger@eyesopen.com>
14656
14657         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
14658         index entry.
14659
14660 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
14661
14662         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
14663         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
14664         * config/mips/3000.md: Add copyright notice.  Remove automota and
14665         function units; use generic ones instead.  Only define reservations
14666         for things that are different from generic.md.  Extend each clause
14667         to include r3900.
14668         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
14669         * config/mips/mips.md: Include them. Remove define_function_units.
14670         (alu, imuldiv): New automata and units.
14671
14672 2004-07-12  Ben Elliston  <bje@au.ibm.com>
14673
14674         * doc/invoke.texi (Optimize Options): Document -frename-registers
14675         not being enabled by default at -O3.
14676
14677 2004-07-11  Roger Sayle  <roger@eyesopen.com>
14678
14679         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
14680         floating point additions, to keep real immediate constant positive.
14681         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
14682         into X + C, and leave positive real constants as X - C.
14683
14684 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14685
14686         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
14687
14688 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14689
14690         PR tree-optimization/15654
14691         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
14692
14693 2004-07-11  Roger Sayle  <roger@eyesopen.com>
14694
14695         * builtins.c (fold_builtin_fputs): Don't bother converting the
14696         return type to integer_type_node, as we've already checked that
14697         the result will be ignored.
14698
14699         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
14700         that signed addition, subtraction, multiplication, division,
14701         remainder, negation and absolute value may potentially trap.
14702
14703         * fold-const.c (fold_ignored_result): New function to strip
14704         non-side-effecting tree nodes from an expression whose result
14705         is ignored.
14706         (fold_convert): Call fold_ignored_result when casting a value
14707         to VOID_TYPE.
14708         (omit_one_operand):  Call fold_ignored_result on the "omitted"
14709         operand when building a COMPOUND_EXPR.
14710         (pedantic_omit_one_operand): Likewise.
14711         * tree.h (fold_ignored_result): Prototype here.
14712         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
14713         when we're going to ignore the result.
14714
14715 2004-07-11  Richard Henderson  <rth@redhat.com>
14716
14717         PR tree-opt/16383
14718         * tree-ssa-ccp.c (fold_stmt_r): Split out...
14719         * tree.c (fields_compatible_p, find_compatible_field): ... new.
14720         * tree.h (fields_compatible_p, find_compatible_field): Declare.
14721         * tree-sra.c (sra_hash_tree): Hash fields by offset.
14722         (sra_elt_eq): Use fields_compatible_p.
14723         (generate_one_element_ref): Use find_compatible_field.
14724
14725 2004-07-11  Richard Henderson  <rth@redhat.com>
14726
14727         PR tree-opt/16422
14728         * tree-sra.c (generate_one_element_init): New.
14729         (generate_element_init): Use it.
14730         (scalarize_init): Push/pop gimplify context around it.
14731         (find_new_referenced_vars_1, find_new_referenced_vars): New.
14732         * gimplify.c (gimplify_expr): Allow SSA_NAME.
14733
14734 2004-07-11  Roger Sayle  <roger@eyesopen.com>
14735
14736         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
14737         combine.c's combine_insn_cost.
14738         * rtl.h (insn_rtx_cost): Prototype here.
14739         * combine.c (combine_insn_cost): Delete function.
14740         (combine_validate_cost): Update callers of combine_insn_cost to
14741         call insn_rtx_cost instead.
14742         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
14743         requesting the rtx_cost of call and/or jump instructions.
14744
14745         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
14746         rtx_cost directly.  Don't request/use the cost of call or jump
14747         instructions.  Return -1 if the cost of any instruction can't be
14748         determined (or the BB contains a function call).
14749         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
14750         -1 (i.e. can't determine the cost of any instruction or the basic
14751         block contains a subroutine call).
14752         (find_if_case_2): Likewise.
14753
14754 2004-07-11  Roger Sayle  <roger@eyesopen.com>
14755
14756         * rs6000.c (struct processor_costs): Change semantics of fields to
14757         include the COST_N_INSNS scaling, and update all initializers.
14758         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
14759         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
14760         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
14761         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
14762
14763 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
14764
14765         * LANGUAGES: Remove obsolete information.
14766
14767 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
14768
14769         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
14770         SIGBUS signal frames, the PSW address points *to* the faulting
14771         instruction, not after it.
14772
14773 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
14774
14775         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
14776         added to TLS symbol addresses.
14777
14778 2004-07-11  Richard Henderson  <rth@redhat.com>
14779
14780         * expmed.c (init_expmed): Use stack-local structures for
14781         temporary rtl.  Don't recognize shifts.
14782
14783 2004-07-11  Richard Henderson  <rth@redhat.com>
14784
14785         * expr.c (store_expr): Don't fiddle subreg promotion for types
14786         with precision smaller than the mode.
14787
14788 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
14789
14790         * tree.h (all_types_permanent): Remove.
14791
14792 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
14793
14794         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
14795         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
14796         * langhooks.c (lhd_clear_binding_stack): Remove.
14797         * langhooks-def.h (lhd_clear_binding_stack,
14798         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
14799         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
14800         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
14801         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
14802         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
14803         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
14804         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
14805         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
14806         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
14807         * tree.h (poplevel): Don't declare.
14808         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
14809         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
14810         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
14811         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
14812         Remove.
14813
14814 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
14815
14816         PR tree-optimization/16437
14817         * c-common.c (shorten_compare): Don't mark result of conversion to
14818         narrower signed type as overflowing.
14819         * fold-const.c (decode_field_reference): Determine whether
14820         signedness comes from outer type using precision rather than size.
14821
14822 2004-07-11  Phil Edwards  <phil@codesourcery.com>
14823
14824         * configure.ac:  Alphabetize --enable-checking list, add
14825         missing valgrind entry.
14826         * configure:  Regenerate.
14827
14828 2004-07-11  Phil Edwards  <phil@codesourcery.com>
14829
14830         * doc/install.texi (Testing):  Fix syntax in "make check" example.
14831
14832 2004-07-10  James E Wilson  <wilson@specifixinc.com>
14833
14834         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
14835
14836 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14837
14838         PR rtl-optimization/16001
14839         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
14840         niter_expr.
14841
14842 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
14843
14844         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
14845
14846 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
14847             James Morrison  <phython@gcc.gnu.org>
14848
14849         * doc/contrib.texi (Contributors): Add gfortran contributors and
14850         fix a couple of typos.
14851
14852 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14853
14854         PR rtl-optimization/15387
14855         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
14856         to incoming args space correctly.
14857
14858 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14859
14860         * pa.c (output_indirect_call): Only use %r2 as the link register in
14861         indirect calls with the long PA 2.0 pc-relative branch.
14862
14863 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
14864
14865         * config/i386/i386.c (override_options): Pick a 64-bit CPU
14866         for the default tuning if TARGET_64BIT.
14867
14868 2004-07-10  Richard Henderson  <rth@redhat.com>
14869
14870         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
14871         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
14872
14873 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
14874
14875         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
14876         * expmed.c (store_bit_field, extract_bit_field): Remove last
14877         argument.
14878         * builtins.c (expand_builtin_signbit): Adjust callers.
14879         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
14880         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
14881         * ifcvt.c (noce_emit_move_insn): Likewise.
14882         * stmt.c (expand_return): Likewise.
14883         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
14884         store_field, expand_expr_real_1): Likewise.
14885
14886 2004-07-10  Richard Henderson  <rth@redhat.com>
14887
14888         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
14889
14890 2004-07-09  Mike Stump  <mrs@apple.com>
14891
14892         * config/darwin.c (no_dead_strip): Add.
14893         (HAVE_DEAD_STRIP): Add.
14894         (darwin_emit_unwind_label): Ensure that we don't dead code strip
14895         the .eh label.
14896
14897 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14898
14899         * tree-ssa-loop-im.c: New file.
14900         * Makefile.in (tree-ssa-loop-im.o): Add.
14901         * cfgloop.c (superloop_at_depth): New function.
14902         * cfgloop.h (superloop_at_depth): Declare.
14903         * common.opt (ftree-lim): New flag.
14904         * expr.c (array_ref_up_bound): New function.
14905         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
14906         * timevar.def (TV_LIM): New timevar.
14907         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
14908         computing immediate uses of a phi node.
14909         * tree-flow.h (struct tree_ann_common_d): Add aux field.
14910         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
14911         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
14912         * tree-pass.h (pass_lim): Declare.
14913         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
14914         functions.
14915         (pass_lim): New pass structure.
14916         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
14917         * tree.c (in_array_bounds_p): New function.
14918         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
14919         (in_array_bounds_p, array_ref_up_bound): Declare.
14920         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
14921         * doc/passes.texi (tree-ssa-loop-im.c): Document.
14922
14923 2004-07-09  Richard Henderson  <rth@redhat.com>
14924
14925         * builtins.c (expand_builtin_stpcpy): Don't modify len.
14926
14927         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
14928         with prejudice.
14929
14930 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
14931
14932         * flags.h: Delete redundant prototypes that are being generated
14933         in options.h from common.opt.
14934         * common.opt: Add in the expository comments formerly in flags.h.
14935
14936 2004-07-09  Jan Beulich  <jbeulich@novell.com>
14937
14938         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
14939         available for use only when TARGET_MMX/_SSE is set, and check for
14940         variable argument function if any register count is non-zero.
14941         (function_arg): Correctly suppress repeated warnings for passing SSE
14942         vectors are arguments without SSE enabled.
14943         (ix86_function_arg_boundary): Without SSE enabled, the use of what
14944         would be SSE register modes does no longer influence the alignment.
14945
14946 2004-07-09  Richard Henderson  <rth@redhat.com>
14947
14948         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
14949         Always align upward to arg boundary.  Use size_in_bytes/round_up.
14950         Maintain type-correctness of constants.
14951         * stor-layout.c (round_up, round_down): Special-case powers of 2.
14952
14953 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
14954
14955         * config/sparc/sparc.c (*_costs): Scale instruction costs
14956         by COSTS_N_INSNS.
14957         (sparc_rtx_costs): Adjust as appropriate.
14958
14959 2004-07-09  Jan Beulich  <jbeulich@novell.com>
14960
14961         * config/i386/mm3dnow.h: New.
14962         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
14963
14964 2004-07-09  Richard Henderson  <rth@redhat.com>
14965
14966         * simplify-rtx.c (simplify_const_relational_operation): Only
14967         look at bounds of scalar integers.
14968
14969 2004-07-09  Jan Beulich  <jbeulich@novell.com>
14970
14971         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
14972
14973 2004-07-09  Andrew Pinski  <apinski@apple.com>
14974
14975         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
14976         always referenced.
14977         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
14978         UOBJC_METACLASS_decl.
14979
14980 2004-07-09  James E Wilson  <wilson@specifixinc.com>
14981
14982         PR target/16364
14983         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
14984         do return a parallel if hfa_mode == XFmode and mode == TImode.
14985
14986 2004-07-09  Jan Beulich  <jbeulich@novell.com>
14987
14988         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
14989         permissible for unary plus.
14990
14991 2004-07-09  Jan Beulich  <jbeulich@novell.com>
14992
14993         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
14994         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
14995         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
14996         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
14997         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
14998         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
14999         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
15000         (BUILTIN_xxxIMAX): New.
15001         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
15002         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
15003         BUILT_IN_PARITYIMAX.
15004
15005 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
15006
15007         * config/sparc/sparc.h (processor_costs): Define.
15008         (sparc_costs): Declare.
15009         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
15010         hypersparc_costs, sparclet_costs, ultrasparc_costs,
15011         ultrasparc3_costs): New.
15012         (sparc_override_options): Set sparc_costs as appropriate.
15013         (sparc_rtx_costs): Use sparc_costs instead of messy
15014         conditionals.
15015
15016 2004-07-09  Steven Bosscher  <stevenb@suse.de>
15017
15018         * doc/md.texi (Processor pipeline description): Mention that
15019         the old pipeline description is deprecated.
15020
15021         * config/rs6000/7450.md (automaton ppc7450): Split up, move
15022         mciu_7450 function unit to...
15023         (automaton ppc7450mciu): ...new automaton.
15024
15025         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
15026         (schedule_block): Don't consider inserting bubbles.
15027         (sched_init): Don't initialize DFA bubbles.
15028         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
15029         TARGET_SCHED_DFA_BUBBLE): Remove.
15030         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
15031         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
15032         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
15033
15034         * stmt.c (conditional_context): Remove prototype.
15035         * tree.h (conditional_context): Remove.
15036         * tree-cfg.c (pre_insert_on_edge): Remove.
15037
15038         * c-common.h (c_expand_asm_operands): Remove prototype.
15039         * c-typeck.c (c_expand_asm_operands): Remove.
15040
15041 2004-07-09  Jan Beulich  <jbeulich@novell.com>
15042
15043         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
15044         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
15045         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
15046         and V8QI are class SSE. All sufficiently small remaining vector modes
15047         must be passed in one or two integer registers.
15048         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
15049         returned in memory.
15050         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
15051         __builtin_ia32_pmuludq128 have non-uniform argument and return types
15052         and must thus be handled explicitly.
15053         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
15054         MMX and XMM regs.
15055         (movv8qi_internal, movv4hi_internal, movv2si_internal,
15056         movv2sf_internal): Permit moving between MMX and XMM registers (since
15057         MMX areguments and return values are passed in XMM registers).
15058         (sse2_umulsidi3): Correct type and mode.
15059
15060 2004-07-09  Richard Henderson  <rth@redhat.com>
15061
15062         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
15063
15064 2004-07-09  Eric Christopher  <echristo@redhat.com>
15065
15066         * config/rs6000/40x.md: Split into two automatons.
15067
15068 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
15069             Andrew Pinski  <apinski@apple.com>
15070
15071         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
15072         on when we have more than one input file.
15073         (c_common_parse_file): Restore loop over all input files.
15074         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
15075
15076         * c-decl.c (set_type_context): New function.
15077         (pop_scope): Use it to set context of types.  When we
15078         encounter a TYPE_DECL, set the context of the attached type too.
15079         (pop_file_scope): Don't call cpp_undef_all here.
15080         (diagnose_mismatched_decls): Do not complain about a second
15081         definition of an 'extern inline' function if it's not in the
15082         same translation unit.  Do not complain about inline
15083         declaration after use if the use was in a different
15084         translation unit.
15085         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
15086         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
15087         the external scope.
15088         (pushdecl_top_level): Likewise.
15089         (grokdeclarator): Clarify what is going on with setting
15090         DECL_EXTERNAL on function types, a little.
15091         (c_write_global_declarations): Don't do anything if
15092         -fsyntax-only or errors have been encountered.
15093
15094 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
15095
15096         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
15097
15098 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15099
15100         PR target/16459
15101         * pa.c (output_indirect_call): Use %r2 as the link register when
15102         calling $$dyncall with a pc-relative branch.
15103
15104 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
15105
15106         * doc/install.texi (Binaries): Mention OpenPKG.
15107
15108 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
15109
15110         Fix PR tree-optimization/15555
15111         * tree-dfa.c (dump_variable): If the variable is a pointer
15112         SSA_NAME, also dump its points-to information.
15113         * tree-flow.h (struct ptr_info_def): Add field
15114         is_dereferenced.
15115         (dump_points_to_info_for): Declare.
15116         (debug_points_to_info_for): Declare.
15117         * tree-optimize.c (init_tree_optimization_passes): Add a
15118         second alias analysis pass after DOM2.
15119         Move pass_del_pta to a later spot.
15120         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
15121         create a name tags when we find a dereferenced pointer.  Just
15122         mark the pointer dereferenced.
15123         (collect_points_to_info_for): Move code to clear points-to
15124         information to create_name_tags.
15125         (create_name_tags): New function.
15126         (compute_flow_sensitive_aliasing): Call it.
15127         (setup_pointers_and_addressables): Mark type tags for renaming
15128         here instead of ...
15129         (create_memory_tag): ... here.
15130         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
15131         (dump_points_to_info_for): Declare extern.
15132         (debug_points_to_info_for): New function.
15133
15134 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
15135
15136         * config/arc/arc.md: Switch to DFA-based scheduler description.
15137         * config/arc/arc.c: Switch to DFA-based scheduler description.
15138
15139 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
15140
15141         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
15142         pointer.
15143
15144 2004-07-09  Richard Henderson  <rth@redhat.com>
15145
15146         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
15147         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15148         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
15149         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
15150
15151         * config/v850/v850-protos.h (v850_va_arg): Remove.
15152         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15153         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
15154         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
15155         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
15156         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
15157
15158 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
15159
15160         PR target/12133
15161         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
15162         and DImode to use +/-4k offset.
15163
15164 2004-07-09  Richard Henderson  <rth@redhat.com>
15165
15166         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
15167         Remove.
15168         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15169         (xstormy16_gimplify_va_arg_expr): Rewrite from
15170         xstormy16_expand_builtin_va_arg.
15171         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
15172
15173         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
15174         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
15175
15176         * config/sh/sh-protos.h (sh_va_arg): Remove.
15177         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15178         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
15179         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
15180
15181         * config/pa/pa-protos.h (hppa_va_arg): Remove.
15182         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15183         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
15184         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
15185
15186         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
15187         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15188         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
15189         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
15190
15191 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
15192
15193         * config/sparc/sparc.md (return): Rewrite length formula.
15194         * config/sparc/sparc.c (output_return): Pass 1 as 5th
15195         argument to final_scan_insn when in a delay slot.
15196         (output_sibcall): Likewise.
15197
15198 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
15199
15200         * arm.c (arm_cpp_interwork): New variable.
15201         (arm_override_options): Set it if TARGET_INTERWORK was on the command
15202         line.
15203         * arm.h (arm_cpp_interwork): Declare it.
15204         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
15205         __THUMB_INTERWORK__ in the preprocessor.
15206
15207 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
15208
15209         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
15210
15211 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
15212
15213         PR target/16416
15214         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
15215         Override default settings to account for -m32 and -m64.
15216
15217 2004-07-08  Randolph Chung  <tausq@debian.org>
15218
15219         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
15220
15221 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
15222
15223         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
15224         before comparing it as such.
15225
15226 2004-07-08  Richard Henderson  <rth@redhat.com>
15227
15228         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
15229         temporary.  Use bit arithmetic to align.
15230
15231 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
15232
15233         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
15234         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
15235         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
15236         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
15237         add_labels_and_missing_jumps, find_jump_block,
15238         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
15239         Likewise.
15240         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
15241         link_btr_uses, move_btr_def): Likewise.
15242         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
15243         expand_builtin_expect_jump): Likewise.
15244         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
15245         * calls.c (expand_call, emit_library_call_value_1): Likewise.
15246         * cfganal.c (forwarder_block_p): Likewise.
15247         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
15248         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
15249         find_bb_boundaries): Likewise.
15250         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
15251         merge_blocks_move_predecessor_nojumps,
15252         merge_blocks_move_successor_nojumps, insns_match_p,
15253         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
15254         try_optimize_cfg): Likewise.
15255         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
15256         * cfglayout.c (skip_insns_after_block, label_for_bb,
15257         record_effective_endpoints, insn_locators_initialize,
15258         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
15259         * cfgmainloop.c (create_loop_notes): Likewise.
15260         * cfgrtl.c (delete_insn, delete_insn_chain,
15261         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
15262         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
15263         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
15264         redirect_branch_edge, force_nonfallthru_and_redirect,
15265         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
15266         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
15267         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
15268         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
15269         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
15270         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
15271         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
15272         * combine.c (combine_instructions, can_combine_p, try_combine,
15273         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
15274         distribute_notes, distribute_links, insn_cuid): Likewise.
15275         * cse.c (fold_rtx, cse_insn, cse_around_loop,
15276         invalidate_skipped_block, cse_set_around_loop,
15277         cse_end_of_basic_block, cse_main, cse_basic_block,
15278         cse_condition_code_reg): Likewise.
15279         * cselib.c (cselib_process_insn): Likewise.
15280         * ddg.c (create_ddg): Likewise.
15281         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
15282         Likewise.
15283         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
15284         gen_label_die, dwarf2out_var_location): Likewise.
15285         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
15286         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
15287         last_call_insn, active_insn_p, next_label, prev_label,
15288         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
15289         add_insn_before, remove_insn, add_function_usage_to,
15290         reorder_insns, find_line_note, remove_unnecessary_notes,
15291         emit_insn_after_1, classify_insn): Likewise.
15292         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
15293         connect_post_landing_pads, sjlj_mark_call_sites,
15294         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
15295         can_throw_internal, can_throw_external, set_nothrow_function_flags,
15296         convert_to_eh_region_ranges): Likewise.
15297         * explow.c (optimize_save_area_alloca): Likewise.
15298         * expr.c (expand_expr_real): Likewise.
15299         * final.c (insn_current_reference_address, compute_alignments,
15300         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
15301         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
15302         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
15303         propagate_block_delete_insn, propagate_one_insn,
15304         init_propagate_block_info, propagate_block, libcall_dead_p,
15305         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
15306         Likewise.
15307         * function.c (instantiate_virtual_regs, reorder_blocks_1,
15308         expand_function_start, expand_function_end, contains,
15309         thread_prologue_and_epilogue_insns,
15310         reposition_prologue_and_epilogue_notes): Likewise.
15311         * gcse.c (constprop_register, bypass_conditional_jumps,
15312         insert_insn_end_bb, gcse_after_reload): Likewise.
15313         * genemit.c (gen_expand, gen_split): Likewise.
15314         * genpeep.c (gen_peephole, main): Likewise.
15315         * global.c (build_insn_chain): Likewise.
15316         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
15317         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
15318         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
15319         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
15320         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
15321         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
15322         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
15323         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
15324         dead_or_predicable): Likewise.
15325         * integrate.c (try_constants): Likewise.
15326         * jump.c (rebuild_jump_labels, cleanup_barriers,
15327         purge_line_number_notes, init_label_info, mark_all_labels,
15328         squeeze_notes, get_label_before, get_label_after,
15329         reversed_comparison_code_parts, simplejump_p, pc_set,
15330         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
15331         delete_barrier, delete_prior_computation, delete_computation,
15332         delete_related_insns, delete_for_peephole, redirect_jump):
15333         Likewise.
15334         * lcm.c (optimize_mode_switching): Likewise.
15335         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
15336         Likewise.
15337         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
15338         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
15339         * loop-iv.c (simplify_using_assignment): Likewise.
15340         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
15341         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
15342         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
15343         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
15344         check_insn_for_givs, check_final_value, update_giv_derive,
15345         basic_induction_var, product_cheap_p, check_dbra_loop,
15346         loop_insn_first_p, last_use_this_basic_block,
15347         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
15348         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
15349         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
15350         sms_schedule_by_order): Likewise.
15351         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
15352         * postreload.c (reload_cse_simplify_operands, reload_combine,
15353         reload_cse_move2add): Likewise.
15354         * predict.c (can_predict_insn_p, estimate_probability,
15355         expected_value_to_br_prob, process_note_predictions): Likewise.
15356         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
15357         * profile.c (branch_prob): Likewise.
15358         * ra-build.c (live_out_1, livethrough_conflicts_bb,
15359         detect_webs_set_in_cond_jump): Likewise.
15360         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
15361         ra_print_rtl_with_bb): Likewise.
15362         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
15363         * recog.c (next_insn_tests_no_inequality, find_single_use,
15364         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
15365         * reg-stack.c (next_flags_user, record_label_references,
15366         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
15367         compensate_edge, convert_regs_1): Likewise.
15368         * regclass.c (scan_one_insn): Likewise.
15369         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
15370         regmove_optimize, fixup_match_1, single_set_for_csa,
15371         combine_stack_adjustments_for_block): Likewise.
15372         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
15373         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
15374         find_equiv_reg): Likewise.
15375         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
15376         reload_as_needed, emit_input_reload_insns, do_output_reload,
15377         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
15378         Likewise.
15379         * reorg.c (find_end_label, emit_delay_sequence,
15380         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
15381         get_jump_flags, rare_destination, mostly_true_jump,
15382         try_merge_delay_insns, redundant_insn, own_thread_p,
15383         fill_simple_delay_slots, fill_slots_from_thread,
15384         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
15385         dbr_schedule): Likewise.
15386         * resource.c (find_basic_block, next_insn_no_annul,
15387         find_dead_or_set_registers, mark_target_live_regs): Likewise.
15388         * rtl.h (RTX_PREV): Likewise.
15389         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
15390         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
15391         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
15392         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
15393         tablejump_p, computed_jump_p, insns_safe_to_move_p,
15394         find_first_parameter_load, can_hoist_insn_p): Likewise.
15395         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
15396         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
15397         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
15398         schedule_ebbs): Likewise.
15399         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
15400         is_conditionally_protected, can_schedule_ready_p,
15401         add_branch_dependences, debug_dependencies): Likewise.
15402         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
15403         Likewise.
15404         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
15405         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
15406         set_dominates_use, ujump_to_loop_cont): Likewise.
15407         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
15408         * varasm.c (output_constant_pool_1): Likewise.
15409
15410 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15411
15412         * tree-scalar-evolution.c: New file.
15413         * tree-scalar-evolution.h: New file.
15414         * tree-ssa-loop-niter.c: New file.
15415         * Makefile.in (SCEV_H): New.
15416         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
15417         * cfgloop.h (struct loop): Add bounds field.
15418         * tree-flow.h (struct tree_niter_desc): New type.
15419         (number_of_iterations_cond, number_of_iterations_exit,
15420         loop_niter_by_eval, find_loop_niter_by_eval,
15421         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
15422         free_numbers_of_iterations_estimates): Declare.
15423         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
15424         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
15425         * doc/invoke.texi (max-iterations-to-track): Document.
15426
15427 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
15428
15429         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
15430         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
15431         (MODE_AFTER): Add cast appropriately.
15432         * config/sh/sh.md (movdi splitter): Likewise.
15433         (casesi_worker_2): Add const qualifier appropriately.
15434         (eh_return): Remove unused variable.
15435         (insv): Initialize v;
15436
15437 2004-07-08  Richard Henderson  <rth@redhat.com>
15438
15439         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
15440         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15441         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
15442         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
15443         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
15444
15445         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
15446         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15447         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
15448         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
15449
15450         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
15451         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15452         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
15453         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
15454
15455         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
15456         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15457         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
15458         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
15459
15460         * config/i860/i860-protos.h (i860_va_arg): Remove.
15461         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15462         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
15463         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
15464
15465 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
15466
15467         * system.h: Prototype getpagesize if missing.
15468         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
15469         * configure: Regenerate.
15470         * config.in: Regenerate.
15471
15472 2004-07-08  Richard Henderson  <rth@redhat.com>
15473
15474         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
15475         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15476         (fr30_gimplify_va_arg_expr): New.
15477         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
15478         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
15479
15480 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
15481
15482         PR target/16414
15483         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
15484         of asm_noperands result.
15485
15486 2004-07-08  Richard Henderson  <rth@redhat.com>
15487
15488         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
15489         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15490         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
15491         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
15492
15493 2004-07-08  Richard Henderson  <rth@redhat.com>
15494
15495         * builtins.c (ind_gimplify_va_arg_expr): New.
15496         * tree.h (ind_gimplify_va_arg_expr): Declare.
15497         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
15498
15499 2004-07-08  Jan Beulich  <jbeulich@novell.com>
15500
15501         * expmed.c (extract_bit_field): Correct condition to use vec_extract
15502         patterns also on vector elements other than the first one.
15503         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
15504         break statements.
15505
15506 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
15507
15508         * config/rs6000/darwin-ldouble.c: Correct reference
15509         to the Linnainmaa paper.
15510
15511 2004-07-08  Richard Henderson  <rth@redhat.com>
15512
15513         * config/arc/arc-protos.h (arc_va_arg): Remove.
15514         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15515         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
15516         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
15517
15518         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
15519         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15520         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
15521         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
15522
15523 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15524
15525         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
15526
15527 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
15528
15529         * c-decl.c (static_ctors, static_dtors): Make static.
15530         (pop_file_scope): Call c_common_write_pch and
15531         cgraph_finalize_compilation_unit here.
15532         (build_cdtor): Moved here from c-objc-common.c; simplify.
15533         (c_write_global_declarations_1): Clarify comment.
15534         (c_write_global_declarations): Close the external scope before
15535         doing anything else.  Call build_cdtor, cgraph_optimize, and
15536         mudflap_finish_file here.
15537         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
15538         Clarify comment.
15539         * c-objc-common.c: No need to include cgraph.h.
15540         (build_cdtor): Moved to c-decl.c.
15541         (c_objc_common_finish_file): Delete.
15542         * c-tree.h: Update to match.
15543         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
15544         (generate_static_references): Set TREE_USED before calling finish_decl.
15545         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
15546         on the static_instances_decl.
15547
15548 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
15549
15550         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
15551         decls when there is only one input translation unit.
15552         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
15553         change of 2004-07-05; do not treat declarations with
15554         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
15555         * opts.c (cur_in_fname): Delete.
15556         * opts.h: Likewise.
15557         * tree.c: Revert changes of 2004-07-05; no special treatment
15558         for TRANSLATION_UNIT_DECLs.
15559         * Makefile.in (tree.o): Update dependencies.
15560
15561 2004-07-08  Roger Sayle  <roger@eyesopen.com>
15562
15563         * builtins.c (fold_builtin_strcpy): Merge functionality from
15564         simplify_builtin_strcpy.  Add additional len argument.  No longer
15565         static.  Remove function prototype.
15566         (fold_builtin_strncpy): Likewise integrate functionality from
15567         simplify_builtin_strncpy.  Add additional slen argument.  No
15568         longer static.  Remove function prototype.
15569         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
15570         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
15571         types of "ignore" and "unlocked" parameters to bool.
15572         (fold_builtin_1):  Add additional ignore argument.  Call renamed
15573         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
15574         builtins.  Update arguments to fold_builtin_strncpy and
15575         fold_builtin_strcpy.  Add function prototype.
15576         (fold_builtin): Add additional Boolean ignore argument to pass
15577         to fold_builtin_1.
15578         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
15579         and fold_builtin_strncpy instead of simplify_builtin_fputs,
15580         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
15581
15582         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
15583         simplify_builtin_strncpy): Delete function prototypes.
15584         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
15585         fold_builtin_strncpy): Add function prototypes here.
15586         (fold_builtin): Update function prototype with new "bool ignore".
15587
15588         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
15589         (ccp_fold_builtin):  Update call to fold_builtin.  Call
15590         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
15591         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
15592         simplify_builtin_strncpy respectively.
15593         * fold-const.c (fold): Update call to fold_builtin.
15594
15595 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
15596
15597         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
15598         to strcpy.
15599
15600         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
15601         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
15602         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
15603         * calls.c: Remove ifdefs of macros above.
15604         * functions.c: Likewise.
15605         * expr.c: Likewise.
15606
15607 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
15608
15609         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
15610         (arch attribute): Delete.
15611         (current_function_calls_alloca attribute): Rename into calls_alloca.
15612         (calls_eh_return): New attribute.
15613         (leaf_function): Likewise.
15614         (length attribute): Fix formula for sibcalls.
15615         (return insn): Correctly compute the 'length' attribute.
15616         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
15617
15618 2004-07-08  Richard Henderson  <rth@redhat.com>
15619
15620         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
15621         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
15622         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
15623         * tree-eh.c (lower_eh_constructs_1): Likewise.
15624         * tree-sra.c (sra_walk_modify_expr): Likewise.
15625         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
15626         (eliminate_unnecessary_stmts): Likewise.
15627         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
15628         * tree-tailcall.c (optimize_tail_call): Likewise.
15629         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
15630
15631 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
15632             Jakub Jelinek  <jakub@redhat.com>
15633
15634         * config/i386/i386.c (override_options): Enable
15635         SSE prefetches with -mtune, as long as we are
15636         compiling for i686 or higher.  All i686 processors
15637         accept SSE prefetches as NOPS, some i586's don't.
15638
15639 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
15640
15641         PR target/10567
15642         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
15643
15644 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
15645
15646         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
15647         the handling of clobbering ASM_EXPRs.
15648
15649 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
15650
15651         PR target/16430
15652         * config/sparc/sparc.c (function_value): In 64-bit mode,
15653         return the aggregates larger than 16 bytes like unions.
15654
15655 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
15656
15657         PR target/16199
15658         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
15659         'temp' is zero, generate new pseudos as needed and emit the
15660         sequence of insns in single-assignment form.  Resync comments
15661         with code.
15662         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
15663         function before reload.
15664
15665 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
15666
15667         * vec.c (vec_assert_fail): Remove duplicate 'function'.
15668
15669         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
15670
15671         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
15672         Allocation is signed.
15673         (VEC_reserve): Return flag, allocation is signed.
15674
15675 2004-07-08  Richard Henderson  <rth@redhat.com>
15676
15677         * tree-ssa-ccp.c (fold_stmt): Get type directly from
15678         OBJ_TYPE_REF_OBJECT.
15679
15680 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
15681             Neil Booth  <neil@daikokuya.co.uk>
15682
15683         PR c/2511
15684         PR c/3325
15685         * c-decl.c (finish_struct): Ensure bit-fields are given the
15686         correct type.
15687         * c-common.c (c_common_signed_or_unsigned_type): For C, require
15688         the precision to match as well as the mode.
15689         * expr.c (reduce_to_bit_field_precision): New function.
15690         (expand_expr_real_1): Reduce expressions of bit-field type to
15691         proper precision.
15692         * langhooks.h (reduce_bit_field_operations): New hook.
15693         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
15694         Define.
15695         * c-lang.c, objc/objc-lang.c
15696         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
15697         * objc/objc-act.c (check_ivars): Convert types to bit-field types
15698         before checking.
15699         * tree.c (build_nonstandard_integer_type): New function.
15700         * tree.h (build_nonstandard_integer_type): New prototype.
15701         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
15702         conversions between integer and boolean types as useless.
15703
15704 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
15705
15706         * c-common.c (c_common_nodes_and_builtins): Do not
15707         create __builtin_ptrdiff_t and __builtin_size_t.
15708
15709 2004-07-08  Andrew Pinski  <apinski@apple.com>
15710
15711         * Makefile.in (libbackend.o): Add -combine to the gcc
15712         command line.
15713
15714 2004-07-08  Nick Clifton  <nickc@redhat.com>
15715
15716         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
15717         Set to -Os.
15718
15719 2004-07-08  Richard Henderson  <rth@redhat.com>
15720
15721         * except.c (expand_eh_region_start, expand_eh_region_end,
15722         expand_eh_handler, expand_eh_region_end_cleanup,
15723         expand_start_all_catch, expand_start_catch, expand_end_catch,
15724         expand_end_all_catch, expand_eh_region_end_allowed,
15725         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
15726         expand_eh_region_end_fixup): Remove.
15727         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
15728         cleanups, outer_cleanups, label_chain, exception_region.
15729         (struct goto_fixup): Remove stack_level, cleanup_list_list.
15730         (struct label_chain): Remove.
15731         (struct stmt_status): Remove x_stack_block_stack.
15732         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
15733         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
15734         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
15735         end_cleanup_deferral, last_cleanup_this_contour,
15736         containing_blocks_have_cleanups_or_stack_level,
15737         any_pending_cleanups): Remove.
15738         (expand_null_return_1): Take no arguments.
15739         (expand_label, expand_naked_return, expand_return,
15740         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
15741         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
15742         expand_end_case_type): Don't use any of them.
15743         * calls.c (expand_call): Likewise.
15744         * dojump.c (do_jump): Likewise.
15745         * function.c (expand_function_end): Likewise.
15746         * expr.c (store_expr, expand_expr_real_1): Likewise.
15747         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
15748         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
15749         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
15750         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
15751         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
15752         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
15753         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
15754         for WITH_CLEANUP_EXPR.
15755         (gimple_push_cleanup): Likewise.
15756         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
15757         * print-tree.c (print_node): Likewise.
15758         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
15759         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
15760         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
15761         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
15762         (GOTO_SUBROUTINE_EXPR): Remove.
15763         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
15764         (DECL_TOO_LATE): Remove.
15765         * except.h, tree.h: Update decls.
15766
15767 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
15768
15769         * explow.c (optimize_save_area_alloca): Do not accept parameters.
15770         * passes.c (rest_of_handle_final): Handle symout.
15771         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
15772         Push timevar here.
15773         (rest_of_handle_sched): Break out SMS.  Remove ifs for
15774         flag_schedule_insns and flag_modulo_sched.
15775         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
15776         collect at the end.
15777         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
15778         (rest_of_handle_partition_blocks, rest_of_handle_sms,
15779         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
15780         rest_of_handle_mode_switching, rest_of_handle_jump,
15781         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
15782         rest_of_handle_jump2, rest_of_handle_postreload,
15783         rest_of_handle_flow2, rest_of_clean_state,
15784         rest_of_handle_shorten_branches,
15785         rest_of_handle_prologue_epilogue,
15786         rest_of_handle_branch_target_load_optimize): New.
15787         (rest_of_compilation): Call the above.  Remove ggc_collect
15788         calls moved to rest_of_handle_*.
15789         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
15790
15791         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
15792         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
15793         * except.h (set_nothrow_function_flags): Update comment.
15794         * function.c (current_function_nothrow): Remove.
15795         * output.h (current_function_nothrow): Remove.
15796         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
15797         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
15798
15799 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
15800
15801         PR bootstrap/16326
15802         * reorg.c: Revert 2004-06-30 change.
15803         (find_end_label): If HAVE_epilogue and !HAVE_return,
15804         return 0 instead of creating a label at the end of the insn chain.
15805         (optimize_skip): Account for the failure mode of find_end_label.
15806         (fill_simple_delay_slots): Likewise.
15807         (fill_slots_from_thread): Likewise.
15808         (relax_delay_slots): Likewise.
15809
15810 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
15811
15812         * tree-flow.h (addressable_vars): Declare.
15813         * tree-ssa-alias.c (addressable_vars): Define.
15814         (setup_pointers_and_addressables): Add addressable variables
15815         to addressable_vars.
15816         * tree-ssa-operands.c (get_stmt_operands): Move
15817         handling of ASM_EXPRs ...
15818         (get_asm_expr_operands): ... here.
15819         When the ASM_EXPR clobbers memory, also clobber addressable
15820         variables.
15821         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
15822         (delete_tree_ssa): Reset addressable_vars.
15823
15824 2004-07-07  Jan Beulich  <jbeulich@novell.com>
15825             Richard Henderson  <rth@redhat.com>
15826
15827         * varasm.c (assemble_variable): Use assemble_zeros for
15828         zero-initialized variables.
15829         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
15830         for SECCAT_BSS and SECCAT_TBSS.
15831
15832 2004-07-07  Jan Beulich  <jbeulich@novell.com>
15833
15834         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
15835
15836         * expmed.c (emit_store_flag): Also special-case double-word
15837         (in-)equality comparison against -1.
15838
15839         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
15840         passing arguments the containers for which are registers.
15841
15842         * calls.c (emit_library_call_value_1): Use mode of function parameter
15843         rather than that of argument since constants have none.
15844
15845 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
15846
15847         Introduce H8SX support.
15848         * expr.c (expand_strcpy): Renamed and moved to...
15849         * builtins.c (expand_movstr): ... here.  Tweak.
15850         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
15851         computed or has side effects.
15852         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
15853         unused, or if mempcpy fails.  Adjust the return value in the
15854         latter case.  Use movstr if everything else fails.
15855         * doc/md.texi (movstr): Document.
15856         (movmemM, clrmemM): Fix explanation of memory block operands.
15857         * config/h8300/h8300.md (stpcpy): Renamed to...
15858         (movstr): ... this.  Adjust.
15859         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
15860         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
15861         movmem* and clrstr* to clrmem*.
15862         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
15863         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
15864         GENERAL_REGS, always.
15865         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
15866         getting the stack pointer as addr.
15867         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
15868         from general_operand_dst.
15869         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
15870         variant of...
15871         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
15872         instead of requiring it to match only before reload.
15873         (stpcpy_internal_normal): New, normal-mode variant of...
15874         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
15875         `D' instead of requiring it to match only before reload.
15876         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
15877         mode argument.
15878         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
15879         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
15880         h8300_get_index.
15881         * config/h8300/h8300.md (attr type): Add call.
15882         (attr can_delay): If type is call, set it no.
15883         (call, call_value): Set type to call.
15884         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
15885         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
15886         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
15887         * tree.c (get_narrower): Don't narrow integral types into
15888         non-integral types.
15889         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
15890         frame_size *before* the first use.
15891         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
15892         on input.
15893         (peephole2): Don't widen instructions that push SP.  Move
15894         decrement of SP to the end of all stm-generating peepholes.
15895         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
15896         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
15897         and OR to set it to all ones.
15898         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
15899         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
15900         (call, call_value): Set can_delay to "no".
15901         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
15902         * config/h8300/h8300.md (extzv): Make subreg check more robust.
15903         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
15904         * config/h8300/h8300.md (*brabit): Remove.
15905         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
15906         zero_extract.  Use bit_memory_operand as the predicate for
15907         operand 1 and 'WU' as the constraint.  Check the difference
15908         between the base length and the final one when deciding which
15909         type of branch to use.
15910         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
15911         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
15912         Use convert_move to extend the result for TARGET_H8300SX.  Check
15913         for QImode memory references.  Optimize the case where the
15914         destination is a paradoxical subreg.
15915         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
15916         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
15917         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
15918         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
15919         * config/h8300/h8300.md: Include mova.md
15920         (length_table): Add mova and mova_zero.
15921         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
15922         after all constant addresses for '%R', '%X', '%T' and '%S'.
15923         (h8300_mova_length): New function.
15924         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
15925         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
15926         dependencies for s-config, etc.
15927         * config/h8300/gemova.sh: New file.
15928         * config/h8300/mova.md: Generated.
15929         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
15930         * config/h8300/h8300.c (h8300_bitfield_length): New.
15931         (nibble_operand): Adjust.
15932         (h8300_binary_length): Handle conditional binary op.
15933         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
15934         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
15935         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
15936         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
15937         constraints.  WU is introduced as a variant of U that requires a
15938         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
15939         * config/h8300/h8300.md (attr type): Added bitbranch.
15940         (attr length_table): Added bitfield and bitbranch.
15941         (attr length): Compute bitbranch length.
15942         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
15943         least-significant bit of a byte.
15944         (brabit, brabc, brabs): New.
15945         (insv, extzv): Emit bfst and bfld on H8300SX.
15946         (bfld, bfst, seq, sne): New.
15947         (bstzhireg, cmpstz, bstz, bistz): New.
15948         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
15949         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
15950         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
15951         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
15952         (h8sx_unary_memory_operator): New function.
15953         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
15954         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
15955         * config/h8300/h8300.md: Add peepholes to combine reloads and
15956         arithmetic insns.
15957         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
15958         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
15959         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
15960         (and?i, ior?i, xor?i): Likewise.
15961         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
15962         * config/h8300/h8300.c: Move enums and prototypes to head of file.
15963         Various whitespace fixes.
15964         (h8300_constant_length): New function, split out from...
15965         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
15966         (h8300_classify_operand): Use IN_RANGE.
15967         (h8300_classify_operand): Use h8300_constant_length.
15968         (h8300_short_move_mem_p): Tighten size check.
15969         (h8sx_mergeable_memrefs_p): Tighten equality check.
15970         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
15971         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
15972         for -msx.
15973         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
15974         * config/h8300/crtn.asm: Likewise.
15975         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
15976         if __H8300SX__ is defined.
15977         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
15978         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
15979         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
15980         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
15981         addresses as mode-dependent.
15982         * config/h8300/h8300.c (print_operand_address): Update call to
15983         h8300_get_index.
15984         (h8300_get_index): Take a mode argument.  Rework to fix an
15985         earlier misunderstanding.
15986         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
15987         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
15988         into a register if TARGET_H8300SX.
15989         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
15990         TARGET_H8300SX.  Also disable related define_splits.
15991         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
15992         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
15993         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
15994         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
15995         * config/h8300/h8300.h (OK_FOR_Z): New macro.
15996         (EXTRA_CONSTRAINT_STR): Check it.
15997         * config/h8300/h8300.c (h8300_classify_operand): Accept null
15998         class arguments.
15999         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
16000         * config/h8300/h8300.md (length_table): Add mov_imm4.
16001         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
16002         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
16003         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
16004         be a label.
16005         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
16006         * config/h8300/h8300.c (h8300_reorg): New function.
16007         (TARGET_MACHINE_DEPENDENT_REORG): Define.
16008         * config/h8300/h8300.md (length): Subtract the length of the
16009         delay slot from (pc) when checking the range of forward branches.
16010         (delay_slot, can_delay): New attributes.
16011         (define_delay): Add bra/s handling.
16012         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
16013         (jump): Add delayed-branch handling.
16014         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
16015         * expr.c (expand_strcpy): New function.
16016         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
16017         (expand_builtin_stpcpy): Likewise.
16018         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
16019         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
16020         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
16021         handling to improve register allocation for -fno-omit-frame-pointer.
16022         (h8sx_split_movmd): Delete, moving er6 handling into...
16023         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
16024         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
16025         (movmd): Add calls to copy_rtx.
16026         (movmd_internal): In the second alternative, allow the initial and
16027         final destination registers to be different .  Update the splitter
16028         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
16029         instead of h8sx_split_movmd.
16030         (stpcpy, movsd): New expanders.
16031         (movsd_internal): New define_insn.
16032         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
16033         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
16034         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
16035         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
16036         and DESTINATION_REGS.
16037         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
16038         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
16039         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
16040         (h8300_move_ratio): Declare.
16041         (MOVE_RATIO): Use it.
16042         * config/h8300/h8300.c (h8300_move_ratio): New variable.
16043         (h8300_init_once): Initialize it.
16044         (h8300_reg_class_from_letter): New function.
16045         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
16046         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
16047         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
16048         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
16049         (movstrsi, movmd): New expanders.
16050         (movmd_internal): New insn.
16051         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
16052         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
16053         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
16054         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
16055         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
16056         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
16057         * config/h8300/h8300.c (nibble_operand): Fix warning.
16058         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
16059         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
16060         (movsf_h8300h): Disable for TARGET_H8300SX.
16061         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
16062         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
16063         h8300_stm_parallel and h8300_return_parallel.
16064         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
16065         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
16066         h8300_stm_parallel, h8300_return_parallel): New functions.
16067         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
16068         if TARGET_H8300SX.  Use h8300_push_pop.
16069         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
16070         and final pop when generating h8sx code.  Always emit some form
16071         of return insn.
16072         * config/h8300/h8300.md: Don't enforce register alignment in
16073         stm peepholes if TARGET_H8300SX.
16074         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
16075         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
16076         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
16077         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
16078         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
16079         (MULTILIB_DIRNAMES): Add a directory for it.
16080         (MULTILIB_MATCHES): Delete.
16081         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
16082         * final.c (walk_alter_subreg): Handle addresses with subregs
16083         inside a ZERO_EXTEND or AND.
16084         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
16085         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
16086         if TARGET_H8300SX.
16087         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
16088         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
16089         @(dd,Rn.w) and @(dd,ERn.L).
16090         (h8300_displacement_size): Take the whole address as argument.
16091         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
16092         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
16093         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
16094         (h8sx_mergeable_memrefs_p): Declare.
16095         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
16096         (HAVE_PRE_INCREMENT): Likewise.
16097         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
16098         addresses for TARGET_H8300SX,
16099         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
16100         and POST_DEC.
16101         (movb_length_table, movl_length_table): New tables.
16102         (movw_length_table): Define to movb_length_table.
16103         (h8300_displacement_size): New, split out from...
16104         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
16105         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
16106         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
16107         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
16108         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
16109         (compute_plussi_length, compute_plussi_cc): Update accordingly.
16110         (h8sx_unary_shift_operator): Get the mode from the operator.
16111         (binary_shift_operator): Likewise.
16112         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
16113         a memory reference, check whether the reference is offsettable.
16114         (length_table): Add movb, movw and movl.
16115         (movqi): Add new h8sx pattern.  Don't force one operand to be a
16116         register when generating h8sx code.
16117         (movhi, movsi, movsf): Likewise.
16118         (movstrictqi): Use the length_table attribute.
16119         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
16120         (addqi3): Split into a define_expand and define_insn.  Don't accept
16121         memory operands in the expander.  Use h8300_operands_match_p to
16122         check for matching operands in the define_insn.
16123         (subqi3, negqi2, one_cmplqi2): Likewise.
16124         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
16125         in any patterns that are unused in h8sx code.  In the h8sx patterns,
16126         use h8300_operands_match_p to check whether operands match.
16127         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
16128         one_cmpl[hs]i3): Likewise.
16129         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
16130         in the expander.
16131         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
16132         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
16133         (h8300_insn_length_from_table): Add a second parameter.
16134         (output_h8sx_shift): Declare.
16135         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
16136         (EXTRA_CONSTRAINT): Replace with...
16137         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
16138         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
16139         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
16140         and h8sx_binary_shift_operator.
16141         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
16142         for TARGET_H8300SX.
16143         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
16144         (bit_memory_operand, fix_bit_operand): Likewise.
16145         (h8300_length_table_for_insn): Remove.
16146         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
16147         instructions.
16148         (h8300_short_immediate_length, h8300_binary_length): New functions.
16149         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
16150         (output_plussi): Use sub to add negative constants.
16151         (compute_plussi_length): Adjust accordingly.
16152         (h8sx_single_shift_type): New enum.
16153         (h8sx_single_shift, h8sx_unary_shift_operator,
16154         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
16155         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
16156         single h8sx instruction.  Return false in this case.
16157         * config/h8300/h8300.md (length_table): Add short_immediate.
16158         (length): Pass the operand array to h8300_insn_length_from_table.
16159         (adjust_length): Assume "no" for insns with a length_table attribute.
16160         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
16161         (*addhi3_h8300hs): Don't use for h8sx.
16162         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
16163         and sub.w #xx:3.
16164         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
16165         1's predicate to nonimmediate_operand.  Only skip default expansion
16166         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
16167         for single h8sx shift instructions.
16168         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
16169         * config/h8300/h8300.c (nibble_operand): Split out of...
16170         (reg_or_nibble_operand): ... this.
16171         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
16172         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
16173         umulhisi3): Introduce expand, and introduce separate insns for
16174         sign- or zero-extended REG and already-extended CONST_INT.
16175         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
16176         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
16177         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
16178         (subhi3): Likewise.  Don't accept immediates for operand 1.
16179         Remove the early clobber from second alternative of the h8300s pattern.
16180         (subsi3): Generalize for h8sx.  Force operand 2 into a register
16181         on plain h8300 targets.
16182         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
16183         (subsi3_h8300h): Generalize for h8sx.
16184         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
16185         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
16186         * config/h8300/h8300.c (reg_or_nibble_operand): New.
16187         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
16188         (TARGET_H8300SXMUL): New.
16189         (CONST_OK_FOR_P): New.
16190         (CONST_OK_FOR_LETTER_P): Adjust.
16191         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
16192         umulhisi3): Accept 4-bit immediate on H8SX.
16193         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
16194         (udivsi3, divhi3, udivsi3, divsi3): New.
16195         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
16196         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
16197         * config/h8300/h8300.h (OK_FOR_Q): New macro.
16198         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
16199         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
16200         Add ADDRESSOF to the bit_operand entry.
16201         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
16202         (h8300_src_operand): Likewise.
16203         (bit_operand): Check nonimmediate_operand rather than general_operand.
16204         Accept any nonimmediate_operand in h8sx code.
16205         (h8300_and_costs): Initialize operands[1].
16206         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
16207         (h8300_operand_class): New enum.
16208         (h8300_length_table): New typedef.
16209         (addb_length_table, addw_length_table, addl_length_table,
16210         logicl_length_table): New tables.
16211         (logicb_length_table, logicw_length_table): New macros.
16212         (h8300_classify_operand, h8300_length_from_table,
16213         h8300_length_table_for_insn, h8300_unary_length,
16214         h8300_insn_length_from_table): New functions.
16215         (output_plussi): Only use adds and subs for register destinations.
16216         Disable redundant clause.
16217         (compute_plussi_cc): Likewise.
16218         (compute_plussi_length): Likewise.  Use h8300_length_from_table
16219         to work out the length of an insn.
16220         (output_logical_op): Only use narrower immediate instructions
16221         if the destination is a register.
16222         (compute_logical_op_cc): Likewise.
16223         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
16224         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
16225         * config/h8300/h8300.md (length_table): New attribute.
16226         (length): When an instruction has a length_table attribute, use
16227         h8300_insn_length_from_table to calculate its default length.
16228         (cmpqi): Use h8300_dst_operand for the first operand and
16229         h8300_src_operand for the second.
16230         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
16231         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
16232         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
16233         iorsi3, xorhi3, xorsi3): Likewise.
16234         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
16235         so that it allows any combination of operands for TARGET_H8300SX.
16236         (iorqi3, xorqi3): Likewise.
16237         (cmpqi): Use the length_table attribute.
16238         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
16239         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
16240         (cmpqi): Add 'Q' constraint.
16241         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
16242         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
16243         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
16244         * config/h8300/h8300.h (MASK_H8300SX): New macro.
16245         (TARGET_H8300S): True for both -ms and -msx.
16246         (TARGET_H8300SX): New macro.
16247         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
16248         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
16249         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
16250         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
16251         [Temporary change.]
16252         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
16253         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
16254         16-bit pointers and 32-bit ints.
16255         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
16256         CONST_DOUBLE with mode no wider than SImode.
16257         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
16258         output operand.
16259         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
16260         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
16261         or SUBREG thereof.
16262         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
16263         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
16264         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
16265
16266 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
16267
16268         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
16269
16270 2004-07-07  Per Bothner  <per@bothner.com>
16271
16272         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
16273
16274 2004-07-07  Mike Stump  <mrs@apple.com>
16275
16276         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
16277         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
16278         (machopic_finish): Likewise.
16279
16280 2004-07-07  Richard Henderson  <rth@redhat.com>
16281
16282         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
16283         through any value-preserving cast.
16284
16285 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
16286
16287         * function.c (assign_parm_find_data_types): Call
16288         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
16289
16290 2004-07-07  Steven Bosscher  <stevenb@suse.de>
16291
16292         * tree-cfg.c (group_case_labels): Remove case labels that have
16293         the same target as the default case.
16294
16295 2004-07-07  Steven Bosscher  <stevenb@suse.de>
16296
16297         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
16298         regardless of DECL_LANG_SPECIFIC being present or not.
16299         * tree.h (DECL_NUM_STMTS): Purge.
16300
16301 2004-07-07  Andrew Pinski  <apinski@apple.com>
16302
16303         * configure: Regenerate with the right autoconf.
16304
16305 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
16306
16307         * ifcvt.c (total_bb_rtx_cost): New function.
16308         (find_if_case_1): Compare rtx_cost of basic block to cost of
16309         BRANCH_COST insns.
16310         (find_if_case_2): Same.
16311
16312 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
16313
16314         PR target/10567
16315         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
16316         (output_return): Likewise.
16317         (output_sibcall): Abort if !flag_delayed_branch.
16318         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
16319         (emit_and_preserve): New function.
16320         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
16321         indirect jump to the thunked-to function if !flag_delayed_branch.
16322         * config/sparc/sparc.md (delayed_branch): New attribute.
16323         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
16324         attribute to compute the length of the insn.
16325         (goto_handler_and_restore): Likewise.
16326
16327 2004-07-07  Andrew Pinski  <apinski@apple.com>
16328
16329         PR tree-optimization/15777
16330         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
16331
16332         * expr.c (expand_expr_real_1): Fix formating.
16333         BUFFER_REF and IN_EXPR are dead.
16334         * fold-const.c (non_lvalue): BUFFER_REF is dead.
16335         * tree-inline.c (estimate_num_insns_1): Likewise.
16336         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
16337         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
16338         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
16339
16340 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
16341
16342         * collect2.c (dump_file): Don't call cplus_demangle if
16343         HAVE_LD_DEMANGLE is defined.
16344         (main): Pass "--demangle" to ld if no_demangle is not 0 and
16345         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
16346         if HAVE_LD_DEMANGLE is defined.
16347
16348         * configure.ac (--with-demangler-in-ld): Added
16349         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
16350         --with-demangler-in-ld is used.
16351         * config.in: Regenerated.
16352         * configure: Likewise.
16353
16354 2004-07-07  Roger Sayle  <roger@eyesopen.com>
16355
16356         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
16357         for simple floating point operations "fp", double precision
16358         multiplication "dmul", and single and double precision division
16359         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
16360         (ppc630_cost): New table split from ppc620_cost, to distinguish
16361         differences in floating point latencies.
16362         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
16363         (rs6000_rtx_costs): Add support for single and double precision
16364         floating point addition, subtraction, multiplication, division,
16365         fused-multiply-add, fused-multiply-sub, negation, absolute value
16366         and negative absolute value.  Tweak MEM case to use prefered idiom.
16367
16368 2004-07-07  Richard Henderson  <rth@redhat.com>
16369
16370         * tree-flow-inline.h (may_propagate_copy): Move...
16371         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
16372         attempt to copy between types requiring conversion.
16373         * tree-flow.h (may_propagate_copy): Update decl.
16374         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
16375
16376 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
16377
16378         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
16379         from -mtune= option.
16380
16381 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
16382
16383         * builtins.c: Rename movstr*, except for movstrict*, to
16384         movmem* and clrstr* to clrmem*.
16385         * expr.c: Likewise.
16386         * expr.h: Likewise.
16387         * genopinit.c: Likewise.
16388         * integrate.c: Likewise.
16389         * local-alloc.c: Likewise.
16390         * optabs.c: Likewise.
16391         * optabs.h: Likewise.
16392         * config/alpha/alpha.h: Likewise.
16393         * config/alpha/alpha.md: Likewise.
16394         * config/arm/arm-protos.h: Likewise.
16395         * config/arm/arm.c: Likewise.
16396         * config/arm/arm.md: Likewise.
16397         * config/avr/avr.md: Likewise.
16398         * config/c4x/c4x.c: Likewise.
16399         * config/c4x/c4x.md: Likewise.
16400         * config/frv/frv.md: Likewise.
16401         * config/i386/i386-protos.h: Likewise.
16402         * config/i386/i386.c: Likewise.
16403         * config/i386/i386.h: Likewise.
16404         * config/i386/i386.md: Likewise.
16405         * config/i860/i860.c: Likewise.
16406         * config/i860/i860.md: Likewise.
16407         * config/ip2k/ip2k.md: Likewise.
16408         * config/ip2k/libgcc.S: Likewise.
16409         * config/ip2k/t-ip2k: Likewise.
16410         * config/m32r/m32r.c: Likewise.
16411         * config/m32r/m32r.md: Likewise.
16412         * config/mcore/mcore.md: Likewise.
16413         * config/mips/mips.c: Likewise.
16414         * config/mips/mips.md: Likewise.
16415         * config/ns32k/ns32k.c: Likewise.
16416         * config/ns32k/ns32k.h: Likewise.
16417         * config/ns32k/ns32k.md: Likewise.
16418         * config/pa/pa.c: Likewise.
16419         * config/pa/pa.md: Likewise.
16420         * config/pdp11/pdp11.h: Likewise.
16421         * config/pdp11/pdp11.md: Likewise.
16422         * config/rs6000/rs6000.c: Likewise.
16423         * config/rs6000/rs6000.md: Likewise.
16424         * config/s390/s390-protos.h: Likewise.
16425         * config/s390/s390.c: Likewise.
16426         * config/s390/s390.md: Likewise.
16427         * config/sh/lib1funcs.asm: Likewise.
16428         * config/sh/sh.c: Likewise.
16429         * config/sh/sh.md: Likewise.
16430         * config/sh/t-sh: Likewise.
16431         * config/sparc/sparc.h: Likewise.
16432         * config/vax/vax.md: Likewise.
16433         * config/xtensa/xtensa.c: Likewise.
16434         * config/xtensa/xtensa.md: Likewise.
16435         * doc/invoke.texi: Likewise.
16436         * doc/md.texi: Likewise.
16437         * doc/rtl.texi: Likewise.
16438
16439 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
16440
16441         PR target/16407
16442         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
16443         * config/mips/mips.c (mips_declare_common_object): New function,
16444         mostly split out from...
16445         (mips_output_aligned_decl_common): ...here.
16446         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
16447         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
16448         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
16449         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
16450
16451 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16452
16453         PR c/16392
16454         * function.c (assign_parms): Fix typo from previous change.
16455
16456 2004-07-07  Jason Merrill  <jason@redhat.com>
16457
16458         PR c++/15815
16459         * doc/extend.texi (C++ Interface): Correct information and
16460         discourage use.
16461
16462 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
16463
16464         PR target/16130
16465         PR target/16142
16466         PR target/16143
16467         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
16468         insn.
16469
16470 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16471
16472         PR target/1679.
16473         * config/m32r/m32r.c (m32r_function_symbol): New function:
16474         Generate a symbol name RTX with the correct m32r specific flags
16475         set.
16476         (block_move_call): Use new function to generate correct symbol.
16477         * config/m32r/m32r-protos.h: Add prototype for new funcion.
16478         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
16479         function.
16480
16481 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
16482
16483         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
16484         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
16485         TYPE_BINFO_BASETYPE): Remove.
16486         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
16487         to ...
16488         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
16489         here.
16490         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
16491         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
16492         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
16493         (struct tree_binfo): Rename base_types to base_binfos.
16494         * alias.c (record_component_aliases): Adjust BINFO macros.
16495         * dbxout.c (dbxout_type): Likewise.
16496         * dwarf2out.c (gen_member_die): Likewise.
16497         * sdbout.c (sdbout_one_type): Likewise.
16498         * tree-dump.c (deque_and_dump): Likewise.
16499         * config/i386/i386.c (classify_argument,
16500         contains_128bit_aligned_vector_p): Likewise.
16501
16502 2004-07-07  Nick Clifton  <nickc@redhat.com>
16503
16504         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
16505         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
16506
16507 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
16508
16509         * vec.h: Fix the example use.
16510
16511 2004-07-06  Richard Henderson  <rth@redhat.com>
16512
16513         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
16514         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
16515         * tree-inline.c (copy_body_r, setup_one_parameter,
16516         initialize_inlined_parameters, expand_call_inline,
16517         declare_inline_vars): Don't check it.
16518         (expand_calls_inline): Remove old version, rename new version
16519         from gimple_expand_calls_inline.
16520         * tree-optimize.c (execute_gimple): Remove.
16521         (pass_gimple): Don't run anything.
16522
16523 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
16524
16525         * doc/sourcebuild.texi: Use semicolons instead of commas in
16526         section title.
16527
16528 2004-07-06  Richard Henderson  <rth@redhat.com>
16529
16530         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
16531         (sra_walk_modify_expr, scan_init): Likewise.
16532         (generate_element_zero): Check visited before scanning children.
16533         (generate_element_init): Set visited on error.
16534         (scalarize_init): Handle generate_element_init failure similar
16535         to use_block_copy.
16536
16537 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
16538
16539         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
16540         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
16541
16542 2004-07-06  Richard Henderson  <rth@redhat.com>
16543
16544         * config/i386/i386.c (legitimize_pic_address): Make static.
16545         (legitimize_address): Handle CONST with TLS operand.
16546         (ix86_expand_move): Don't call legitimize_pic_address directly.
16547         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
16548
16549 2004-07-06  Roger Sayle  <roger@eyesopen.com>
16550
16551         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
16552         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
16553         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
16554         is currently executed unconditionally, i.e. not in "else_bb".
16555
16556 2004-07-06  Steven Bosscher  <stevenb@suse.de>
16557
16558         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
16559         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16560         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
16561         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16562         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
16563         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16564         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
16565         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16566         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
16567         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16568         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
16569         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16570         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
16571         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16572         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
16573         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16574
16575 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
16576
16577         * dojump.c (do_jump): REFERENCE_EXPR is dead.
16578         * expr.c (expand_expr_real_1): Ditto.
16579         * tree-inline.c (estimate_num_insns_1): Ditto.
16580         * tree-pretty-print.c (dump_generic_node): Ditto.
16581         (op_symbol): Ditto.
16582         * tree.def: Ditto.
16583
16584 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
16585
16586         * tree-ssa-pre.c (reference_node_pool): New pool.
16587         (find_or_generate_expression): Class 'r' is okay too.
16588         (create_value_expr_from): Ditto.
16589         (add_to_sets): LHS should not include vuses.
16590         (eliminate): Ditto.
16591         (compute_avail): Reverse ordering of tests.
16592         Valuize INDIRECT_REF as well.
16593
16594 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
16595
16596         PR rtl-optimization/16380
16597         * loop.c (check_dbra_loop): Sink comparison instructions if they
16598         do something other than set cc0.
16599
16600 2004-07-06  James E Wilson  <wilson@specifixinc.com>
16601
16602         * doc/interface.texi (longjmp and automatic variables): Delete
16603         paragraph recommending taking the address of a variable.
16604
16605 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
16606
16607         * vec.h (VEC_embedded_alloc): Remove.
16608         (VEC_embedded_size, VEC_embedded_init): New.
16609         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
16610         MEM_STAT_INFO.
16611         (VEC_truncate): New.
16612         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
16613         (vec_embedded_alloc): Remove.
16614         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
16615         (vec_embedded_alloc): Remove.
16616
16617 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
16618
16619         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
16620         (gt-langhooks.h): Remove.
16621
16622 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
16623
16624         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
16625
16626 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
16627
16628         * config/sparc/sparc.c (get_pc_symbol): Rename into
16629         add_pc_to_pic_symbol.
16630         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
16631         (load_pic_register): Account for previous changes.
16632         Use reg_names.  Don't create the label twice.
16633         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
16634         UNSPEC_LOAD_PCREL_SYM.
16635         (get_pc): Rename into load_pcrel_sym.  Add predicate to
16636         operands.  Remove condition.
16637
16638 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
16639
16640         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
16641         RECORD, UNION & QUAL_UNION is actually a binfo.
16642
16643         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
16644         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
16645         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
16646         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
16647         * dwarf2out.c (add_data_member_location_attribute): Likewise.
16648         (gen_inheritance_die): Likewise.
16649         * tree-dump.c (deque_and_dump): Likewise.
16650         * doc/c-tree.texi (Binfos): Add under reconstruction note.
16651
16652 2004-07-06  Steven Bosscher  <stevenb@suse.de>
16653
16654         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
16655         Define.
16656         * config/mcore/mcore.md: Model memory latency with a simple DFA
16657         pipeline description instead of a define_function_unit.
16658
16659 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16660
16661         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
16662         * langhooks.h (var_mod_type_p): Likewise.
16663         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
16664         * expr.c (count_type_elements): Properly handle return from
16665         array_type_nelts and properly test for overflow.
16666         * gimplify.c (gimplify_init_constructor): Properly handle return
16667         from array_type_nelts.
16668         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
16669         * integrate.c (copy_decl_for_inlining): Correct comments.
16670         * tree-inline.c (remap_decl): Update comments, remove dead code,
16671         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
16672         (remap_type): Only remap if variably modified by vars in function
16673         being inlined.
16674         (copy_body_r): Use compatible_type langhooks to see when can fold.
16675         (setup_one_parameter): Don't remap type.
16676         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
16677         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
16678         compute TREE_INVARIANT for decl case.
16679         (find_var_from_fn): New function.
16680         (variably_modified_type_p): Add arg and call new function.
16681         * tree.h (variably_modified_type_p): Add extra arg.
16682
16683 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
16684
16685         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
16686         (goto_handler_and_restore_v9): Delete disabled insn.
16687         (goto_handler_and_restore_v9_sp64): Likewise.
16688
16689 2004-07-05  Roger Sayle  <roger@eyesopen.com>
16690
16691         * calls.c (load_register_parameters): Call expand_shift instead
16692         of expand_binop with ashl_optab (or other shift optab) directly.
16693         * expr.c (emit_group_load, emit_group_store): Likewise.
16694         * function.c (assign_parm_setup_block): Likewise.
16695         * stmt.c (shift_return_value): Likewise.
16696
16697 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
16698
16699         * expr.c (expand_assignment): Disable the bitfield += optimizations.
16700
16701 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
16702
16703         * doc/sourcebuild.texi: Revert previous patch.
16704
16705 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
16706
16707         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
16708         TARGET_MEM_FUNCTIONS.
16709         * system.h: Poison TARGET_MEM_FUNCTIONS.
16710         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
16711         bcmp_libfunc, bzero_libfunc): Remove.
16712         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
16713         bzero_libfunc.
16714         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
16715         * doc/standards.texi: Don't mention calling BSD string functions.
16716         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
16717         * config/vax/t-memfuncs: New.
16718         * config/memcmp.c, config/memcpy.c, config/memmove.c,
16719         config/memset.c: New.
16720         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
16721         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
16722         vax/t-memfuncs.
16723         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
16724         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
16725         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
16726         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
16727         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
16728         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
16729         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
16730         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
16731         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
16732         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
16733
16734 2004-07-05  Richard Henderson  <rth@redhat.com>
16735
16736         * function.c (assign_parm_setup_reg): Properly rename variables in
16737         FUNCTION_ARG_CALLEE_COPIES section.
16738
16739 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
16740
16741         * tree-mudflap.c: Include cgraph.h.
16742         (mf_init_extern_trees): Rename to mudflap_init.  Export.
16743         Rewrite to create synthetic declarations instead of looking
16744         up declarations from mf-runtime.h.
16745         (mf_make_builtin, mf_make_cache_struct_type): New functions.
16746         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
16747         Correct commentary.
16748         (execute_mudflap_function_decls, mudflap_register_call):
16749         Don't call mf_init_extern_trees.
16750         (mudflap_finish_file): Use cgraph_build_static_cdtor.
16751
16752         * tree-mudflap.h: Update prototypes.
16753         * c-mudflap.c: Delete file.
16754         * c-common.c: Include tree-mudflap.h.
16755         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
16756         * Makefile.in: Remove all references to c-mudflap.o.
16757         Update dependencies.
16758
16759 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16760
16761         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
16762         displacements with the spatial-locality cache-control completer.
16763
16764 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
16765
16766         * langhooks.c: Don't include gt-langhooks.h.
16767         (var_labelno): Delete.
16768         (lhd_set_decl_assembler_name): Do not append a distinguishing
16769         number to file-scope internal-linkage declarations for the first
16770         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
16771         the declaration itself (if at block scope), or its containing
16772         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
16773         number.
16774
16775         * opts.c (cur_in_fname): New global.
16776         * opts.h: Declare it.
16777         * tree.c: Include opts.h.
16778         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
16779         DECL_UID equal to cur_in_fname.
16780         (copy_node_stat): Do not change DECL_UID when copying a
16781         TRANSLATION_UNIT_DECL.
16782         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
16783         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
16784
16785         * c-decl.c (c_static_assembler_name): Delete.
16786         * c-tree.h (c_static_assembler_name): Delete prototype.
16787         * c-lang.c, objc/objc-lang.c: Don't override
16788         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
16789
16790         * Makefile.in (tree.o): Update dependencies.
16791         (GTFILES): Remove langhooks.c.
16792
16793 2004-07-05  Roger Sayle  <roger@eyesopen.com>
16794
16795         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
16796         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
16797         Normalize "X % C" as "X % -C" for signed modulus and negative C.
16798         Optimize "X % -Y" as "X % Y" for signed modulus.
16799         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
16800         into "((unsigned) X % Y) == 0".
16801
16802 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
16803
16804         * sourcebuild.texi (Config Fragments): Use @comma{} in
16805         cross-reference to section title.
16806
16807 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16808
16809         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
16810         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
16811         (gimplify_target_expr, gimplify_expr): Likewise.
16812         (copy_if_shared_r): No longer need special case for BIND_EXPR.
16813         (unshare_body, unvisit_body): Only look at nested if BODY_P is
16814         whole function.
16815         (gimplify_compound_lval): See if we can strip any useless conversion.
16816         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
16817         from RHS, not LHS.
16818         (gimplify_modify_expr_to_memset): Likewise.
16819         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
16820         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
16821         (declare_inline_vars): Likewise.
16822         (walk_type_fields): New function.
16823         (walk_tree): Use it.
16824         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
16825
16826         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
16827         (sra_walk_modify_expr): Allow init function to fail.
16828         (scan_init): Now returns bool.
16829         (generate_element_init): If can't understand INIT, return false.
16830         (scalarize_init): Return false if generate_element_init does.
16831
16832         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
16833         print bounds.
16834
16835         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
16836         bounds if bounds aren't constant.
16837
16838         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
16839
16840         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
16841         to type hooks; remove bogus PARAMS.
16842
16843 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
16844
16845         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
16846         * dwarf2out.c (add_data_member_location_attribute): Check for
16847         TREE_BINFO.
16848         * tree.c (tree_node_kinds): Add "binfos".
16849         (binfo_lang_slots): New.
16850         (make_node_stat): Add TREE_BINFO.
16851         (make_tree_binfo_stat): New.
16852         (tree_node_structure): Add TREE_BINFO.
16853         * tree.def (TREE_BINFO): New.
16854         * tree.h (REC_OR_UNION_CHECK): Rename to ...
16855         (RECORD_OR_UNION_CHECK): ... here.
16856         (NOT_RECORD_OR_UNION_CHECK): New.
16857         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
16858         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
16859         RECORD_OR_UNION_CHECK.
16860         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
16861         (TYPE_LANG_SLOT_1): New.
16862         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
16863         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
16864         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
16865         (BINFO_ELTS): Remove.
16866         (BINFO_LANG_SLOT): New.
16867         (struct tree_binfo): New.
16868         (binfo_lang_slots): Declare.
16869         (enum tree_node_structure_enum): Add TS_BINFO.
16870         (union tree_node): Add binfo.
16871         (make_tree_binfo_stat): Declare.
16872         (make_tree_binfo): New.
16873         (enum tree_node_kind): Add binfo_kind.
16874
16875         * objc/objc-act.c (start_class, objc_declare_protocols,
16876         start_protocols): Use TYPE_LANG_SLOT_1.
16877         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
16878         to ...
16879         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
16880         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
16881         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
16882         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
16883
16884 2004-07-05  Steven Bosscher  <stevenb@suse.de>
16885
16886         * rtl.h (struct rtx_def): Remove the integrated flag.
16887         Use the return_val flag for MEM_SCALAR_P.
16888         Reshuffle and update flags in CLEAR_RTX_FLAGS.
16889
16890 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
16891
16892         PR target/16357
16893         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
16894         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
16895         move_by_pieces.
16896
16897 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
16898
16899         * var-tracking.c: Fix some comments.
16900         (frame_stack_adjust): New.
16901         (vt_stack_adjustments): Init stack_adjust of entry block to
16902         minus stack adjustment of function prologue.
16903         (adjust_stack_reference): Do not adjust if adjustment == 0.
16904         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
16905         (emit_notes_in_bb): Likewise.
16906         (vt_add_function_parameters): Do not adjust locations of
16907         function arguments.
16908         (vt_initialize): Compute the stack adjustment of function
16909         prologue and offset the initial "location" of frame_base_decl
16910         from the stack pointer after prologue.
16911
16912 2004-07-04  Richard Henderson  <rth@redhat.com>
16913
16914         * function.c (struct assign_parm_data_all): New.
16915         (struct assign_parm_data_one): New.
16916         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
16917         assign_parm_find_data_types, assign_parms_setup_varargs,
16918         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
16919         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
16920         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
16921         assign_parm_setup_block, assign_parm_setup_reg,
16922         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
16923         (assign_parms): ... here.
16924
16925 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
16926
16927         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
16928         now are bitmap_set_t's.
16929         (bitmap_insert_into_set): No point in inserting the value if
16930         it's invariant.
16931         (bitmap_set_contains): New function.
16932         (bitmap_set_replace_value): Add comment on why we do it
16933         this way.
16934         (set_contains): Removed.
16935         (bitmap_set_subtract_from_value_set): New name of
16936         set_subtract now that it's arguments are two different
16937         types of sets.
16938         Update callers.
16939         (bitmap_find_leader): Change algorithm used.
16940         (find_or_generate_expression): Update use of functions for new
16941         bitmap sets.
16942         (create_expression_by_pieces): Ditto.
16943         (insert_aux): Ditto.
16944         (insert): Ditto.
16945         (add_to_sets): Ditto.
16946         (init_pre): Ditto.
16947         (execute_pre): Ditto.
16948         (compute_avail): Ditto.
16949         Also ignore virtual phis.
16950
16951 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
16952
16953         * combine.c (simplify_comparison): Fix comment typo.
16954
16955 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
16956
16957         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
16958         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
16959         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
16960         (output_restore): Change parameter from 'insn' to 'pat'.
16961         (output_return): Adjust call to output_restore.
16962         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
16963         Adjust call to output_restore.
16964
16965 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
16966
16967         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
16968         and assert system is bsd.
16969
16970 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
16971
16972         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
16973         (TARGET_SWITCHES): Remove -mdebugc.
16974         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
16975         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
16976         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
16977         (sle_[sd]i_reg): Delete.
16978
16979 2004-07-04  Steven Bosscher  <stevenb@suse.de>
16980
16981         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
16982         Define.
16983         * config/iq2000/iq2000.md: Translate old pipeline description to an
16984         equivalent new one.
16985
16986 2004-07-04  Roger Sayle  <roger@eyesopen.com>
16987
16988         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
16989         Ensure the replacement rhs is valid gimple before performing
16990         the substitution.  Return false if these sanity checks fail.
16991         (fold_stmt): Only set changed to true, if set_rhs returns true.
16992         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
16993         succeeds.
16994
16995 2004-07-04  Richard Henderson  <rth@redhat.com>
16996
16997         PR c/16348
16998         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
16999
17000 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
17001
17002         * configure.ac (ranlib_flags): New variable.
17003         * Makefile.in (RANLIB_FLAGS): New variable.
17004         (libbackend.a): Use it.
17005         * configure: Regenerated.
17006
17007 2004-07-04  Roger Sayle  <roger@eyesopen.com>
17008
17009         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
17010         a "sign mask" instead of using ashr_optab directly.
17011
17012 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
17013
17014         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
17015         * doc/cppopts.texi: Clarify processing of command-line defines.
17016
17017 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
17018
17019         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
17020
17021 2004-07-04  Richard Henderson  <rth@redhat.com>
17022
17023         * rtl.def (ADDRESSOF): Remove.
17024         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
17025         (find_base_term, memrefs_conflict_p): Likewise.
17026         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
17027         (fold_rtx, cse_insn, set_live_p): Likewise.
17028         * dwarf2out.c (mem_loc_descriptor): Likewise.
17029         (add_location_or_const_value_attribute): Likewise.
17030         * emit-rtl.c (copy_insn_1): Likewise.
17031         * explow.c (memory_address): Likewise.
17032         * expmed.c (store_split_bit_field): Likewise.
17033         * expr.c (expand_expr_real_1): Likewise.
17034         * function.c (instantiate_decl
17035         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
17036         * genrecog.c (preds, validate_pattern): Likewise.
17037         * integrate.c (copy_rtx_and_substitute): Likewise.
17038         * recog.c (general_operand, register_operand): Likewise.
17039         (memory_address_p): Likwise.
17040         * reload1.c (eliminate_regs, elimination_effects): Likewise.
17041         * rtl.c (copy_rtx): Likewise.
17042         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
17043         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
17044         * rtlhooks.c (gen_lowpart_general): Likewise.
17045         * stmt.c (expand_asm_operands): Likewise.
17046         * web.c (entry_register, replace_ref, web_main): Likewise.
17047         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
17048         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
17049         * config/arm/arm.c (thumb_rtx_costs): Likewise.
17050         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
17051         * config/frv/frv.c (move_destination_operand, move_source_operand,
17052         condexec_dest_operand, condexec_source_operand,
17053         condexec_memory_operand): Likewise.
17054         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
17055         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
17056         (destination_xfmode_operand): Likewise.
17057         * config/mips/mips.h (PREDICATE_CODES): Likewise.
17058         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
17059         * config/s390/s390.c (general_s_operand): Likewise.
17060         * config/s390/s390.md (mov*): Likewise.
17061         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
17062
17063         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
17064         * expr.c (expand_expr_real_1): Likewise.
17065         * stmt.c (expand_decl): Likewise.
17066         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
17067
17068         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
17069         postponed_insns, put_var_into_stack, put_reg_into_stack,
17070         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
17071         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
17072         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
17073         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
17074         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
17075         purge_bitfield_addressof_replacements, purge_addressof_replacements,
17076         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
17077         struct insns_for_mem_walk_info, insns_for_mem_walk,
17078         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
17079         setjmp_protect_args): Remove.
17080         (push_function_context_to): Don't handle var_refs_queue.
17081         (pop_function_context_from, free_after_compilation): Likewise.
17082         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
17083         (assign_parms, allocate_struct_function): Likewise.
17084         (use_register_for_decl): New.
17085         (expand_function_end): Don't setjmp_protect.
17086         * function.h (struct emit_status): Update commentary.
17087         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
17088         (max_parm_reg, parm_reg_stack_loc): Remove.
17089         * passes.c (DFI_addressof): Remove.
17090         (dump_file_info): Remove addressof.
17091         (rest_of_handle_addressof): Remove.
17092         (rest_of_compilation): Don't call it.
17093         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
17094         * stmt.c (expand_decl): Use use_register_for_decl.
17095         * tree.h: Update decls.
17096         * web.c (mark_addressof): Remove.
17097         * doc/invoke.texi (-dF): Remove.
17098
17099 2004-07-03  Richard Henderson  <rth@redhat.com>
17100
17101         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
17102         instead of gen_mem_addressof.
17103         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
17104         TImode output register.
17105
17106 2004-07-03  Richard Henderson  <rth@redhat.com>
17107
17108         PR tree-optimization/16341
17109         * tree-sra.c (sra_walk_function): Increment to next stmt before
17110         processing the current stmt.
17111         (sra_insert_after): Always use BSI_SAME_STMT.
17112
17113 2004-07-03  Richard Henderson  <rth@redhat.com>
17114
17115         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
17116         fp plus with minus.
17117
17118 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
17119
17120         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
17121         with tree_int_cst_equal.
17122
17123 2004-07-03  Andreas Schwab  <schwab@suse.de>
17124
17125         * config/ia64/ia64.md: Define new attribute "empty".
17126         (prologue_use, nop_x, insn_group_barrier): Set it.
17127
17128         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
17129         skip over "empty" insns.
17130
17131 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17132
17133         * tree-inline.c (initialize_inlined_parameters): Pass proper function
17134         context to gimplify_body.
17135         (walk_tree): Don't walk into types twice.
17136         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
17137
17138         * tree-sra.c (generate_element_init): Remove any useless conversions.
17139
17140         * gimplify.c (gimplify_conversion): Remove stripping useless
17141         conversions from here.
17142         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
17143         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
17144         Unshare before substituting PLACEHOLDER_EXPR.
17145         (gimplify_modify_expr_to_memset): Likewise.
17146         Pass address of TO to memset, not TO itself.
17147         (gimplify_init_constructor): Make copy of OBJECT so we have it each
17148         time we make an expression (to match a PLACEHOLDER_EXPR).
17149
17150         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
17151         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
17152         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
17153         * tree-ssa-dom.c (local_fold): Likewise.
17154
17155         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
17156         * langhooks.h (strct lang_hooks): New field type_max_size.
17157         * function.c (assign_temp): Call it.
17158
17159 2004-07-03  Steven Bosscher  <stevenb@suse.de>
17160
17161         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
17162         * config/sh/sh.md: Convert the SH1 pipeline description to
17163         a DFA model.
17164
17165 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
17166
17167         * c-decl.c (struct c_binding): Remove contour field; add
17168         depth, invisible, nested fields.
17169         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
17170         (B_IN_EXTERNAL_SCOPE): New convenience macros.
17171         (bind): Add invisible and nested arguments. Initialize
17172         new fields of struct c_binding; adjust loop scanning for
17173         insertion point.
17174         (free_binding_and_advance): Clear structure with memset.
17175         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
17176         in file scope, even if it's in external scope too.
17177         (pushdecl): Adjust to match.  Create invisible file-scope
17178         declarations for block-scope forward declarations of static functions.
17179         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
17180         (undeclared_variable, lookup_label, declare_label, define_label)
17181         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
17182         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
17183         (store_parm_decls_oldstyle): Adjust to match.
17184         (diagnose_mismatched_decls): Correct handling of linkage clashes.
17185         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
17186
17187         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
17188         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
17189
17190 2004-07-02  Richard Henderson  <rth@redhat.com>
17191
17192         * c-decl.c (grokdeclarator): Don't frob current_function_decl
17193         around variable_size.
17194         (set_decl_nonlocal): Remove.
17195         (store_parm_decls): Add stmts for pending sizes.
17196         * calls.c (calls_function, calls_function_1): Remove.
17197         (precompute_arguments): Don't call it.
17198         * cfgexpand.c (set_save_expr_context): Remove.
17199         (tree_expand_cfg): Don't call it.
17200         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
17201         (dwarf2out_finish): Likewise.
17202         * expr.c (emit_block_move): Adjust addresses to BLKmode.
17203         (store_constructor): Don't pre-evaluate SAVE_EXPR.
17204         (safe_from_p): Don't queue SAVE_EXPRs.
17205         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
17206         or build plain VAR_DECLs.
17207         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
17208         (fold): Likewise.
17209         (fold_checksum_tree): Don't special-case SAVE_EXPR.
17210         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
17211         (put_var_into_stack): Don't handle SAVE_EXPR.
17212         (gen_mem_addressof): Likewise.
17213         * function.h (struct function): Remove x_save_expr_regs.
17214         (save_expr_regs): Remove.
17215         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
17216         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
17217         * stor-layout.c (variable_size): Don't set it.
17218         (force_type_save_exprs, force_type_save_exprs_1): Remove.
17219         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
17220         all callers.  Don't set SAVE_EXPR_CONTEXT.
17221         * tree-inline.h (remap_save_expr): Update decl.
17222         * tree.c (save_expr): Update build size.
17223         (first_rtl_op): Don't handle SAVE_EXPR.
17224         (unsave_expr_1, contains_placeholder_p): Likewise.
17225         (decl_function_context): Likewise.
17226         * tree.def (SAVE_EXPR): Remove args 1 and 2.
17227         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
17228         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
17229
17230 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
17231
17232         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
17233         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
17234         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
17235         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
17236         some first-person references and patronizing comments.  Based on
17237         printed manual.
17238         * doc/invoke.texi: Don't reference fortran@gnu.org.
17239         * doc/trouble.texi (Warning when a non-void function value is
17240         ignored): Rewrite.  From Russ Allbery and Chris Devers.
17241
17242 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
17243
17244         * tree-ssa-pre.c (bitmap_set_t): New.
17245         (bb_value_sets): avail_out is now a bitmap_set_t.
17246         (bitmap_find_leader): New function.
17247         (bitmap_value_insert_into_set): Ditto.
17248         (bitmap_set_copy): Ditto.
17249         (bitmap_value_replace_in_set): Ditto.
17250         (bitmap_set_contains_value): Ditto.
17251         (bitmap_set_new): Ditto.
17252         (bitmap_set_pool): New pool.
17253         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
17254         (insert_aux): Ditto.
17255         (add_to_sets): Ditto.
17256         (compute_avail): Ditto
17257         (eliminate): Ditto.
17258         (init_pre): Ditto.
17259         (fini_pre): Ditto.
17260         (execute_pre): Ditto.
17261
17262 2004-07-02  Roger Sayle  <roger@eyesopen.com>
17263
17264         * config/rs6000/rs6000.c (struct processor_costs): New structure
17265         used to hold instruction latencies/sizes for processor types.
17266         (rs6000_cost): New global variable pointing to current CPU's costs.
17267         (rs6000_override_options): Initialize rs6000_cost to point to the
17268         appropriate cost table based upon rs6000_cpu and optimize_size.
17269         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
17270         timings inline.
17271
17272 2004-07-02  Richard Henderson  <rth@redhat.com>
17273
17274         * expmed.c (make_tree): Don't use SET_DECL_RTL.
17275
17276 2004-07-02  Steven Bosscher  <stevenb@suse.de>
17277
17278         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
17279
17280 2004-07-01  Richard Henderson  <rth@redhat.com>
17281
17282         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
17283         (alpha_gp_save_rtx): Use assign_stack_local instead of
17284         gen_mem_addressof.
17285
17286 2004-07-01  Richard Henderson  <rth@redhat.com>
17287
17288         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
17289         (alpha_rtx_cost_data): Update to match.
17290         (alpha_rtx_cost_size): New.
17291         (alpha_rtx_costs): Honor optimize_size.
17292
17293 2004-07-01  Richard Henderson  <rth@redhat.com>
17294
17295         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
17296         * cfgexpand.c (tree_expand_cfg): Do it here.
17297         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
17298         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
17299         * config/mips/mips.c (mips_output_mi_thunk): And here.
17300         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
17301         * config/sh/sh.c (sh_output_mi_thunk): And here.
17302         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
17303
17304 2004-07-01  Richard Henderson  <rth@redhat.com>
17305
17306         * tree.def (RTL_EXPR): Remove.
17307         * c-typeck.c (lvalue_p): Don't handle it.
17308         * expr.c (safe_from_p): Likewise.
17309         (expand_expr_real_1): Likewise.
17310         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
17311         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
17312         * gengtype.c (adjust_field_tree_exp): Likewise.
17313         * stmt.c (warn_if_unused_value): Likewise.
17314         * tree-gimple.c (recalculate_side_effects): Likewise.
17315         * tree-pretty-print.c (dump_generic_node): Likewise.
17316         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
17317         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
17318         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
17319
17320         * stmt.c (struct stmt_status): Remove x_last_expr_type,
17321         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
17322         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
17323         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
17324         all the bits that tracked last_expr.
17325         (expand_end_bindings): Don't track last_expr.
17326         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
17327         (clear_last_expr): Remove.
17328         (expand_asm): Don't call it.
17329         (expand_asm_operands, expand_end_cond): Likewise.
17330         (expand_naked_return, expand_null_return_1): Likewise.
17331         * c-typeck.c (c_begin_compound_stmt): Likewise.
17332         * cfgexpand.c (expand_block): Use expand_expr_stmt.
17333         * expr.c (expand_expr_real_1): Likewise.
17334         * tree.h: Update prototypes.
17335
17336         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
17337         (struct emit_status): Remove sequence_rtl_expr.
17338         (struct function): Remove x_rtl_expr_chain.
17339         (seq_rtl_expr, rtl_expr_chain): Remove.
17340         * function.c (struct temp_slot): Remove rtl_expr.
17341         (assign_stack_temp_for_type): Don't set it.
17342         (free_temp_slots, pop_temp_slots): Don't check it.
17343         (free_after_compilation): Don't clear x_rtl_expr_chain.
17344         (fixup_var_refs): Don't search it.
17345         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
17346         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
17347         or seq_rtl_expr.
17348         (push_topmost_sequence): Likewise.
17349         (end_sequence, init_emit): Likewise.
17350         (start_sequence_for_rtl_expr): Remove.
17351         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
17352         * rtl.h (preserve_rtl_expr_result): Remove.
17353
17354 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
17355
17356         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
17357         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
17358         typos.
17359
17360 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
17361
17362         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
17363         (STANDARD_STARTFILE_PREFIX_2): Define.
17364         (standard_startfile_prefix_1): Initialize to
17365         STANDARD_STARTFILE_PREFIX_1.
17366         (standard_startfile_prefix_2): Initialize to
17367         STANDARD_STARTFILE_PREFIX_2.
17368         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
17369         (STANDARD_STARTFILE_PREFIX_1): Define.
17370         (STANDARD_STARTFILE_PREFIX_2): Define.
17371         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
17372         (STANDARD_STARTFILE_PREFIX_2): Document.
17373
17374 2004-07-01  Richard Henderson  <rth@redhat.com>
17375
17376         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
17377         in order to disable scalarization.  Instead set a flag and wait
17378         for a candidate decl.
17379
17380 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
17381
17382         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
17383         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
17384         Use terminology "testsuite" and "enumerated".
17385
17386 2004-07-01  Richard Henderson  <rth@redhat.com>
17387
17388         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
17389         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
17390         (initial_return_save): Likewise.
17391         (flush_queued_reg_saves): Remap register numbers.
17392         (dwarf2out_return_reg): Likewise.
17393
17394 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17395
17396         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
17397
17398         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
17399         access functions for lower bound and element size and only output
17400         if lower bound nonzero or element size not same as that of type.
17401         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
17402
17403 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
17404
17405         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
17406
17407 2004-07-01  Per Bothner  <per@bothner.com>
17408
17409         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
17410
17411 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
17412
17413         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
17414         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
17415         first operand.  Don't optimize if the bitfield is volatile.
17416
17417 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
17418
17419         * c-pretty-print.c (pp_c_postfix_expression): Handle
17420         floating-point comparison operators.
17421         (pp_c_expression): Pass floating-point comparison
17422         operators to pp_c_postfix_expression.
17423
17424 2004-07-01  Roger Sayle  <roger@eyesopen.com>
17425
17426         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
17427         rtx_cost instead of "had_mult" to determine whether the transformed
17428         expression is cheaper than the original.
17429
17430 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
17431
17432         * alias.c (get_alias_set, canon_rtx, get_addr,
17433         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
17434         Use MEM_P.
17435         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
17436         expand_builtin): Likewise.
17437         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
17438         Likewise.
17439         * combine.c (can_combine_p, combinable_i3pat, try_combine,
17440         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
17441         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
17442         record_dead_and_set_regs_1, get_last_value_validate,
17443         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
17444         * cse.c (check_dependence, canon_hash, equiv_constant,
17445         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
17446         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
17447         count_reg_usage): Likewise.
17448         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
17449         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
17450         cselib_record_sets): Likewise.
17451         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
17452         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
17453         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
17454         * df.c (df_uses_record): Likewise.
17455         * dojump (do_jump): Likewise.
17456         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
17457         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
17458         decl_start_label): Likewise.
17459         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
17460         operand_subword, change_address_1, make_safe_from): Likewise.
17461         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
17462         stabilize, force_not_mem): Likewise.
17463         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
17464         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
17465         * expr.c (convert_move, convert_modes, emit_block_move,
17466         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
17467         emit_move_insn_1, expand_assignment, store_expr,
17468         store_constructor_field, store_constructor, store_field,
17469         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
17470         Likewise.
17471         * final.c (cleanup_subreg_operands, alter_subreg,
17472         get_mem_expr_from_op): Likewise.
17473         * flow.c (notice_stack_pointer_modification_1,
17474         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
17475         Likewise.
17476         * function.c (mark_temp_addr_taken, preserve_temp_slots,
17477         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
17478         optimize_bit_field, flush_addressof, purge_addressof_1,
17479         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
17480         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
17481         keep_stack_depressed): Likewise.
17482         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
17483         noce_process_if_block, find_memory): Likewise.
17484         * integrate.c (subst_constants, allocate_initial_values): Likewise.
17485         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
17486         update_equiv_regs): Likewise.
17487         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
17488         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
17489         * optabs.c (expand_abs, emit_unop_insn): Likewise.
17490         * passes.c (rest_of_handle_final): Likewise.
17491         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
17492         move2add_note_store): Likewise.
17493         * ra-build.c (detect_remat_webs): Likewise.
17494         * ra-debug.c (dump_static_insn_cost): Likewise.
17495         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
17496         * recog.c (validate_change, apply_change_group, cancel_changes,
17497         validate_replace_rtx_1, general_operand, register_operand,
17498         nonmemory_operand, push_operand, pop_operand, memory_operand,
17499         indirect_operand, asm_operand_ok, offsettable_memref_p,
17500         offsettable_nonstrict_memref_p, constrain_operands,
17501         store_data_bypass_p): Likewise.
17502         * reg-stack.c (subst_stack_regs_pat): Likewise.
17503         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
17504         copy_cost, reg_scan_mark_refs): Likewise.
17505         * regmove.c (optimize_reg_copy_3, stack_memref_p,
17506         combine_stack_adjustments_for_block): Likewise.
17507         * regrename.c (copyprop_hardreg_forward_1): Likewise.
17508         * reload.c (can_reload_into, push_reload, decompose, immune_p,
17509         find_reloads, find_reloads_address, find_reloads_address_1,
17510         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
17511         find_equiv_reg): Likewise.
17512         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
17513         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
17514         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
17515         delete_address_reloads): Likewise.
17516         * resource.c (mark_referenced_resources): Likewise.
17517         * rtlanal.c (get_jump_table_offset, count_occurrences,
17518         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
17519         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
17520         num_sign_bit_copies1): Likewise.
17521         * rtlhooks.c (gen_lowpart_general): Likewise.
17522         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
17523         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
17524         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
17525         sdbout_global_decl): Likewise.
17526         * simplify-rtx.c (simplify_subreg): Likewise.
17527         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
17528         expand_anon_union_decl, expand_end_case_type): Likewise.
17529         * unroll.c (calculate_giv_inc): Likewise.
17530         * var-tracking.c (stack_adjust_offset_pre_post,
17531         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
17532         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
17533         vt_add_function_parameters): Likewise.
17534         * varasm.c (make_var_volatile, notice_global_symbol,
17535         assemble_external, decode_addr_const, mark_weak,
17536         default_encode_section_info): Likewise.
17537
17538 2004-07-01  Steven Bosscher  <stevenb@suse.de>
17539
17540         * stmt.c (check_seenlabel): Remove.
17541         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
17542
17543 2004-07-01  Richard Henderson  <rth@redhat.com>
17544
17545         * function.h (struct function): Remove x_function_call_count.
17546         (function_call_count): Remove.
17547         * calls.c (expand_call): Don't set it.
17548         * integrate.c (copy_rtx_and_substitute): Likewise.
17549
17550         * function.h (struct function): Remove x_cleanup_label.
17551         (cleanup_label): Remove.
17552         * stmt.c (expand_value_return): Don't use it.
17553         * function.c (free_after_compilation): Don't set it.
17554         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
17555         * cfgexpand.c (tree_expand_cfg): Update call.
17556         * tree.h (expand_function_start): Update decl.
17557
17558 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
17559
17560         PR c/1027
17561         * c-lang.c (c_initialize_diagnostics): Move from here ...
17562         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
17563         (c_tree_printer): Use pretty-printer to format %T.
17564         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
17565         before '*' if not C++.
17566         (pp_c_direct_abstract_declarator): Don't try to print array upper
17567         bound for flexible array members.
17568         * c-tree.h: Include "diagnostic.h".
17569         (c_initialize_diagnostics): Declare.
17570         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
17571         * c-format.c (format_type_warning): New function.  Improve
17572         diagnostics for incorrect format argument types.
17573         (check_format_types): Use it.  Add two parameters.  Use the
17574         TYPE_MAIN_VARIANT of wanted_type.
17575         (check_format_info_main): Pass new parameters to
17576         check_format_types.
17577         (struct format_wanted_type): Update comment.
17578
17579 2004-07-01  Nick Clifton  <nickc@redhat.com>
17580
17581         * target.h (struct gcc_target): Add new field to struct cxx:
17582         import_export_class.
17583         * target-def.h (TARGET_CXX): Initialise the new field.
17584         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
17585         the new field.
17586         * doc/tm.texi: Document the new target hook.
17587
17588 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
17589
17590         * builtins.c (fold_builtin_classify): Fix typo.
17591
17592 2004-07-01  Richard Henderson  <rth@redhat.com>
17593
17594         * function.c (identify_blocks, identify_blocks_1): Remove.
17595         * function.h (identify_blocks): Remove.
17596         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
17597
17598 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
17599
17600         * builtins.c (fold_builtin_classify): New.
17601         (fold_builtin_unordered_cmp): Fix commentary.
17602         (fold_builtin): Use it.
17603         * builtins.def: Define builtins for isnan,
17604         isnanf, isnanl, finite, finitef, finitel,
17605         isinf, isinff, isinfl.
17606
17607 2004-07-01  Richard Henderson  <rth@redhat.com>
17608
17609         * function.h (struct function): Remove dont_emit_block_notes.
17610         * gimple-low.c (lower_function_body): Don't set it.
17611         * cfgexpand.c (expand_block): Don't check it.
17612         * cfglayout.c (insn_locators_initialize): Likewise.
17613         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
17614         * passes.c (rest_of_compilation): Likewise.
17615         * stmt.c (expand_start_bindings_and_block): Likewise.
17616         (expand_end_bindings): Likewise.
17617
17618 2004-07-01  Richard Henderson  <rth@redhat.com>
17619
17620         * cgraph.h (cgraph_build_static_cdtor): Declare.
17621         * cgraphunit.c (cgraph_build_static_cdtor): New.
17622         * c-objc-common.c (build_cdtor): Use it.
17623         * coverage.c (create_coverage): Likewise.
17624         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
17625         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
17626
17627 See ChangeLog.11 for earlier changes.