OSDN Git Service

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