OSDN Git Service

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