OSDN Git Service

PR c/17881
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2
3         PR c/17881
4         * c-decl.c (grokparms): Don't warn for parameters of incomplete
5         type in declarations that are not definitions except for the case
6         of parameters of void type.
7
8 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
9
10         * tree-cfg.c: Fix comment typos.
11
12 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
13
14         PR c/17301
15         * builtins.c (expand_builtin_va_start): Check for too few
16         arguments to va_start.
17
18 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
19
20         PR c/17189
21         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
22         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
23         pedantic.
24         * c-parse.in (component_decl): Don't pedwarn here for unnamed
25         fields.
26
27 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
28
29         PR tree-optimization/17906
30         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
31         copy non-gimple reg arguments.
32
33 2004-10-09  Roger Sayle  <roger@eyesopen.com>
34
35         PR rtl-optimization/17853
36         * simplify-rtx.c (simplify_relational_operation): Correct comment.
37         Reorganize handling of comparison operations with floating point
38         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
39         Likewise, introduce support for comparison operations with vector
40         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
41
42         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
43         * doc/tm.texi: Likewise.
44
45 2004-10-09  Steven Bosscher  <stevenb@suse.de>
46
47         * regs.h (struct reg_info_def): Remove the last_node_uid and
48         changes_mode fields.
49         (REGNO_LAST_NOTE_UID): Don't define.
50         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
51         * regmove.c (copy_src_to_dest): Likewise.
52
53 2004-10-09  Roger Sayle  <roger@eyesopen.com>
54
55         PR middle-end/17894
56         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
57         relational comparison operator op needs to be swapped/reversed when
58         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
59
60 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
61
62         PR tree-opt/17902
63         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
64         instead of bsi_start.
65         (value_replacement): Likewise.
66         (abs_replacement): Likewise
67
68 2004-10-09  Steven Bosscher  <stevenb@suse.de>
69
70         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
71         (expand_gimple_cond_expr, expand_gimple_tailcall,
72         expand_gimple_basic_block): Use it to dump RTL for each stmt.
73         (tree_expand_cfg): Announce full RTL function dump.
74         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
75         not the graph version.
76         * tree-pretty-print.c (dump_generic_node): Allow empty statements
77         in the arms of a COND_EXPR for lowered nodes.
78
79 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
80
81         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
82         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
83         strtoufix16, strtoufix32, strtoufix64): Declare.
84
85 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
86
87         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
88         for an out-of-range floating point constant.
89         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
90         warning if the target format does not support infinities.
91
92 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
93
94         * emit-rtl.c (last_label_num, base_label_num): Remove.
95         (max_label_num): Always return label_num.
96         (set_new_last_label_num, restore_emit_status): Remove.
97         (init_emit): Don't initialize last_label_num.
98         * function.c (pop_function_context_from): Don't call
99         restore_emit_status.
100         * function.h: Remove the prototype for restore_emit_status.
101         * rtl.h: Remove the prototype for set_new_last_label_num.
102
103 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
104
105         * stmt.c (expand_decl_init): Remove.
106         * tree.h: Remove the corresponding prototype.
107
108 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
109
110         * integrate.c (try_constants, subst_constants, mark_stores):
111         Remove.
112         * integrate.h: Remove the prototype for try_constants.
113
114 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
115
116         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
117         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
118         comments about its relevance to errors.
119         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
120
121 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
122
123         PR c/16999
124         * c-ppoutput.c (cb_ident): Don't quote string as it is already
125         quoted.
126
127 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
128
129         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
130         reference_node_pool.
131
132 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
133
134         * tree-cfg.c: Fix a comment typo.
135
136 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
137
138         * config/s390/s390.c (s390_register_info): Don't save fprs for 
139         -msoft-float.
140         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
141
142 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
143
144         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
145         (TARGET_DEFAULT): Use symbolic values.
146         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
147         (TARGET_DEFAULT): Use symbolic values.
148         * config/s390/s390.c (s390_backchain_string): Initialize to
149         TARGET_DEFAULT_BACKCHAIN.
150
151 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
152
153         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
154         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
155         code.
156         (expand_builtin_strcat): Accept a type parameter.
157         (fold_builtin_mempcpy): Accept a type and endp parameter.
158
159         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
160         Accept an `exp' instead of an `arglist'.
161
162 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
163
164         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
165         reverting my 2004-09-07 patch to use build_int_cst.
166
167 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
168
169         PR target/17245
170         * config/sparc/sparc.c (input_operand): Remove redundant code
171         for handling LO_SUM.
172         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
173         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
174         Otherwise only accept it for TFmode if quad move insns are available.
175
176 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
177
178         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
179         common cases will be caught earlier than others.
180
181 2004-10-08  Michael Matz  <matz@suse.de>
182
183         * loop-doloop.c (doloop_optimize): Extend count.
184
185 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
186
187         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
188         (prefetch): Convert to expander.
189
190 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
191
192         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
193         first argument of CALL.
194         (tls_local_dynamic): Likewise.
195
196 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
197
198         * c-typeck.c (enum impl_conv): New.
199         (convert_for_assignment): Use it.  Take tree for function called
200         instead of its name.  Handle ObjC selectors for diagnostics at
201         start of function.  Select diagnostic text within the function
202         using full sentences for diagnsotics.  Use %qE to name functions
203         in diagnostics.
204         (convert_arguments, build_modify_expr,
205         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
206         callers to convert_for_assignment.
207         (warn_for_assignment): Remove.
208
209 2004-10-08  Nick Clifton  <nickc@redhat.com>
210
211         * config/sh/symbian.c (symbian_possibly_export_base_class):
212         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
213         TYPE_CONTAINS_VPTR_P.
214
215 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
216
217         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
218         fixed registers form all_used_regs. Update call_really_used_regs.
219         (CALL_REALLY_USED_REGISTERS): Define.
220         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
221         with call_really_used_regs.
222
223 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
224
225         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
226         for -profile as well as -p and -pg.
227
228 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
229
230         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
231
232 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
233
234         * tree-cfg.c (tree_block_forwards_to): Remove.
235         * tree-flow.h: Remove the corresponding prototype.
236
237 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
238
239         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
240         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
241
242 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
243
244         Radar 3813796
245         * config/rs6000/rs6000.c (rs6000_generate_compare): When
246         flag_trapping_math is in effect, don't generate subtract
247         instructions.
248
249 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
250
251         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
252         * config/s390/s390.c (s390_narrow_logical_operator): New function.
253         (s390_extra_constraint_str): Add 'A' constraints.
254         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
255         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
256         (CONSTRAINT_LEN): Likewise.
257         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
258         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
259         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
260         ("*iordi3"): Add OI alternative and splitter.
261         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
262         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
263         ("*xordi3"): Add XI alternative and splitter.
264         ("*xorsi3", "*xorhi3"): Likewise.
265
266 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
267
268         * config/mips/mips.c (mips_function_rodata_section): New function.
269         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
270
271 2004-10-07  Devang Patel  <dpatel@apple.com>
272
273         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
274         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
275         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
276         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
277         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
278         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI, 
279         UNSPEC_VCONDU_V16QI): New constant defines.
280         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
281         vconduv16qi): New patterns.
282         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
283         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
284         (get_vec_cmp_insn): Same.
285         (get_vsel_insn): Same.
286         (rs6000_emit_vector_compare): Same.
287         (rs6000_emit_vector_select): Same.
288         (INSN_NOT_AVAILABLE): New.
289         
290 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
291
292         PR tree-optimization/17749
293         * tree-tailcall.c (find_tail_calls): Check that parameter is
294         a gimple_reg.
295
296 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
297
298         * config/ia64/ia64.c: Fix a comment typo.
299
300 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
301
302         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
303
304 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
305
306         PR c++/17115
307         * tree-inline.c (expand_call_inline): Do not warn for functions
308         marked with attribute noinline.
309
310 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
311
312         PR target/17862
313         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
314         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
315
316         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
317         of 0 as 4th argument to pass_by_reference.
318         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
319
320 2004-10-06  Eric Christopher  <echristo@redhat.com>
321
322         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
323         attribute.
324
325 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
326
327         PR target/17770
328         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
329
330 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
331
332         PR rtl-optimization/17791
333         * loop-doloop.c (doloop_modify): Take number of iterations as
334         argument.
335         (doloop_optimize): Extend or shorten the number of iterations
336         when changing mode of counter register.
337         * loop-iv.c (lowpart_subreg): Export.
338         * rtl.h (lowpart_subreg): Declare.
339
340 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
341
342         PR tree-optimization/17806
343         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
344         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
345         flags moved to split_edge.
346
347 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
348
349         PR middle-end/17835
350         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
351         before tentatively building the conditional move sequence.
352
353 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
354
355         PR target/16815
356         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
357         check.
358         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
359         function_arg_padding.
360
361 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
362
363         PR bootstrap/17857
364         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
365
366 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
367
368         * hooks.c (hook_int_void_1, hook_void_int): Remove.
369         * hooks.h: Remove the corresponding prototypes.
370
371 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
372
373         PR middle-end/17849
374         * tree-nested.c (walk_stmt_info): Add changed field.
375         (convert_nonlocal_reference): Set changed to when we
376         change a decl to unnested decl.
377         <case ADDR_EXPR>: Instead of checking if the immediate part
378         of the ADDR_EXPR changed, check the field changed.
379         Use recompute_tree_invarant_for_addr_expr instead of unsetting
380         TREE_INVARIANT.
381         (convert_local_reference):  Set changed to when we
382         change a decl to unnested decl.
383         <case ADDR_EXPR>: Instead of checking if the immediate part
384         of the ADDR_EXPR changed, check the field changed.
385         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
386
387 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
388
389         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
390         * dwarf2out.c (dwarf2out_init): Remove references to
391         DWARF2_GENERATE_TEXT_SECTION_LABEL.
392         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
393         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
394
395 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
396
397         * c-typeck.c (convert_arguments): Take expression for called
398         function rather than its name.  Handle ObjC selectors directly
399         rather than relying on warn_for_assignment to do so.  Call warning
400         directly rather than warn_for_assignment.  Use %qE in diagnostics.
401         Say "argument" rather than "arg" in diagnostics.
402         (build_function_call): Update call to convert_arguments.
403
404 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
405
406         PR debug/17787
407         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
408         ENUMs specially instead of just saying we do.
409
410 2004-10-06  Eric Christopher  <echristo@redhat.com>
411
412         * dwarf2.h: Sync with include/elf/dwarf2.h
413
414 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
415
416         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
417         and TREE_VEC nodes.
418
419 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
420
421         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
422         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
423
424 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
425
426         * lambda-code.c (compute_nest_using_fourier_motzkin): New
427         function.
428         (lambda_compute_auxillary_space): Split from here.
429
430 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
431
432         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
433         * tree-flow.h: Add prototype.
434         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
435         expr_invariant_in_loop.
436
437 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
438
439         * tree-cfg.c (thread_jumps): Remove a duplicate check for
440         EXIT_BLOCK_PTR.
441
442 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
443
444         * config/s390/s390-protos.h (s_imm_operand): Remove.
445         (s390_pool_operand): Add prototype.
446         * config/s390/s390.c (general_s_operand): Remove.
447         (s_imm_operand): Remove.
448         (s_operand): Merge contents of general_s_operand.
449         (s390_pool_operand): New function.
450         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
451         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
452         ("*cmpdi_ccu"): Merge Q->Q alternative.
453         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
454         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
455         ("*cli"): Remove.
456         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
457         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
458         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
459
460 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
461
462         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
463         call ia64_function_arg_boundary.
464         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
465         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
466         (ia64_function_arg_advance): Do not put 128 bit floats into
467         FP registers.
468
469 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
470
471         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
472         Accept an expression instead of an arglist.
473         (expand_builtin_stpcpy): Accept an expression instead of an
474         arglist.
475
476 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
477
478         PR target/16007
479         * doc/install.texi (*-*-solaris2*): Mention potential problem
480         with Sun assembler + GNU linker and C++ programs.
481         Document status of binutils 2.15 release.
482
483 2004-10-06  Jan Hubicka  <jh@suse.cz>
484
485         * cse.c (cse_main): Kill push/pop context.
486
487 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
488
489         * pretty-print.c: Include tree.h.
490         (pp_base_prepare_to_format): New function, logic from
491         text_specifies_location.
492         (pp_base_format_text): Use gcc_assert.
493         * pretty-print.h (pp_prepare_to_format): New macro.
494         (pp_base_prepare_to_format): Prototype.
495         * diagnostic.c (text_specifies_location): Delete.
496         (bug_report_request): Delete.
497         (diagnostic_set_info): Don't call text_specifies_location.
498         (diagnostic_action_after_output): Put text from
499         bug_report_request inline here.  Use gcc_unreachable.
500         (diagnostic_report_current_function): Fix comment.
501         (diagnostic_report_diagnostic): Clarify logic for error recursion.
502         Call pp_prepare_to_format before diagnostic_starter.
503         (trim_filename): Use IS_DIR_SEPARATOR.
504         (fatal_error, internal_error): Use gcc_unreachable.
505         (error_recursion): Call diagnostic_action_after_output to
506         issue the bug_report_request message and exit.
507         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
508
509         * c-parse.in: Add list of diagnostic messages to insulate
510         translation template from version of yacc/bison used to
511         compile the grammar.
512
513 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
514
515         PR 16406
516         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
517
518 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
519
520         * basic-block.h: Remove the prototype for
521         flow_preorder_transversal_compute.
522         * cfganal.c (dfst_node): Remove.
523         (flow_preorder_transversal_compute): Likewise.
524         * rtl.h: Remove the prototype for get_jump_table_offset.
525         * rtlanal.c (get_jump_table_offset): Remove.
526
527 2004-10-05  Richard Henderson  <rth@redhat.com>
528
529         PR 17756
530         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
531
532 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
533
534         PR bootstrap/17817
535         * Makefile.in: Stage the build directory too.
536
537 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
538
539         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
540
541         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
542         (frv_emit_move): Same.
543
544         * config/frv/frv.c (frv_emit_move): New.
545         (frv_legitimize_address): New.
546
547         * config/frv/frv.md ("movsi"): Call frv_emit_move.
548         ("movqi"): Same.
549         ("movhi"): Same.
550         ("movdi"): Same.
551         ("movsf"): Same.
552         ("movdf"): Same.
553
554 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
555
556         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
557         system headers.
558
559 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
560
561         * c-decl.c (pushdecl): When an extern declaration at block scope
562         refers to a visible entity with internal linkage, use the old DECL
563         rather than the new one.
564
565 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
566
567         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
568         comments.
569
570 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
571
572         * tree-cfg.c (thread_jumps): Remove a duplicate check for
573         an infinite loop.
574
575 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
576
577         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
578         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
579         blocks.
580
581 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
582
583         * tree-cfg.c (cleanup_tree_cfg): Don't call
584         delete_unreachable_blosk() after thread_jumps().
585         (thread_jumps): Always remove basic blocks as they become
586         unreachable.
587
588 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
589
590         * tree-cfg.c (cleanup_tree_cfg): Remove variable
591         something_changed.  Simplify the while loop.
592
593 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
594
595         * builtins.c (expand_builtin_memmove): Delete duplicate code
596         and accept a tree type for the result.
597         (expand_builtin_bcopy): Accept a tree type for the result.
598         (fold_builtin_memmove): Accept an arglist and tree type for
599         the result.
600
601 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
602
603         * config/s390/s390.c (s390_dump_pool): Remove return value.
604         Use gen_pool_align, gen_pool_section_start/end instead of
605         gen_pool_start/end_31/64.
606         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
607         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
608         ("pool_start_31", "pool_end_31"): Remove.
609         ("pool_start_64", "pool_end_64"): Likewise.
610         ("pool_align", "pool_section_start", "pool_section_end": New insns.
611
612         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
613         (TARGET_CANNOT_COPY_INSN_P): Define.
614         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
615         (struct constant_pool): New member 'execute'.
616         (s390_add_execute, s390_find_execute): New functions.
617         (s390_execute_label, s390_execute_target): Likewise.
618         (s390_dump_pool): Output in-pool execute target templates.
619         (s390_dump_execute): New function.
620         (s390_alloc_pool, s390_free_pool): Handle execute templates.
621         (s390_mainpool_start, s390_mainpool_finish): Likewise.
622         (s390_chunkify_start, s390_chunkify_finish): Likewise.
623         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
624         ("*execute"): New insn pattern.
625         ("movmem_short", "*movmem_short"): Use splitters to generate
626         explicit execute pattern, remove embedded execute.
627         ("clrmem_short", "*clrmem_short"): Likewise.
628         ("cmpmem_short", "*cmpmem_short"): Likewise.
629
630 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
631
632         * tree-ssa.c (verify_ssa): Verify phi arguments only
633         contain renamed names.
634
635 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
636
637         * config/rs6000/linux.h: Formatting, whitespace.
638         * config/rs6000/linux64.h: Likewise.
639         * config/rs6000/rs6000-protos.h: Likewise.
640         * config/rs6000/rs6000.c: Likewise.
641         (easy_vector_splat_const): Add fall thru comments.
642         (output_vec_const_move): Likewise.
643
644 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
645
646         * Makefile.in: Update -Wno-error exceptions for move to build dir.
647
648 2004-10-05  Chao-Ying Fu  <fu@mips.com>
649             Richard Sandiford  <rsandifo@redhat.com>
650
651         * doc/invoke.texi (-mpaired-single): Link to the new description of the
652         built-in functions.  Document dependencies.
653         (-mips3d): Add link here too.
654         * doc/extend.texi (MIPS Paired-Single Support): New section.
655
656 2004-10-04  Chao-ying Fu  <fu@mips.com>
657
658         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
659
660 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
661
662         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
663         Initialize OPT_STATS to 0.
664
665 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
666
667         * tree-data-ref.c: Fix comment typos.
668
669 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
670
671         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
672         the predicate cannot be computed, don't initialize the result to
673         false.
674
675 2004-10-01  Eric Christopher  <echristo@redhat.com>
676
677         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
678         locally defined enum.
679         * dwarf2out.c (add_calling_convention_attribute): Don't
680         emit DW_CC_normal.
681
682 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
683
684         PR c/17178, PR c/17820
685         * c-decl.c (pop_scope): Do not warn about unused static
686         variables as they warned in the middle-end.
687
688 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
689
690         * builtins.c (expand_builtin_memcpy): Delete duplicate code
691         and make the first parameter the expression not the arglist.
692
693 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
694
695         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
696         as valid modes to expand address expressions.
697
698 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
699
700         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
701         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
702         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
703         code formatting conventions.
704
705 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
706
707         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
708
709 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
710
711         PR tree-optimization/16632
712         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
713         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
714         where | is used instead of &.
715
716 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
717
718         * ginclude/stddef.h: Fix a comment typo.
719
720 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
721
722         PR target/17443
723         * config.gcc (i?86-*-solaris2*): Restore correct logic
724         for --enable-threads option.
725         (sparc64-*-solaris2*): Likewise.
726         (sparc-*-solaris2*): Likewise.
727
728 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
729
730         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
731         (OS_MISSING_POWERPC64): Move, and comment.
732         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
733         (OS_MISSING_POWERPC64): Move, and comment.
734
735 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
736
737         * arm.c (output_call_mem): Add missing \t.
738
739 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
740
741         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
742         expand_builtin_strncmp): Delete duplicate code.
743
744 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
745
746         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
747         take check-base and -limit arguments.
748         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
749         check ranges for ARRAY_REF and COMPONENT_REF.
750         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
751         instrumentation.
752
753 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
754
755         * c-objc-common.c (c_tree_printer): Correct description of %E.
756         Don't fall through after printing an expression.
757
758 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
759
760         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
761
762 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
763
764         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
765         delete_unrechable_blocks() only when necessary.
766
767 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
768
769         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
770         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
771         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
772         __gthread_recursive_mutex_unlock): New functions.
773
774 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
775
776         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
777         * config/s390/tpf-eh.c: Remove file.
778         * config/s390/tpf-unwind.h: New file.
779         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
780         (MD_UNWIND_SUPPORT): Define.
781
782 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
783
784         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
785
786 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
787
788         * config/s390/s390-protos.h (s390_comparison): Add prototype.
789         * config/s390/s390.c (s390_comparison): New function.
790         (s390_branch_condition_mask): Return -1 for invalid comparisons.
791         (s390_branch_condition_mnemonic): Assert valid comparison.
792         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
793         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
794         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
795         s390_comparison instead of comparison_operator.
796
797         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
798         ("cmpmemdi"): Remove.
799         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
800         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
801         ("cmpint_si"): Rename to ...
802         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
803         ("cmpint_di", "*cmpint_di"): Likewise.
804         * config/s390/s390.c (s390_canonicalize_comparison): Remove
805         redundant UNSPEC_CMPINT conversions.
806         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
807
808 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
809
810         * collect2.c (COLLECT_PARSE_FLAG): Remove.
811         (main): Remove a reference to COLLECT_PARSE_FLAG
812         * system.h: Poison COLLECT_PARSE_FLAG.
813         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
814
815 2004-10-01  Paul Brook  <paul@codesourcery.com>
816
817         * config/arm/crti.asm: Give _init and _fini function type.
818
819 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
820
821         * common.opt (ftree-loop-ivcanon): Enable by default.
822         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
823         Enable complete loop unrolling.
824         (canonicalize_induction_variables, tree_unroll_loops_completely):
825         Reset scev info.
826
827 2004-10-01  Paul Brook  <paul@codesourcery.com>
828
829         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
830         not register number.
831         (thumb_find_work_register): Search full register range.
832
833 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
834
835         PR tree-opt/17343
836         * tree-cfg.c (group_case_labels): Get the label and not
837         the case expr for the default case.
838         When the label we looking at is the default, decrement the
839         new_size.
840
841 2004-10-01  Jan Hubicka  <jh@suse.cz>
842
843         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
844         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
845         * toplev.h (tree_rest_of_compilation): Update prototype.
846         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
847
848 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
849
850         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
851         cleanup_control_flow() out of the while loop.
852
853 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
854
855         * tree-vectorizer.c (vectorizable_operation): Fail unless
856         the mode for the vector type is indeed a vector mode.
857
858 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
859
860         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
861         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
862         of convert.
863         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
864         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
865         follow_ssa_edge_in_rhs): Ditto.
866         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
867         (dump_iv): Dump base_object.
868         (dump_use, dump_cand): Use dump_iv.
869         (determine_base_object): New function.
870         (alloc_iv): Initialize base_object field.
871         (record_use): Clear the ssa_name field of iv.
872         (get_computation_cost_at): Do not use difference of addresses of
873         two different objects.
874         (may_eliminate_iv): Do not require the loop to have just single exit.
875         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
876         (nonzero_p): New function.
877         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
878         tree_simplify_using_condition, simplify_using_initial_conditions,
879         loop_niter_by_eval, find_loop_niter_by_eval,
880         estimate_numbers_of_iterations_loop, compare_trees,
881         upper_bound_in_type, lower_bound_in_type,
882         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
883         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
884         instead of integer_(non)zerop.
885
886 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
887
888         Revert
889         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
890
891         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
892         and TI_VA_LIST_FPR_COUNTER_FIELD.
893         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
894         * tree-pass.h (pass_stdarg): Add.
895         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
896         * tree-stdarg.c: New file.
897         * Makefile.in (OBJS-common): Add tree-stdarg.o.
898         (tree-stdarg.o): Add dependencies.
899         * function.h (struct function): Add va_list_gpr_size and
900         va_list_fpr_size fields.
901         * function.c (allocate_struct_function): Initialize them.
902
903         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
904         va_list_{g,f}pr_counter_field.
905         (ix86_setup_incoming_varargs): Don't do anything if reg_save
906         area will not be used.  Only save registers that tree-stdarg.c
907         detected they need saving.
908         (ix86_va_start): Don't set up fields that won't be used.
909
910         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
911         va_list_{g,f}pr_counter_field.
912         (setup_incoming_varargs): Don't do anything if reg_save
913         area will not be used.  Only save registers that tree-stdarg.c
914         detected they need saving.
915         (rs6000_va_start): Don't set up fields that won't be used.
916
917 2004-09-30  Eric Christopher  <echristo@redhat.com>
918
919         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
920         sh abi.
921         * dwarf2out.c (add_calling_convention_attribute): New function.
922         (gen_subroutine_type_die): Use.
923         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
924         * target.h (gcc_target): Add dwarf_calling_convention.
925         * hooks.c (hook_int_tree_0): New function.
926         * hooks.h: Prototype.
927         * config/sh/sh.c: Include dwarf2.h.
928         (sh_dwarf_calling_convention): New function.
929         (TARGET_DWARF_CALLING_CONVENTION): Use.
930         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
931
932 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
933
934         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
935         expand_builtin_strrchr, expand_builtin_strpbrk,
936         expand_builtin_strncat, expand_builtin_strspn,
937         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
938         code.
939
940 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
941
942         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
943         prototype.
944         (s390_logical_operator_ok_p): Likewise.
945         * config/s390/s390.c (s390_expand_logical_operator): New function.
946         (s390_logical_operator_ok_p): Likewise.
947         * config/s390/s390.md ("anddi3"): New expander.
948         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
949         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
950         ("andsi3"): Use s390_expand_logical_operator.
951         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
952         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
953         ("andhi3"): New expander.
954         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
955         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
956         ("andqi3"): New expander.
957         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
958         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
959         ("iordi3"): New expander.
960         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
961         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
962         ("iorsi3"): Use s390_expand_logical_operator.
963         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
964         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
965         ("iorhi3"): New expiorer.
966         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
967         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
968         ("iorqi3"): New expiorer.
969         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
970         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
971         ("xordi3"): New expander.
972         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
973         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
974         ("xorsi3"): New expander.
975         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
976         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
977         ("xorhi3"): New expander.
978         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
979         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
980         ("xorqi3"): New expander.
981         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
982         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
983
984 2004-09-30  Roger Sayle  <roger@eyesopen.com>
985
986         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
987         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
988         machine mode as the result.
989
990 2004-09-30  Ben Elliston  <bje@au.ibm.com>
991
992         PR bootstrap/17761
993         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
994         FOR_EACH_EDGE macros.
995
996 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
997
998         * c-tree.h (readonly_error): Remove.
999         * c-typeck (enum lvalue_use): New.
1000         (lvalue_or_else, readonly_error): Use it.  All callers changed.
1001         (readonly_error): Make static.
1002
1003 2004-09-30  Jan Hubicka  <jh@suse.cz>
1004
1005         PR debug/13974
1006         * cfgrtl.c (try_redirect_by_replacing_jump,
1007         force_nonfallthru_and_redirect, commit_one_edge_insertion,
1008         cfg_layout_merge_blocks):  Do not attach any line number information
1009         to newly inserted instructions.
1010         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
1011         emit_insn_*_noloc.
1012         (emit_*insn_before, emit_insn*_after): New.
1013         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
1014         existing locators.
1015         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
1016         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
1017
1018 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
1019
1020         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
1021         (s390_return_address_offset): Remove.
1022         (s390_can_eliminate): Add prototype.
1023         (s390_initial_elimination_offset): Add prototype.
1024         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
1025         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
1026         * config/s390/s390.c (s390_arg_frame_offset): Remove.
1027         (s390_return_address_offset): Remove.
1028         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
1029         (struct machine_function): New member split_branches_pending_p.
1030         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
1031         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
1032         (s390_optimize_prologue): Remove base_used argument.  Call
1033         s390_update_frame_layout instead of s390_register_info.  Handle
1034         prologue/epilogue insns that touch only RETURN_REGNUM.
1035         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
1036         (s390_register_info): Remove base_used and return_addr_used
1037         arguments, compute special register usage inline.  Return live
1038         register data to caller.
1039         (s390_frame_info): Remove arguments, do not call s390_register_info.
1040         (s390_init_frame_layout): New function.
1041         (s390_update_frame_layout): Likewise.
1042         (s390_emit_prologue): Call s390_update_frame_layout; some code
1043         move to there.  Do not emit pool placeholder insn if unnecessary.
1044
1045 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
1046
1047         * config/s390/s390.c (legitimate_reload_constant_p): Remove
1048         floating point constant workaround.
1049         (s390_secondary_input_reload_class): Handle PLUS reloads
1050         with too-large constant.
1051         (s390_expand_plus_operand): Likewise.
1052         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
1053         ("movsi"): Likewise.  Also, remove workaround for non-general
1054         operands.
1055         ("movdf"): Do not call force_const_mem.
1056         ("movsf"): Likewise.  Merge expander with *movsf insn.
1057         ("*movsf"): Remove, merge with movsf expander.
1058
1059 2004-09-30  Paul Brook  <paul@codesourcery.com>
1060
1061         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
1062         (ENDFILE_SPEC): Define.
1063         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
1064
1065 2004-09-30  Richard Henderson  <rth@redhat.com>
1066
1067         * config/alpha/qrnnd.asm: Mark for noexecstack.
1068
1069 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
1070
1071         * protoize.c, tree-cfg.c: Fix comment typos.
1072
1073 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
1074
1075         PR c/17730
1076         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
1077
1078 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
1079
1080         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
1081         expressions...
1082         (add_pointed_to_expr): ... here.
1083         Call add_pointed_to_expr for variables with DECL_INITIAL set.
1084         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
1085         pointer variable, if set.
1086
1087 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
1088
1089         * config/sh/sh.c: Follow spelling conventions.
1090
1091 2004-09-29  Richard Henderson  <rth@redhat.com>
1092
1093         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
1094         * doc/tm.texi (DWARF_ZERO_REG): New.
1095
1096         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
1097         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
1098         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
1099
1100 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
1101
1102         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
1103         with a PLUS as source operand.
1104         (expand_movstr): Likewise.
1105         (expand_builtin_stpcpy): Likewise.
1106
1107 2004-09-29  Richard Henderson  <rth@redhat.com>
1108
1109         PR 17739
1110         * tree-gimple.c (is_gimple_reg): Reject hard registers.
1111         (is_gimple_asm_val): New.
1112         * tree-gimple.h (is_gimple_asm_val): Declare.
1113         * gimplify.c (gimplify_asm_expr): Use it.
1114         * tree-pretty-print.c (print_declaration): Dump hard regs.
1115         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
1116         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
1117         * tree-ssa-pre.c (is_undefined_value): Likewise.
1118         * tree-ssa-copy.c (may_propagate_copy): Likewise.
1119         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
1120         * tree-ssa.c (warn_uninit): Likewise.
1121         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
1122
1123 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
1124
1125         * c-decl.c (merge_decls): Use comptype when comparing
1126         types to decide on DECL_SIZE save of olddecl.
1127
1128 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
1129
1130         * tree.h (INDIRECT_REF_P): New macro.
1131         * alias.c (get_alias_set): Use it
1132         (nonoverlapping_memrefs_p): Ditto.
1133         * emit-rtl.c (mem_expr_equal_p): Ditto.
1134         (set_mem_attributes_minus_bitpos): Ditto.
1135         (is_gimple_addressable): Ditto.
1136         (get_base_address): Ditto.
1137         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
1138         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
1139         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
1140         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
1141         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
1142         (add_address_candidates): Ditto.
1143         (rewrite_address_base): Ditto.
1144
1145 2004-09-30  Ben Elliston  <bje@au.ibm.com>
1146
1147         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
1148         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
1149         (rewrite_ssa_into_ssa): Likewise.
1150         * tree-phinodes.c (create_phi_node): Access the number of
1151         predecessor edges using EDGE_COUNT() and not num_preds.
1152
1153 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1154
1155         PR c/7425
1156         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
1157
1158 2004-09-29  Eric Christopher  <echristo@redhat.com>
1159
1160         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
1161
1162 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
1163
1164         * config/cris/cris.md (moverside, movemside): With MEM, make sure
1165         the address is (plus reg mem).
1166
1167 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
1168
1169         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
1170
1171 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
1172
1173         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
1174         cascaded if ... else if with a switch.
1175
1176 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1177
1178         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
1179
1180 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
1181
1182         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
1183         and TI_VA_LIST_FPR_COUNTER_FIELD.
1184         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
1185         * tree-pass.h (pass_stdarg): Add.
1186         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
1187         * tree-stdarg.c: New file.
1188         * Makefile.in (OBJS-common): Add tree-stdarg.o.
1189         (tree-stdarg.o): Add dependencies.
1190         * function.h (struct function): Add va_list_gpr_size and
1191         va_list_fpr_size fields.
1192         * function.c (allocate_struct_function): Initialize them.
1193
1194         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
1195         va_list_{g,f}pr_counter_field.
1196         (ix86_setup_incoming_varargs): Don't do anything if reg_save
1197         area will not be used.  Only save registers that tree-stdarg.c
1198         detected they need saving.
1199         (ix86_va_start): Don't set up fields that won't be used.
1200
1201         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
1202         va_list_{g,f}pr_counter_field.
1203         (setup_incoming_varargs): Don't do anything if reg_save
1204         area will not be used.  Only save registers that tree-stdarg.c
1205         detected they need saving.
1206         (rs6000_va_start): Don't set up fields that won't be used.
1207
1208 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
1209
1210         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
1211         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
1212         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
1213         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
1214         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
1215         ATTR_NONNULL_1_4): New.
1216
1217 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
1218
1219         PR tree-optimization/17697
1220         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
1221         cfg if needed.
1222
1223 2004-09-28  Per Bothner  <per@bothner.com>
1224
1225         * profile.c (branch_prob): Pass correct value to output_location,
1226         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
1227
1228 2004-09-28  Richard Henderson  <rth@redhat.com>
1229
1230         PR 15089
1231         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
1232         * tree-flow.h (may_propagate_copy_into_asm): Declare.
1233         * tree-ssa-ccp.c (replace_uses_in): Use it.
1234         * tree-ssa-dom.c (cprop_operand): Likewise.
1235
1236 2004-09-28 Jeff Law  <law@redhat.com>
1237
1238         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
1239         that no outgoing edges be left in the duplicate block.  Do no
1240         update information on outgoing edges or PHI nodes in target
1241         blocks here.
1242         (remove_ctrl_stmt_and_useless_edges): Renamed from
1243         remove_last_stmt_and_useless_edges.  Handle case where the
1244         block is empty or has no control statements.  Do not update edge
1245         flags here.
1246         (thread_block): Create a template block rather than copying the
1247         original block every time.  Create outgoing edges from the
1248         duplicate blocks and update PHIs at the target of the outgoing
1249         edges here.  Fix edge flags for the original block if necessary.
1250         * cfghooks (duplicate_block): No longer assert that the original
1251         block has incoming edges.
1252
1253 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
1254
1255         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
1256         Reg Vars to enforce register allocation with general constraints.
1257         (Explicit Reg Vars): Clarify relation to asm statements.
1258         (Local Reg Vars): Similar.
1259
1260 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
1261
1262         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
1263         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
1264         build_control_flow, new_edge): Remove.
1265         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
1266         (bitlst, bitlst_table_last, bitlst_table): Remove.
1267         (bblst): Store basic_block pointer instead of block index.
1268         (bblst_table): Likewise.
1269         (edgelst): Store edge pointer instead of edge index.
1270         (edgelst_table, edgelst_last): New variables.
1271         (extract_bitlst): Rename to ...
1272         (extract_edgelst): ... this.  Return edge pointers, not indices.
1273         (split_edges): Update call.
1274         (rgn_edges): Store edge pointers instead of indices.
1275         (edge_to_bit): Remove.
1276         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
1277         (SET_EDGE_TO_BIT): New macro.
1278         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
1279         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
1280         data structures instead of haifa_edge et al.  Use edge pointers
1281         instead of edge indices everywhere.
1282         (compute_dom_prob_ps): Use standard CFG data structures.  Account
1283         for exit edges.
1284         (compute_trg_info): Likewise.
1285         (propagate_deps): Likewise.
1286         (debug_candidate): Account for bblst data structure change.
1287         (check_live_1, update_live_1, is_pfree): Likewise.
1288         (IS_REACHABLE): Use standard CFG data structures.
1289         (init_ready_list): Update bblst_table/edgelst_table allocation.
1290         (schedule_region): Update alloc/cleanup code to data structure
1291         changes.  Use edge->aux to store per-region edge index.
1292         (init_regions): No longer call build_control_flow.  Do not
1293         create edge list any more.
1294
1295 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
1296
1297         * cse.c (cse_insn): Avoid creating direct non-local jumps.
1298         * combine.c (can_combine_p): Likewise.
1299         * local-alloc. (update_equiv_regs): Likewise.
1300
1301 2004-09-28  Richard Henderson  <rth@redhat.com>
1302
1303         PR 17531
1304         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
1305         Don't check VOIDmode here.  Force PLUS operands to common type.
1306         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
1307         Pmode if given a non pointer type.
1308
1309 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1310
1311         PR 17531
1312         * optabs.c (expand_binop): Force constants to the correct mode.
1313
1314 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
1315
1316         * config/s390/s390.c (s390_adjust_cost): Remove.
1317         (TARGET_SCHED_ADJUST_COST): Do not redefine.
1318         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
1319         * config/s390/s390.md ("main_pool"): Use "larl" type
1320         attribute if TARGET_CPU_ZARCH.
1321
1322 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
1323
1324         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
1325         variable.
1326
1327 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1328
1329         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
1330         name to the pass.
1331
1332 2004-09-28  Steven Bosscher  <stevenb@suse.de>
1333
1334         * common.opt (flag_gcse_sm): Disable by default.
1335         (flag_gcse_las): Likewise.
1336         (flag_web): Likewise.  Create from this file.
1337         * flags.h: Remove flag_web declaration.
1338         * toplev.c (flag_web): Likewise.
1339         (process_options): Never set flag_web.
1340
1341 2004-09-28  Steven Bosscher  <stevenb@suse.de>
1342
1343         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
1344         * tree-ssa-propagate.c: Include vec.h.
1345         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
1346         instead of varrays.
1347         (cfg_blocks_add): Assert the block is not already in the worklist.
1348         Update uses of interesting_ssa_edges and varying_ssa_edges.
1349         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
1350         ssa_propagate): Likewise.
1351
1352 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1353
1354         PR c/16409
1355         * c-decl.c (start_decl): Check for initializing incomplete array
1356         of VLAs.
1357         (build_compound_literal): Check for TYPE being error_mark_node.
1358         * c-parse.in (primary): Check for VLA compound literals.
1359
1360 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1361
1362         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
1363         with --disable-checking.
1364
1365 2004-09-28  Devang Patel  <dpatel@apple.com>
1366
1367         * tree-pretty-print.c (dump_generic_node): Print vector types.
1368
1369 2004-09-28  Nick Clifton  <nickc@redhat.com>
1370
1371         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
1372         invocation of the function sh_init_cumulative_args.
1373         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
1374         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
1375         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
1376         * config/sh/sh.c (sh_init_cumulative_args): New function based
1377         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
1378         heuristic added to determine the setting of force_mem when a
1379         library function is being called.
1380
1381 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1382
1383         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
1384         Skip constant arguments.
1385
1386 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1387
1388         * tree-ssa-alias.c (create_name_tags): If PTR points to a
1389         volatile type, mark the tag volatile.
1390         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
1391         volatile.
1392
1393 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
1394
1395         * tree.def (vec_cond_expr): Fix. Change 'e'
1396         to tcc_expression.
1397
1398 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
1399
1400         * basic-block.h: Fix a comment typo.
1401
1402 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
1403
1404         * optabs.c, optabs.h: Fix comment typos.
1405
1406 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
1407
1408         * config/sparc/sparc.md (call_address_struct_value_sp32):
1409         Properly mask the immediate field of the 'unimp' instruction.
1410         (call_symbolic_struct_value_sp32): Likewise.
1411
1412 2004-09-28  Ben Elliston  <bje@au.ibm.com>
1413             Steven Bosscher  <stevenb@suse.de>
1414             Andrew Pinski  <pinskia@physics.uc.edu>
1415
1416         Merge from edge-vector-branch:
1417         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
1418         (struct edge_def): Remove pred_next, succ_next members.
1419         (struct basic_block_def): Remove pred, succ members.  Add preds
1420         and succs members of type VEC(edge).
1421         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
1422         (BRANCH_EDGE): Likewise.
1423         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
1424         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
1425         (edge_iterator): New.
1426         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
1427         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
1428         (FOR_EACH_EDGE): New.
1429         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
1430         where applicable.
1431         (rotate_loop): Likewise.
1432         (find_traces_1_route): Likewise.
1433         (bb_to_key): Likewise.
1434         (connect_traces): Likewise.
1435         (copy_bb_p): Likewise.
1436         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
1437         (add_labels_and_missing_jumps): Likewise.
1438         (fix_up_fall_thru_edges): Likewise.
1439         (find_jump_block): Likewise.
1440         (fix_crossing_conditional_branches): Likewise.
1441         (fix_crossing_unconditional_branches): Likewise.
1442         (add_reg_crossing_jump_notes): Likewise.
1443         * bt-load.c (augment_live_range): Likewise.
1444         * cfg.c (clear_edges): Likewise.
1445         (unchecked_make_edge): Likewise.
1446         (cached_make_edge): Likewise.
1447         (make_single_succ_edge): Likewise.
1448         (remove_edge): Likewise.
1449         (redirect_edge_succ_nodup): Likewise.
1450         (check_bb_profile): Likewise.
1451         (dump_flow_info): Likewise.
1452         (alloc_aux_for_edges): Likewise.
1453         (clear_aux_for_edges): Likewise.
1454         (dump_cfg_bb_info): Likewise.
1455         * cfganal.c (forwarder_block_p): Likewise.
1456         (can_fallthru): Likewise.
1457         (could_fall_through): Likewise.
1458         (mark_dfs_back_edges): Likewise.
1459         (set_edge_can_fallthru_flag): Likewise.
1460         (find_unreachable_blocks): Likewise.
1461         (create_edge_list): Likewise.
1462         (verify_edge_list): Likewise.
1463         (add_noreturn_fake_exit_edges): Likewise.
1464         (connect_infinite_loops_to_exit): Likewise.
1465         (flow_reverse_top_sort_order_compute): Likewise.
1466         (flow_depth_first_order_compute): Likewise.
1467         (flow_preorder_transversal_compute): Likewise.
1468         (flow_dfs_compute_reverse_execute): Likewise.
1469         (dfs_enumerate_from): Likewise.
1470         (compute_dominance_frontiers_1): Likewise.
1471         * cfgbuild.c (make_edges): Likewise.
1472         (compute_outgoing_frequencies): Likewise.
1473         (find_many_sub_basic_blocks): Likewise.
1474         (find_sub_basic_blocks): Likewise.
1475         * cfgcleanup.c (try_simplify_condjump): Likewise.
1476         (thread_jump): Likewise.
1477         (try_forward_edges): Likewise.
1478         (merge_blocks_move): Likewise.
1479         (outgoing_edges_match): Likewise.
1480         (try_crossjump_to_edge): Likewise.
1481         (try_crossjump_bb): Likewise.
1482         (try_optimize_cfg): Likewise.
1483         (merge_seq_blocks): Likewise.
1484         * cfgexpand.c (expand_gimple_tailcall): Likewise.
1485         (expand_gimple_basic_block): Likewise.
1486         (construct_init_block): Likewise.
1487         (construct_exit_block): Likewise.
1488         * cfghooks.c (verify_flow_info): Likewise.
1489         (dump_bb): Likewise.
1490         (delete_basic_block): Likewise.
1491         (split_edge): Likewise.
1492         (merge_blocks): Likewise.
1493         (make_forwarder_block): Likewise.
1494         (tidy_fallthru_edges): Likewise.
1495         (can_duplicate_block_p): Likewise.
1496         (duplicate_block): Likewise.
1497         * cfglayout.c (fixup_reorder_chain): Likewise.
1498         (fixup_fallthru_exit_predecessor): Likewise.
1499         (can_copy_bbs_p): Likewise.
1500         (copy_bbs): Likewise.
1501         * cfgloop.c (flow_loops_cfg_dump): Likewise.
1502         (flow_loop_entry_edges_find): Likewise.
1503         (flow_loop_exit_edges_find): Likewise.
1504         (flow_loop_nodes_find): Likewise.
1505         (mark_single_exit_loops): Likewise.
1506         (flow_loop_pre_header_scan): Likewise.
1507         (flow_loop_pre_header_find): Likewise.
1508         (update_latch_info): Likewise.
1509         (canonicalize_loop_headers): Likewise.
1510         (flow_loops_find): Likewise.
1511         (get_loop_body_in_bfs_order): Likewise.
1512         (get_loop_exit_edges): Likewise.
1513         (num_loop_branches): Likewise.
1514         (verify_loop_structure): Likewise.
1515         (loop_latch_edge): Likewise.
1516         (loop_preheader_edge): Likewise.
1517         * cfgloopanal.c (mark_irreducible_loops): Likewise.
1518         (expected_loop_iterations): Likewise.
1519         * cfgloopmanip.c (remove_bbs): Likewise.
1520         (fix_bb_placement): Likewise.
1521         (fix_irreducible_loops): Likewise.
1522         (remove_path): Likewise.
1523         (scale_bbs_frequencies): Likewise.
1524         (loopify): Likewise.
1525         (unloop): Likewise.
1526         (fix_loop_placement): Likewise.
1527         (loop_delete_branch_edge): Likewise.
1528         (duplicate_loop_to_header_edge): Likewise.
1529         (mfb_keep_just): Likewise.
1530         (create_preheader): Likewise.
1531         (force_single_succ_latches): Likewise.
1532         (loop_split_edge_with): Likewise.
1533         (create_loop_notes): Likewise.
1534         * cfgrtl.c (rtl_split_block): Likewise.
1535         (rtl_merge_blocks): Likewise.
1536         (rtl_can_merge_blocks): Likewise.
1537         (try_redirect_by_replacing_jump): Likewise.
1538         (force_nonfallthru_and_redirect): Likewise.
1539         (rtl_tidy_fallthru_edge): Likewise.
1540         (commit_one_edge_insertion): Likewise.
1541         (commit_edge_insertions): Likewise.
1542         (commit_edge_insertions_watch_calls): Likewise.
1543         (rtl_verify_flow_info_1): Likewise.
1544         (rtl_verify_flow_info): Likewise.
1545         (purge_dead_edges): Likewise.
1546         (cfg_layout_redirect_edge_and_branch): Likewise.
1547         (cfg_layout_can_merge_blocks_p): Likewise.
1548         (rtl_flow_call_edges_add): Likewise.
1549         * cse.c (cse_cc_succs): Likewise.
1550         * df.c (hybrid_search): Likewise.
1551         * dominance.c (calc_dfs_tree_nonrec): Likewise.
1552         (calc_dfs_tree): Likewise.
1553         (calc_idoms): Likewise.
1554         (recount_dominator): Likewise.
1555         * domwalk.c (walk_dominator_tree): Likewise.
1556         * except.c (emit_to_new_bb_before): Likewise.
1557         (connect_post_landing_pads): Likewise.
1558         (sjlj_emit_function_enter): Likewise.
1559         (sjlj_emit_function_exit): Likewise.
1560         (finish_eh_generation): Likewise.
1561         * final.c (compute_alignments): Likewise.
1562         * flow.c (calculate_global_regs_live): Likewise.
1563         (initialize_uninitialized_subregs): Likewise.
1564         (init_propagate_block_info): Likewise.
1565         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1566         * gcse.c (find_implicit_sets): Likewise.
1567         (bypass_block): Likewise.
1568         (bypass_conditional_jumps): Likewise.
1569         (compute_pre_data): Likewise.
1570         (insert_insn_end_bb): Likewise.
1571         (insert_store): Likewise.
1572         (remove_reachable_equiv_notes): Likewise.
1573         * global.c (global_conflicts): Likewise.
1574         (calculate_reg_pav): Likewise.
1575         * graph.c (print_rtl_graph_with_bb): Likewise.
1576         * ifcvt.c (mark_loop_exit_edges): Likewise.
1577         (merge_if_block): Likewise.
1578         (find_if_header): Likewise.
1579         (block_jumps_and_fallthru_p): Likewise.
1580         (find_if_block): Likewise.
1581         (find_cond_trap): Likewise.
1582         (block_has_only_trap): Likewise.
1583         (find_if_case1): Likewise.
1584         (find_if_case_2): Likewise.
1585         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
1586         (perfect_nestify): Likewise.
1587         * lcm.c (compute_antinout_edge): Likewise.
1588         (compute_laterin): Likewise.
1589         (compute_available): Likewise.
1590         (compute_nearerout): Likewise.
1591         * loop-doloop.c (doloop_modify): Likewise.
1592         * loop-init.c (loop_optimizer_init): Likewise.
1593         * loop-invariant.c (find_exits): Likewise.
1594         * loop-iv.c (simplify_using_initial_values): Likewise.
1595         (check_simple_exit): Likewise.
1596         (find_simple_exit): Likewise.
1597         * loop-unroll.c (peel_loop_completely): Likewise.
1598         (unroll_loop_constant_iterations): Likewise.
1599         (unroll_loop_runtime_iterations): Likewise.
1600         * loop-unswitch.c (may_unswitch_on): Likewise.
1601         (unswitch_loop): Likewise.
1602         * modulo-sched.c (generate_prolog_epilog): Likewise.
1603         (sms_schedule): Likewise.
1604         * postreload-gcse.c (eliminate_partially_redundant_load):
1605         Likewise.
1606         * predict.c (can_predict_insn_p): Likewise.
1607         (set_even_probabilities): Likewise.
1608         (combine_predictions_for_bb): Likewise.
1609         (predict_loops): Likewise.
1610         (estimate_probability): Likewise.
1611         (tree_predict_by_opcode): Likewise.
1612         (tree_estimate_probability): Likewise.
1613         (last_basic_block_p): Likewise.
1614         (propagate_freq): Likewise.
1615         (estimate_loops_at_level): Likewise.
1616         (estimate_bb_frequencies): Likewise.
1617         * profile.c (instrument_edges): Likewise.
1618         (get_exec_counts): Likewise.
1619         (compute_branch_probabilities): Likewise.
1620         (branch_prob): Likewise.
1621         * ra-build.c (live_in): Likewise.
1622         * ra-rewrite.c (rewrite_program2): Likewise.
1623         * ra.c (reg_alloc): Likewise.
1624         * reg-stack.c (reg_to_stack): Likewise.
1625         (convert_regs_entry): Likewise.
1626         (compensate_edge): Likewise.
1627         (convert_regs_1): Likewise,
1628         (convert_regs_2): Likewise.
1629         (convert_regs): Likewise.
1630         * regrename.c (copyprop_hardreg_forward): Likewise.
1631         * reload1.c (fixup_abnormal_edges): Likewise.
1632         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
1633         (sbitmap_insersection_of_preds): Likewise.
1634         (sbitmap_union_of_succs): Likewise.
1635         (sbitmap_union_of_preds): Likewise.
1636         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
1637         (fix_basic_block_boundaries): Likewise.
1638         (sched_ebbs): Likewise.
1639         * sched-rgn.c (build_control_flow): Likewise.
1640         (find_rgns): Likewise.
1641         * tracer.c (find_best_successor): Likewise.
1642         (find_best_predecessor): Likewise.
1643         (tail_duplicate): Likewise.
1644         * tree-cfg.c (make_edges): Likewise.
1645         (make_ctrl_stmt_edges): Likewise.
1646         (make_goto_expr_edges): Likewise.
1647         (tree_can_merge_blocks_p): Likewise.
1648         (tree_merge_blocks): Likewise.
1649         (cfg_remove_useless_stmts_bb): Likewise.
1650         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
1651         (tree_block_forwards_to): Likewise.
1652         (cleanup_control_expr_graph): Likewise.
1653         (find_taken_edge): Likewise.
1654         (dump_cfg_stats): Likewise.
1655         (tree_cfg2vcg): Likewise.
1656         (disband_implicit_edges): Likewise.
1657         (tree_find_edge_insert_loc): Likewise.
1658         (bsi_commit_edge_inserts): Likewise.
1659         (tree_split_edge): Likewise.
1660         (tree_verify_flow_info): Likewise.
1661         (tree_make_forwarder_block): Likewise.
1662         (tree_forwarder_block_p): Likewise.
1663         (thread_jumps): Likewise.
1664         (tree_try_redirect_by_replacing_jump): Likewise.
1665         (tree_split_block): Likewise.
1666         (add_phi_args_after_copy_bb): Likewise.
1667         (rewrite_to_new_ssa_names_bb): Likewise.
1668         (dump_function_to_file): Likewise.
1669         (print_pred_bbs): Likewise.
1670         (print_loop): Likewise.
1671         (tree_flow_call_edges_add): Likewise.
1672         (split_critical_edges): Likewise.
1673         (execute_warn_function_return): Likewise.
1674         (extract_true_false_edges_from_block): Likewise.
1675         * tree-if-conv.c (tree_if_conversion): Likewise.
1676         (if_convertable_bb_p): Likewise.
1677         (find_phi_replacement_condition): Likewise.
1678         (combine_blocks): Likewise.
1679         * tree-into-ssa.c (compute_global_livein): Likewise.
1680         (ssa_mark_phi_uses): Likewise.
1681         (ssa_rewrite_initialize_block): Likewise.
1682         (rewrite_add_phi_arguments): Likewise.
1683         (ssa_rewrite_phi_arguments): Likewise.
1684         (insert_phi_nodes_for): Likewise.
1685         (rewrite_into_ssa): Likewise.
1686         (rewrite_ssa_into_ssa): Likewise.
1687         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
1688         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
1689         (rewrite_trees): Likewise.
1690         * tree-pretty-print.c (dump_bb_header): Likewise.
1691         (dump_implicit_edges): Likewise.
1692         * tree-sra.c (insert_edge_copies): Likewise.
1693         (find_obviously_necessary_stmts): Likewise.
1694         (remove_data_stmt): Likewise.
1695         * tree-ssa-dom.c (thread_across_edge): Likewise.
1696         (dom_opt_finalize_block): Likewise.
1697         (single_incoming_edge_ignoring_loop_edges): Likewise.
1698         (record_equivalences_from_incoming_edges): Likewise.
1699         (cprop_into_successor_phis): Likewise.
1700         * tree-ssa-live.c (live_worklist): Likewise.
1701         (calculate_live_on_entry): Likewise.
1702         (calculate_live_on_exit): Likewise.
1703         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
1704         (copy_loop_headers): Likewise.
1705         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
1706         (fill_always_executed_in): Likewise.
1707         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
1708         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
1709         (compute_phi_arg_on_exit): Likewise.
1710         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
1711         (get_loops_exit): Likewise.
1712         (split_loop_exit_edge): Likewise.
1713         (ip_normal_pos): Likewise.
1714         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
1715         Likewise.
1716         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
1717         (replace_phi_with_stmt): Likewise.
1718         (value_replacement): Likewise.
1719         * tree-ssa-pre.c (compute_antic_aux): Likewise.
1720         (insert_aux): Likewise.
1721         (init_pre): Likewise.
1722         * tree-ssa-propagate.c (simulate_stmt): Likewise.
1723         (simulate_block): Likewise.
1724         (ssa_prop_init): Likewise.
1725         * tree-ssa-threadupdate.c (thread_block): Likewise.
1726         (create_block_for_threading): Likewise.
1727         (remove_last_stmt_and_useless_edges): Likewise.
1728         * tree-ssa.c (verify_phi_args): Likewise.
1729         (verify_ssa): Likewise.
1730         * tree_tailcall.c (independent_of_stmt_p): Likewise.
1731         (find_tail_calls): Likewise.
1732         (eliminate_tail_call): Likewise.
1733         (tree_optimize_tail_calls_1): Likewise.
1734         * tree-vectorizer.c (vect_transform_loop): Likewise.
1735         * var-tracking.c (prologue_stack_adjust): Likewise.
1736         (vt_stack_adjustments): Likewise.
1737         (vt_find_locations): Likewise.
1738         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
1739         * config/i386/i386.c (ix86_pad_returns): Likewise.
1740         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1741         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1742
1743 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
1744
1745         PR target/16532
1746         * config/sparc/sparc.c (struct machine_function): New field
1747         'leaf_function_p' and 'prologue_data_valid_p'.
1748         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
1749         to conveniently access the above fields.
1750         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
1751         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
1752         of the generic flavor 'current_function_uses_only_leaf_regs'.
1753         (eligible_for_sibcall_delay): Likewise.
1754         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
1755         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
1756         (sparc_asm_function_prologue): Add sanity check for the assumption
1757         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
1758         (sparc_can_use_return_insn_p): New function.
1759         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
1760         (output_restore): Likewise.
1761         (output_sibcall): Likewise.
1762         (sparc_output_mi_thunk): Likewise.
1763         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
1764         * config/sparc/sparc.md (return): New expander.
1765
1766         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
1767
1768 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
1769
1770         PR c++/17642
1771         * stor-layout.c (layout_decl): Use fold_convert, not convert.
1772         (bit_from_pos): Likewise.
1773         (byte_from_pos): Likewise.
1774         (pos_from_bit): Likewise.
1775         (normalize_offset): Likewise.
1776         (place_field): Likewise.
1777         (finalize_type_size): Likewise.
1778         (layout_type): Likewise.
1779         * tree.c (build_index_type): Likewise.
1780
1781 2004-09-27  Devang Patel  <dpatel@apple.com>
1782
1783         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
1784         * genopinit.c (optabs): New entry for vcond_gen_code and
1785         vcondu_gen_code.
1786         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
1787         (get_rtx_code): New function.
1788         (vector_compare_rtx): New function.
1789         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
1790         (expand_vec_cond_expr_p): New function.
1791         (expand_vec_cond_expr): New function.
1792         (get_vcond_icode): New function.
1793         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
1794         (vcond_gen_code, vcondu_gen_code): Same.
1795
1796 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
1797
1798         * Makefile.in (STAGESTUFF): Split into ...
1799         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
1800         (mostlyclean): Update.
1801         (stage1-start, stage2-start, stage3-start, stage4-start,
1802         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
1803         Move the STAGEMOVESTUFF.
1804
1805 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
1806
1807         * system.h (getpagesize): Return 'int' instead of 'long'.
1808
1809 2004-09-27  Michael Matz <matz@suse.de>
1810
1811         PR bootstrap/17698
1812         PR bootstrap/17702
1813         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
1814         bmp_iter_and_init): Shift by bit_in_word.
1815
1816 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
1817
1818         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
1819         * configure.ac: Don't sinclude it here.
1820         * configure: Regenerate.
1821
1822 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
1823
1824         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
1825         Handle AND pattern
1826
1827 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
1828
1829         PR c/13804
1830         * c-typeck.c (build_component_ref): Name type involved in
1831         diagnostic for structure or union without a member of the given
1832         name.
1833
1834 2004-09-27  DJ Delorie  <dj@redhat.com>
1835
1836         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
1837         .comm alignment is bytes, not bits.
1838
1839 2004-09-27  Devang Patel  <dpatel@apple.com>
1840
1841         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
1842         (print_call_name): Do not print VEC_COND_EXPR.
1843
1844 2004-09-27  Devang Patel  <dpatel@apple.com>
1845
1846         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
1847
1848 2004-09-27  Jan Hubicka  <jh@suse.cz>
1849
1850         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
1851
1852 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
1853
1854         * bitmap.h: Fix a comment typo.
1855
1856 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
1857
1858         * libgcc2.c (getpagesize): Change type of return value to int.
1859
1860 2004-09-26  Matt Austern  <austern@apple.com>
1861
1862         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
1863         using mmap.
1864
1865 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1866
1867         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
1868         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
1869         (bitmap_iterator): New type.
1870         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
1871         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
1872         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
1873         bmp_iter_and_init, bmp_iter_and_next): New functions.
1874         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
1875         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
1876         use iterator-style EXECUTE_IF_IN_BITMAP macros.
1877         * bitmap.c (bitmap_print): Ditto.
1878         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
1879         btr_def_live_range): Ditto.
1880         * cfganal.c (compute_dominance_frontiers_1) Ditto.
1881         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
1882         Ditto.
1883         * ddg.c (build_inter_loop_deps): Ditto.
1884         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
1885         Ditto.
1886         * except.c (remove_eh_handler): Ditto.
1887         * flow.c (reg_set_to_hard_reg_set): Ditto.
1888         * gcse.c (clear_modify_mem_tables): Ditto.
1889         * global.c (build_insn_chain): Ditto.
1890         * ifcvt.c (dead_or_predicable): Ditto.
1891         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
1892         Ditto.
1893         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
1894         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
1895         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
1896         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
1897         tree_purge_all_dead_eh_edges): Ditto.
1898         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
1899         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
1900         rewrite_ssa_into_ssa): Ditto.
1901         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
1902         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
1903         Ditto.
1904         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
1905         compute_flow_sensitive_aliasing, maybe_create_global_var,
1906         dump_points_to_info_for): Ditto.
1907         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
1908         * tree-ssa-dse.c (dse_finalize_block): Ditto.
1909         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
1910         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
1911         Ditto.
1912         * tree-ssa-loop-ivopts.c (find_induction_variables,
1913         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
1914         determine_use_iv_costs, determine_set_costs, find_best_candidate,
1915         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
1916         Ditto.
1917         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
1918         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
1919         add_call_read_ops): Ditto.
1920         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
1921
1922 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1923
1924         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
1925         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
1926
1927 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
1928
1929         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
1930         reflect size of memory regions being compared.
1931
1932 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
1933
1934         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
1935         expressions.  Always clear MEM_SIZE and alias set.
1936
1937 2004-09-26  Roger Sayle  <roger@eyesopen.com>
1938             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1939
1940         PR middle-end/17112
1941         * stor-layout.c (compute_record_mode): For records with a single
1942         field, only use the field's mode if its size matches what we'd
1943         have choosen for the record ourselves.  This forces the use of
1944         BLKmode for packed records that don't completely fill a mode.
1945
1946 2004-09-26  Roger Sayle  <roger@eyesopen.com>
1947
1948         PR middle-end/17151
1949         * combine.c (force_to_mode): Remove dubious early return test that
1950         inhibits further optimization.
1951
1952 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
1953
1954         * profile.c: Fix a comment typo.
1955
1956 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1957
1958         PR bootstrap/17591
1959         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
1960         with varying offset.
1961         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
1962         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
1963         ARRAY_REFS.
1964         (expr_invariant_in_loop_p): New function.
1965         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
1966         component_ref_field_offset for COMPONENT_REFs.  Do not allow
1967         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
1968         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
1969         MISALIGNED_INDIRECT_REFs.
1970         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
1971         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
1972         MISALIGNED_INDIRECT_REFs.
1973
1974 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
1975
1976         PR c/11459
1977         * gcc.c (cpp_options, cc1_options): Preserve relative order of
1978         -std and -ansi options.
1979
1980 2004-09-26  Jan Hubicka  <jh@suse.cz>
1981
1982         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
1983         for nested functions whose proper parent has not been output.
1984
1985         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
1986         when re-constructing profile previously invalidated by loop.
1987
1988 2004-09-25  Dale Johannesen  <dalej@apple.com>
1989
1990         * tree-gimple.c:  Move GIMPLE definition...
1991         * doc/tree-ssa.texi:  here.
1992
1993 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
1994
1995         * tree-vectorizer.c: Fix a comment typo.
1996
1997 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
1998
1999         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
2000         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
2001         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
2002         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
2003
2004 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
2005
2006         * tree-ssa-loop-unswitch.c: Fix a comment typo.
2007
2008 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
2009
2010         * doc/passes.texi: Fix a typo.
2011
2012 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2013
2014         * tree-optimize.c (init_tree_optimization_passes): Add
2015         pass_record_bounds.
2016         * tree-pass.h (pass_record_bounds): Declare.
2017         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
2018         New pass.
2019
2020 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2021
2022         PR tree-optimization/17474
2023         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
2024         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
2025
2026 2004-09-25  Jan Hubicka  <jh@suse.cz>
2027
2028         * predict.c (counts_to_freqs): Make global.
2029         * predict.h (counts_to_freqa): Declare.
2030         * profile.c (compute_branch_probabilities): Compute frequencies
2031         * tree-profile.c (do_tree_profiling): Refine conditional on when
2032         tree profiling pass is needed.
2033
2034         * passes.c (rest_of_handle_cfg): Disable const/pure function
2035         detection when doing tree based profiling.
2036
2037         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
2038         conditional.
2039
2040 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
2041
2042         * config/mips/mips.h (struct mips_args): Clarify comments.
2043         * config/mips/mips.c (struct mips_arg_info): Likewise.
2044         (mips_arg_info): Don't allow fpr_p to affect the register or
2045         stack alignment.  Remove o64 silliness.
2046         (function_arg): Deal with the o32 float,float case specially.
2047
2048 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
2049
2050         * config/mips/mips.md (loadx, storex): Define for V2SF.
2051
2052 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
2053
2054         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
2055         * config/s390/s390.c (s390_back_chain_rtx): New function.
2056         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
2057         Call anti_adjust_stack.
2058         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
2059         only if compiling with back chain.
2060         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
2061         back chain only if back chain enabled.  Use s390_back_chain_rtx.
2062
2063 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
2064
2065         * doc/trouble.texi: Remove obsolete information.  Update
2066         information on how to regenerate fixincluded headers.
2067
2068 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
2069
2070         PR c/12951
2071         * doc/invoke.texi: Document that
2072         -Wno-error-implicit-function-declaration is not accepted.
2073
2074 2004-09-24  Richard Henderson  <rth@redhat.com>
2075
2076         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
2077         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
2078         on TARGET_MAX.
2079         (alpha_expand_mov): Allow unaligned vectors.
2080         (alpha_expand_unaligned_store): Use CONST0_RTX.
2081         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
2082
2083 2004-09-24 Jeff Law  <law@redhat.com>
2084
2085         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
2086         aliasing rules.
2087         (simplify_cond_and_lookup_avail_expr): Likewise.
2088
2089 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2090
2091         PR c/12802
2092         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
2093         title.  Document interaction with -fms-extensions.
2094         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
2095         section.
2096
2097 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2098
2099         PR c/12713
2100         * doc/extend.texi: Document interaction of attribute noreturn and
2101         longjmp.
2102
2103 2004-09-24  Richard Henderson  <rth@redhat.com>
2104
2105         PR rtl-opt/17503
2106         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
2107         (som_hash, som_eq): New.
2108         (init_subregs_of_mode, record_subregs_of_mode): New.
2109         (cannot_change_mode_set_regs): Rewrite for htab implementation.
2110         (invalid_mode_change_p): Likewise.
2111         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
2112         * flow.c (mark_used_regs): Likewise.
2113         (life_analysis): Use init_subregs_of_mode.
2114         * regs.h (subregs_of_mode): Remove.
2115         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
2116
2117 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
2118
2119         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
2120         type with the copy of the conditional.
2121
2122 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
2123
2124         PR tree-opt/16954
2125         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2126         Prevent renaming if the aliasing sets of the type which the
2127         pointer points to are different.
2128
2129 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2130
2131         PR c/17188
2132         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
2133         declarations of enumerators.
2134         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
2135         for redefinition.  Check for nested redefinition.
2136         (finish_struct): Don't check for nested redefinition.
2137         (start_enum): Check for nested redefinition.
2138
2139 2004-09-24  Devang Patel  <dpatel@apple.com>
2140
2141         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
2142         only when necesssary.
2143         (combine_blocks): Combine loop header and exit block.
2144
2145 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
2146
2147         * hooks.c (hook_tree_tree_bool_null): New.
2148         * hooks.h (hook_tree_tree_bool_null): Declare it.
2149         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
2150         * targhooks.c (default_fold_builtin): Remove.
2151         * targhooks.h (default_fold_builtin): Remove.
2152
2153 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2154
2155         PR rtl-optimization/17625
2156         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
2157
2158 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
2159
2160         PR tree-opt/17624
2161         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
2162         Reject if any of the operands occur in an abnormal PHI.
2163
2164 2004-09-24  Andreas Schwab  <schwab@suse.de>
2165
2166         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
2167         rules.
2168
2169 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
2170
2171         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
2172         if the GNU assembler is used.
2173         (sparc-*-solaris2*): Likewise.
2174         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
2175         (dbxout_function_end): Protect N_ENSYM with it.
2176         (dbxout_begin_prologue): Protect N_BNSYM with it.
2177         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
2178         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
2179         * config/sparc/sol2-gas.h: New file.
2180
2181 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
2182
2183         PR bootstrap/17369
2184         * Makefile.in (@set_gcc_lib_path@): Added.
2185
2186         * configure.ac: Include ../config/gcc-lib-path.m4. Use
2187         TL_AC_GNU_MAKE_GCC_LIB_PATH.
2188         * configure: Regenerated.
2189
2190 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2191
2192         PR c/6980
2193         * c-typeck.c (build_c_cast): Improve wording of
2194         -Wbad-function-cast diagnostic.
2195
2196 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
2197
2198         PR target/17626
2199         * config/cris/cris.md (moverside, movemside): Rename variable
2200         "reg" to "otherop".  To generate canonical RTX, check that otherop
2201         isn't constant instead of checking that operand 1 is a register.
2202
2203 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
2204
2205         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
2206
2207 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
2208             Jakub Jelinek  <jakub@redhat.com>
2209
2210         * tree-flow.h (find_new_referenced_vars): Add prototype.
2211         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
2212         Move to...
2213         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
2214         ... here.
2215         (mark_new_vars_to_rename): Walk through all operands.
2216         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
2217         (execute_fold_all_builtins): Use it.
2218         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
2219
2220 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
2221
2222         * gthr-tpf.h: New file.
2223         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
2224         * gthr.h: Use gthr-tpf.h on TPF OS.
2225
2226 2004-09-23 Jeff Law  <law@redhat.com>
2227
2228         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
2229         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
2230         (substitute_and_fold):  Likewise.
2231         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
2232         except invariants from SSA_NAME_VALUE.
2233         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
2234         and SET_SSA_NAME_EQUIV.
2235         (restore_vars_to_original_value, record_const_or_copy): Likewise.
2236         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
2237         (record_equality, cprop_into_successor_phis): Likewise.
2238         (record_equivalences_from_stmt, cprop_operand): Likewise.
2239         (lookup_avail_expr): Likewise.
2240         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
2241         from SSA_NAME_VALUE.
2242         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
2243         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
2244         annotation from the VALUE_HANDLE field.
2245
2246 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
2247
2248         PR c++/13989
2249         PR c++/9844
2250         * tree.c (reconstruct_complex_type): Remove extra "this".
2251         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
2252         Add V4SFmode to case statement.
2253
2254 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2255
2256         PR c/16833
2257         * doc/extend.texi, doc/invoke.texi: Document interaction of
2258         -fno-builtin with format checks.  Note that built-in functions
2259         have effects beyond generating code that avoids calls to those
2260         functions.
2261
2262 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
2263
2264         PR tree-optimization/17533
2265         * dominance.c (verify_dominators): Tolerate even more incorrect
2266         dominance data during error message printing.
2267         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
2268         and edges more correctly.
2269
2270 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
2271
2272         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
2273         New tree-codes.
2274         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
2275         MISALIGNED_INDIRECT_REF.
2276         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
2277         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
2278         Likewise.
2279         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
2280         (find_interesting_uses_address): Likewise.
2281         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
2282         (build_fold_addr_expr_with_type): Likewise.
2283         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
2284         * print-rtl.c (print_mem_expr): Likewise.
2285         * tree-dump.c (dequeue_and_dump): Likewise.
2286         * tree-eh.c (tree_could_trap_p): Likewise.
2287         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
2288         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
2289         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
2290         Likewise.
2291         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2292         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
2293         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
2294         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
2295         (add_address_candidates, rewrite_address_base): Likewise.
2296         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
2297         Likewise.
2298         * tree.c (staticp, build1_stat): Likewise.
2299
2300         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
2301         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
2302         * tree-ssa-operands.c (get_expr_operands): Likewise.
2303         * expr.c (expand_expr_real_1): Likewise.
2304
2305         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
2306         optabs.
2307         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
2308         for the new optabs.
2309         (expand_ternary_op): New function.
2310         * genopinit.c (optabs): Handle the new optabs.
2311         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
2312         (init_optabs): Initialize vec_realign_load_optab.
2313         (expand_ternary_op): New functions.
2314
2315         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
2316         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
2317         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
2318         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
2319         * target.h (struct vectorize): New member for struct gcc_target.
2320         (misaligned_mem_ok): New member for targetm.vectorize.
2321         (builtin_mask_for_load): Likewise.
2322         (builtin_mask_for_store): Likewise.
2323         * targethooks.c (default_vect_misaligned_mem_ok): New function.
2324         * targethooks.h (default_vect_misaligned_mem_ok): New function.
2325
2326         * config/rs6000/altivec.md (build_vector_mask_for_load): New
2327         define_expand.
2328         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
2329         (vec_realign_load_v16qi): New define_insn.
2330         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
2331         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
2332         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
2333         (altivec_builtin_mask_for_store): New variables.
2334         (rs6000_builtin_mask_for_load): New function. Implements
2335         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
2336         (rs6000_builtin_mask_for_store): New function. Implements
2337         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
2338         (rs6000_expand_builtin): Expand the target builtins
2339         builtin_mask_for_load and builtin_mask_for_store.
2340         (altivec_init_builtins): Initialize the new target builtins.
2341         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
2342         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
2343
2344         * tree-vectorizer.c (vect_create_data_ref): Renamed to
2345         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
2346         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
2347         (vectorizable_store): Call vect_create_data_ref_ptr with additional
2348         arguments, and create an indirect_ref with its return value data_ref.
2349         Check aligned_access_p.
2350         (vectorizable_load): Handle misaligned loads, using software-pipelined
2351         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
2352         vec_realign_load_optab is supported, or using a scheme without
2353         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
2354         misaligned_mem_ok is supported.
2355
2356         (vect_finish_stmt_generation): Typo.
2357         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
2358         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
2359         presence of misaligned loads.
2360         (vect_analyze_data_ref_access): Add check for constant init.
2361         (vect_get_symbl_and_dr): Remove duplicate line.
2362         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
2363
2364 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
2365
2366         * builtins.c: Fix a comment typo.
2367
2368 2004-09-23  Jan Hubicka  <jh@suse.cz>
2369
2370         * profile.c (branch_prob): Do not verify flow info in the middle of the
2371         pass.
2372
2373 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2374
2375         * cfgloop.h (update_single_exits_after_duplication): Declare.
2376         (loopify, split_loop_bb): Declaration changed.
2377         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
2378         of rtx.
2379         (loopify): Added redirect_all_edges argument.
2380         (update_single_exits_after_duplication): Export.
2381         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
2382         * tree-flow.h (tree_duplicate_loop_to_header_edge,
2383         tree_ssa_loop_version): Declare.
2384         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
2385         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
2386         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
2387         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
2388
2389         * tree-ssa-loop-unswitch.c: New file.
2390         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
2391         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
2392         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
2393         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
2394         * tree-pass.h (pass_unswitch): Declare.
2395         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
2396         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
2397         * doc/passes.texi: Documen tree level loop unswitching.
2398
2399 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
2400
2401         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
2402
2403 2004-09-22  Eric Christopher  <echristo@redhat.com>
2404
2405         * builtins.c (simplify_builtin_va_start): Remove.
2406         (simplify_builtin): Ditto.
2407         (fold_builtin_strchr): Ditto.
2408         (simplify_builtin_*): Rename remainders to fold_builtin_*.
2409         (expand_builtin): Fix up for above changes.
2410         (fold_builtin_1): Add new folders. Change for above.
2411         (expand_builtin_va_start): Call fold_builtin_next_arg.
2412         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
2413         * tree.h: Remove prototype for simplify_builtin.
2414
2415 2004-09-23  Jan Hubicka  <jh@suse.cz>
2416
2417         PR debug/17389
2418         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
2419         of fully inlined functions.
2420         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
2421         inlined.
2422
2423         * cfgexpand.c (add_reg_br_prob_note): New function.
2424         (expand_gimple_cond_expr): Use it.
2425         (tree_expand_cfg): No longer kill the profile.
2426         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
2427         only if it is present.
2428         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
2429         * predict.c (combine_predictions_for_insn): Set the probabilities
2430         based on REG_BR_PROB note if present.
2431         * predict.c (branch_prob): Profile is read only with
2432         flag_branch_probabilities.
2433
2434 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2435
2436         * aclocal.m4: Add in gettext's m4 includes.
2437         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
2438         * configure.ac: Add in check for iconv.h
2439         * configure: Regenerate.
2440
2441 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2442
2443         * aclocal.m4: Update for rename of gettext-sister.m4.
2444
2445 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
2446
2447         Fix PR tree-optimization/17587
2448         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
2449         (insert_aux): Instead of here.
2450
2451 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
2452
2453         PR tree-optimization/16721
2454         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
2455         * tree-ssa-alias.c (create_memory_tag): Move setting of
2456         TREE_THIS_VOLATILE ...
2457         (get_tmt_for): ... here.
2458
2459 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2460
2461         * config/sparc/sparc.md (cmove splitter): Fix formatting.
2462         (conditional_trap expander): Reject inappropriate CCmodes.
2463         (conditional trap insn): Use V9 syntax if possible.
2464
2465 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2466
2467         PR c/16566
2468         * c-typeck.c (build_component_ref): Don't special-case
2469         COMPOUND_EXPR.
2470
2471 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
2472
2473         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
2474         returns NULL.
2475
2476 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
2477
2478         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
2479         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
2480         TRUTH_XOR_EXPR): Mention the restriction on types.
2481
2482 2004-09-22  Matt Austern  <austern@apple.com>
2483
2484         * config/darwin.c (darwin_make_decl_one_only):
2485         Allow coalesced symbol to appear in static archive's table of contents
2486
2487 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
2488
2489         PR tree-optimization/17512
2490         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
2491         special cases.
2492
2493 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
2494
2495         * dbxout.c (get_lang_number): Do not define if
2496         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
2497
2498 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
2499
2500         PR target/15583
2501         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
2502         builtin_define ("__USE_INIT_FINI__").
2503
2504 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
2505
2506         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
2507         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
2508         * config/s390/s390.h (TARGET_TPF): New macro.
2509         * config/s390/s390.md ("eh_return"): New expander.
2510         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
2511         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
2512         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
2513         * config/s390/tpf.h (TARGET_TPF): Define to 1.
2514         (STACK_POINTER_OFFSET): Increase to 448.
2515         (TARGET_DEFAULT): Set -mtpf-trace on as default.
2516         (TPF_LOC_DIFF_OFFSET): New macro.
2517         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
2518         encoding.
2519         (__isPATrange): Add prototype.
2520         (MD_FALLBACK_FRAME_STATE_FOR): Define.
2521         * config/s390/tpf-eh.c: New file.
2522
2523 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
2524
2525         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
2526         operands in an integer comparison.
2527         * tree-cfg.c (find_taken_edge): Call fold() to determine
2528         whether the predicate is known.
2529
2530 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2531
2532         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
2533         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
2534         Create build and doc directories along with the language directories.
2535         Don't create doc directory separately.
2536         * configure: Regenerate.
2537         * Makefile.in: Create all object and executables files built
2538         with the build compiler in a build/ directory.
2539         (genobjnames): Add missing build objects.
2540         (STAGESTUFF): Don't stage the gen* programs.
2541         (ggc-none.o): Define dependencies for the target compiler.
2542         (build-print-rtl.o): Rename to build/print-rtl.o.
2543         (build-errors.o): Rename to build/errors.o.
2544         (build-varray.o): Rename to build/varray.o.
2545         (maintainerclean): Delete the contents of the build directory.
2546         ($(genobjs): %.o): Explicitly use -o.
2547         (build/insn-conditions.o): Delete specfic rule to use generic rule.
2548         (build/gengtype-lex.o): Likewise.
2549         (build/gengtype-yacc.o): Likewise.
2550         (build/gcov-iov.o): Likewise.
2551
2552 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
2553
2554         * vec.h (VEC_space): Return true if there _is_ space.
2555         (VEC_reserve): Adjust.
2556
2557 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
2558
2559         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
2560         use FPRs for scalar, complex and vector types only.
2561
2562 2004-09-21 Jeff Law  <law@redhat.com>
2563
2564         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
2565         the opt_stats_d structure.
2566         (vrp_data): Change from a varray into a hash table.
2567         (vrp_hash_elt): New structure for elements in the vrp hash table.
2568         (vrp_hash, vrp_eq):New functions for hashing and testing equality
2569         in the vrp hash table.
2570         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
2571         initialization slightly to make it easier to read.  No longer need
2572         to grow/clear the varray.  Instead empty and delete the hash table.
2573         (dom_opt_finalize_block): Update due to change of VRP_DATA from
2574         a varray to a hash table.
2575         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
2576
2577         * tree-ssa-ccp.c (get_default_value): If we have a constant
2578         value recorded for an SSA_NAME, then use that constant as
2579         the initial lattice value.
2580         (substitute_and_fold): Transfer equivalences discovered into
2581         SSA_NAME_EQUIV.
2582
2583         * tree.h (SSA_NAME_EQUIV): Add comments.
2584         (SET_SSA_NAME_EQUIV): Similarly.
2585
2586 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
2587
2588         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
2589
2590         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
2591
2592 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
2593
2594         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
2595         (finish_decl): Likewise.
2596
2597 2004-09-21  Devang Patel  <dpatel@apple.com>
2598
2599         * tree.def (VEC_COND_EXPR): New tree node.
2600         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
2601
2602 2004-09-21  Stan Shebs  <shebs@apple.com>
2603
2604         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
2605         * config/rs6000/darwin-world.asm: Likewise.
2606
2607 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
2608
2609         * tree-ssa.c (verify_def): Use print_generic_stmt,
2610         not debug_generic_stmt.
2611         (verify_use): Ditto.
2612         (verify_phi_args): Ditto.
2613         (verify_ssa): Ditto.
2614
2615 2004-09-21  Paul Brook  <paul@codesourcery.com>
2616
2617         * varasm.c (default_assemble_integer): Return false for values wider
2618         than the target word size.  Works around GAS bug.
2619
2620 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
2621
2622         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
2623         gets value 0.
2624         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
2625         if it has value 0.
2626
2627 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
2628
2629         * c-typeck.c (build_function_call): Give name of object
2630         we are attempting to call in error message.
2631         * c-objc-common.c (c_tree_printer): Call pp_expression,
2632         not return false, for 'E' case.
2633
2634 2004-09-21  Steven Bosscher  <stevenb@suse.de>
2635
2636         PR rtl-optimization/17482
2637         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
2638         load_killed_in_block_p): Clarify comments.
2639         (record_last_reg_set_info): Make static inline.
2640         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
2641         (record_opr_changes): New function to replace the above.
2642         (compute_hash_table): Clarify comments.  Use record_opr_changes.
2643         (reg_set_between_after_reload_p): Clean up.
2644         (reg_used_between_after_reload_p): Likewise.
2645         (eliminate_partially_redundant_load): Clarify comments.
2646
2647 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2648
2649         PR rtl-optimization/17266
2650         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
2651
2652 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
2653
2654         PR rtl-optimization/14851
2655         * rtlanal.c (commutative_operand_precedence): Calculate
2656         precedence of stripped constant.
2657
2658 2004-09-20 Jeff Law  <law@redhat.com>
2659            Jan Hubicka  <jh@suse.cz>
2660
2661         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
2662         initialize key elements here.
2663         (release_ssa_name): Zero the released SSA_NAME here.
2664         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
2665         (struct tree_ssa_name): Add new "equiv" field.
2666         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
2667         (tree_ssa_dominator_optimize): No longer allocate, resize or
2668         clear CONST_AND_COPIES.
2669         (get_value_for, set_value_for): Kill.
2670         (thread_across_edge): Get/set the equivalency using
2671         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
2672         (restore_vars_to_original_value): Likewise.
2673         (record_equivalences_from_phis): Likewise.
2674         (record_dominating_conditions): Likewise.
2675         (record_const_or_copy, record_equality): Likewise.
2676         (lookup_avail_expr): Likewise.
2677         (record_equivalences_from_stmt, cprop_operand): Likewise.
2678         (cprop_into_successor_phis): No longer need to pass around
2679         CONST_AND_COPIES.  Callers updated. Get equivalences via
2680         SSA_NAME_EQUIV.
2681         (cprop_into_phis): Likewise.
2682
2683 2004-09-20  Matt Austern <austern@apple.com>
2684             Zack Weinberg  <zack@codesourcery.com>
2685
2686         * c-common.c (fix_string_type): Build the unqualified array
2687         type unconditionally, then use c_build_qualified_type to get
2688         the proper const-qualified variant, and set its
2689         TYPE_MAIN_VARIANT to refer to the unqualified type.
2690         * c-lex.c (c_lex_return_raw_string): New global.
2691         (c_lex_with_flags): Honor it.
2692         * c-pragma.h: Declare it.
2693
2694 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
2695
2696         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
2697
2698 2004-09-21  Jan Hubicka  <jh@suse.cz>
2699
2700         PR middle-end/17126
2701         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
2702         (tree_rest_of_compilation): Cleanup.
2703
2704 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
2705
2706         * config/s390/s390.c (s390_select_rtx_section): Remove.
2707         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
2708
2709 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2710
2711         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
2712         note to pretend a direct save from the original register when an
2713         intermediate register is used for the save.
2714
2715 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2716
2717         * tsystem.h (alloca): Provide a default definition.
2718
2719         Revert:
2720         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2721             * unwind-dw2.c: Call __builtin_alloca, not alloca.
2722
2723 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
2724
2725         PR tree-opt/17558
2726         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
2727         aliasing sets are the same rather than just conflicting.
2728
2729 2004-09-20  Jan Hubicka  <jh@suse.cz>
2730
2731         PR middle-end/16460
2732
2733         * cgraph.c (cgraph_unnest_node): New function.
2734         (c_finalize): Rename to ....
2735         (c_warn_unused_result_recursivly): ... this one; do only the warning
2736         (finish_function): Finalize the toplevel function; do not lower nested tree.
2737         * cgraph.h (cgraph_unnest_node): Declare.
2738         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
2739         nestedness datastructure.
2740         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
2741         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
2742         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
2743
2744 2004-09-20  Richard Henderson  <rth@redhat.com>
2745
2746         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
2747         from some_small_symbolic_operand_1; export.
2748         (some_small_symbolic_operand): Remove.
2749         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
2750         extra C check.
2751         * config/alpha/predicates.md (some_small_symbolic_operand): New.
2752
2753 2004-09-20  Jan Hubicka  <jh@suse.cz>
2754
2755         * predict.c (return_prediction): New function.
2756         (apply_return_prediction): Likewise.
2757         (tree_bb_level_predictions): Likewise.
2758         (tree_estimate_probability): Add noreturn exit edges; call
2759         bb_level_predictions; fix logic of return heuristics.
2760         (predict_paths_leading_to):  Rescuesce from old CVS version of
2761         process_note_prediction function.
2762         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
2763
2764 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
2765
2766         * config/s390/s390.c (s390_frame_info): Added alignment statement for
2767         floating point register area on stack.
2768
2769 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
2770
2771         * predict.c (expr_expected_value): Use *_CLASS_P macros.
2772
2773 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
2774
2775         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
2776         generating useless garbage.
2777
2778 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
2779
2780         * builtins.c (fold_builtin): Call the new omonymous
2781         target hook for machine-dependent built-ins.
2782         * target-def.h (TARGET_FOLD_BUILTIN): New.
2783         * target.h (struct gcc_target): Add the fold_builtin hook.
2784         * targhooks.c (default_fold_builtin): New.
2785         * targhooks.h (default_fold_builtin): Declare it.
2786
2787 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
2788
2789         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
2790         comment typos.
2791
2792 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
2793
2794         PR target/17565
2795         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
2796
2797 2004-09-20  Jan Hubicka  <jh@suse.cz>
2798
2799         * predict.c (estimate_probability): Remove unnecesary code.
2800
2801 2004-09-19  Ira Rosen  <irar@il.ibm.com>
2802
2803         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
2804         (STMT_VINFO_VECT_DR_BASE): Declare.
2805         (VECT_SMODULO): Declare.
2806         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
2807         (vect_compute_array_base_alignment): New function.
2808         (vect_analyze_data_ref_access): Check array indices. Remove one
2809         dimensional arrays restriction.
2810         (vect_get_ptr_offset): New function.
2811         (vect_get_symbl_and_dr): New function.
2812         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
2813         (former name vect_get_base_decl_and_bit_offset).
2814         (vect_create_index_for_array_ref): Removed.
2815         (vect_create_index_for_vector_ref): New function.
2816         (vect_create_addr_base_for_vector_ref): New function.
2817         (vect_create_data_ref): Handle additional data refs. Call
2818         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
2819         (vect_compute_data_ref_alignment): Support the changes. Call
2820         vect_get_base_and_bit_offset.
2821         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
2822         data refs. Store vect_dr_base.
2823         (vect_analyze_data_ref_accesses): Support nonconstant init.
2824         (new_stmt_vec_info): Initialize vect_dr_base field.
2825         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
2826         (get_vectype_for_scalar_type): Check for BLKmode.
2827         * tree-chrec.h (initial_condition_in_loop_num): Declare.
2828         * tree-chrec.c (initial_condition_in_loop_num): New function.
2829         (chrec_component_in_loop_num): New function.
2830         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
2831         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
2832         to be pointer to varray_type.
2833
2834 2004-09-19  Jan Hubicka  <jh@suse.cz>
2835
2836         * basic-block.h (update_bb_profile_after_threading): Declare.
2837         * cfg.c (update_bb_profile_after_threading): Break out from ...
2838         * cfgcleanup.c (try_forward_edges): ... here; use it.
2839         * tree-ssa-dom.c (thread_across_edge): Use it.
2840         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
2841         profile of the new BB.
2842
2843 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
2844
2845         * tree-ssa-pre.c (insert_into_set): Don't put
2846         is_gimple_min_invariant values into the set.
2847
2848 2004-09-19  Andreas Jaeger  <aj@suse.de>
2849
2850         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
2851         prototype.
2852
2853 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
2854
2855         * config/cris/cris.h: Preserve the original spelling in a
2856         quote.
2857
2858 2004-09-18 Jeff Law  <law@redhat.com>
2859
2860         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
2861         global varrays to replace the block local varrays.
2862         (struct dom_walk_block_data): Remove, no longer used.
2863         (get_eq_expr_value): No longer need to pass around pointers to local
2864         varrays.  Callers updated.  Unused markers added to unused parameters.
2865         (record_range, record_equivalences_from_stmt): Likewise.
2866         (record_equivalences_from_incoming_edge): Likewise.
2867         (record_var_is_nonzero): Likewise.  Update now that we have a
2868         single global varray of SSA_NAMEs that need restoring.
2869         (dom_opt_initialize_block_local_data): Kill, no longer used.
2870         (tree_ssa_dominator_optimize): Initialize new global varrays.
2871         Update callbacks in dominator walker structure.
2872         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
2873         VRP_VARIABLES_STACK.
2874         (restore_nonzero_vars_to_original_value): Update now that we have
2875         a single global varray of SSA_NAMEs that need restoring.
2876         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
2877         Remove unused variables.
2878         (optimize_stmt): Remove unused variable.
2879
2880 2004-09-18  Jan Hubicka  <jh@suse.cz>
2881
2882         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
2883
2884         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
2885         verify_cgraph call.
2886
2887 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
2888
2889         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
2890         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
2891         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
2892         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
2893         tree-ssa-operands.c, tree-ssa-phiopt.c,
2894         tree-ssa-threadupdate.c: Fix comment typos.
2895
2896 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
2897
2898         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
2899         config/arm/README-interworking, config/arm/arm-cores.def,
2900         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
2901         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
2902         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
2903         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
2904         config/frv/frv.md, config/i386/winnt.c,
2905         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
2906         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
2907         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
2908         config/mcore/mcore.c, config/mips/mips.h,
2909         config/mn10300/mn10300.md, config/pa/pa.c,
2910         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
2911         config/rs6000/rs6000.c, config/sh/symbian.c,
2912         config/sparc/sparc.h: Fix comment typos.  Follow spelling
2913         conventions.
2914
2915 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
2916
2917         PR c/17424
2918         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
2919
2920 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
2921
2922         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
2923         remove TREE_ADDRESSABLE from RESULT_DECL.
2924
2925 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
2926
2927         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
2928
2929 2004-09-18  Jan Hubicka  <jh@suse.cz>
2930
2931         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
2932         NULL.
2933         * tree-ssa-alias.c (init_alias_info): Likewise.
2934         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
2935         (verify_ssa): Likewise.
2936         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
2937
2938 2004-09-18  Jan Hubicka  <jh@suse.cz>
2939
2940         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
2941         huge offset.
2942
2943 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2944
2945         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
2946         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
2947         DW_EH_PE_sdata* for data.
2948         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2949
2950 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
2951
2952         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
2953         shared anyway.
2954
2955         PR pch/13361
2956         * c-typeck.c (constructor_asmspec): Delete.
2957         (struct initializer_stack): Delete field 'asmspec'.
2958         (start_init): Delete saving of asmspec.
2959         (finish_init): Don't update constructor_asmspec.
2960         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
2961         * stmt.c (expand_asm): Duplicate strings from tree.
2962         (expand_asm_operands): Likewise.
2963         * tree.c (tree_size): Update computation of size of STRING_CST.
2964         (make_node): Don't make STRING_CST nodes.
2965         (build_string): Allocate string with tree node.
2966         (tree_code_size): Clean up assertions, don't allow requests
2967         for "the size of a STRING_CST".
2968         * tree.def (STRING_CST): Update comment.
2969         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
2970         (tree_string): Place contents of string in tree node.
2971         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
2972         from tree.
2973
2974 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
2975
2976         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
2977         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
2978
2979 2004-09-17  Jones Desougi  <jones@ingate.com>
2980
2981         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
2982         * configure, config.in: Regenerate.
2983
2984 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
2985
2986         * tree.c, tree.h (tree_class_strings): Make array const.
2987         Reindent per coding convention.  Move asterisk to proper place
2988         per coding convention.
2989
2990 2004-09-18  Andreas Schwab  <schwab@suse.de>
2991
2992         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
2993         (tree-vectorizer.o): Likewise.
2994         (targhooks.o): Likewise.
2995
2996 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
2997             Zack Weinberg  <zack@codesourcery.com>
2998
2999         * alias.c (find_base_decl): Remove unreachable case '3' block.
3000         * expr.c (safe_from_p): Abort if passed a type.
3001         * tree-gimple.c (recalculate_side_effects): Abort if passed
3002         anything other than an expression.
3003         * tree-ssa-pre.c (phi_translate): Return expr immediately if
3004         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
3005         Abort on un-handled tree classes.
3006         (valid_in_set): Likewise.
3007         * tree.c (tree_code_class_strings): New static data.
3008
3009         * tree.h (enum tree_code_class): New.
3010         (tree_code_class_strings): Declare.
3011         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
3012         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
3013         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
3014         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
3015         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
3016
3017         * tree.def, c-common.def, objc/objc-tree.def: Use
3018         tree_code_class enumeration constants instead of code letters.
3019
3020         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
3021         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
3022         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
3023         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
3024         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
3025         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
3026         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
3027         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
3028         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
3029         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
3030         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
3031         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
3032         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
3033         Update to match.
3034
3035         * LANGUAGES: Add note about change.
3036
3037 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
3038
3039         PR tree-optimization/17319
3040         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
3041         examine pointers on the LHS of an assignment.
3042         (collect_points_to_info_r): Handle RETURN_EXPR.
3043
3044 2004-09-17 Jeff Law  <law@redhat.com>
3045
3046         * tree-ssa-dom.c (const_and_copies_stack): New.
3047         (dom_walk_block_data): Remove const_and_copies field.
3048         (record_const_or_copy): No longer need to pass in varray_type *.
3049         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
3050         Callers updated.
3051         (record_equality): Similarly.
3052         (restore_vars_to_original_value): Similarly.  Revamp to use new
3053         single global stack rather than per-block stacks.
3054         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
3055         (thread_across_edge): Remove now unused parameters.
3056         (dom_opt_initialize_block_local_data): No longer test the block
3057         local CONST_AND_COPIES.
3058         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
3059
3060 2004-09-17  Jan Hubicka  <jh@suse.cz>
3061
3062         PR tree-optimization/17509
3063         * tree-optimize.c (update_inlined_to_pointers): New function.
3064         (tree_rest_of_compilation): Use it.
3065
3066 2004-09-17  Devang Patel  <dpatel@apple.com>
3067
3068         * dbxout.c (get_lang_number): New.
3069         (dbxout_init): Include lang number in N_SO  stab.
3070         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
3071         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
3072
3073 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
3074
3075         PR tree-optimization/17273
3076         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
3077         replacement is a constant.
3078
3079 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
3080
3081         * c-tree.h (enum c_typespec_keyword): New.
3082         (struct c_declspecs): Adjust description of "type".  Remove
3083         specbits, explicit_int_p and explicit_char_p.  Rename
3084         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
3085         short_p, signed_p, unsigned_p and complex_p.
3086         (finish_declspecs): New.
3087         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
3088         typename): Call finish_declspecs.
3089         * c-decl.c (finish_declspecs): New.
3090         (declspecs_add_type): Check for combinations which cannot occur in
3091         valid specifier lists.  Update comments.
3092         (shadow_tag_warned): Remove checks done in finish_declspecs.
3093         Don't report useless type name if type defaulted to int.
3094         (grokdeclarator): Remove checks and actions done in
3095         finish_declspecs.  Don't allow for type being NULL.  Update for
3096         datastructures changes.  Initialize decl_attr.
3097         (build_null_declspecs, quals_from_declspecs): Update for
3098         datastructures changes.
3099
3100 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
3101
3102         * doc/extend.texi: Fix duplicated word.
3103
3104 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
3105
3106         * doc/invoke.texi: Remove stray explanation on
3107         -freduce-all-givs and -fmove-all-movables.
3108
3109 2004-09-17  James Morrison  <phython@gcc.gnu.org>
3110
3111         * doc/cfg.texi: Use @smallexample.
3112         * doc/md.texi: Likewise.
3113         * doc/tree-ssa.texi: Likewise.
3114         * doc/extend.texi: Likewise.  Use @r{} in comments.
3115         * doc/trouble.texi: Use @r{} in comments.
3116
3117 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
3118
3119         * configure.ac (gcc_cv_gld_version): Handle whitespace before
3120         "VERSION=".
3121         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
3122         * configure: Regenerate.
3123
3124 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
3125
3126         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
3127         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
3128         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
3129         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
3130         slashes in substitutions.
3131         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
3132
3133 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
3134
3135         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
3136         gimplify.c, lambda-code.c, optabs.c, predict.c,
3137         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
3138         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
3139         conventions.
3140
3141 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
3142
3143         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
3144         doc/extend.texi, doc/install.texi, doc/invoke.texi,
3145         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
3146         doc/trouble.texi: Use @option around options.
3147
3148 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
3149
3150         * Makefile.in (gen-protos.o): Depend on errors.h.
3151
3152 2004-09-17  Steven Bosscher  <stevenb@suse.de>
3153
3154         PR tree-optimization/17513
3155         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
3156         for successors of the entry block.
3157
3158 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
3159
3160         PR rtl-optimization/15187
3161         * ifcvt.c (noce_try_cmove_arith): Exit early if total
3162         insn_rtx_cost of both branches > BRANCH_COST
3163
3164 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
3165
3166         PR tree-optimization/17528
3167         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
3168         erase the may-alias set for a tag when merging it with
3169         another.
3170
3171 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3172
3173         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
3174         for 32-bit TARGET_SHMEDIA.
3175         (call_value): Likewise.
3176
3177 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
3178
3179         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
3180         test apply only to TREE_STATIC and DECL_EXTERNAL.
3181
3182 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3183
3184         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
3185         * basic-block.h (get_dominated_by_region): Declare.
3186         * dominance.c (get_dominated_by_region): New function.
3187         * tree-cfg.c: Include cfglayout.h.
3188         (tree_duplicate_bb): Duplicate also phi nodes.
3189         (struct ssa_name_map_entry): New type.
3190         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
3191         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
3192         allocate_ssa_names, rewrite_to_new_ssa_names_def,
3193         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
3194         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
3195         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
3196         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
3197         rewrite_to_new_ssa_names, allocate_ssa_names,
3198         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
3199         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
3200         (copy_loop_headers): Use tree_duplicate_sese_region.
3201
3202 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
3203
3204         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
3205
3206 2004-09-16 Jeff Law  <law@redhat.com>
3207
3208         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
3209         (rewrite_block_data): Remove, no longer used.
3210         (rewrite_initialize_block_local_data): Remove, no longer used.
3211         (rewrite_initialize_block): Mark parameters as unused as needed.
3212         Change references to the block local block_defs to be block_defs_stack.
3213         Push a marker onto the block_defs_stack.
3214         (ssa_rewrite_initialize_block): Similarly.
3215         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
3216         (ssa_register_new_def): No longer needs varray argument.  Use
3217         block_defs_stack instead.  No longer handle possibly null block_defs
3218         varray.  Reverse order of items we push on the stack to make it
3219         easier to identify our marker.
3220         (register_new_def): No longer handle possibly null block_defs
3221         varray.
3222         (rewrite_finalize_block): Revamp to look for markers in the global
3223         block_defs_stack varray rather than wiping a block local varray.
3224         Mark arguments as unused as needed.
3225         (ssa_rewrite_finalize_block): Similarly.
3226         (rewrite_into_ssa): Update initialization of dom walker structure
3227         to reflect that we don't need block local data anymore.  Initialize
3228         the block_defs_stack varray.
3229         (rewrite_ssa_into_ssa): Similarly.
3230         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
3231         (struct dom_walk_data): Kill block_defs field.
3232         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
3233         (thread_across_edge): Use the global block_defs_stack instead of
3234         the old block_defs varray.
3235         (dom_opt_initialize_block_local_data): Update now that we don't have
3236         block_defs field to check anymore.
3237         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
3238         (restore_currdefs_to_original_value): Use the new block_defs_stack
3239         instead of a block local varray.
3240         (dom_opt_finalize_block): Similarly.
3241         (record_equivalencs_from_phis): Similarly.
3242         (optimize_stmt, register_definitions_for_stmt): Similarly.
3243
3244 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
3245
3246         PR tree-optimization/17517
3247         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
3248         coalesce same-root variables without checking for abnormal PHI usage.
3249
3250 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
3251
3252         * cfgloop.h (duplicate_loop):  Add prototype.
3253         * cfgloopmanip.c (duplicate_loop): Make non-static.
3254         * lambda-code.c (perfect_nestify): Factor out test whether
3255         we can handle this loop into separate function.
3256         Call it.
3257         (can_convert_to_perfect_nest): New function.
3258         (replace_uses_of_x_with_y): Add modify_stmt call.
3259         * tree-loop-linear.c (linear_transform_loops): Call
3260         rewrite_into_loop_closed_ssa and free_df.
3261
3262 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
3263
3264         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
3265         loop invariant as well.
3266         (perfect_nestify): new function.
3267         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
3268         upper bounds, and steps.
3269         Set outerinductionvar properly.
3270         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
3271         parameters.
3272         Return NULL if we need a perfect loop and can't make one.
3273         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
3274         (not_interesting_stmt): New function.
3275         (phi_loop_edge_uses_def): Ditto.
3276         (stmt_uses_phi_result): Ditto.
3277         (stmt_is_bumper_for_loop): Ditto.
3278         (perfect_nest_p): Ditto.
3279         (nestify_update_pending_stmts): Ditto.
3280         (replace_uses_of_x_with_y): Ditto.
3281         (stmt_uses_op): Ditto.
3282         (perfect_nestify): Ditto.
3283         * lambda-mat.c (lambda_matrix_id_p): New function.
3284         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
3285         * lambda.h: Update prototypes.
3286         * tree-loop-linear (linear_transform_loop): Use new
3287         perfect_nest_p. Detect and ignore identity transform.
3288         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
3289
3290 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
3291
3292         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
3293         Gather also strides of accessed data.  Pass in the data references
3294         array.
3295         (try_interchange_loops): Add a new heuristic for handling the temporal
3296         locality.  Pass in the data references array.
3297         (linear_transform_loops): Pass the data references array to
3298         try_interchange_loops.
3299
3300 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
3301
3302         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
3303
3304 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
3305
3306         * doc/c-tree.texi (Classes): Remove index entries for
3307         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
3308
3309 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3310
3311         * fold-const.c (fold): Fold difference of addresses.
3312         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
3313         get_inner_reference.
3314         * tree-ssa-loop-ivopts.c (peel_address): Removed.
3315         (ptr_difference_const): Moved to fold-const.c.
3316         (split_address_cost): Use get_inner_reference instead of peel_address.
3317         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
3318         * tree.h (ptr_difference_const): Export.
3319
3320         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
3321         variable type to the dump.  Fix indentation.
3322         (idx_find_step): Handle nonconstant array_ref_element_size and
3323         array_ref_low_bound.
3324         (idx_record_use): Handle array_ref_element_size and
3325         array_ref_low_bound.
3326         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
3327         statements correctly.
3328         (get_computation_at, iv_value): Do not unshare expressions here.
3329         (rewrite_use_outer): Unshare the expression before it is emitted
3330         to code.
3331         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
3332         Moved to tree.c.
3333         * tree.c (unsigned_type_for, signed_type_for): Moved from
3334         tree-ssa-loop-niter.c.  Use langhooks.
3335         * tree.h (signed_type_for): Export.
3336
3337 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
3338
3339         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
3340         prototype.
3341
3342 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
3343
3344         PR target/11572
3345         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
3346         Add two parameters to extra_includes.
3347         (C_INCPATH_INIT): Remove.
3348         * c-incpath.c (register_include_chains): Call extra_pre_includes
3349         before adding the standard include directory.
3350         Update call to extra_includes.
3351         (!defined TARGET_EXTRA_INCLUDES): Update
3352         hook_void_charptr_charptr_int and add !define
3353         TARGET_EXTRA_PRE_INCLUDES.
3354         (!define TARGET_EXTRA_INCLUDES): Define as
3355         hook_void_charptr_charptr_int.
3356         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
3357         (target_c_incpath): Always declare.
3358         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
3359         empty function.
3360         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
3361         * config/darwin.h: (darwin_register_frameworks): Update for
3362         the two new parameters.
3363         (darwin_register_objc_includes): Add prototype.
3364         (TARGET_EXTRA_PRE_INCLUDES): Define.
3365         * config/darwin-c.c (darwin_register_objc_includes): New function.
3366         (darwin_register_frameworks): Update for the two new parameters.
3367         (target_c_incpath): Remove.
3368         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
3369         the compile line.
3370         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
3371         parameters.
3372         (TARGET_EXTRA_PRE_INCLUDES): Document.
3373
3374         * gcc.c (spec_function): Add replace-outfile.
3375         (replace_outfile_spec_function): New function.
3376         * config/darwin.h (LINK_SPEC): Add replace
3377         -lobjc with -lobjc-gnu if -fgnu-runtime is
3378         supplied.
3379         * invoke.texi (replace-outfile): Document.
3380
3381 2004-09-13  Jan Hubicka  <jh@suse.cz>
3382
3383         * predict.c (expr_expected_value, strip_builtin_expect): New function.
3384         (tree_predict_by_opcode): Use it.
3385         (tree_estimate_probability): Add, for now disabled,
3386         strip_builtin_expect call.
3387
3388 2004-09-15  James E Wilson  <wilson@specifixinc.com>
3389
3390         PR target/17455
3391         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
3392         if current_function_decl is a sibcall.
3393
3394 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
3395
3396         * varasm.c (default_function_rdodata_section): Make sure to pass
3397         along a decl for a link-once section.
3398
3399 2004-09-15  Richard Henderson  <rth@redhat.com>
3400
3401         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
3402         warning with code disable.  Fix formatting.
3403
3404 2004-09-15  Steven Bosscher  <stevenb@suse.de>
3405
3406         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
3407         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
3408         after propagating into an ADDR_EXPR.
3409
3410 2004-09-15  Andrew Pinski  <apinski@apple.com>
3411
3412         PR rtl-opt/17427
3413         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
3414         Move it out of gcc_assert.
3415
3416 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3417
3418         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
3419         except.c, fold-const.c, function.c, langhooks.c, params.c,
3420         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
3421         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
3422         for quoting in diagnostics going through pretty-print.c.  Use ''
3423         for quoting in other diagnostic text.
3424         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
3425         translation.
3426         * Makefile.in (langhooks.o): Update dependencies.
3427         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
3428         formats.
3429
3430 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
3431
3432         * configure.ac: Check for COMDAT support.  Robustify check for
3433         SHF_MERGE support.
3434         * configure: Regenerated.
3435         * config.in: Likewise.
3436         * langhooks-def.h (lhd_comdat_group): New function.
3437         (LANG_HOOKS_COMDAT_GROUP): New macro.
3438         (LANG_HOOKS_DECLS): Use it.
3439         * langhooks.c (lhd_comdat_group): Define.
3440         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
3441         * output.h (named_section_flags): Make it a macro.
3442         (named_section_real): New function.
3443         (default_no_named_section): Add decl parameter.
3444         (default_elf_asm_named_section): Likewise.
3445         (default_coff_asm_named_section): Likewise.
3446         (default_pe_asm_named_section): Likewise.
3447         * target.h (gcc_target): Adjust type of named_section.
3448         * varasm.c (named_section_flags): Rename to named_section_real.
3449         Add decl parameter.
3450         (default_no_named_section): Add decl parameter.
3451         (default_elf_asm_named_section): Use COMDAT, if available.  Deal