OSDN Git Service

cc67fe2c2649de3a79a804054b5c72fc10ff2426
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
2
3         * function.c (combine_temp_slots, assign_parms,
4         expand_pending_sizes): Make them static.
5         * tree.h: Remove the corresponding prototypes.
6
7 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
8
9         * emit-rtl.c (copy_most_rtx): Remove.
10         * rtl.h: Remove the corresponding prototype.
11
12 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
13
14         * cfgloop.c (flow_loops_update): Remove.
15         * cfgloop.h: Remove the corresponding prototype.
16
17 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
18
19         * conflict.c (mark_reg, conflict_graph_compute): Remove.
20         * basic-block.h: Remove the prototype for
21         conflict_graph_compute.
22
23 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
24
25         * tree-if-conv.c (add_to_dst_predicate_list): Change the
26         second argument to basic_block.
27         (tree_if_convert_cond_expr): Update call sites.
28
29 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
30
31         * fold-const.c (pedantic_non_lvalue): Make it static.
32         * tree.h: Remove the corresponding prototype.
33
34 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
35
36         * optabs.c (prepare_operand): Make it static.
37         * optabs.h: Remove the corresponding prototype.
38
39 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
40
41         * reload1.c (reloads_conflict, gen_reload): Make them static.
42         * reload.h: Remove the corresponding prototypes.
43
44 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
45
46         * reload.c (refers_to_mem_for_reload_p,
47         refers_to_regno_for_reload_p): Make them static.
48         * reload.h: Remove the corresponding prototypes.
49
50 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
51             Eric Botcazou  <ebotcazou@libertysurf.fr>
52
53         PR target/18230
54         * doc/md.texi (SPARC constraints): Document 'Y' constraint.
55         * config/sparc/sparc-modes.def: Add vector modes of 4 and 8 bytes.
56         * config/sparc/sparc.c (sparc_vector_mode_supported_p): New function.
57         (TARGET_VECTOR_MODE_SUPPORTED_P): Set to sparc_vector_mode_supported_p.
58         (fp_zero_operand): Accept MODE_VECTOR_INT modes.
59         (input_operand): Accept CONST_VECTOR with MODE_VECTOR_INT modes.
60         (sparc_cannot_force_const_mem): Return false for CONST_VECTOR.
61         (sparc_init_modes): Set sparc_mode_class to SF_MODE or DF_MODE for
62         MODE_VECTOR_INT modes.
63         (sparc_extra_constraint_check): Add new constraint 'Y'.
64         * config/sparc/sparc.h: Define UNITS_PER_SIMD_WORD to 8 for TARGET_VIS.
65         * config/sparc/sparc.md (V32): New mode macro for 32-bit modes.
66         (V64): New mode macro for 64-bit modes.
67         (movsf): Use V32 for mode instead of SF.
68         (movsf_insn_vis): Use V32 for mode instead of SF.  Add 'Y' constraint
69         alongside 'G' constraint.
70         (movdf): Use V64 for mode instead of DF.
71         (movdf_insn_v9only_vis, modf_insn_sp64_vis): Use V64 for mode instead
72         of DF.  Add 'Y' constraint alongside 'G' constraint.
73         (multi-isn and misaligned mems DFmode splitters): Use V64 for mode
74         instead of DF.
75
76 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
77
78         * config/s390/s390.c (s390_select_ccmode): Return CCAPmode for
79         integer NEG and ABS.
80         * config/s390/s390.md ("*negdi2_64"): Fix op_type attribute.
81         ("*negdi2_31"): Reimplement using a splitter.
82         ("*negdi2_cc", "*negdi2_cconly"): New insns.
83         ("*negdi2_sign", "*negdi2_sign_cc"): Likewise.
84         ("*negsi2_cc", "*negsi2_cconly"): Likewise.
85         ("*negdf2_cc", "*negdf2_cconly"): Likewise.
86         ("*negsf2_cc", "*negsf2_cconly"): Likewise.
87         ("*absdi2_cc", "*absdi2_cconly"): New insns.
88         ("*absdi2_sign", "*absdi2_sign_cc"): Likewise.
89         ("*abssi2_cc", "*abssi2_cconly"): Likewise.
90         ("*absdf2_cc", "*absdf2_cconly"): Likewise.
91         ("*abssf2_cc", "*abssf2_cconly"): Likewise.
92         ("*negabsdi2_cc", "*negabsdi2_cconly"): New insns.
93         ("*negabsdi2_sign", "*negabsdi2_sign_cc"): Likewise.
94         ("*negabssi2_cc", "*negabssi2_cconly"): Likewise.
95         ("*negabsdf2_cc", "*negabsdf2_cconly"): Likewise.
96         ("*negabssf2_cc", "*negabssf2_cconly"): Likewise.
97
98 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
99
100         * config/s390/s390.c (s390_canonicalize_comparison): Reverse condition
101         when eliminating an UNSPEC_CMPINT.
102         (s390_secondary_input_reload_class): Fix test for CC register reload.
103         (s390_secondary_output_reload_class): Likewise.
104         (s390_expand_cmpmem): Swap operands.  Use gen_cmpint. 
105         * config/s390/s390.md ("*cmpint_si", "*cmpint_di"): Remove.
106         ("cmpint", "*cmpint_cc", "*cmpint_sign", "*cmpint_sign_cc"): New
107         insn patterns with splitters.
108
109 2004-11-09  David Edelsohn  <edelsohn@gnu.org>
110
111         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add EQ, GTU, and LTU.
112         * config/rs6000/rs6000.md (sCC): Split GTU and LTU patterns.
113
114 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
115
116         * tree-phinodes.c (phi_reverse): New.
117         * tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb):
118         Use it.
119         * tree-flow.h: Add a prototype for phi_reverse.
120
121 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
122
123         * tree-ssa-loop-ivopts.c: Fix a comment typo.
124
125 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
126
127         PR pch/14940
128         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __sparc__
129         definitions.
130
131 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
132
133         * builtins.c, c-common.c, c-decl.c, c-format.c: Say "argument"
134         instead of "arg" in diagnostics.
135
136 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
137
138         * builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,
139         c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c,
140         gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c,
141         tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
142         config/avr/avr.c, config/c4x/c4x.c, config/darwin.c,
143         config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c,
144         config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
145         config/iq2000/iq2000.c, config/m32r/m32r.c,
146         config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h,
147         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c,
148         config/ns32k/ns32k.c, config/rs6000/host-darwin.c,
149         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
150         config/sh/symbian.c, config/stormy16/stormy16.c,
151         config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %<
152         and %> as appropriate.  Use %' as apostrophe in diagnostics where
153         applicable.  Use %< and %> in place of '' quotes where applicable.
154         Use %qs in place of %<%s%>.  Consistently quote __builtin function
155         names.
156
157 2004-11-09  Hans-Peter Nilsson  <hp@bitrange.com>
158
159         * gdbinit.in (pbb, pbm): New macros.
160
161 2004-11-08 Jeff Law  <law@redhat.com>
162
163         * cfg.c (redirect_edge_succ_nodup): Use find_edge rather than
164         implementing it inline.
165
166         * cfganal.c (find_edge): Search pred->succs or succ->preds,
167         whichever is shorter.
168
169 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
170
171         * passes.c (rest_of_handle_jump): Remove dead code.
172
173 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
174
175         * tree-cfg.c (thread_jumps): Speed up by keeping a pointer to
176         the last used element in the worklist.
177
178 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
179
180         * tree-inline.c (remap_save_expr): Make it static.
181         * tree-inline.h: Remove the corresponding prototype.
182
183 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
184
185         * tree-ssa-loop-niter.c (upper_bound_in_type,
186         lower_bound_in_type): Make them static.
187         * tree.h: Remove the corresponding prototypes.
188
189 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
190
191         * tree-ssa-live.c (tpa_init, pop_best_coalesce): Make them
192         static.
193         * tree-ssa-live.h: Remove the corresponding prototypes.
194
195 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
196
197         * tree-if-conv.c (tree_if_conversion): Make it static.
198         * tree-flow.h: Remove the corresponding prototype.
199
200 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
201
202         * tree-ssa-operands.c (build_ssa_operands): Make it static.
203         * tree-flow.h: Remove the corresponding prototype.
204
205 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
206
207         PR tree-opt/18299
208         * tree-inline.c (copy_body_r): Change "t = t" to empty
209         statement instead of "t".
210
211 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
212
213         * modulo-sched.c (create_partial_schedule,
214         free_partial_schedule, reset_partial_schedule,
215         ps_add_node_check_conflicts, rotate_partial_schedule): Make
216         them static.
217
218 2004-11-08  Richard Henderson  <rth@redhat.com>
219
220         * expmed.c (extract_force_align_mem_bit_field): Correct handling at
221         the end of a page.
222
223 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
224
225         * sched-deps.c (add_insn_mem_dependence): Make it static.
226         * sched-int.h: Remove the corresponding prototypes.
227
228 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
229
230         * flow.c (allocate_bb_life_data): Make it static.
231         * basic-block.h: Remove the corresponding prototype.
232
233 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
234
235         * calls.c (split_complex_values, split_complex_types): Make
236         them static.
237         * expr.h: Remove the corresponding prototypes.
238
239 2004-11-08  Richard Earnshaw  <rearnsha@arm.com>
240
241         * arm.c (arm_handle_notshared_attribute): Wrap declaration and use
242         with #if TARGET_DLLIMPORT_DECL_ATTRIBUTES.
243
244 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
245
246         * tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if"
247         statements that always trigger.
248
249 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
250
251         * tree-cfg.c, tree-if-conv.c, tree-into-ssa.c,
252         tree-scalar-evolution.c, tree-ssa-loop-im.c,
253         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c,
254         tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where
255         appropriate.
256
257 2004-11-08  Ben Elliston  <bje@au.ibm.com>
258
259         * cgraph.h (cgraph_calls_p): Remove.
260         * cgraph.c (cgraph_calls_p): Likewise.
261
262         * varray.h (varray_copy): Remove.
263         * varray.c (varray_copy): Likewise.
264
265 2004-11-07  Andrew Pinski  <pinskia@physics.uc.edu>
266
267         PR target/18269
268         * config/darwin.c (machopic_indirect_data_reference):
269         Call gen_macho_high and gen_macho_low instead of
270         checking the mode and calling gen_macho_high_di directly.
271         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
272         * config/rs6000/rs6000.md: Move most of TARGET_MACHO expand/insns
273         to darwin.md.
274         (movdf_low, movsf_low, movsf_low_st, movsi_low, macho_correct_pic,
275         load_macho_picbase, macho_low, macho_high): Removed.
276         (builtin_setjmp_receiver): Call gen_macho_high and
277         gen_macho_low instead of checking the mode and calling
278         gen_macho_high_di directly.
279         * config/rs6000/darwin.md (load_macho_picbase_di): Use the MD constant.
280         (movdf_low_si, movsf_low_si, movsf_low_st_si, movsi_low_st):
281         Moved from rs6000.md.
282         (macho_high): New expander.
283         (macho_high_si): Renamed version of macho_high from rs6000.md.
284         (macho_low): New expander.
285         (macho_low_si): Renamed version of macho_low from rs6000.md.
286         (load_macho_picbase): New expander.
287         (load_macho_picbase_si): Renamed version of load_macho_picbase
288         from rs6000.md.
289         (macho_correct_pic): New expander.
290         (macho_correct_pic_si): Renamed version of macho_correct_pic
291         from rs6000.md.
292
293 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
294
295         * c-decl.c (finish_struct): Use complete sentences for diagnostic
296         for structures or unions with no members or named members.
297
298 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
299
300         * c-typeck.c (build_unary_op): Replace unreachable diagnostic for
301         taking address of bit-field by assertion.
302
303 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
304
305         * config/s390/s390.md (attribute "op_type"): Default to "NN".
306         (attribute "atype"): Default to "agen".
307         (attribute "length"): Default to 6.
308         (define_asm_attibutes): Remove.
309         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
310         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf",
311         "*clc", "*mvc", "*nc", "*oc", "*xc", "*xc_zero"):
312         Do not set type attribute to "cs" where already default.
313         ("*cmpint_si", "*cmpint_di", "fix_truncdfsi2_ibm", "floatsidf2_ibm",
314         "*negdi2_31"):
315         Do not set type attribute to "other" where already default.
316         ("movti", "*movdi_64", "*movdi_31", "*movdf_31", 
317         "*strlendi", "*strlensi",
318         "*movmem_long_64", "*movmem_long_31",
319         "*clrmem_long_64", "*clrmem_long_31",
320         "*cmpmem_long_64", "*cmpmem_long_31",
321         "*cmpint_si", "*cmpint_di", 
322         "addti3", "*adddi3_31z", "*adddi3_31", 
323         "subti3", "*subdi3_31z", "*subdi3_31", "*negdi2_31",
324         "*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg",
325         "fix_truncdfsi2_ibm", "floatsidf2_ibm", "extendsfdf2_ibm",
326         "*pool_entry", "pool_align", "pool_section_start",
327         "pool_section_end", "main_pool", "reload_base_31", "pool"):
328         Do not set op_type attribute to "NN" where already default.
329         ("*extractqi", "*extracthi", "*zero_extendhisi2_31", 
330         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
331         "fix_truncdfsi2_ibm", "floatsidf2_ibm"): 
332         Do not set atype attribute to "agen" where already default.
333         ("*movmem_short", "*clrmem_short", "*cmpmem_short"): Don't set op_type.
334
335 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
336
337         * config/mips/t-iris6 (tp-bit.c): Fix target filename.
338
339 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
340
341         PR target/16830
342         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define the
343         R3000 and R4000 macros on IRIX.
344
345 2004-11-06  Andreas Schwab  <schwab@suse.de>
346
347         PR target/16286
348         * config/rs6000/altivec.h: Replace bool by __bool and pixel by
349         __pixel.
350
351 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
352
353         * tree-ssa-copyrename.c (rename_ssa_copies): Make it static.
354
355 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
356
357         * config/s390/2064.md ("z_int", "z_agen"): Ensure the condition
358         matches no insns already matched by other reservations.
359         * config/s390/2084.md ("x_int", "x_agen"): Ensure the condition
360         matches no insns already matched by other reservations.
361         ("x_ss"): Remove, replace by ...
362         ("x_cs"): ... this new reservation.  Check type instead of op_type.
363         Update bypasses to use x_cs instead of x_ss.
364         ("x_nn"): Remove, replace by ...
365         ("x_other"): ... this new reservation.  Check type instead of op_type.
366         Add x_other and x_branch to bypasses.
367         ("x_vs"): New reservation.
368         * config/s390/s390.md (attribute "type"): Default according to op_type.
369         ("*execute"): Set type to "cs".
370
371 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
372
373         * fold-const.c (non_lvalue): Don't construct NON_LVALUE_EXPR
374         if we are in GIMPLE.
375
376 2004-11-06  Hans-Peter Nilsson  <hp@bitrange.com>
377
378         PR rtl-optimization/17933
379         * rtlanal.c (dead_or_set_regno_p): Break out common code to...
380         (covers_regno_p): New function.  Handle SETs of PARALLEL,
381         and defer the rest to...
382         (covers_regno_no_parallel_p): New function.
383
384 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
385
386         * config/sparc/sparc.c (function_arg_record_value_1): Skip
387         fields with zero length.
388         (function_arg_record_value_2): Likewise.
389         (function_arg_record_value_3): Use smallest_mode_for_size
390         instead of mode_for_size.
391         (function_arg_union_value): Return naked register for unions
392         with zero length.
393
394 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
395
396         * config/sparc/sparc.c (scan_record_type): Handle vector types.
397         (function_arg_slotno): Handle vector types specially.
398         (function_arg_record_value_1): Split fields with vector type and
399         BLKmode into their subparts.
400         (function_arg_record_value_2): Likewise.  Be prepared to handle
401         more than 2 registers per field.
402         (function_arg_union_value): Increment regno inside the loop.
403         (function_arg_vector_value): New function.
404         (function_arg): Use it to split fields with vector type and
405         BLKmode into their subparts and build a PARALLEL.  Treat
406         other vector types like floats.
407         (function_value): Likewise.
408         (sparc_pass_by_reference): Handle vector types.
409         (sparc_return_in_memory): Likewise.
410
411 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
412
413         * tree-cfg.c (find_taken_edge_cond_expr): Remove an "if"
414         statement that never triggers.
415
416 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
417
418         * config/s390/2064.md ("z_o2", "z_o3"): Remove.
419         * config/s390/2084.md ("x_o2", "x_o3"): Remove.
420         ("x_fdivd"): Use also for fsqrtd type.
421         ("x_fdivs"): Use also for fsqrts type.
422         * config/s390/s390.md (attribute "type"): Remove "o2" and "o3" types.
423         ("fix_truncdfsi2_ieee"): Set type to "ftoi".
424         ("fix_truncdfsi2_ibm"): Set type to "other".
425         ("floatdidf2", "floatdisf2"): Do not clobber CC.
426         ("floatsidf2", "floatsidf2_ieee"): Likewise.
427         ("floatsisf2", "floatsisf2_ieee"): Likewise.
428         ("truncdfsf2", "truncdfsf2_ieee"): Only allow "register_operand".
429         ("truncdfsf2_ibm"): Only allow "nonimmediate_operand".  Use LER
430         instead of LRER. 
431         ("extendsfdf2_ibm"): Do not set atype.  Set type to "floads".
432         ("sqrtdf2"): Set type to "fsqrtd".
433         ("sqrtsf2"): Set type to "fsqrts".
434
435 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
436
437         * tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a
438         pointer to the last PHI node in the new PHI chain.
439
440 2004-11-06  Kaz Kojima  <kkojima@gcc.gnu.org>
441
442         * config/sh/sh.c (prepare_move_operands): Emit a use of r12
443         for non-PIC TLS_MODEL_INITIAL_EXEC case.
444
445 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
446
447         * expmed.c: Fix a comment typo.
448
449 2004-11-06  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
450
451         PR target/18106
452         * config/i386/cygming.h
453         [HAVE_GAS_WEAK] (ASM_WEAKEN_LABEL): Macro defined.
454
455 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
456
457         * config/sh/sh4a.md: Fix copyright.
458
459 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
460
461         * config/rs6000/darwin.md, config/sh/sh4a.md: Replace GNU CC
462         with GCC.
463
464 2004-11-05  David Edelsohn  <edelsohn@gnu.org>
465
466         * config/rs6000/rs6000.md (scc patterns): Replace subfc with subf
467         when carry not used.  Suggested by Torbjorn Granlund.
468
469         * config/rs6000/rs6000.c (rs6000_emit_move): Don't force_reg
470         operand[1] unnecessarily.  Suggested by Eric Christopher.
471         (rs6000_adjust_cost): Increase latency of store to wider load.
472         (rs6000_rtx_costs): mulli only allows 16-bit constants.
473
474 2004-11-05  Stan Shebs  <shebs@apple.com>
475
476         * config/rs6000/rs6000.c (machopic_output_stub): Output
477         ldu instead of lwzu for 64-bit stubs.
478
479 2004-11-05  Richard Henderson  <rth@redhat.com>
480
481         * config/alpha/alpha.c (alpha_expand_unaligned_load): Special case
482         size 2 with BWX.
483         (alpha_expand_unaligned_store): Likewise.
484
485 2004-11-05  Richard Henderson  <rth@redhat.com>
486
487         * expmed.c (extract_force_align_mem_bit_field): New.
488         (extract_split_bit_field): Call it.
489
490 2004-11-05  Richard Henderson  <rth@redhat.com>
491
492         * ia64.md (UNSPEC_SHRP): New.
493         (dshift_count_operand): New.
494         (ashrti3, ashrti3_internal, lshrti3, lshrti3_internal, shrp): New.
495         * ia64.c (rtx_needs_barrier): Handle UNSPEC_SHRP.
496
497 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
498
499         * c-typeck.c (output_init_element): Return early if value is
500         error_mark_node.
501
502 2004-11-05  James E Wilson  <wilson@specifixinc.com>
503
504         * invoke.texi (-fno-guess-branch-probability): Rewrite.
505
506         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC_GR_SPILL): Change
507         1 to UNSPEC_GR_SPILL.
508
509 2004-11-05  Andreas Krebbel  <krebbel1@de.ibm.com>
510
511         * config/s390/s390.c (s390_fixed_condition_code_regs): New function.
512         (TARGET_FIXED_CONDITION_CODE_REGS): Macro defined.
513
514 2004-11-05  Nathan Sidwell  <nathan@codesourcery.com>
515
516         * bitmap.h (enum bitmap_bits): Remove.
517         (bitmap_operation): Remove.
518         (bitmap_and, bitmap_and_into, bitmap_and_compl,
519         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
520         bitmap_xor_into): Prototype.
521         * bitmap.c (bitmap_elt_insert_after, bitmap_elt_clear_from): New.
522         (bitmap_operation): Remove.
523         (bitmap_and, bitmap_and_into, bitmap_and_compl,
524         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
525         bitmap_xor_into): New.
526         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Adjust.
527
528         PR tree-optimization/18307
529         * tree-ssa-alias.c (merge_pointed_to_info): Protected against DEST
530         and ORIG being the same node.
531
532 2004-11-04  Geoffrey Keating  <geoffk@apple.com>
533
534         * Makefile.in (distclean): Don't delete nonexistent fixinc/ directory.
535         (install-mkheaders): Install the version built for the
536         host, not for the build machine.
537         * configure.ac: Always run fixincludes.
538         (all_outputs): Remove mkheaders.
539         * configure: Regenerate.
540         * fixinc.in: Move to fixincludes/.
541         * mkfixinc.sh: Likewise.
542         * mkheaders.in: Likewise.
543         * README-fixinc: Likewise.
544
545 2004-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
546
547         PR target/18263
548         * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the
549         equivalent on the A4.
550
551 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
552
553         * doc/c-tree.texi, doc/cfg.texi, doc/contrib.texi, doc/cpp.texi,
554         doc/cppopts.texi, doc/extend.texi, doc/fragments.texi,
555         doc/frontends.texi, doc/gcov.texi, doc/hostconfig.texi,
556         doc/implement-c.texi, doc/install.texi, doc/invoke.texi,
557         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
558         doc/portability.texi, doc/rtl.texi, doc/sourcebuild.texi,
559         doc/standards.texi, doc/tm.texi, doc/tree-ssa.texi,
560         doc/trouble.texi: Correct end-of-sentence markup and markup of
561         "etc.", "e.g." and "i.e.".  Use @code in various places where
562         appropriate.
563
564 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
565
566         * doc/c-tree.texi, doc/cfg.texi, doc/extend.texi, doc/gty.texi,
567         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/passes.texi,
568         doc/rtl.texi, doc/tm.texi, doc/tree-ssa.texi: Remove trailing
569         whitespace.
570
571 2004-11-04  Mark Mitchell  <mark@codesourcery.com>
572
573         * config/arm/arm.c (arm_handle_notshared_attribute): New function.
574         * doc/extend.texi: Document "notshared" attribute.
575         
576 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
577
578         * tree-phinodes.c (make_phi_node): Make it static.
579         * tree.h: Remove the prototypes for make_phi_node.
580
581 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
582
583         * stmt.c (expand_asm, expand_asm_operands): Make them static.
584         * tree.h: Remove the prototypes for expand_asm and
585         expand_asm_operands.
586
587 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
588
589         * passes.c (rest_of_compilation): Make it static.
590         * toplev.h: Remove the prototype for rest_of_compilation.
591
592 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
593
594         * jump.c (cleanup_barriers): Use delete_insn instead of
595         delete_barrier.
596         (delete_barrier): Remove.
597         * rtl.h: Remove the corresponding prototype.
598
599 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
600
601         * expr.c (mostly_zero_p): Make it static.
602         * tree.h: Remove the prototype for mostly_zeros_p.
603
604 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
605
606         * cfgrtl.c (force_nonfallthru_and_redirect): Make it static.
607
608 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
609
610         * builtins.c (expand_builtin_return_addr,
611         expand_builtin_longjmp, expand_builtin_trap): Make them static.
612         * expr.h: Remove the prototypes for expand_builtin_longjmp and
613         expand_builtin_trap.
614         * tree.h: Remove the prototype for expand_builtin_return_addr.
615
616 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
617
618         * tree-cfg.c (find_taken_edge): Reject VAL begin NULL.
619         * tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge
620         with VAL being NULL.
621
622 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
623
624         * cfghooks.c (delete_basic_block): Remove code to truncate
625         edge vectors.
626
627 2004-11-04  Andrew Pinski  <pinskia@physics.uc.edu>
628
629         * flow.c (init_propagate_block_info): Change the type of i to 
630         unsigned.
631
632 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
633
634         PR tree-optimization/18184
635         * c-typeck.c (comptypes): Do not treat pointers of different
636         modes or alias-all flags as equivalent.
637         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Likewise.
638
639 2004-11-04  Joseph S. Myers  <joseph@codesourcery.com>
640
641         * doc/gty.texi, doc/makefile.texi, doc/sourcebuild.texi: Don't
642         reference specific C parser files in examples.
643
644 2004-11-04  Richard Sandiford  <rsandifo@redhat.com>
645
646         PR target/15342
647         * regrename.c (scan_rtx): Treat the destinations of SETs and CLOBBERs
648         as OP_INOUT if the instruction is predicated.
649
650 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
651
652         * bitmap.h: Fix a comment typo.  Follow spelling conventions.
653         * tree-vectorizer.c: Fix a comment typo.
654
655 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
656
657         * sdbout.c (SDB_GENERATE_FAKE): Remove.
658         (gen_fake_label): Don't use SDB_GENERATE_FAKE.
659         * system.h: Poison SDB_GENERATE_FAKE.
660         * doc/tm.texi (SDB_GENERATE_FAKE): Remove.
661
662 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
663
664         * config/s390/s390.md ("*addsi3_sign"): Use canonical RTL.
665
666 2004-11-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
667
668         PR other/18277
669         * gthr-posix.h (__gthread_recursive_mutex_init_function): Revert
670         2004-10-29 patch
671
672 2004-11-04  Nathan Sidwell  <nathan@codesourcery.com>
673
674         * predict.c (propagate_freq): Make bitno unsigned. Move
675         npredecessors update out of loop.
676
677         * bitmap.h (bitmap_iterator): Remove word_bit and bit
678         fields. Rename others.
679         (bmp_iter_common_next_1, bmp_iter_single_next_1,
680         bmp_iter_single_init, bmp_iter_end_p, bmp_iter_single_next,
681         bmp_iter_and_not_next_1, bmp_iter_and_not_init,
682         bmp_iter_and_not_next, bmp_iter_and_next_1, bmp_iter_and_init,
683         bmp_iter_and_next): Remove.
684         (bmp_iter_set_init, bmp_iter_and_init, bmp_iter_and_compl_init,
685         bmp_iter_next, bmp_iter_set, bmp_iter_and, bmp_iter_and_compl):
686         New.
687         (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_IN_BITMAP,
688         EXECUTE_IF_AND_COMPL_IN_BITMAP): Adjust.
689
690         * bitmap.h (bitmap_a_or_b, bitmap_a_and_b): Remove.
691         * df.c (dataflow_set_a_op_b): Use bitmap_and, bitmap_ior,
692         bitmap_and_into, bitmap_ior_into as appropriate.
693         * except.c (remove_eh_handler): Likewise.
694         * global.c (modify_bb_reg_pav, make_accurate_live_analysis): Likewise.
695         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
696         * tree-ssa-alias.c (merge_pointed_to_info): Likewise.
697         * tree-ssa-live.h (live_merge_and_clear): Likewise.
698         * tree-ssa-loop-ivopts.c (find_best_candidate, try_add_cand_for):
699         Likewise.
700
701         * bitmap.c (bitmap_print): Make bitno unsigned.
702         * bt-load.c (clear_btr_from_live_range,
703         btr_def_live_range): Likewise.
704         * caller-save.c (save_call_clobbered_regs): Likewise.
705         * cfganal.c (compute_dominance_frontiers_1): Likewise.
706         * cfgcleanup.c (thread_jump): Likewise.
707         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
708         * conflict.c (conflict_graph_compute): Likewise.
709         * ddg.c (add_deps_for_use): Likewise.
710         * df.c (df_refs_update): Likewise.
711         * except.c (remove_eh_handler): Likewise.
712         * flow.c (verify_local_live_at_start, update_life_info,
713         initialize_uninitialized_subregs, propagate_one_insn,
714         free_propagate_block_info, propagate_block, find_use_as_address,
715         reg_set_to_hard_reg_set): Likewise.
716         * gcse.c (clear_modify_mem_tables): Likewise.
717         * global.c (global_conflicts, build_insn_chain): Likewise.
718         * ifcvt.c (dead_or_predicable): Likewise.
719         * local-alloc.c (update_equiv_regs): Likewise.
720         * loop.c (load_mems): Likewise.
721         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs):
722         Likewise.
723         * ra-rewrite.c (reloads_to_loads, rewrite_program2, actual_spill):
724         Likewise.
725         * reload1.c (order_regs_for_reload, finish_spills): Likewise.
726         * sched-deps.c (sched_analyze_insn, free_deps): Likewise.
727         * sched-rgn.c (propagate_deps
728         * tree-cfg.c (tree_purge_all_dead_eh_edges): Likewise.
729         * tree-dfa.c (dump_dfa_stats
730         tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
731         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags):
732         Likewise.
733         * tree-outof-ssa.c (coalesce_ssa_name, coalesce_vars,
734         free_temp_expr_table, find_replaceable_exprs): Likewise.
735         * tree-sra.c (scan_function, scalarize_parms): Likewise.
736         * tree-ssa-alias.c (init_alias_info,
737         compute_points_to_and_addr_escape,
738         compute_flow_sensitive_aliasing, maybe_create_global_var): Likewise.
739         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Likewise.
740         * tree-ssa-live.c (new_tree_live_info, live_worklist,
741         calculate_live_on_entry, calculate_live_on_exit, compare_pairs,
742         sort_coalesce_list, build_tree_conflict_graph, dump_live_info
743         tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
744         tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
745         add_call_read_ops): Likewise.
746         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Likewise.
747         * tree-ssa-live.h (num_var_partitions): Return unsigned.
748
749 2004-11-03  Dorit Naishlos  <dorit@il.ibm.com>
750
751         PR tree-optimization/18009
752         * tree-vectorizer.h (enum dr_alignment_support): New type.
753         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): Removed.
754         (LOOP_UNALIGNED_DR): replaced with LOOP_VINFO_UNALIGNED_DR and holds a
755         single data_reference (instead of a varray of references).
756         * tree-vectorizer.c (new_loop_vec_info): Likewise.
757         (vect_gen_niters_for_prolog_loop): Likewise.
758         (vect_update_inits_of_drs): Likewise.
759
760         (vect_update_inits_of_drs): Setting of DR_MISALIGNMENT moved to
761         vect_enhance_data_refs_alignment.
762         (vect_do_peeling_for_alignment): Likewise.
763         (vect_enhance_data_refs_alignment): Decide if and by how much to peel;
764         this functionality used to be in vect_analyze_data_refs_alignment.
765         Also update DR_MISALIGNMENT due to peeling; this functionality used to
766         be in vect_update_inits_of_drs and vect_do_peeling_for_alignment).
767         (vect_analyze_data_refs_alignment): Decision on whether and by how much
768         to peel moved to vect_enhance_data_refs_alignment. Call 
769         vect_supportable_dr_alignment.
770
771         (vect_compute_data_ref_alignment): Set STMT_VINFO_VECTYPE.
772         (vect_compute_data_refs_alignment): Return bool. Consider return value
773         of vect_compute_data_ref_alignment and return true/false accordingly.
774         (vect_enhance_data_refs_alignment): Consider return value of 
775         vect_compute_data_refs_alignment and return true/false accordingly.
776
777         (vect_supportable_dr_alignment): New function.
778         (vectorizable_store): Call vect_supportable_dr_alignment.
779         (vectorizable_load): Call vect_supportable_dr_alignment. Alignment
780         support checks moved from here to vect_supportable_dr_alignment.
781
782         (vect_transform_loop): Avoid 80 columns overflow.
783
784 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
785
786         * timevar.c (timevar_enable): Change from
787         static.
788         (timevar_push): Rename to ...
789         (timevar_push_1): this and remove the
790         enabled check.
791         (timevar_pop): Rename to ...
792         (timevar_pop_1): this and remove the
793         enabled check.
794         * timevar.h (POP_TIMEVAR_AND_RETURN): Use do/while loops.
795         (timevar_pop): New macro.
796         (timevar_push): New macro.
797         (timevar_enable): Declare.
798
799 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
800
801         * config/darwin.h (REAL_LIBGCC_SPEC): Define to use shared
802         libgcc for shared libraries.
803
804 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
805
806         * config/s390/s390-protos.h (s390_split_access_reg): Add prototype.
807         * config/s390/s390.c (s390_split_access_reg): New function.
808         (regclass_map): Add access registers.
809         (get_thread_pointer): Use access register instead of UNSPEC_TP.
810         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Set to 38.
811         (ACCESS_REGNO_P, ACCESS_REG_P): New macros.
812         (TP_REGNUM): New define.
813         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
814         REG_ALLOC_ORDER): Add access registers.
815         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
816         CANNOT_CHANGE_MODE_CLASS): Support access registers.
817         (enum reg_class): Add ACCESS_REGS.
818         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
819         (REG_CLASS_FROM_LETTER): Add 't' constraint.
820         (REGISTER_NAMES): Add access registers.
821         * config/s390/s390.md (UNSPEC_TP): Remove.
822         ("*movdi_64"): Add access register alternatives.  Provide splitters
823         to split DImode access register <-> GPR moves into SImode moves.
824         ("*movsi_zarch", "*movsi_esa"): Add access register alternatives.
825         ("movstrictsi"): Likewise.
826         ("get_tp_64", "get_tp_31"): Reimplement using access registers.
827         ("set_tp_64", "set_tp_31"): Likewise.
828         ("*set_tp"): New insn.
829
830 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
831
832         * tree-phinodes.c (resize_phi_node): Copy only a portion of
833         the PHI node currently in use.
834
835 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
836
837         PR tree-opt/18231
838         * tree.c (staticp) <case FUNCTION_DECL>: Nested functions are static
839         also.
840
841 2004-11-03  Andrew MacLeod  <amacleod@redhat.com>
842
843         PR tree-optimization/18270
844         * tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming
845         abnormal edges, commit all pending stmts on incoming edges.
846
847 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
848
849         * tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not
850         cause extra costs.  Generate canonical RTL.
851
852 2004-11-02  Daniel Berlin  <dberlin@dberlin.org>
853
854         * lambda-code.c (lambda_compute_auxillary_space): Update comments.
855         (lambda_compute_target_space). Ditto.
856         * lambda.h (lambda_trans_matrix): Ditto.
857         (lambda_linear_expression): Ditto.
858         (lambda_body_vector): Ditto.
859         (lambda_loopnest): Ditto.
860         * tree-loop-linear.c (gather_interchange_stats): Combine tests,
861         update comments, and remove pointless addition of 0.
862         (linear_transform_loops): Update comments.
863
864 2004-11-03  Sebastian Pop  <pop@cri.ensmp.fr>
865
866         * tree.c (tree_fold_gcd): Use FLOOR_MOD_EXPR instead of
867         CEIL_MOD_EXPR.
868
869 2004-11-03 Jeff Law  <law@redhat.com>
870
871         * predict.c (struct block_info_def): Kill "tovisit" field.
872         (propagate_freq): Accept new "tovisit" parameter.  Change
873         read/write access methods for "tovisit" to check the "tovisit"
874         bitmap instead of a bit in block_info_def.
875         (estimate_loops_at_level): Allocate "tovisit" bitmap.  Pass
876         it to propagate_freq.
877
878         * stmt.c (expand_case): Speed up code to detect duplicate case
879         label targets and count unique case label targets.
880
881 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
882
883         * cppdefault.c, cppdefault.h, timevar.h: Update copyright.
884
885 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
886
887         * bitmap.h, dbxout.c, tree-mudflap.c: Fix comment formatting.
888
889 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
890
891         * tree-cfg.c (find_taken_edge): Abort if we are given a
892         statement that is neither COND_EXPR nor SWITCH_EXPR.
893
894 2004-11-02  Zdenek Dvorak  <dvorakz@suse.cz>
895
896         * fold-const.c (fold): Reassociate also (x - mult) + mult and
897         (mult - x) + mult.  Cast operands of expression after applying
898         distributive law to the correct types.  Apply distributive law
899         to a * c - b * c for all non-float types.
900
901 2004-11-02  Geoffrey Keating  <geoffk@apple.com>
902
903         * configure.ac: Don't clear STMP_FIXINC or STMP_FIXPROTO just
904         because we don't want to run them now; instead, set them to
905         stmp-install-fixproto or stmp-install-fixinc.
906         * Makefile.in (stmp-install-fixproto): New.
907         (stmp-install-fixinc): New.
908         * configure: Regenerate.
909
910 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
911
912         * flow.c (init_propagate_block_info): Use bitmap_empty_p on result
913         of bitmap_xor.
914
915 2004-11-02  Ziemowit Laski  <zlaski@apple.com>
916
917         * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
918         (c_types_compatible_p): Move function definition...
919         * c-objc-common.c (c_types_compatible_p): ...here.
920         * c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from
921         c-lang.c.
922
923 2004-11-02  Steven Bosscher  <stevenb@suse.de>
924
925         * cfgloop.h (struct loop): Update comment.
926         * cse.c (cse_main): Remove obsolete comment.
927
928         * expr.h (gen_cond_trap): Move prototype under functions provided
929         by optabs.c.
930         (canonicalize_condition, get_condition): Move to...
931         * rtl.h (canonicalize_condition, get_condition): ...here.
932         (branch_target_load_optimize): Add comment that this function is
933         in bt-load.c.
934         * loop.c (canonicalize_condition, get_condition): Move to...
935         * rtlanal.c (canonicalize_condition, get_condition): ...here.
936         * sched-deps.c (get_condition): Rename to sched_get_condition.
937         (add_dependence): Update this caller.
938  
939 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
940
941         PR tree-opt/16808
942         * tree-ssa.c (replace_immediate_uses): If we call fold_stmt, make sure
943         that the vops get marked for renaming.
944
945 2004-11-02  Andreas Krebbel  <krebbel1@de.ibm.com>
946
947         * config/s390/s390.md ("movcc"): Set type attribute.
948
949 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
950
951         * tree-phinodes.c (add_phi_arg): Add an assertion that the
952         edge already exists.
953
954 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
955
956         * tree-phinodes.c (remove_phi_arg_num): Do not zero the
957         element that's being removed.
958
959 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
960
961         * tree-ssa-threadupdate.c (copy_phis_to_block): Install PHI
962         arguments using PENDING_STMT.
963         (thread_block): Call copy_phis_to_block after redirecting an
964         edge.
965
966 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
967
968         * bitmap.h (bitmap_and, bitmap_and_into, bitmap_and_compl,
969         bitmap_and_compl_into, bitmap_ior, bitmap_iot_into,
970         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): Produce void.
971         (bitmap_ior_and_compl_into): Produce bool.
972         (bitmap_union_of_diff): Rename to ...
973         (bitmap_ior_and_compl): ... here. Produce bool.
974         * bitmap.c (bitmap_ior_and_compl_into): Return bool. Use
975         bitmap_operation directly.
976         (bitmap_union_of_diff): Rename to ...
977         (bitmap_ior_and_compl): ... here. Return bool, use
978         bitmap_operation directly.
979         * df.c (df_rd_transfer_function): Use bitmap_ior_and_compl.
980         (df_ru_transfer_function, df_lr_transfer_function): Likewise.
981         * global.c (modify_bb_reg_pav): Likewise.
982
983         * bitmap.h (bitmap_equal_p): Return bool.
984         (bitmap_intersect_p, bitmap_intersect_compl_p): Declare.
985         * bitmap.c (bitmap_equal_p): Return bool. Compare directly.
986         (bitmap_intersect_p, bitmap_intersect_compl_p): New.
987         * flow.c (calculate_global_regs_live): Use bitmap_intersect_p and
988         bitmap_intersect_compl_p.
989         * ifcvt (dead_or_predicable): Likewise.
990
991 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
992
993         PR rtl-optimization/17104
994         * config/rs6000/rs6000.c (rs6000_emit_move): Don't wrap small
995         loads in zero_extend.
996
997 2004-11-02  Danny Smith  <dannysmith@users.sourceforge.net>
998
999         PR debug/18242
1000         * toplev.c (debug_type_names): Remove "dwarf-1".
1001
1002 2004-11-02  Ben Elliston  <bje@au.ibm.com>
1003
1004         * timevar.h (timevar_get): Remove. 
1005         * timevar.c (timevar_get): Remove unused function.
1006
1007 2004-11-02  Joseph S. Myers  <joseph@codesourcery.com>
1008
1009         * doc/include/texinfo.tex: Update from Texinfo CVS.
1010
1011 2004-11-02  Ben Elliston  <bje@au.ibm.com>
1012
1013         * cppdefault.h (cpp_SYSROOT): Remove.
1014         * cppdefault.c (cpp_SYSROOT): Likewise.
1015
1016 2004-11-01  Andrew MacLeod  <amacleod@redhat.com>
1017
1018         PR tree-optimization/16447
1019         * tree-cfg.c (bsi_commit_one_edge_insert): Rename from 
1020         bsi_commit_edge_inserts_1, and make funtion external.  Return new block.
1021         (bsi_commit_edge_inserts): Use renamed bsi_commit_one_edge_insert.
1022         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Enable listing.
1023         * tree-flow.h (bsi_commit_one_edge_insert): Extern decl.
1024         * tree-outof-ssa.c (rewrite_trees): Don't commit edges here.
1025         (same_stmt_list_p): New.  Return TRUE if edge is to be forwarded.
1026         (identical_copies_p): New.  Return true is two copies are the same.
1027         (identical_stmt_lists_p): New.  Return true if stmt lists are the same.
1028         (analyze_edges_for_bb): New.  Determine how best to insert edge stmts 
1029         for a basic block.
1030         (perform_edge_inserts): New.  Determine what to do with all stmts that
1031         have been inserted on edges.
1032         (remove_ssa_form):  Analyze and commit edges from here.
1033
1034 2004-11-01  Andrew Pinski  <pinskia@physics.uc.edu>
1035
1036         PR bootstrap/18232
1037         * bitmap.h (bmp_iter_end_p): Take a const pointer instead of a struct.
1038         (EXECUTE_IF_SET_IN_BITMAP): Update call to bmp_iter_end_p.
1039         (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
1040         (EXECUTE_IF_AND_IN_BITMAP): Likewise.
1041
1042 2004-11-01  Joseph S. Myers  <joseph@codesourcery.com>
1043
1044         PR c/18239
1045         * c-decl.c (get_parm_info): Allow FUNCTION_DECLs to appear amongst
1046         parameter declarations.
1047
1048 2004-11-01  Andreas Krebbel  <krebbel1@de.ibm.com>
1049
1050         * config/s390/s390.c (regclass_map): Put reg 33 (cc) to CC_REGS group.
1051         (s390_secondary_input_reload_class)
1052         (s390_secondary_output_reload_class): Use GENERAL_REGS to reload a cc
1053         register.
1054         (s390_expand_cmpmem): Enable cmpmem implementation.
1055         * config/s390/s390.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
1056         Added three new classes: CC_REGS, ADDR_CC_REGS, GENERAL_CC_REGS.
1057         (REG_CLASS_FROM_LETTER): New constraint 'c' added.
1058         * config/s390/s390.md ("movcc"): New insn pattern.
1059         * doc/md.texi: Document 'c' constraint for s390.
1060
1061 2004-11-01  Nathan Sidwell  <nathan@codesourcery.com>
1062
1063         PR c++/18064
1064         * doc/extend.texi (Deprecated Features): Deprecate G++ covariant
1065         extension.
1066
1067 2004-10-16  Daniel Berlin  <dberlin@dberlin.org>
1068
1069         Fix PR tree-optimization/17672
1070         Fix PR tree-optimization/18168
1071         
1072         * lambda-code.c (lambda_lattice_compute_base): Fix reversed
1073         assert test.
1074         (gcc_tree_to_linear_expression): Add extra to existing constant.
1075         (depth_of_nest): Factor out function used in various places.
1076         (gcc_loop_to_lambda_loop): Clean up code a little bit. No
1077         functional changes.
1078         (find_induction_var_from_exit_cond): Stop guessing, and just
1079         get the right answer :).
1080         (gcc_loopnest_to_lambda_loopnest): Remove useless pre-allocation.
1081         Print out message about result of attempt to create perfect nest.
1082         (lbv_to_gcc_expression): Add type argument, use it to do math
1083         and induction variable creation.
1084         (lle_to_gcc_expression): Ditto.
1085         (lambda_loopnest_to_gcc_loopnest): Create new iv with same type as
1086         oldiv. Pass type argument to lle_to_gcc_expression and 
1087         lbv_to_gcc_expression.
1088         Reset number of iterations after transformation.
1089         (perfect_nestify): Remove useless pre-allocation, and cleanup
1090         a small amount.
1091
1092         * tree-data-ref.c (build_classic_dist_vector): Return false for
1093         dependences completely outside of the loop nest we asked about.
1094         (build_classic_dir_vector): Ditto.
1095         (compute_data_dependences_for_loop): Only add dependence relations
1096         inside the loop we asked about.
1097         
1098         * tree-loop-linear.c (linear_transform_loops): Use DDR_SIZE_VECT.
1099         Compute immediate uses.
1100         
1101         * tree-optimize.c: Move linear_transform_loops to before ivcanon.
1102         
1103 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
1104
1105         * tree-cfg.c (thread_jumps): Fix a comment typo.
1106
1107 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
1108
1109         * tree-cfg.c (thread_jumps): Fix a comment typo.
1110
1111 2004-10-31  Nicolas Pitre <nico@cam.org>
1112
1113         * config/arm/ieee754-sf.S (floatdisf): Fix regression with
1114         values smaller than 2^32.
1115
1116 2004-10-31 Jeff Law  <law@redhat.com>
1117
1118         * cfgloop.h (struct loop): Remove unused "nodes" field.
1119         * timevar.def (TV_TREE_LOOP_BOUNDS): New.
1120         * tree-data-ref.c (find_data_references_in_loop): Use get_loop_body
1121         instead of calling flow_bb_inside_loop_p for every basic block
1122         in the function.
1123         * tree-ssa-loop.c (pass_record_bounds): Use TV_TREE_LOOP_BOUNDS.
1124
1125 2004-10-31  Graham Stott <graham.stott@btinternet.com>
1126
1127         * config/pa/pa.md: (prefetch_64, prefetch_32): Fix typo.  Use
1128         INT_5_BITS instead of VAL_5_BITS_P.
1129
1130 2004-10-31  Roger Sayle  <roger@eyesopen.com>
1131
1132         PR middle-end/14521
1133         * tree-inline.c (inline_forbidden_p_1): Use %qF instead of '%F'
1134         for consistent quoting in diagnostic messages.
1135         (expand_call_inline): Likewise.
1136         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1137         * tree-ssa.c (warn_uninitialized_var): Likewise.
1138         (warn_uninitialized_phi): Likewise.
1139
1140 2004-10-31  Richard Sandiford  <rsandifo@redhat.com>
1141
1142         * config/mips/mips.c (mips_cannot_change_mode_class): Use a stricter
1143         mode check.
1144
1145 2004-10-31  Kazu Hirata  <kazu@cs.umass.edu>
1146
1147         * c-common.c: Fix a comment typo.
1148
1149 2004-10-31  Jason Merrill  <jason@redhat.com>
1150
1151         PR middle-end/17526
1152         * tree-gimple.c (is_gimple_mem_rhs): Also require a val for
1153         aggregate types that are not BLKmode.
1154
1155 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
1156
1157         * c-common.h (objc_lookup_ivar): Add second parameter to
1158         prototype.
1159         * c-typeck.c (build_external_ref): After looking up symbol,
1160         pass it to objc_lookup_ivar() to decide whether it or the
1161         ivar should be used, rather than deciding the issue locally.
1162         * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter,
1163         which is simply returned in the non-ObjC case.
1164
1165 2004-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
1166
1167         * sdbout.c (sdbout_symbol): Do not output type .def statements
1168         for builtin types.
1169
1170 2004-10-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1171
1172         * c-common.c (catenate_strings): New.
1173         (c_parse_error): Use it.  Don't over-escape.
1174
1175 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
1176
1177         * config/sh/sh.c (calc_live_regs): Declare reg as unsigned and
1178         modify the for loop expressions for it.  Remove unnecessary casts.
1179         (sh_expand_prologue): Declare reg as unsigned.
1180         (sh_gimplify_va_arg_expr): Initinalize lab_over.
1181         (sh_handle_sp_switch_attribute): Add const qualifier appropriately.
1182
1183 2004-10-30  Geoffrey Keating  <geoffk@apple.com>
1184
1185         * doc/invoke.texi (Darwin Options): Improve description of
1186         how the subtype is chosen.
1187
1188 2004-10-30  Roger Sayle  <roger@eyesopen.com>
1189
1190         PR middle-end/18096
1191         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Check that
1192         the stack adjustment, "size", is valid for Pmode.  If the stack
1193         frame is too large, generate a trap insn and issue a warning.
1194
1195 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
1196
1197         * tree-ssa-dom.c: Fix comment typos.
1198
1199 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
1200
1201         * config/sh/sh.c (prepare_move_operands): Use operands[0]
1202         for the output rtl if no_new_pseudos is set.  Remove redundant
1203         line.
1204
1205 2004-10-30  Joseph S. Myers  <joseph@codesourcery.com>
1206
1207         PR c/16666
1208         * c-decl.c (start_function): Don't check for DECL_BUILT_IN when
1209         determining whether to copy parameter types from a previous
1210         prototype declaration.
1211
1212 2004-10-29  Roger Sayle  <roger@eyesopen.com>
1213
1214         PR rtl-optimization/17581
1215         * cselib.c (cselib_process_insn): The last instruction of a libcall
1216         block, with the REG_RETVAL note, should be considered in the libcall.
1217         * gcse.c (do_local_cprop): Allow constants to be propagated outside
1218         of libcall blocks.
1219         (adjust_libcall_notes): Use simplify_replace_rtx instead of
1220         replace_rtx to avoid creating invalid RTL in REG_RETVAL notes.
1221
1222 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
1223
1224         * tree-phinodes.c (create_phi_node): Don't zero PHI_REWRITTEN.
1225
1226 2004-10-29 Jeff Law  <law@redhat.com>
1227
1228         * tree-ssa-dom.c (struct edge_info): New structure holding
1229         edge equivalences and edge redirection information.
1230         (get_eq_expr_value, record_dominating_conditions): Kill.
1231         (propagate_to_outgoing_edges): Renamed from cprop_into_phis.
1232         Call record_edge_info.
1233         (allocate_edge_info, free_edge_info): New.
1234         (tree_ssa_dominator_optimize): Use propagate_to_outgoing_edges
1235         rather than cprop_into_phis.  Free all edge infos before threading
1236         jumps.
1237         (thread_across_edge): Allocate new edge info structures as needed
1238         and store the redirection target into the edge info structure
1239         instead of the edge's AUX field.
1240         (dom_opt_initialize_block): Mark unused argument with ATTRIBUTE_UNUSED.
1241         (record_equivalence_from_incoming_edge): Lose unnecessary argument.
1242         Revamp code which finds and records equivalences associated with
1243         edges to use saved data in the edge_info structure.
1244         (record_equivalencs_from_phis): Similarly.
1245         (dom_opt_finalize_block): Revamp code which finds and records
1246         equivalences associated with edges to use saved data in the
1247         edge_info structure.
1248         (build_and_record_new_cond): New function.
1249         (record_conditions): Use build_and_record_new_cond to record
1250         dominating conditions.
1251         (record_edge_info): New function.
1252         (record_range): Tighten test for conditions which create
1253         useful range records.
1254
1255 2004-10-29  Geoffrey Keating  <geoffk@apple.com>
1256
1257         * config/i386/darwin.h (ASM_SPEC): Simplify.
1258         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
1259         * config/rs6000/darwin.h (DARWIN_SUBARCH_SPEC): New.
1260         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
1261         * config/darwin.h (LINK_COMMAND_SPEC): Don't pass -arch here.
1262         (LINK_SPEC): Do pass -arch here.  Handle -force_cpusubtype_ALL
1263         in all cases.  Pass the right -arch or -arch_only based on -mcpu.
1264         (ASM_SPEC): Handle -force_cpusubtype_ALL.
1265         * doc/invoke.texi (Darwin Options): Improve documentation for
1266         Darwin linker (and libtool) switches.
1267
1268         * config/rs6000/darwin-fallback.c: Include <mach/thread_status.h>.
1269
1270 2004-10-29  Stan Shebs  <shebs@apple.com>
1271
1272         * config/rs6000/darwin-tramp.asm: Make more 64-bit-friendly.
1273
1274 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
1275
1276         * tree-phinodes.c (allocate_phi_node): New.
1277         (make_phi_node, resize_phi_node): Use it.
1278
1279 2004-10-29  David Edelsohn  <edelsohn@gnu.org>
1280
1281         * config/rs6000/sysv4.h (TARGET_POWER): Define as 0.
1282         * config/rs6000/darwin.h (TARGET_POWER): Define as 0.
1283
1284 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
1285
1286         * tree-phinodes.c (make_phi_node, resize_phi_node): Don't zero
1287         the whole PHI node.
1288         * tree.h (tree_phi_node): Tell the garbage collector to chase
1289         num_args arguments.
1290
1291 2004-10-29  Richard Earnshaw  <rearnsha@arm.com>
1292
1293         * opts.c (decode_options): Lower the crossjump threshold for -Os.
1294
1295 2004-10-29  Diego Novillo  <dnovillo@redhat.com>
1296
1297         * tree.h (struct tree_ssa_name): Remove field 'equiv'.
1298
1299 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
1300
1301         * bitmap.h (bitmap_empty_p): New.
1302         (bitmap_and, bitmap_and_into, bitmap_and_compl,
1303         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into,
1304         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): New bitmap
1305         operation macros.
1306         (bitmap_ior_and_compl): Rename to ...
1307         (bitmap_ior_and_compl_into): ... here.
1308         * bitmap.c (bitmap_equal_p): Use bitmap_xor.
1309         (bitmap_ior_and_compl): Rename to ...
1310         (bitmap_ior_and_compl_into): ... here. Adjust. Return changed
1311         flag.
1312         (bitmap_union_of_diff): Use renamed bitmap functions.
1313         * basic-block.h (AND_REG_SET, AND_COMPL_REG_SET, IOR_REG_SET,
1314         XOR_REG_SET, IOR_AND_COMPL_REG_SET): Likewise.
1315         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
1316         * df.c (df_bb_rd_local_compute)
1317         * flow.c (calculate_global_regs_live,
1318         init_propagate_block_info): Likewise.
1319         * ifcvt.c (find_if_case_1, find_if_case_2,
1320         dead_or_predicable): Likewise.
1321         * ra-build.c (union_web_part_roots, livethrough_conflicts_bb,
1322         reset_conflicts, conflicts_between_webs): Likewise.
1323         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
1324         detect_web_parts_to_rebuild): Likewise.
1325         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
1326         * tree-int-ssa.c (insert_phi_nodes_for, rewrite_into_ssa): Likewise.
1327         * tree-sra.c (decide_instantiations): Likewise.
1328         * tree-ssa-alias.c (create_name_tags,
1329         merge_pointed_to_info): Likewise.
1330         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1331         * tree-ssa-loop-im.c (move_computations): Likewise.
1332         * tree-ssa-operands.c (get_call_expr_operands): Likewise.
1333         * tree-ssa-pre.c (fini_pre): Likewise.
1334         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
1335         * tree-ssanames.c (any_marked_for_rewrite_p): Likewise.
1336         * tree-vectorizer.c (vectorize_loops): Likewise.
1337
1338 2004-10-29  Nick Clifton  <nickc@redhat.com>
1339
1340         config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): When
1341         adding the PIC register to the fixed_regs array, also add it
1342         to the call_used_regs array.  
1343
1344 2004-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
1345
1346         * gthr-posix.h (__gthread_recursive_mutex_init_function): Guard
1347         with #ifdef PTHREAD_MUTEX_RECURSIVE/#endif pairs.
1348
1349 2004-10-28  Daniel Berlin  <dberlin@dberlin.org>
1350
1351         * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function.
1352         (rewrite_blocks): Modify argument, and use it to decide which
1353         function to call.
1354         (rewrite_def_def_chains): Call rewrite_blocks with true here.
1355         (rewrite_into_ssa): and call it with false here.
1356         
1357 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
1358
1359         * tree-phinodes.c (add_phi_arg): Turn an "if" that always
1360         triggers into gcc_assert.
1361
1362 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
1363
1364         PR tree-optimization/16728
1365         * tree-flow.h (get_ptr_info): Declare.
1366         * tree-ssa-alias.c (get_ptr_info): Make extern.
1367         * tree-ssa-copy.c (merge_alias_info): Merge flow-sensitive
1368         alias information.
1369
1370 2004-10-28  Stan Shebs  <shebs@apple.com>
1371
1372         * config/rs6000/darwin.h (SUBTARGET_EXTRA_SPECS): Handle -m64.
1373         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Add ppc64
1374         case.
1375
1376 2004-10-28  Frank Ch. Eigler  <fche@redhat.com>
1377
1378         * tree-mudflap.c (mudflap_init): Mark cache-lookup decls to
1379         prevent their later unnecessary registration.
1380         (mf_build_check_statement_for): Remove "addr" argument, and
1381         related "__mf_value" generated code.  Update callers.
1382         (mf_decl_eligible_p): New function, factored from mx_register_decls.
1383         (mx_register_decls): Call it.
1384         (mf_xform_derefs_1): Rewrite COMPONENT_REF and ARRAY_REF cases
1385         to restore support for complex nested expressions.
1386         (mudflap_enqueue_decl): Simplify.  Move registration call emission
1387         out ...
1388         (mudflap_finish_file): ... to here.
1389         (mudflap_enqueue_constant): Remove dump code.
1390
1391 2004-10-28  Zack Weinberg  <zack@codesourcery.com>
1392
1393         PR 18199
1394         * dbxout.c (dbxout_begin_complex_stabs_noforcetext): New function.
1395         (DBX_FINISH_STABS): Add (unused by default) SYM parameter.
1396         (dbxout_finish_complex_stabs): Update to match.
1397         (dbxout_symbol_location): Call emit_pending_bincls_if_required
1398         and FORCE_TEXT before DBX_STATIC_BLOCK_START.  Use
1399         dbxout_begin_complex_stabs_noforcetext.
1400         * xcoffout.h (DBX_FINISH_STABS): Restore special case for
1401         N_GSYM, using new SYM parameter.  Correct logic for special
1402         cases for N_FUN.
1403
1404         * varasm.c (function_section): If DECL is NULL_TREE, don't try
1405         to do anything else.  Do not call get_insns if cfun or
1406         cfun->emit are NULL.
1407
1408 2004-10-28  Adam Nemet  <anemet@lnxw.com>
1409
1410         PR middle-end/18160
1411         * c-typeck.c (c_mark_addressable): Issue error if address of a
1412         register variable is taken.  Use "%qD" to print DECL_NAME.
1413
1414 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
1415
1416         * opts.c (decode_options): Don't run PRE at -Os.
1417
1418 2004-10-28  Richard Henderson  <rth@redhat.com>
1419
1420         * config/alpha/alpha.md (movqicc_internal): Allow exactly one
1421         zero in the conditional.
1422         (movhicc_internal, movsicc_internal, movdicc_internal): Likewise.
1423
1424 2004-10-28  Richard Henderson  <rth@redhat.com>
1425
1426         * cse.c (memory_extend_rtx): Remove.
1427         (cse_main): Don't set it.
1428         (cse_insn): Use a local buffer instead.
1429
1430 2004-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1431
1432         * profile.c (branch_prob): Call to init_edge_profiler added.
1433         * rtl-profile.c (rtl_init_edge_profiler): New function.
1434         (rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with
1435         call to safe_insert_insn_on_edge.
1436         (rtl_profile_hooks): rtl_init_edge_profiler added.
1437         * tree-profile.c (tree_init_edge_profiler): New function.
1438         (tree_profile_hooks): tree_init_edge_profiler added.
1439         * value-prof.h (profile_hooks) init_edge_profiler prototype added.
1440
1441 2004-10-28  Nick Clifton  <nickc@redhat.com>
1442
1443         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Use
1444         emit_jump_insn() to generate the return instruction.
1445
1446 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
1447
1448         * tree-phinodes.c: Remove trailing whitespace.
1449
1450 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
1451
1452         * tree-ssa-loop-ivopts.c: Fix a comment typo.
1453         * doc/invoke.texi: Fix a typo.
1454
1455 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
1456
1457         * Makefile.in (OBJS-common): Remove duplicates.
1458
1459 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
1460
1461         * lambda-code.c (nestify_update_pending_stmts): Remove.
1462         (perfect_nestify): Use flush_pending_stmts instead of
1463         nestify_update_pending_stmts.
1464         * tree-cfg.c (tree_make_forwarder_block): Use
1465         flush_pending_stmts.
1466         * tree-flow.h: Add a prototype for flush_pending_stmts.
1467         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge):
1468         Use flush_pending_stmts.
1469         (lv_update_pending_stmts): Remove.
1470         (tree_ssa_loop_version): Use flush_pending_stmts instead of
1471         lv_update_pending_stmts.
1472         * tree-ssa.c (flush_pending_stmts): New.
1473
1474 2004-10-28  Ulrich Weigand  <uweigand@de.ibm.com>
1475
1476         PR target/15286
1477         * final.c (alter_subreg): Compute correct offset to use with
1478         paradoxical SUBREGs of memory operands.
1479         * recog.c (general_operand): Allow paradoxical SUBREGs of
1480         memory operands after reload.
1481         * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg
1482         has failed when passed a hard register.
1483
1484 2004-10-28  Aldy Hernandez  <aldyh@redhat.com>
1485
1486         * function.c (assign_parm_setup_block): Handle parallels correctly.
1487
1488 2004-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1489
1490         * final.c (shorten_branches): Initialize flags structure.
1491
1492 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
1493
1494         * tree.c (int_cst_node, int_cst_hash_table): New variables.
1495         (init_ttree): Initialize them.
1496         (int_cst_hash_hash, int_cst_hash_eq): New hashing functions.
1497         (build_int_cst_wide): Use hash table for oversized integers.
1498
1499 2004-10-28  Nick Clifton  <nickc@redhat.com>
1500
1501         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define
1502         begin_label.
1503
1504 2004-10-27  Richard Henderson  <rth@redhat.com>
1505
1506         PR middle-end/18163
1507         * expr.c (emit_group_load): Don't go force temporary for memory
1508         or concat source.
1509         (emit_group_store): Similarly.
1510
1511 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
1512
1513         PR other/18186
1514         * common.opt (--param): Fix spelling of parameter.
1515
1516 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
1517
1518         PR tree-opt/17529
1519         * tree-cfg.c (remove_useless_stmts_1) <case SWITCH_EXPR>:
1520         Don't fold statement.
1521         <case ASM_EXPR>: Fold the statement.
1522
1523 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
1524
1525         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
1526         <COND_EXPR>: Use EDGE_COUNT instead of GOTO_DESTINATION.
1527
1528 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1529
1530         * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi,
1531         doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi,
1532         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
1533         doc/sourcebuild.texi, doc/tm.texi: Improve Texinfo formatting.
1534
1535 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1536
1537         * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi,
1538         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put
1539         punctuation outside quotes.
1540
1541 2004-10-27  David Mosberger  <davidm@hpl.hp.com>
1542             James E Wilson  <wilson@specifixinc.com>
1543
1544         PR target/13158
1545         * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
1546         sibcall alloc instruction.
1547         (process_set): Handle sibcall alloc instruction.
1548
1549 2004-10-27  Geoffrey Keating  <geoffk@apple.com>
1550
1551         * config/rs6000/rs6000.c (rs6000_attribute_table): Add
1552         SUBTARGET_ATTRIBUTE_TABLE.
1553         * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import.
1554         (SUBTARGET_ATTRIBUTE_TABLE): Define.
1555         * config/darwin.c (darwin_handle_weak_import_attribute): New.
1556         (HAVE_DEAD_STRIP): Delete.
1557         (no_dead_strip): Don't test HAVE_DEAD_STRIP.
1558         * config/darwin-protos.h (darwin_handle_weak_import_attribute):
1559         Prototype.
1560
1561         * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document.
1562
1563         * config/darwin.h (GTHREAD_USE_WEAK): Define.
1564
1565 2004-10-28  Ben Elliston  <bje@au.ibm.com>
1566
1567         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New.
1568         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise.
1569         * params.h (SRA_MAX_STRUCTURE_SIZE): New.
1570         (SRA_FIELD_STRUCTURE_RATIO): Likewise.
1571         * tree-sra.c: Include "params.h".
1572         (decide_block_copy): Use new parameters.
1573         * doc/invoke.texi (Optimize Options): Document new SRA pass
1574         parameters sra-max-structure-size and sra-field-structure-ratio.
1575
1576 2004-10-27  Nicolas Pitre <nico@cam.org>
1577
1578         * config/arm/ieee754-df.S (floatdidf): Fix regression with big values.
1579
1580 2004-10-27  Zdenek Dvorak  <dvorakz@suse.cz>
1581
1582         PR tree-optimization/18048
1583         * fold-const.c (try_move_mult_to_index): New function.
1584         (fold): Use try_move_mult_to_index.
1585         * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates.
1586         * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce
1587         an all-ones unsigned constant without extra bits.
1588         * tree.c (build_low_bits_mask): New function.
1589         * tree.h (build_low_bits_mask): Declare.
1590
1591 2004-10-27  David Edelsohn  <edelsohn@gnu.org>
1592
1593         PR target/17956
1594         * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
1595         final condition.
1596         (minsf3): Same.
1597         (maxdf3): Same.
1598         (mindf3): Same.
1599
1600 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
1601
1602         * tree-cfg.c (thread_jumps): Speed up by reordering the two
1603         conditions for entering basic blocks into worklist.
1604
1605 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
1606
1607         * tree-cfg.c (thread_jumps): Speed up by pretending to have
1608         ENTRY_BLOCK_PTR in worklist.
1609
1610 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
1611
1612         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
1613         <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.
1614
1615 2004-10-27  Daniel Berlin <dberlin@dberlin.org>
1616
1617         Fix PR tree-optimization/17133
1618
1619         * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
1620         def kill operand.
1621
1622         * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
1623         (get_v_must_def_result_ptr): Modify for new structure of
1624         v_must_defs array.
1625         (get_v_must_def_kill_ptr): New.
1626         (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
1627         (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
1628         (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
1629         (op_iter_init): Initialize new mustu members.
1630         (op_iter_next_mustdef): New function.
1631         (op_iter_init_mustdef): Ditto.
1632
1633         * tree-flow.h (rewrite_def_def_chains): New function.
1634
1635         * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
1636         (ssa_mark_def_sites): Ditto.
1637         (rewrite_stmt): Ditto.
1638         (ssa_rewrite_stmt): Ditto.
1639         (rewrite_blocks): Factor out from rewrite_into_ssa.
1640         (mark_def_block_sites): Ditto.
1641         (rewrite_def_def_chains): New function, just rewrites def-def
1642         chains without phi node insertion.
1643
1644         * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
1645
1646         * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.
1647
1648         * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
1649         they include the rhs now.
1650
1651         * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
1652         V_MUST_DEF_RESULT.
1653
1654         * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
1655         Update callers.
1656         (mark_really_necessary_kill_operand_phis): New function.
1657         (perform_tree_ssa_dce): Call it.
1658         (pass_dce): Add TODO_fix_def_def_chains.
1659         (pass_cd_dce): Ditto.
1660
1661         * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
1662         well.
1663         (rewrite_mem_refs): Ditto.
1664
1665         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
1666         as well.
1667
1668         * tree-ssa-operands.c (allocate_v_may_def_optype):
1669         v_may_def_operand_type_t became v_def_use_operand_type_t.
1670         (allocate_v_must_def_optype) Ditto.
1671         (finalize_ssa_v_must_defs): Update for new operand type, as well
1672         as setting the use portion as well.
1673         (copy_virtual_operands): Copy the kill operand as well.
1674         (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
1675         V_MUST_DEF_RESULT.
1676
1677         * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
1678         v_def_use_operand_type.
1679         (v_must_def_optype_d): Use v_def_use_operand_type.
1680         (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
1681         (V_MUST_DEF_KILL_*): New macros.
1682         (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
1683         members.
1684         Rename existing must_i and num_v_must members to mustd_i and
1685         num_v_mustd.
1686         (SSA_OP_VMUSTDEFKILL): New flag.
1687         (SSA_OP_VIRTUAL_KILLS): New flag.
1688         (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
1689         (SSA_OP_ALL_KILLS): New flag.
1690         (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
1691
1692         * tree-ssa.c (verify_ssa): Verify virtual kills as well.
1693
1694         * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
1695         became V_MUST_DEF_RESULT.
1696         (rename_variables_in_bb): Rename kill pointer as well.
1697
1698         * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
1699         immediate uses.
1700
1701 2004-10-27  Richard Sandiford  <rsandifo@redhat.com>
1702
1703         * dbxout.c (dbxout_source_line): Move declaration of begin_label to
1704         the block that needs it.
1705
1706 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
1707
1708         * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
1709         ATTRIBUTE_UNUSED.
1710
1711 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
1712
1713         * c-lex.c (cb_def_pragma): Clean up code for making location
1714         palatable to diagnostic.c.
1715
1716 2004-10-27  Steven Bosscher  <stevenb@suse.de>
1717
1718         PR tree-optimization/17757
1719         * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
1720         without any PHI arguments left.  Make sure the argument that
1721         we're supposed to remove exists at all.
1722
1723 2004-10-27  Paul Brook  <paul@codesourcery.com>
1724
1725         * configure.ac: Don't test for [build] __cxa_atexit when building a
1726         cross compiler.
1727         * configure: Regenerate.
1728
1729 2004-10-27  Paul Brook  <paul@codeosurcery.com>
1730
1731         * configure.ac: Use build_exeext not host_exeext when lookin for
1732         target tools.
1733         * configure: Regenerate.
1734
1735 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1736
1737         * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
1738
1739 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1740             patch originally created by Kelley Cook  <kcook@gcc.gnu.org>
1741
1742         PR middle-end/14684
1743         * opts.c (OPT_fprofile_generate): Default to -funroll-loops
1744         to match -fprofile-use.
1745
1746 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
1747
1748         * config/rs6000/rs6000.c: Fix a comment typo.
1749
1750 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
1751
1752         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line
1753         counter.
1754
1755 2004-10-27  Andreas Schwab  <schwab@suse.de>
1756
1757         * varasm.c (default_stabs_asm_out_destructor): Mark symbol as
1758         unused.
1759         (default_stabs_asm_out_constructor): Likewise.
1760
1761 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
1762
1763         * builtins.c (fold_builtin_unordered_cmp): Always bring both
1764         operands to the same type.
1765
1766 2004-10-26  James E Wilson  <wilson@specifixinc.com>
1767
1768         PR target/18010
1769         * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
1770
1771 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
1772
1773         * dbxout.c: Include obstack.h.
1774         (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
1775         default definition.
1776         (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
1777         Default-define here.
1778         (DBX_CONTIN_LENGTH): Move definition with others.
1779         (DBX_FINISH_STABS): New target macro.
1780         (current_sym_code, current_sym_value, current_sym_addr)
1781         (current_sym_nchars, CHARS, dbxout_continue)
1782         (print_int_cst_octal, print_octal, print_wide_int)
1783         (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
1784         (stabstr_ob, stabstr_last_contin_point): New variables.
1785         (NUMBER_FMT_LOOP): New improper macro.
1786         (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
1787         (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
1788         (dbxout_stab_value_internal_label_diff, dbxout_stabd)
1789         (dbxout_begin_stabn, dbxout_begin_stabn_sline)
1790         (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
1791         (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
1792         (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
1793         (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
1794         New functions and/or proper function-like macros.
1795         (CONTIN): Use stabstr_continue, unconditionally.
1796         (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
1797         (dbxout_init): Initialize stabstr_ob.  Check
1798         NO_DBX_MAIN_SOURCE_DIRECTORY.  Only write out the Ltext label
1799         if it was used.  Use the new interfaces.
1800         (dbxout_source_file): Remove file argument; always write to
1801         asm_out_file.  Use the new interfaces.
1802         (dbxout_type_method_1): Remove second argument which is always
1803         DECL_ASSEMBLER_NAME of the first argument.  Use the new interfaces.
1804         (dbxout_type_methods): Remove write-only variables.  Use the
1805         new interfaces.
1806         (dbxout_parms): Refactor to remove code duplicated in each of
1807         several successive if-else-if blocks.  Use the new interfaces.
1808         (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
1809         (dbxout_source_line, dbxout_finish, dbxout_type_index)
1810         (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
1811         (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
1812         (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
1813         (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
1814         Use the new interfaces.
1815         * Makefile.in (dbxout.o): Update dependencies.
1816
1817         * defaults.h: Don't define ASM_STABD_OP.
1818         * output.h: Prototype new dbxout_* interfaces.
1819         * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
1820         * varasm.c: Don't define ASM_STABS_OP.
1821         (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
1822         Use the new dbxout.c interfaces.  Call sorry if neither
1823         DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
1824
1825         * xcoffout.h: Don't define ASM_STABS_OP.
1826         (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
1827         (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
1828         (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
1829         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
1830         do { ... } while (0) idiom.
1831
1832         * config/alpha/alpha.c (num_source_filenames): Export.
1833         * config/alpha/alpha.h (num_source_filenames): Declare.
1834         (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
1835         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
1836         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
1837         Always use .debugsym.  Update commentary.
1838         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
1839         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
1840         * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
1841         Use new interfaces.
1842         * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
1843         (macho_branch_islands): Use new interfaces.
1844
1845         * doc/tm.texi: Update.
1846
1847 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
1848
1849         * expr.c (emit_group_store): Do not treat floats as BLKmode.
1850         (emit_group_load): Same.
1851
1852 2004-10-26  Joseph S. Myers  <jsm@polyomino.org.uk>
1853
1854         * c-parse.in (datadef): Use pedwarn rather than error and warning
1855         for diagnostic in case of no declaration specifiers.
1856
1857 2004-10-26  Richard Sandiford  <rsandifo@redhat.com>
1858
1859         PR bootstrap/15747
1860         * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
1861         reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
1862         can be used to work around this.
1863
1864 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
1865
1866         * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
1867         doubles.
1868
1869 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
1870
1871         * stmt.c (expand_case): Update a comment.
1872
1873 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
1874
1875         * stmt.c (expand_case): Put an assertion that index_expr is
1876         never INTEGER_CST.  Don't special case for constant
1877         index_expr.
1878
1879 2004-10-26  Andrew Pinski  <pinskia@physics.uc.edu>
1880
1881         PR 18162
1882         * c-parse.in (designator): Finish with a semi-colon.
1883
1884 2004-10-26  Fariborz Jahanian <fjahanian@apple.com>
1885
1886         * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
1887         into rotlsi3.
1888
1889 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
1890
1891         * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
1892         a default case only.
1893
1894 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
1895
1896         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
1897         e500 doubles.
1898         (spe_build_register_parallel): New.
1899         (rs6000_spe_function_arg): Handle e500 doubles.
1900         (function_arg): Same.
1901         (spe_func_has_64bit_regs_p): Same.
1902         (rs6000_function_value): Same.
1903         (rs6000_libcall_value): Same.
1904         (legitimate_lo_sum_address_p): Return false for e500 doubles.
1905
1906         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
1907         doubles.
1908         (DATA_ALIGNMENT): Same.
1909         (CANNOT_CHANGE_MODE_CLASS): Same.
1910
1911 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
1912
1913         * expr.c (emit_group_load): Handle floats.
1914         (emit_group_store): Same.
1915
1916 2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
1917
1918         * c-lex.c (get_nonpadding_token): Remove.
1919         (c_lex_with_flags): Push timevar and eat padding here.  Improve
1920         stray token diagnostic.
1921         (lex_string): Replace logic with switch statement, eat padding
1922         token here.
1923
1924 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
1925
1926         PR 18149
1927         * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
1928
1929 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
1930
1931         * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
1932         to 'non-weak'.
1933         (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
1934         (ASM_MAKE_LABEL_LINKONCE): Delete.
1935         (ASM_WEAKEN_DECL): New.
1936         (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
1937         (ASM_DECLARE_FUNCTION_NAME): Likewise.
1938         (TEXT_SECTION_ASM_OP): Add a tab.
1939         (DATA_SECTION_ASM_OP): Likewise.
1940         (SECTION_FUNCTION): Add a tab.  Use fputs.  Don't call
1941         data_section on every section change.
1942         (EXTRA_SECTIONS): Add a bunch of new extra sections.
1943         (EXTRA_SECTION_FUNCTIONS): Likewise.
1944         (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
1945         (JCR_SECTION_NAME): Define.
1946         (TARGET_SECTION_TYPE_FLAGS): Don't define.
1947         * config/darwin.c (darwin_encode_section_info): A symbol is defined
1948         in this file if it is not weak.
1949         (textcoal_section): Delete.
1950         (datacoal_section): Delete.
1951         (darwin_make_decl_one_only): Delete.
1952         (machopic_select_section): Handle functions.
1953         (darwin_asm_named_section): Add a tab.
1954         (darwin_section_type_flags): Delete.
1955         (darwin_unique_section): Delete contents.
1956         (darwin_emit_unwind_label): Add a tab.  Make decls weak if
1957         DECL_WEAK is set.
1958         * config/darwin-protos.h (darwin_section_type_flags): Delete.
1959         (darwin_make_decl_one_only): Delete.
1960         (text_coal_section): New.
1961         (text_unlikely_section): New.
1962         (text_unlikely_coal_section): New.
1963         (const_coal_section): New.
1964         (data_coal_section): New.
1965         (const_data_coal_section): New.
1966         * varasm.c (function_section): Honour
1967         USE_SELECT_SECTION_FOR_FUNCTIONS.
1968         * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
1969         TARGET_USES_WEAK_UNWIND_INFO is in effect.
1970         * dbxout.c (dbxout_source_file): Don't change sections while
1971         a function is being output.
1972
1973 2004-10-25  David Ayers  <d.ayers@inode.at>
1974
1975         * c-common.h: Remove RID_ID.
1976         * c-parse.in: Remove OBJECTNAME and references to RID_ID.
1977         (typespec_reserved_attr): Add rule for TYPENAME
1978         non_empty_protocolrefs.
1979         (yylexname): Remove special handling of RID_ID.
1980
1981 2004-10-25  James E Wilson  <wilson@specifixinc.com>
1982
1983         * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
1984
1985 2004-10-25  Joseph S. Myers  <jsm@polyomino.org.uk>
1986
1987         PR c/16667
1988         * c-parse.in (array_designator): New.
1989         (designator): Use it.
1990         (initelt): Only permit array_designator without '=', not ".foo".
1991
1992 2004-10-25  Kenneth Zadeck <zadeck@naturalbridge.com>
1993         * gcc/Makefile.in: removed ggc for cgraphunit.
1994         * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
1995         * gcc/cgraph.h: removed static var analysis data structures and calls.
1996         * gcc/cgraphunit.c:
1997         cgraph_mark_local_and_external_functions:changed name to
1998                 cgraph_mark_local_functions
1999         (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
2000         cgraph_reset_static_var_maps,get_global_static_vars_info,
2001         get_global_statics_not_read,get_global_statics_not_written,searchc,
2002         cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
2003         check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
2004         scan_for_static_refs,cgraph_characterize_statics_local,
2005         clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
2006         removed.
2007         (cgraph_optimize,init_cgraph): removed calls to static vars analysis
2008         * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
2009         analysis
2010         * gcc/tree-flow.h static_vars_info: removed
2011         * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
2012         removed calls to static vars analysis.
2013         get_call_expr_operands: removed callee variable.
2014
2015 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
2016
2017         * cfg.c (unchecked_make_edge, redirect_edge_succ,
2018         redirect_edge_pred): Use VEC_safe_push instead of
2019         VEC_safe_insert.
2020         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2021
2022 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
2023
2024         * cfgloopmanip.c (loopify): Take two more arguments true_edge
2025         and false_edge.
2026         * cfgloop.h: Adjust the corresponding prototype.
2027         * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
2028         * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
2029
2030 2004-10-25  Jakub Jelinek  <jakub@redhat.com>
2031
2032         * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
2033         DECL_INCOMING_RTL is NULL.
2034
2035 2004-10-25  Steven Bosscher  <stevenb@suse.de>
2036
2037         * timevar.def (TV_FIND_REFERENCED_VARS): New.
2038         * tree-dfa.c (pass_referenced_var): Use it.
2039
2040 2004-10-25  Roger Sayle  <roger@eyesopen.com>
2041             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2042
2043         * cse.c: Change encoding of quantity numbers to avoid undefined
2044         pointer arithmetic on qty_table.
2045         (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
2046         (get_cse_reg_info): Initialize reg_qty to a unique negative value.
2047         (new_basic_block): Assign "real" quantity numbers from zero.
2048         (delete_reg_equiv): Do nothing if quantity is invalid.  Reset the
2049         REG_QTY to its unique negative value.
2050         (merge_equiv_classes): Calculate need_rehash if quantity is valid.
2051         (cse_main): Don't include max_reg when determining max_qty.
2052         (cse_basic_block): Avoid subtracting a large offset from qty_table,
2053         which causes undefined C99 behaviour.  Only allocate needed memory.
2054
2055 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
2056
2057         * stmt.c (expand_case): Remove an obsolete comment.
2058
2059 2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
2060
2061         PR middle-end/17407
2062         * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
2063         layout_type as it is already done by build_array_type.
2064         * tree.c (build_array_type): Layout the type even
2065
2066 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
2067
2068         * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
2069
2070 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
2071
2072         * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
2073         with wider-than-32-bit HOST_WIDE_INTs.
2074
2075 2004-10-25  David Billinghurst <David.Billinghurst@riotinto.com>
2076
2077         * config/mips/mips.c(mips_output_filename): Remove unused
2078         array ltext_label_name
2079
2080 2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>
2081
2082         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
2083
2084 2004-10-25  Ben Elliston  <bje@au.ibm.com>
2085
2086         * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
2087
2088 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
2089
2090         * predict.c (predict_loops): Call scev_finalize instead of
2091         scev_reset.
2092
2093 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
2094
2095         * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
2096         config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
2097         config/sh/ushmedia.h, config/sparc/elf.h,
2098         config/sparc/sp64-elf.h: Update copyright.
2099
2100 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
2101
2102         * stmt.c (expand_case): Handle the default label outside of
2103         the for loop.  Remove code to handle a missing default label.
2104
2105 2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
2106
2107         * dbxout.c (dbxout_function_decl): Don't use
2108         DBX_OUTPUT_FUNCTION_END.
2109         * system.h: Poison DBX_OUTPUT_FUNCTION_END.
2110         * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
2111
2112 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
2113
2114         PR middle-end/17967
2115         * tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
2116
2117 2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
2118
2119         * tree-ssa-dom.c (record_equality): Use loop depth to determine
2120         which way to record the equality as well.
2121         (loop_depth_of_name): New function.
2122
2123 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2124
2125         PR middle-end/17793
2126         * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
2127         through the operand if it is a useless type conversion.
2128
2129 2004-10-23  Ben Elliston  <bje@au.ibm.com>
2130
2131         * cfg.c (remove_edge): Use VEC_unordered_remove.
2132         (redirect_edge_succ): Likewise.
2133         (redirect_edge_pred): Likewise.
2134         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2135
2136 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2137
2138         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
2139         beyond its end.
2140
2141 2004-10-22  Eric Christopher  <echristo@redhat.com>
2142
2143         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
2144         saves.
2145
2146 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
2147
2148         * config/rs6000/spe.md (spe_extendsfdf2): New.
2149         (movdf_e500_double): New.
2150         (spe_truncdfsf2): New.
2151         (spe_absdf2): New.
2152         (spe_nabsdf2): New.
2153         (spe_negdf2): New.
2154         (sub_adddf3): New.
2155         (spe_subdf3): New.
2156         (spe_muldf3): New.
2157         (spe_floatsidf2): New.
2158         (spe_floatunssidf2): New.
2159         (fix_truncdfsi2): New.
2160         (spe_fixuns_truncdfsi2): New.
2161
2162         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
2163         (fpr_truncdfsf2): New.
2164         (negdf2): Change to expander.
2165         (fpr_negdf2): New.
2166         (fpr_nabsdf2): Name pattern.
2167         (adddf3): Change to expander.
2168         (fpr_adddf3): Nem.
2169         (subdf3): Change to expander.
2170         (fpr_subdf3): New.
2171         (muldf3): Change to expander.
2172         (fpr_muldf3): New.
2173         (divdf3): Change to expander.
2174         (fpr_divdf3): New.
2175         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
2176         (cmpdf): Allow for TARGET_E500_DOUBLE.
2177
2178 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2179
2180         * c-semantics.c (re_push_stmt_list): Remove.
2181         * c-common.h: Remove the corresponding prototype.
2182
2183 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2184
2185         * stmt.c (asm_op_is_mem_input): Remove.
2186         * tree.h: Remove the corresponding prototype.
2187
2188 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2189
2190         * tree-gimple.c (is_gimple_constructor_elt): Remove.
2191         * tree-gimple.h: Remove the corresponding prototype.
2192
2193 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2194
2195         * varasm.c (get_pool_mode_for_function, get_pool_offset):
2196         Remove.
2197         * rtl.h: Remove the corresponding prototypes.
2198
2199 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2200
2201         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
2202         edge information when we commit ourselves to threading a
2203         particular jump.
2204
2205 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2206
2207         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
2208         into worklist instead of their indexes.
2209
2210 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2211
2212         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
2213         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
2214         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
2215         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
2216         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
2217         tree-scalar-evolution.c, tree-ssa-dom.c,
2218         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
2219         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
2220         tree-vectorizer.c, vec.h: Fix comment formatting.
2221
2222 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2223
2224         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
2225         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
2226
2227 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2228
2229         * config/ptx4.h, config/mcore/mcore-pe.h,
2230         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
2231
2232 2004-10-22  Peter Barada <peter@the-baradas.com>
2233
2234         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
2235         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
2236         renaming of non-live registers in interrupt functions.
2237         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
2238
2239 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
2240
2241         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
2242         Use integer for loop counter.
2243         (num_ending_zeros): New function.
2244         (number_of_iterations_cond): Use num_ending_zeros.
2245
2246 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
2247
2248         * config.gcc: Add support for --enable-e500_double.
2249
2250         * config/rs6000/e500-double.h: New file.
2251
2252         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
2253         TARGET_E500_DOUBLE.
2254
2255         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
2256         TARGET_E500_DOUBLE.
2257
2258         * config/rs6000/linuxspe.h: Same.
2259
2260         * doc/invoke.texi (Option Summary): Document new options for
2261         mfloat-gprs.
2262         (RS/6000 and PowerPC Options): Same.
2263
2264         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
2265         function.
2266         (rs6000_override_options): Use it.  Use
2267         SUB3TARGET_OVERRIDE_OPTIONS.
2268         Add 8548 to processor_target_table.
2269         (rs6000_legitimate_address): Handle e500 doubles.
2270         (rs6000_legitimize_address): Same.
2271         (rs6000_legitimize_reload_address): Same.
2272         (rs6000_hard_regno_nregs): Same.
2273         (spe_func_has_64bit_regs_p): Same.
2274         (emit_frame_save): Same.
2275         (gen_frame_mem_offset): Same.
2276         (rs6000_dwarf_register_span): Same.
2277         (rs6000_generate_compare): Same.
2278         (easy_fp_constant): Same.
2279         (legitimate_offset_address_p): Same.
2280
2281         * config/rs6000/spe.md: (cmdfeq_gpr): New.
2282         (tstdfeq_gpr): New.
2283         (cmpdfgt_gpr): New.
2284         (tstdfgt_gpr): New.
2285         (tstdfgt_gpr): New.
2286         (cmpdflt_gpr): New.
2287         (tstdflt_gpr): New.
2288         Add new constants.
2289
2290 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2291
2292         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
2293
2294 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
2295
2296         * dbxout.c: Remove unnecessary #undefs.
2297         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
2298         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
2299         definition into use sites.
2300         (cwd): Make local to dbxout_init.
2301         (dbxout_init): Restructure cwd-using logic for clarity.  Use
2302         IS_DIR_SEPARATOR.
2303         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
2304         STABS_GCC_MARKER folded in here.
2305         * system.h: Poison now-unused macros.
2306         * doc/tm.texi: Remove documentation of now-unused macros.
2307
2308 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
2309
2310         PR c/17538
2311         * c-opts.c (push_command_line_include): Use the current file
2312         name instead of the main one.
2313
2314 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
2315
2316         PR objc/17923
2317         * tree.c (staticp): A CONST_DECL has static storage if either
2318         TREE_STATIC or DECL_EXTERNAL is set.
2319         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
2320         have null names.
2321
2322 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
2323
2324         * expr.c (store_expr): Remove dont_store_target.
2325
2326 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
2327
2328         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
2329
2330 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
2331
2332         * tree-cfg.c (thread_jumps): Move a part of it to ...
2333         (thread_jumps_from_bb): ... here.
2334
2335 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
2336
2337         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
2338         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
2339
2340 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
2341
2342         * expr.c (store_expr): Clean up by renaming want_value to
2343         call_param_p.
2344
2345 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
2346
2347         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
2348         fixup pc here.
2349
2350 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
2351
2352         PR 18004.
2353         * expmed.c (store_bit_field): Pass original 'value' before
2354         recursing.
2355
2356 2004-10-21  Nicolas Pitre <nico@cam.org>
2357
2358         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
2359         * config/arm/ieee754-df.S: Ditto.
2360
2361 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
2362
2363         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
2364         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
2365         Default to 0.
2366         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
2367         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
2368         an internal label and an N_SLINE .stabn whose value is the
2369         difference between that label and the function entry label.
2370         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
2371         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
2372         label and an N_SO stab with an empty string referring to it.
2373         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
2374         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
2375         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
2376         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
2377         macro is never defined.
2378         * sdbout.c (sdbout_source_line_counter): Delete.
2379         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
2380         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
2381         only two arguments.
2382         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
2383
2384         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
2385         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
2386         definitions (identical to default).
2387         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
2388         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
2389         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
2390         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
2391         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
2392         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
2393         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
2394         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
2395         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
2396         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
2397         (sym_lineno): Delete.
2398         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
2399         now-unused variable.
2400         (alpha_output_lineno): Delete.
2401         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
2402         * config/mips/mips.c (mips_output_filename): Don't use
2403         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
2404         (mips_output_lineno): Delete.
2405         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
2406         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
2407         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
2408         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
2409         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
2410         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
2411         * config/mmix/mmix.h: Likewise.
2412         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
2413         * config/mmix/mmix-protos.h: Don't prototype it.
2414         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
2415         no need to #undef ASM_OUTPUT_SOURCE_LINE.
2416         * config/arm/aout.h: Remove RISCiX-specific definition of
2417         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
2418         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
2419         ASM_OUTPUT_SOURCE_LINE.
2420         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
2421         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
2422         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
2423
2424         * doc/tm.texi: Update.
2425
2426 2004-10-20  Richard Henderson  <rth@redhat.com>
2427
2428         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
2429
2430 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
2431
2432         * configure.ac: Revert my previous patch.
2433         * configure: Regenerate.
2434
2435 2004-10-20  Ben Elliston  <bje@au.ibm.com>
2436
2437         * config/rs6000/rs6000.c
2438         (rs6000_va_start): Use build_va_arg_indirect_ref.
2439         (rs6000_gimplify_va_arg): Likewise.
2440
2441 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
2442
2443         PR java/15575
2444         * configure.ac: Declare AM_LANGINFO_CODESET.
2445         * aclocal.m4: Define AM_LANGINFO_CODESET.
2446         * configure, config.in: Rebuilt.
2447
2448 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
2449
2450         * expr.c (store_expr): Remove code that is run when
2451         want_value & 1 is nonzero.
2452
2453 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
2454
2455         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
2456         from function pointer to void *.
2457
2458 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2459
2460         PR target/18032
2461         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
2462         the frame pointer adjustment when exception handling is enabled.
2463
2464 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
2465
2466         * stor-layout.c: Fix a comment typo.
2467
2468 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
2469
2470         * expr.c (store_field): Remove two arguments value_mode and
2471         unsignedp.
2472         (expand_assignment, store_constructor_field,
2473         expand_expr_real_1): Adjust calls to store_field.
2474
2475 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
2476
2477         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
2478
2479         PR target/17317
2480         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
2481         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
2482         base and index register for loads.
2483
2484         * config/arc/t-arc: Fix multilib handling.
2485
2486 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
2487
2488         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
2489         don't inspect BLOCK_FOR_INSN for barriers.
2490         * emit-rtl.c (emit_barrier_before): Revert last change.
2491         (emit_barrier_after, emit_barrier): Ditto.
2492
2493         * doc/extend.texi (Extended Asm): Warn and provide example
2494         solution for using a call-clobbered asm register.
2495         (Local Reg Vars): Similar.  Cross-reference example.
2496
2497 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
2498
2499         * tree-cfg.c (group_case_labels): Look at the second to last
2500         case statement for combing with the default case.
2501
2502 2004-10-19  Richard Hendeson  <rth@redhat.com>
2503
2504         PR 17962
2505         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
2506
2507 2004-10-19  Richard Hendeson  <rth@redhat.com>
2508
2509         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
2510         succeeds, only expand the result.
2511
2512 2004-10-19  Richard Hendeson  <rth@redhat.com>
2513
2514         PR middle-end/17885
2515         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
2516         of INDIRECT_REF.
2517
2518 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
2519
2520         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
2521         loop with goto.
2522
2523 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
2524
2525         * expr.c (expand_assignment): Remove the last argument.
2526         Change the return type to void.
2527         * expr.h: Update the prototype of expand_assignment.
2528         * function.c (assign_parm_setup_reg): Update a call to
2529         expand_assignment.
2530         * stmt.c (expand_asm_expr): Likewise.
2531
2532 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
2533
2534         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
2535         unnecessary assignments to temp.  Return const0_rtx.
2536
2537 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
2538
2539         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
2540
2541 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
2542
2543         * configure.ac (powerpc-*-darwin*): Require assembler to support
2544         .machine directive.
2545         * configure: Regenerate.
2546
2547 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
2548
2549         * reload1.c (ior_hard_reg_set): Remove.
2550         (finish_spills): Use IOR_HARD_REG_SET instead of
2551         ior_hard_reg_set.
2552
2553 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
2554
2555         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
2556         the currently visited word to right.
2557
2558 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2559
2560         PR middle-end/18045
2561         * expmed.c (expand_smod_pow2): Handle modes whose size
2562         is greater than that of HOST_WIDE_INT.
2563
2564 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
2565
2566         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
2567
2568 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2569             Roger Sayle  <roger@eyesopen.com>
2570
2571         PR middle-end/17813
2572         * dojump.c (discard_pending_stack_adjust): New function.
2573         (clear_pending_stack_adjust): Call it.
2574         * expr.h (discard_pending_stack_adjust): Declare it.
2575         * explow.c (emit_stack_save): Emit pending stack adjustments
2576         before saving the stack pointer.
2577         (emit_stack_restore): Discard pending stack adjustments before
2578         restoring the stack pointer.
2579
2580 2004-10-18  Richard Henderson  <rth@redhat.com>
2581
2582         * c-common.c (handle_mode_attribute): Allow scalar->vector
2583         type changes yet.
2584
2585 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
2586
2587         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
2588         value to expand_assignment.
2589
2590 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
2591
2592         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
2593         thread_jumps.
2594         (thread_jumps): Iterate until no new forwarder block arises.
2595
2596 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
2597
2598         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
2599         (thread_jumps): Use forwardable as cache of
2600         tree_forwarder_block_p throughout the function.
2601
2602 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
2603
2604         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
2605
2606 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
2607
2608         PR middle-end/15014
2609         PR middle-end/16973
2610         * tree-cfg.c (remove_bb): If we have a label expression in the
2611         basic block and the label we have taken the address, move the
2612         label expression to the basic block which is previous in the
2613         linked list.
2614         (tree_verify_flow_info): Fix printing out the label name of the
2615         problematic label expression.
2616
2617 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
2618
2619         PR rtl-optimization/18002
2620         * simplify-rtx.c (mode_signbit_p): Externalize function...
2621         * rtl.h (mode_signbit_p): ... to here.
2622         * combine.c (simplify_shift_const): Recognize PLUS signbit as
2623         canonical form of XOR signbit and move to outer op.
2624
2625 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
2626
2627         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
2628         Update all callers.
2629         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
2630         Don't call fold_stmt more than once, use bsi_replace.
2631
2632 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
2633
2634         PR tree-optimization/17656
2635         * tree-ssa.c (replace_immediate_uses): When replacing a
2636         constant, if the call to fold_stmt produced a different
2637         statement, get an appropriate statement pointer by scanning
2638         STMT's basic block.
2639
2640 2004-10-18  Richard Henderson  <rth@redhat.com>
2641
2642         * pointer-set.c (hash1): Don't use libm functions in fallback case.
2643
2644 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
2645
2646         PR bootstrap/17684
2647         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
2648         (stage1-start): Remove and copy libunwind.a and
2649         libunwind*$(SHLIB_EXT) instead of libunwind*.
2650         (stage2-start): Likewise.
2651         (stage3-start): Likewise.
2652         (stage4-start): Likewise.
2653         (stageprofile-start): Likewise.
2654         (stagefeedback-start): Likewise.
2655
2656         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
2657         the shared library to be created and don't remove the existing
2658         shared library.
2659         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
2660         * config/i386/t-nwld (SHLIB_LINK): Likewise.
2661         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
2662         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
2663         * config/sh/t-linux (SHLIB_LINK): Likewise.
2664         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
2665         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
2666         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
2667         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
2668
2669         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
2670         files.
2671
2672 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
2673
2674         * basic-block.h (reg_set_iterator): New.
2675         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
2676         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
2677         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
2678         * caller-save.c (save_call_clobbered_regs): Adjust to the new
2679         style.
2680         * cfgcleanup.c (thread_jump): Likewise.
2681         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
2682         * conflict.c (conflict_graph_compute): Likewise.
2683         * flow.c (verify_local_live_at_start, update_life_info,
2684         initialize_uninitialized_subregs, propagate_one_insn,
2685         init_propagate_block_info, free_propagate_block_info,
2686         propagate_block, dump_regset): Likewise.
2687         * global.c (global_conflicts): Likewise.
2688         * graph.c (start_bb): Likewise.
2689         * local-alloc.c (update_equiv_regs): Likewise.
2690         * loop.c (load_mems): Likewise.
2691         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
2692         find_reg, finish_spills): Likewise.
2693         * resource.c (mark_target_live_regs): Likewise.
2694         * sched-deps.c (sched_analyze_insn): Likewise.
2695         * sched-rgn.c (sched-rgn.c): Likewise.
2696         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
2697
2698 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
2699
2700         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
2701         operand 1 instead of 2
2702
2703 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
2704
2705         * loop-unroll.c: Fix comment typos.
2706
2707 2004-10-18  Revital Eres  <eres@il.ibm.com>
2708
2709         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
2710         * loop-unroll.c: Include varray.h.
2711         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
2712         opt_info and expand it to support variable expansion.
2713         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
2714         expand it to support variable expansion.
2715         (pt_info_start_duplication): Rename si_info_start_duplication.
2716         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
2717         to the variable expansion optimization.
2718         (free_opt_info): Rename free_si_info.
2719         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
2720         expand_var_during_unrolling, insert_var_expansion_initialization,
2721         combine_var_copies_in_loop_exit, release_var_copies,
2722         get_expansion): New functions.
2723         (peel_loop_completely, unroll_loop_constant_iterations,
2724         unroll_loop_runtime_iterations, peel_loop_simple,
2725         unroll_loop_stupid): Change uses of struct si_info
2726         to struct opt_info
2727         and add uses of fvariable-expansion-in-unroller flag.
2728         * params.def: Add parameter to restrict the number of expansions.
2729         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
2730         the number of expansions.
2731         * common.opt: (fvariable-expansion-in-unroller): New flag.
2732         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
2733
2734 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
2735
2736         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
2737         __GXX_MERGED_TYPEINFO_NAMES to 0.
2738
2739 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
2740
2741         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
2742         handle barriers in a bb by checking that it points to a NULL bb.
2743         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
2744         (emit_barrier_after, emit_barrier): Ditto.
2745
2746 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
2747
2748         * doc/extend.texi (Attribute Syntax): Clarify details of
2749         attributes on parameters.
2750
2751 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
2752
2753         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
2754         loop.
2755
2756 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
2757
2758         Revert:
2759         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
2760
2761         * c-typeck.c (default_function_array_conversion): Always create
2762         &a[0] for array types.
2763         (build_unary_op): Do not fold &a[x] into a + x.
2764
2765 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
2766
2767         PR middle-end/17925
2768         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
2769         block if there is a goto with a locus.
2770
2771 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
2772
2773         * config/elfos.h, config/gofast.h, config/interix.h,
2774         config/netbsd.h, config/svr3.h, config/vxworks.h,
2775         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
2776         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
2777         config/alpha/netbsd.h, config/arm/arm-modes.def,
2778         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
2779         config/cris/aout.h, config/frv/frv-modes.def,
2780         config/i386/beos-elf.h, config/i386/gas.h,
2781         config/i386/i386-coff.h, config/i386/i386-modes.def,
2782         config/i386/linux.h, config/i386/linux64.h,
2783         config/i386/mingw32.h, config/i386/netbsd-elf.h,
2784         config/i386/netbsd64.h, config/i386/sco5.h,
2785         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
2786         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
2787         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
2788         config/mips/mips-modes.def, config/mips/sdb.h,
2789         config/mips/vr.h, config/mips/vxworks.h,
2790         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
2791         config/pa/pa32-linux.h, config/rs6000/40x.md,
2792         config/rs6000/7450.md, config/rs6000/8540.md,
2793         config/rs6000/linuxspe.h, config/rs6000/power4.md,
2794         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
2795         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
2796         config/s390/s390-modes.def, config/sh/elf.h,
2797         config/sh/sh-modes.def, config/sh/sh64.h,
2798         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
2799         config/stormy16/stormy16.md, config/v850/v850-protos.h,
2800         config/vax/vax.md: Update copyright.
2801
2802 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
2803
2804         * expr.c (expand_expr_real_1): Remove an obsolete comment.
2805
2806 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
2807
2808         * c-typeck.c (default_function_array_conversion): Always create
2809         &a[0] for array types.
2810         (build_unary_op): Do not fold &a[x] into a + x.
2811
2812 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
2813
2814         * pointer-set.c (hash1): Use integer part of 2^64 / phi
2815         instead 2^32 / phi if long is 64-bit.
2816
2817 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
2818
2819         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
2820         RID_PTRVALUE.
2821         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
2822         declarations.
2823         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
2824         __ptrextent__, __ptrvalue and __ptrvalue__.
2825         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
2826         entries.
2827
2828 2004-10-16  Dale Johannesen  <dalej@apple.com>
2829
2830         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
2831
2832 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
2833
2834         PR tree-optimization/17766
2835         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
2836         (dom_info_available_p): Declare.
2837         * cfghooks.c (split_block, make_forwarder_block): Use
2838         dom_info_available_p.
2839         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
2840         free_dominance_info, verify_dominators): Ditto.
2841         (dom_info_available_p): New function.
2842         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
2843         (thread_jumps): Use dom_info_available_p.
2844         * tree-complex.c (expand_complex_div_wide): Ditto.
2845         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
2846
2847 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
2848
2849         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
2850         (find_best_candidate): Take also important candidates into account.
2851         (find_optimal_iv_set): Initialize important_candidates bitmap.
2852
2853 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
2854
2855         PR tree-optimization/17560
2856         * predict.c (tree_estimate_probability): Mark irreducible
2857         loops.
2858
2859 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
2860
2861         PR rtl-optimization/17723
2862         * cfgcleanup.c (merge_memattrs): Handle case when
2863         MEM_SIZE == NULL_RTX.
2864
2865 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
2866
2867         * toplev.c (dump_file_name): Change type to be const.
2868
2869 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2870
2871         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
2872         non_lvalue to stop something being a null pointer constant.
2873
2874 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
2875
2876         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
2877         available for TARGET_FPRS.
2878         (FUNCTION_VALUE_REGNO_P): Same.
2879
2880 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
2881
2882         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2883         -maltivec in same style as other ISA options.
2884
2885 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
2886
2887         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
2888         definition.
2889
2890 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
2891
2892         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
2893         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
2894         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
2895         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
2896         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
2897         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
2898         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
2899         predict.def, predict.h, protoize.c, reload.h, resource.h,
2900         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
2901         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
2902         unwind-sjlj.c, value-prof.h: Update copyright.
2903
2904 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
2905
2906         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
2907
2908 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
2909
2910         * tree-optimize.c (execute_one_pass): Stop timer right after
2911         executing the pass.
2912
2913 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
2914
2915         Revert:
2916         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
2917         PR middle-end/17967
2918         Revert:
2919                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
2920                 (remove_useless_stmts_1):  Fold trees we know how to fold.
2921
2922 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
2923
2924         * configure.ac: Add .machine power4 directive when testing for
2925         mfcr field.
2926         * configure: Regenerate.
2927
2928 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
2929
2930         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
2931
2932 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
2933
2934         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
2935         always.
2936
2937 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
2938
2939         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
2940         for 'f' if !TARGET_FPRS.
2941
2942 2004-10-14  Richard Henderson  <rth@redhat.com>
2943
2944         PR debug/14492
2945         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
2946
2947 2004-10-14  Richard Henderson  <rth@redhat.com>
2948
2949         PR c/17023
2950         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
2951         as error_mark_node.
2952         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
2953         instaed of current_function_decl non-null.
2954
2955 2004-10-14  Matt Austern  <austern@apple.com>
2956
2957         * pointer-set.c: New file, special-purpose hash table.
2958         * pointer-set.h: New file.
2959         * tree.h (struct pointer_set_t): Declare as opaque type.
2960         (tree_walk): Last argument is pointer_set_t* now.
2961         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
2962         (walk_type_fields):
2963         (walk_tree): Convert from htab_t to pointer_set_t for keeping
2964         track of which nodes have already been visited.
2965         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
2966         * cgraphunit.c (cgraph_create_edges): Likewise.
2967         (cgraph_characterize_statics_local): Likewise.
2968         * tree-dfa.c (collect_dfa_stats): Likewise.
2969         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
2970         pointer_set_t* now.
2971         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
2972         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
2973         of walk_subtrees is pointer_set_t* now.
2974         * Makefile.in (OBJS-common): add pointer-set.o
2975         (tree-inline.o): Depends on pointer-set.h
2976         (tree-dfa.o): Likewise
2977         (cgraphunit.o): Likewise
2978
2979 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
2980
2981         * config/rs6000/darwin.h (ASM_SPEC): Delete.
2982         (TARGET_ASM_FILE_START): Define.
2983         * config/darwin.h (ASM_SPEC): Define.
2984         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
2985         -mlong-double-128, it's the default.  Update comment about reason
2986         for force_cpusubtype_ALL.
2987         * config/rs6000/darwin-vecsave.asm: Supply .machine.
2988         * config/rs6000/darwin-world.asm: Likewise.
2989         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
2990         (symbolic_operand): Delete #if 0ed code.
2991
2992 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
2993
2994         * stmt.c (add_case_node): Make sure that we have integer
2995         constant before calling tree_int_cst_compare.
2996
2997 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
2998
2999         PR middle-end/17967
3000         Revert:
3001                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
3002                 (remove_useless_stmts_1):  Fold trees we know how to fold.
3003
3004 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
3005
3006         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
3007         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
3008         -m64.
3009
3010 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
3011
3012         * reload.c (find_reloads): When reloading a PLUS with constant
3013         operand, make sure the constant is pushed to the constant pool
3014         if required.
3015         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
3016         reload bug workaround.
3017         (s390_expand_plus_operand): Likewise.
3018
3019 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
3020
3021         * opts.c (common_handle_option): Do not enable
3022         flag_speculative_prefetching for -fprofile-generate/use.
3023
3024 2004-10-14  Devang Patel  <dpatel@apple.com>
3025
3026         PR 17635
3027         * tree-if-conv.c (process_phi_nodes): Process latch block.
3028         (combine_blocks): Process latch block and update loop structure.
3029
3030 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
3031
3032         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
3033         (vect_update_ivs_after_vectorizer):
3034         (vect_transform_for_unknown_loop_bound):
3035         (tree_duplicate_loop_to_edge):
3036         (allocate_new_names):
3037         (rename_use_op):
3038         (rename_def_op):
3039         (rename_variables_in_bb):
3040         (free_new_names):
3041         (rename_variables_in_loop):
3042         (copy_phi_nodes):
3043         (update_phis_for_duplicate_loop):
3044         (update_phi_nodes_for_guard):
3045         (make_loop_iterate_ntimes):
3046         (tree_duplicate_loop_to_edge_cfg):
3047         (add_loop_guard):
3048         (vect_analyze_loop_with_symbolic_num_of_iters):
3049         (verify_loop_for_duplication):
3050         (vect_gen_niters_for_prolog_loop):
3051         (vect_update_niters_after_peeling):
3052         (vect_update_inits_of_dr):
3053         (vect_update_inits_of_drs):
3054         (vect_build_loop_niters):
3055         (vect_do_peeling_for_alignment): New functions.
3056         (vect_transform_loop): Add unknown and known but indivisible loop
3057         bound support; add peeling for unalignment support.
3058         (vect_analyze_loop_form): Support symbolic number of iterations.
3059         (vect_transform_loop_bound): New input parameter.
3060         (vect_get_loop_niters): Change input parameter type.
3061         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
3062         (vectorizable_store): Allow unaligned access.
3063         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
3064         (vect_analyze_data_refs_alignment): Allowed one unaligned
3065         store.
3066         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
3067         to use tree.
3068         (LOOP_VINFO_INT_NITERS): New macro.
3069         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
3070         (do_peeling_for_alignment):
3071         (unaligned_drs): New members of _loop_vec_info.
3072         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
3073
3074 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
3075
3076         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
3077         (struct tree_string): Remove "const" qualifier for "str".
3078
3079 2004-10-14  Ira Rosen  <irar@il.ibm.com>
3080
3081         * tree-vectorizer.c (vect_analyze_data_refs): Call
3082         vect_get_base_and_bit_offset to get memory tag for array ref.
3083         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
3084
3085 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
3086
3087         * configure.ac: Use $LN_S for creating symlinks (not $LN).
3088         * configure: Regenerate.
3089
3090 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3091
3092         * doc/install.texi (*-*-solaris2*): Update with info about kernel
3093         patches to solve spurious testsuite failures.
3094
3095 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
3096
3097         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
3098         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
3099         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
3100         gcc_assert under ENABLE_CHECKING.
3101         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
3102         get_vectype_for_scalar_type).
3103
3104         (vect_get_vec_def_for_operand): Remove redundant variables.
3105         (vect_transform_loop): Likewise.
3106
3107 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
3108
3109         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
3110         global for -mcaller-super-interworking.
3111         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
3112         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
3113         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
3114         not need a frame pointer.
3115         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
3116         the soft frame pointer offset.
3117         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
3118         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
3119         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
3120         the stack.  Use frame_pointer_needed to choose between them.
3121         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
3122         (interwork_with_frame): New macro.
3123         (interwork): Add _interwork_{r7,r11}_call_via_rN().
3124
3125 2004-10-14  Ben Elliston  <bje@au.ibm.com>
3126
3127         PR other/17900
3128         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
3129         up the filename looking for a previous directory separator.
3130
3131 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
3132
3133         * c-tree.h (enum c_typespec_kind, struct c_typespec,
3134         parser_xref_tag): New.
3135         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
3136         typedef_p.
3137         (declspecs_add_type): Adjust prototypes.
3138         * c-parse.in (%union): Add tstype.
3139         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
3140         typespec_reserved_attr, typespec_nonreserved_nonattr,
3141         structsp_attr, structsp_nonattr): Change to tstype.  Update
3142         actions.
3143         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
3144         (declspecs_add_type): Update to take struct c_typespec argument.
3145         Set tag_defined_p and typedef_p as appropriate.
3146         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
3147         Update to return struct c_typespec.
3148         (shadow_tag_warned): Don't let empty declarations with qualifiers
3149         or storage class specifiers redeclare a tag if a previous
3150         declaration is visible.
3151
3152 2004-10-13  Richard Henderson  <rth@redhat.com>
3153
3154         PR debug/15860
3155         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
3156         for DECL_INCOMING_RTL.
3157
3158 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
3159
3160         PR target/17984
3161         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
3162         trunc_int_for_mode for constants used in shortened mode.
3163
3164 2004-10-13  Richard Henderson  <rth@redhat.com>
3165
3166         PR c/17384
3167         * c-common.c (handle_mode_attribute): Disallow mode changes that
3168         alter the CODE of the top-level type.
3169
3170         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
3171         integer from internal limits macros.
3172         * config/i386/mm3dnow.h (__v2sf): Fix base type.
3173
3174 2004-10-13  Richard Henderson  <rth@redhat.com>
3175
3176         PR debug/13841
3177         * function.c (instantiate_decl): Recurse for CONCAT.
3178
3179 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
3180
3181         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
3182         andi./andis.
3183         (anddi3): Same.
3184         (extzvdi_internal1): Add attribute "compare".
3185         (extzvdi_internal2): Same.
3186
3187 2004-10-12  Tom Tromey  <tromey@redhat.com>
3188
3189         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
3190
3191 2004-10-13  Dale Johannesen  <dalej@apple.com>
3192
3193         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
3194
3195 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
3196
3197         * toplev.c (compile_file): Call mudflap_finish_file from here ...
3198         * c-decl.c (c_write_global_declarations): ... instead of here ...
3199         * cp/decl.c (cp_finish_file): ... and here.
3200         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
3201
3202 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
3203
3204         * tree-ssa-dom.c (record_range): Free the element if we are not
3205         going to use it.
3206
3207 2004-10-13  Tom Tromey  <tromey@redhat.com>
3208
3209         PR java/15578:
3210         * gcc.c (option_map): Added --extdirs and --encoding.
3211
3212 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3213
3214         PR target/14454
3215         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
3216         sparc_can_output_mi_thunk.
3217         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
3218         handling of vcall offset.
3219         (sparc_can_output_mi_thunk): New predicate.
3220         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
3221         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
3222         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
3223
3224         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
3225
3226         * config/sparc/sparc.md (movdi): Remove redundant test.
3227
3228 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
3229
3230         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
3231         TDF_IPA from -fdump-tree-*-all.
3232
3233 2004-10-13  Paul Brook  <paul@codesourcery.com>
3234
3235         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
3236         * config/arm/arm.c (thumb_find_work_register): Update comments.
3237         (arm_load_pic_register): Add argument for scratch register.
3238         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
3239         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
3240
3241 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
3242
3243         * tree-data-ref.c: Fix comment typos.
3244
3245 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
3246             Zdenek Dvorak  <dvorakz@suse.cz>
3247
3248         PR tree-optimization/17724
3249         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
3250
3251 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
3252
3253         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
3254         (altivec_builtin_mask_for_store): Likewise.
3255         (altivec_init_builtins): Use lang_hooks.builtin_function to
3256         create the decls for builtin_altivec_mask_for_load/store.
3257
3258 2004-10-13  Nick Clifton  <nickc@redhat.com>
3259
3260         * config/c4x/c4x.c: Remove inclusion of loop.h.
3261
3262 2004-10-12  Ben Elliston  <bje@au.ibm.com>
3263
3264         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
3265         (ei_container): New; renamed.
3266         (ei_start, ei_last): New macros.
3267         (ei_start_1, ei_last_1): Renamed from ei_start.
3268         (ei_last_1, ei_end_p): Use ei_container() where applicable.
3269         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
3270         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
3271
3272 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
3273
3274         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
3275         * cfgloop.c (initialize_loops_parallel_p): New.
3276         (flow_loops_find): Initialize the parallel_p field to true for all
3277         the loops.
3278         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
3279         (estimate_numbers_of_iterations_loop): Infers the loop bounds from
3280         the size of the data accessed in the loop.
3281         (struct nb_iter_bound): Moved...
3282         * cfgloop.h (struct nb_iter_bound): ... here.
3283         (estimated_nb_iterations, parallel_p): New fields in struct loop.
3284         (record_estimate): Declare extern here.
3285         * tree-chrec.c: Fix comments.
3286         (nb_vars_in_chrec): New function.
3287         * tree-chrec.h (nb_vars_in_chrec): Declared here.
3288         * tree-data-ref.c: Don't include lambda.h, that is already included
3289         in tree-data-ref.h.
3290         (tree_fold_divides_p): Don't check for integer_onep.
3291         (tree_fold_bezout): Removed.
3292         (gcd): New static duplicated function.
3293         (int_divides_p, dump_subscript): New.
3294         (dump_data_dependence_relation): Use dump_subscript.
3295         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
3296         estimate_niter_from_size_of_data): New.
3297         (analyze_array_indexes, analyze_array): Call
3298         estimate_niter_from_size_of_data during the detection of array
3299         references.  Pass in a pointer to the statement that contains the
3300         array reference.
3301         (all_chrecs_equal_p): New.
3302         (compute_distance_vector): Renamed compute_subscript_distance.
3303         Deal with multivariate conflict functions.
3304         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
3305         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
3306         (non_affine_dependence_relation): New.
3307         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
3308         analyze_siv_subscript, analyze_miv_subscript,
3309         analyze_overlapping_iterations, subscript_dependence_tester):
3310         Initialize and return last_conflicts function.
3311         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
3312         compute_overlap_steps_for_affine_1_2): New.
3313         (analyze_siv_subscript_affine_cst): Removed.
3314         (analyze_subscript_affine_affine): Disprove dependences based on the
3315         iteration domains.  Solve the univariate dependence case as before,
3316         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
3317         Implement the multivariate case of 2 versus 1 variables.
3318         (build_classic_dist_vector, build_classic_dir_vector): Implement some
3319         unhandled cases.
3320         (find_data_references_in_loop): Compute and initialize
3321         loop->estimated_nb_iterations and loop->parallel_p.
3322         (analyze_all_data_dependences): Modify the debug dump order.
3323         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
3324         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
3325         (SUB_LAST_CONFLICT, subscript->last_conflict,
3326         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
3327         DDR_AFFINE_P, DDR_SIZE_VECT): New.
3328         (find_data_references_in_loop, initialize_data_dependence_relation,
3329         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
3330
3331 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
3332
3333         * configure: Regenerate.
3334
3335 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
3336
3337         PR 17892
3338         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
3339         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
3340         and constant folding of floating point MULT_EXPR/PLUS_EXPR
3341         expressions.
3342
3343 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
3344
3345         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
3346         (s390_gimplify_va_arg): Likewise.
3347
3348 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
3349
3350         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
3351         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
3352         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
3353         * regclass.c (record_address_regs): Remove ifdef.  Use
3354         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
3355         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
3356         definition.
3357         (scan_rtx_address, replace_oldest_value_addr): Use
3358         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
3359         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
3360         unnecessary definitions.
3361         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
3362         and MODE_BASE_REG_REG_CLASS.
3363         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
3364         (MODE_BASE_REG_REG_CLASS): Define.
3365         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
3366         (REG_MODE_OK_FOR_REG_BASE_P): Define.
3367         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
3368         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
3369
3370 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
3371
3372         * tree-ssa-alias.c (verify_name_tags): New function.
3373         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
3374         (verify_alias_info): Call verify_name_tags.
3375
3376 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
3377
3378         PR rtl-optimization/17931
3379         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
3380         ZERO_EXTRACT in it.
3381
3382 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
3383
3384         * arm.c (arm_print_operand): Use output_operand_lossage where possible
3385         rather than aborting.
3386
3387 2004-10-12  Paul Brook  <paul@coudesourcery.com>
3388
3389         * config.gcc: Add armv6{k,z,zk}
3390         * config/arm/arm-cores.def: Add arm1176 and mpcore.
3391         * config/arm/tune.md: Regenerate.
3392         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
3393         Define.
3394         (all_architectures): Add armv6k, armv6z, armv6zk.
3395         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
3396         * doc/invoke.texi: Document new arch and cpu values.
3397
3398 2004-10-12  Paul Brook  <paul@coodesourcery.com>
3399
3400         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
3401         meabi=4.
3402
3403 2004-10-12  Paul Brook  <paul@codesourcery.com>
3404
3405         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
3406         Handle negative constants.
3407
3408 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
3409
3410         PR c/17301
3411         * c-typeck.c (convert_arguments): Return error_mark_node if there
3412         are too few arguments.
3413         (build_function_call): Handle error_mark_node return from
3414         convert_arguments.
3415
3416 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
3417
3418         * configure.ac (symbolic_link): Replace with $LN_S.
3419         (Assembler/Linker): Hard link from gas and binutils trees.
3420         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
3421         * configure: Regenerate.
3422
3423 2004-10-12  Paul Brook  <paul@codesourcery.com>
3424
3425         * configure.ac: Don't look for host assembler when building a canadian
3426         cross.
3427         * configure: Regenerate.
3428
3429 2004-10-11  Roger Sayle  <roger@eyesopen.com>
3430
3431         PR other/17361
3432         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
3433         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
3434         line options for "-lang-asm" and if found allow any of the C-family
3435         front-end options.
3436         (c_common_handle_option): Remove last use of permit_fortran_options.
3437
3438 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
3439
3440         * config/s390/s390.c (print_operand): Support 'S' format flag.
3441         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
3442         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
3443         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
3444         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
3445         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
3446         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
3447         ("*movstricthi"): Likewise.
3448         ("*load_multiple_di", "*load_multiple_si"): Likewise.
3449         ("*store_multiple_di", "*store_multiple_si"): Likewise.
3450         ("*sethiqisi", "*sethihisi"): Likewise.
3451         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
3452         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
3453         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
3454         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
3455         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
3456
3457         ("*tmhi_full"): Fix incorrect op_type attribute.
3458
3459         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
3460         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
3461         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
3462         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
3463
3464 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
3465
3466         PR middle-end/16266
3467         * function.c (temp_slots_at_level): Fix typo which creates too
3468         many temp stack slots levels.
3469
3470 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
3471
3472         * config/s390/s390.c (s390_trampoline_template): Generate shorter
3473         trampoline code.
3474         (s390_trampoline_instantiate): Adapt.
3475         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
3476
3477 2004-10-11  Roger Sayle  <roger@eyesopen.com>
3478
3479         PR middle-end/17657
3480         * stmt.c (add_case_node): Add additional type argument.  Declare
3481         as static to match prototype.  Convert the upper and lower bounds
3482         to the specified index type.  Optimize away case ranges/values
3483         that are outside the index type's bounds.  Truncate case ranges
3484         that span the index type's bounds.
3485         (expand_case): Avoid unnessary computation and memory allocation
3486         when index type is error_mark_node.  Pass index_type as required
3487         by change to add_case_node API.  No need to convert case range
3488         bounds to index_type, this is now done by add_case_node.
3489
3490 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
3491
3492         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
3493         * config/s390/s390.c (s390_offset_p): New function.
3494         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
3495         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
3496         transform Q->Q alternatives to *clc pattern.
3497         ("*clc"): Move.
3498         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
3499         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
3500         to transform Q->Q alternatives to *mvc pattern.
3501         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
3502         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
3503         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
3504         transform Q->Q alternatives to *nc pattern.
3505         ("*nc"): New insn.  New peephole to merge adjacent NCs.
3506         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
3507         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
3508         transform Q->Q alternatives to *oc pattern.
3509         ("*oc"): New insn.  New peephole to merge adjacent OCs.
3510         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
3511         transform Q->Q alternatives to *xc pattern.
3512         ("*xc"): New insn.  New peephole to merge adjacent XCs.
3513         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
3514
3515 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
3516
3517         * gimplify.c (gimple_push_condition): Make sure that we don't
3518         have any saved condition cleanup if we were at the top level.
3519
3520 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
3521
3522         * config/frv/frv.md (*adddi3_internal): Change name to...
3523         (adddi3): ...replacing the exisiting define_expand.  Combine
3524         alternatives.  Fix the range of the constant constraints ('J' instead
3525         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
3526         to extract the lower and upper halves of the DImode operands.
3527         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
3528         (adddi3_lower): Fix the range of the constant constraints and
3529         remove the bogus operands[2] check.
3530         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
3531         operand 2.  Use addxi to handle constant operands.
3532         (subdi3_lower, subdi3_upper): Don't handle constant operands.
3533
3534 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
3535
3536         * gengtype-lex.l: Add commented } & ) characters to unconfuse
3537         editor's paren matching. Allow #define inside a struct.
3538
3539 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
3540
3541         PR middle-end/17703
3542         part of PR c++/17657
3543         * fold-const.c (fold_build_cleanup_point_expr): New function.
3544         * tree.h (fold_build_cleanup_point_expr): Prototype.
3545
3546 2004-10-10  Eric Christopher  <echristo@redhat.com>
3547
3548         * dwarf2out.c: Move attribute to subprogram declaration
3549         instead of subroutine type.
3550
3551 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
3552
3553         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
3554         hoist_insn_after, and hoist_insn_to_edge.
3555         * rtl.h: Remove the prototypes for reg_referenced_between_p,
3556         no_jumps_between_p, and insn_dependent_p.
3557         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
3558         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
3559         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
3560         hoist_insn_to_edge): Remove.
3561
3562 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3563
3564         PR c/17881
3565         * c-decl.c (grokparms): Don't warn for parameters of incomplete
3566         type in declarations that are not definitions except for the case
3567         of parameters of void type.
3568
3569 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
3570
3571         * tree-cfg.c: Fix comment typos.
3572
3573 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3574
3575         PR c/17301
3576         * builtins.c (expand_builtin_va_start): Check for too few
3577         arguments to va_start.
3578
3579 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3580
3581         PR c/17189
3582         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
3583         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
3584         pedantic.
3585         * c-parse.in (component_decl): Don't pedwarn here for unnamed
3586         fields.
3587
3588 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
3589
3590         PR tree-optimization/17906
3591         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
3592         copy non-gimple reg arguments.
3593
3594 2004-10-09  Roger Sayle  <roger@eyesopen.com>
3595
3596         PR rtl-optimization/17853
3597         * simplify-rtx.c (simplify_relational_operation): Correct comment.
3598         Reorganize handling of comparison operations with floating point
3599         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
3600         Likewise, introduce support for comparison operations with vector
3601         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
3602
3603         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
3604         * doc/tm.texi: Likewise.
3605
3606 2004-10-09  Steven Bosscher  <stevenb@suse.de>
3607
3608         * regs.h (struct reg_info_def): Remove the last_node_uid and
3609         changes_mode fields.
3610         (REGNO_LAST_NOTE_UID): Don't define.
3611         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
3612         * regmove.c (copy_src_to_dest): Likewise.
3613
3614 2004-10-09  Roger Sayle  <roger@eyesopen.com>
3615
3616         PR middle-end/17894
3617         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
3618         relational comparison operator op needs to be swapped/reversed when
3619         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
3620
3621 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
3622
3623         PR tree-opt/17902
3624         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
3625         instead of bsi_start.
3626         (value_replacement): Likewise.
3627         (abs_replacement): Likewise
3628
3629 2004-10-09  Steven Bosscher  <stevenb@suse.de>
3630
3631         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
3632         (expand_gimple_cond_expr, expand_gimple_tailcall,
3633         expand_gimple_basic_block): Use it to dump RTL for each stmt.
3634         (tree_expand_cfg): Announce full RTL function dump.
3635         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
3636         not the graph version.
3637         * tree-pretty-print.c (dump_generic_node): Allow empty statements
3638         in the arms of a COND_EXPR for lowered nodes.
3639
3640 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
3641
3642         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
3643         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
3644         strtoufix16, strtoufix32, strtoufix64): Declare.
3645
3646 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
3647
3648         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
3649         for an out-of-range floating point constant.
3650         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
3651         warning if the target format does not support infinities.
3652
3653 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
3654
3655         * emit-rtl.c (last_label_num, base_label_num): Remove.
3656         (max_label_num): Always return label_num.
3657         (set_new_last_label_num, restore_emit_status): Remove.
3658         (init_emit): Don't initialize last_label_num.
3659         * function.c (pop_function_context_from): Don't call
3660         restore_emit_status.
3661         * function.h: Remove the prototype for restore_emit_status.
3662         * rtl.h: Remove the prototype for set_new_last_label_num.
3663
3664 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
3665
3666         * stmt.c (expand_decl_init): Remove.
3667         * tree.h: Remove the corresponding prototype.
3668
3669 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
3670
3671         * integrate.c (try_constants, subst_constants, mark_stores):
3672         Remove.
3673         * integrate.h: Remove the prototype for try_constants.
3674
3675 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
3676
3677         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
3678         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
3679         comments about its relevance to errors.
3680         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
3681
3682 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
3683
3684         PR c/16999
3685         * c-ppoutput.c (cb_ident): Don't quote string as it is already
3686         quoted.
3687
3688 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
3689
3690         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
3691         reference_node_pool.
3692
3693 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
3694
3695         * tree-cfg.c: Fix a comment typo.
3696
3697 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
3698
3699         * config/s390/s390.c (s390_register_info): Don't save fprs for
3700         -msoft-float.
3701         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
3702
3703 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
3704
3705         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
3706         (TARGET_DEFAULT): Use symbolic values.
3707         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
3708         (TARGET_DEFAULT): Use symbolic values.
3709         * config/s390/s390.c (s390_backchain_string): Initialize to
3710         TARGET_DEFAULT_BACKCHAIN.
3711
3712 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3713
3714         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
3715         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
3716         code.
3717         (expand_builtin_strcat): Accept a type parameter.
3718         (fold_builtin_mempcpy): Accept a type and endp parameter.
3719
3720         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
3721         Accept an `exp' instead of an `arglist'.
3722
3723 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
3724
3725         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
3726         reverting my 2004-09-07 patch to use build_int_cst.
3727
3728 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
3729
3730         PR target/17245
3731         * config/sparc/sparc.c (input_operand): Remove redundant code
3732         for handling LO_SUM.
3733         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
3734         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
3735         Otherwise only accept it for TFmode if quad move insns are available.
3736
3737 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
3738
3739         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
3740         common cases will be caught earlier than others.
3741
3742 2004-10-08  Michael Matz  <matz@suse.de>
3743
3744         * loop-doloop.c (doloop_optimize): Extend count.
3745
3746 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
3747
3748         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
3749         (prefetch): Convert to expander.
3750
3751 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
3752
3753         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
3754         first argument of CALL.
3755         (tls_local_dynamic): Likewise.
3756
3757 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
3758
3759         * c-typeck.c (enum impl_conv): New.
3760         (convert_for_assignment): Use it.  Take tree for function called
3761         instead of its name.  Handle ObjC selectors for diagnostics at
3762         start of function.  Select diagnostic text within the function
3763         using full sentences for diagnsotics.  Use %qE to name functions
3764         in diagnostics.
3765         (convert_arguments, build_modify_expr,
3766         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
3767         callers to convert_for_assignment.
3768         (warn_for_assignment): Remove.
3769
3770 2004-10-08  Nick Clifton  <nickc@redhat.com>
3771
3772         * config/sh/symbian.c (symbian_possibly_export_base_class):
3773         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
3774         TYPE_CONTAINS_VPTR_P.
3775
3776 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
3777
3778         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
3779         fixed registers form all_used_regs. Update call_really_used_regs.
3780         (CALL_REALLY_USED_REGISTERS): Define.
3781         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
3782         with call_really_used_regs.
3783
3784 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
3785
3786         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
3787         for -profile as well as -p and -pg.
3788
3789 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
3790
3791         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
3792
3793 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
3794
3795         * tree-cfg.c (tree_block_forwards_to): Remove.
3796         * tree-flow.h: Remove the corresponding prototype.
3797
3798 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
3799
3800         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
3801         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
3802
3803 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
3804
3805         Radar 3813796
3806         * config/rs6000/rs6000.c (rs6000_generate_compare): When
3807         flag_trapping_math is in effect, don't generate subtract
3808         instructions.
3809
3810 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
3811
3812         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
3813         * config/s390/s390.c (s390_narrow_logical_operator): New function.
3814         (s390_extra_constraint_str): Add 'A' constraints.
3815         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
3816         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
3817         (CONSTRAINT_LEN): Likewise.
3818         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
3819         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
3820         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
3821         ("*iordi3"): Add OI alternative and splitter.
3822         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
3823         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
3824         ("*xordi3"): Add XI alternative and splitter.
3825         ("*xorsi3", "*xorhi3"): Likewise.
3826
3827 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
3828
3829         * config/mips/mips.c (mips_function_rodata_section): New function.
3830         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
3831
3832 2004-10-07  Devang Patel  <dpatel@apple.com>
3833
3834         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
3835         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
3836         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
3837         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
3838         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
3839         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
3840         UNSPEC_VCONDU_V16QI): New constant defines.
3841         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
3842         vconduv16qi): New patterns.
3843         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
3844         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
3845         (get_vec_cmp_insn): Same.
3846         (get_vsel_insn): Same.
3847         (rs6000_emit_vector_compare): Same.
3848         (rs6000_emit_vector_select): Same.
3849         (INSN_NOT_AVAILABLE): New.
3850
3851 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
3852
3853         PR tree-optimization/17749
3854         * tree-tailcall.c (find_tail_calls): Check that parameter is
3855         a gimple_reg.
3856
3857 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
3858
3859         * config/ia64/ia64.c: Fix a comment typo.
3860
3861 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3862
3863         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
3864
3865 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3866
3867         PR c++/17115
3868         * tree-inline.c (expand_call_inline): Do not warn for functions
3869         marked with attribute noinline.
3870
3871 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3872
3873         PR target/17862
3874         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
3875         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
3876
3877         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
3878         of 0 as 4th argument to pass_by_reference.
3879         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
3880
3881 2004-10-06  Eric Christopher  <echristo@redhat.com>
3882
3883         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
3884         attribute.
3885
3886 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
3887
3888         PR target/17770
3889         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
3890
3891 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
3892
3893         PR rtl-optimization/17791
3894         * loop-doloop.c (doloop_modify): Take number of iterations as
3895         argument.
3896         (doloop_optimize): Extend or shorten the number of iterations
3897         when changing mode of counter register.
3898         * loop-iv.c (lowpart_subreg): Export.
3899         * rtl.h (lowpart_subreg): Declare.
3900
3901 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
3902
3903         PR tree-optimization/17806
3904         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
3905         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
3906         flags moved to split_edge.
3907
3908 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3909
3910         PR middle-end/17835
3911         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
3912         before tentatively building the conditional move sequence.
3913
3914 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
3915
3916         PR target/16815
3917         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
3918         check.
3919         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
3920         function_arg_padding.
3921
3922 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
3923
3924         PR bootstrap/17857
3925         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
3926
3927 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
3928
3929         * hooks.c (hook_int_void_1, hook_void_int): Remove.
3930         * hooks.h: Remove the corresponding prototypes.
3931
3932 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
3933
3934         PR middle-end/17849
3935         * tree-nested.c (walk_stmt_info): Add changed field.
3936         (convert_nonlocal_reference): Set changed to when we
3937         change a decl to unnested decl.
3938         <case ADDR_EXPR>: Instead of checking if the immediate part
3939         of the ADDR_EXPR changed, check the field changed.
3940         Use recompute_tree_invarant_for_addr_expr instead of unsetting
3941         TREE_INVARIANT.
3942         (convert_local_reference):  Set changed to when we
3943         change a decl to unnested decl.
3944         <case ADDR_EXPR>: Instead of checking if the immediate part
3945         of the ADDR_EXPR changed, check the field changed.
3946         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
3947
3948 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
3949
3950         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
3951         * dwarf2out.c (dwarf2out_init): Remove references to
3952         DWARF2_GENERATE_TEXT_SECTION_LABEL.
3953         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
3954         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
3955
3956 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
3957
3958         * c-typeck.c (convert_arguments): Take expression for called
3959         function rather than its name.  Handle ObjC selectors directly
3960         rather than relying on warn_for_assignment to do so.  Call warning
3961         directly rather than warn_for_assignment.  Use %qE in diagnostics.
3962         Say "argument" rather than "arg" in diagnostics.
3963         (build_function_call): Update call to convert_arguments.
3964
3965 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
3966
3967         PR debug/17787
3968         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
3969         ENUMs specially instead of just saying we do.
3970
3971 2004-10-06  Eric Christopher  <echristo@redhat.com>
3972
3973         * dwarf2.h: Sync with include/elf/dwarf2.h
3974
3975 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
3976
3977         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
3978         and TREE_VEC nodes.
3979
3980 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
3981
3982         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
3983         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
3984
3985 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
3986
3987         * lambda-code.c (compute_nest_using_fourier_motzkin): New
3988         function.
3989         (lambda_compute_auxillary_space): Split from here.
3990
3991 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
3992
3993         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
3994         * tree-flow.h: Add prototype.
3995         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
3996         expr_invariant_in_loop.
3997
3998 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
3999
4000         * tree-cfg.c (thread_jumps): Remove a duplicate check for
4001         EXIT_BLOCK_PTR.
4002
4003 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
4004
4005         * config/s390/s390-protos.h (s_imm_operand): Remove.
4006         (s390_pool_operand): Add prototype.
4007         * config/s390/s390.c (general_s_operand): Remove.
4008         (s_imm_operand): Remove.
4009         (s_operand): Merge contents of general_s_operand.
4010         (s390_pool_operand): New function.
4011         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
4012         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
4013         ("*cmpdi_ccu"): Merge Q->Q alternative.
4014         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
4015         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
4016         ("*cli"): Remove.
4017         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
4018         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
4019         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
4020
4021 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
4022
4023         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
4024         call ia64_function_arg_boundary.
4025         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
4026         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
4027         (ia64_function_arg_advance): Do not put 128 bit floats into
4028         FP registers.
4029
4030 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4031
4032         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
4033         Accept an expression instead of an arglist.
4034         (expand_builtin_stpcpy): Accept an expression instead of an
4035         arglist.
4036
4037 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4038
4039         PR target/16007
4040         * doc/install.texi (*-*-solaris2*): Mention potential problem
4041         with Sun assembler + GNU linker and C++ programs.
4042         Document status of binutils 2.15 release.
4043
4044 2004-10-06  Jan Hubicka  <jh@suse.cz>
4045
4046         * cse.c (cse_main): Kill push/pop context.
4047
4048 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
4049
4050         * pretty-print.c: Include tree.h.
4051         (pp_base_prepare_to_format): New function, logic from
4052         text_specifies_location.
4053         (pp_base_format_text): Use gcc_assert.
4054         * pretty-print.h (pp_prepare_to_format): New macro.
4055         (pp_base_prepare_to_format): Prototype.
4056         * diagnostic.c (text_specifies_location): Delete.
4057         (bug_report_request): Delete.
4058         (diagnostic_set_info): Don't call text_specifies_location.
4059         (diagnostic_action_after_output): Put text from
4060         bug_report_request inline here.  Use gcc_unreachable.
4061         (diagnostic_report_current_function): Fix comment.
4062         (diagnostic_report_diagnostic): Clarify logic for error recursion.
4063         Call pp_prepare_to_format before diagnostic_starter.
4064         (trim_filename): Use IS_DIR_SEPARATOR.
4065         (fatal_error, internal_error): Use gcc_unreachable.
4066         (error_recursion): Call diagnostic_action_after_output to
4067         issue the bug_report_request message and exit.
4068         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
4069
4070         * c-parse.in: Add list of diagnostic messages to insulate
4071         translation template from version of yacc/bison used to
4072         compile the grammar.
4073
4074 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
4075
4076         PR 16406
4077         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
4078
4079 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4080
4081         * basic-block.h: Remove the prototype for
4082         flow_preorder_transversal_compute.
4083         * cfganal.c (dfst_node): Remove.
4084         (flow_preorder_transversal_compute): Likewise.
4085         * rtl.h: Remove the prototype for get_jump_table_offset.
4086         * rtlanal.c (get_jump_table_offset): Remove.
4087
4088 2004-10-05  Richard Henderson  <rth@redhat.com>
4089
4090         PR 17756
4091         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
4092
4093 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
4094
4095         PR bootstrap/17817
4096         * Makefile.in: Stage the build directory too.
4097
4098 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
4099
4100         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
4101
4102         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
4103         (frv_emit_move): Same.
4104
4105         * config/frv/frv.c (frv_emit_move): New.
4106         (frv_legitimize_address): New.
4107
4108         * config/frv/frv.md ("movsi"): Call frv_emit_move.
4109         ("movqi"): Same.
4110         ("movhi"): Same.
4111         ("movdi"): Same.
4112         ("movsf"): Same.
4113         ("movdf"): Same.
4114
4115 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
4116
4117         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
4118         system headers.
4119
4120 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
4121
4122         * c-decl.c (pushdecl): When an extern declaration at block scope
4123         refers to a visible entity with internal linkage, use the old DECL
4124         rather than the new one.
4125
4126 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4127
4128         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
4129         comments.
4130
4131 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4132
4133         * tree-cfg.c (thread_jumps): Remove a duplicate check for
4134         an infinite loop.
4135
4136 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4137
4138         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
4139         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
4140         blocks.
4141
4142 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4143
4144         * tree-cfg.c (cleanup_tree_cfg): Don't call
4145         delete_unreachable_blosk() after thread_jumps().
4146         (thread_jumps): Always remove basic blocks as they become
4147         unreachable.
4148
4149 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4150
4151         * tree-cfg.c (cleanup_tree_cfg): Remove variable
4152         something_changed.  Simplify the while loop.
4153
4154 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4155
4156         * builtins.c (expand_builtin_memmove): Delete duplicate code
4157         and accept a tree type for the result.
4158         (expand_builtin_bcopy): Accept a tree type for the result.
4159         (fold_builtin_memmove): Accept an arglist and tree type for
4160         the result.
4161
4162 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
4163
4164         * config/s390/s390.c (s390_dump_pool): Remove return value.
4165         Use gen_pool_align, gen_pool_section_start/end instead of
4166         gen_pool_start/end_31/64.
4167         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
4168         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
4169         ("pool_start_31", "pool_end_31"): Remove.
4170         ("pool_start_64", "pool_end_64"): Likewise.
4171         ("pool_align", "pool_section_start", "pool_section_end": New insns.
4172
4173         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
4174         (TARGET_CANNOT_COPY_INSN_P): Define.
4175         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
4176         (struct constant_pool): New member 'execute'.
4177         (s390_add_execute, s390_find_execute): New functions.
4178         (s390_execute_label, s390_execute_target): Likewise.
4179         (s390_dump_pool): Output in-pool execute target templates.
4180         (s390_dump_execute): New function.
4181         (s390_alloc_pool, s390_free_pool): Handle execute templates.
4182         (s390_mainpool_start, s390_mainpool_finish): Likewise.
4183         (s390_chunkify_start, s390_chunkify_finish): Likewise.
4184         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
4185         ("*execute"): New insn pattern.
4186         ("movmem_short", "*movmem_short"): Use splitters to generate
4187         explicit execute pattern, remove embedded execute.
4188         ("clrmem_short", "*clrmem_short"): Likewise.
4189         ("cmpmem_short", "*cmpmem_short"): Likewise.
4190
4191 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
4192
4193         * tree-ssa.c (verify_ssa): Verify phi arguments only
4194         contain renamed names.
4195
4196 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
4197
4198         * config/rs6000/linux.h: Formatting, whitespace.
4199         * config/rs6000/linux64.h: Likewise.
4200         * config/rs6000/rs6000-protos.h: Likewise.
4201         * config/rs6000/rs6000.c: Likewise.
4202         (easy_vector_splat_const): Add fall thru comments.
4203         (output_vec_const_move): Likewise.
4204
4205 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
4206
4207         * Makefile.in: Update -Wno-error exceptions for move to build dir.
4208
4209 2004-10-05  Chao-Ying Fu  <fu@mips.com>
4210             Richard Sandiford  <rsandifo@redhat.com>
4211
4212         * doc/invoke.texi (-mpaired-single): Link to the new description of the
4213         built-in functions.  Document dependencies.
4214         (-mips3d): Add link here too.
4215         * doc/extend.texi (MIPS Paired-Single Support): New section.
4216
4217 2004-10-04  Chao-ying Fu  <fu@mips.com>
4218
4219         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
4220
4221 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
4222
4223         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
4224         Initialize OPT_STATS to 0.
4225
4226 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
4227
4228         * tree-data-ref.c: Fix comment typos.
4229
4230 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
4231
4232         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
4233         the predicate cannot be computed, don't initialize the result to
4234         false.
4235
4236 2004-10-01  Eric Christopher  <echristo@redhat.com>
4237
4238         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
4239         locally defined enum.
4240         * dwarf2out.c (add_calling_convention_attribute): Don't
4241         emit DW_CC_normal.
4242
4243 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
4244
4245         PR c/17178, PR c/17820
4246         * c-decl.c (pop_scope): Do not warn about unused static
4247         variables as they warned in the middle-end.
4248
4249 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4250
4251         * builtins.c (expand_builtin_memcpy): Delete duplicate code
4252         and make the first parameter the expression not the arglist.
4253
4254 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
4255
4256         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
4257         as valid modes to expand address expressions.
4258
4259 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
4260
4261         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
4262         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
4263         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
4264         code formatting conventions.
4265
4266 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
4267
4268         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
4269
4270 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
4271
4272         PR tree-optimization/16632
4273         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
4274         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
4275         where | is used instead of &.
4276
4277 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
4278
4279         * ginclude/stddef.h: Fix a comment typo.
4280
4281 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4282
4283         PR target/17443
4284         * config.gcc (i?86-*-solaris2*): Restore correct logic
4285         for --enable-threads option.
4286         (sparc64-*-solaris2*): Likewise.
4287         (sparc-*-solaris2*): Likewise.
4288
4289 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
4290
4291         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
4292         (OS_MISSING_POWERPC64): Move, and comment.
4293         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
4294         (OS_MISSING_POWERPC64): Move, and comment.
4295
4296 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
4297
4298         * arm.c (output_call_mem): Add missing \t.
4299
4300 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4301
4302         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
4303         expand_builtin_strncmp): Delete duplicate code.
4304
4305 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
4306
4307         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
4308         take check-base and -limit arguments.
4309         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
4310         check ranges for ARRAY_REF and COMPONENT_REF.
4311         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
4312         instrumentation.
4313
4314 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
4315
4316         * c-objc-common.c (c_tree_printer): Correct description of %E.
4317         Don't fall through after printing an expression.
4318
4319 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
4320
4321         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
4322
4323 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
4324
4325         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
4326         delete_unrechable_blocks() only when necessary.
4327
4328 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
4329
4330         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
4331         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
4332         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
4333         __gthread_recursive_mutex_unlock): New functions.
4334
4335 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
4336
4337         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
4338         * config/s390/tpf-eh.c: Remove file.
4339         * config/s390/tpf-unwind.h: New file.
4340         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
4341         (MD_UNWIND_SUPPORT): Define.
4342
4343 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
4344
4345         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
4346
4347 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
4348
4349         * config/s390/s390-protos.h (s390_comparison): Add prototype.
4350         * config/s390/s390.c (s390_comparison): New function.
4351         (s390_branch_condition_mask): Return -1 for invalid comparisons.
4352         (s390_branch_condition_mnemonic): Assert valid comparison.
4353         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
4354         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
4355         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
4356         s390_comparison instead of comparison_operator.
4357
4358         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
4359         ("cmpmemdi"): Remove.
4360         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
4361         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
4362         ("cmpint_si"): Rename to ...
4363         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
4364         ("cmpint_di", "*cmpint_di"): Likewise.
4365         * config/s390/s390.c (s390_canonicalize_comparison): Remove
4366         redundant UNSPEC_CMPINT conversions.
4367         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
4368
4369 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
4370
4371         * collect2.c (COLLECT_PARSE_FLAG): Remove.
4372         (main): Remove a reference to COLLECT_PARSE_FLAG
4373         * system.h: Poison COLLECT_PARSE_FLAG.
4374         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
4375
4376 2004-10-01  Paul Brook  <paul@codesourcery.com>
4377
4378         * config/arm/crti.asm: Give _init and _fini function type.
4379
4380 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
4381
4382         * common.opt (ftree-loop-ivcanon): Enable by default.
4383         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
4384         Enable complete loop unrolling.
4385         (canonicalize_induction_variables, tree_unroll_loops_completely):
4386         Reset scev info.
4387
4388 2004-10-01  Paul Brook  <paul@codesourcery.com>
4389
4390         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
4391         not register number.
4392         (thumb_find_work_register): Search full register range.
4393
4394 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
4395
4396         PR tree-opt/17343
4397         * tree-cfg.c (group_case_labels): Get the label and not
4398         the case expr for the default case.
4399         When the label we looking at is the default, decrement the
4400         new_size.
4401
4402 2004-10-01  Jan Hubicka  <jh@suse.cz>
4403
4404         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
4405         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4406         * toplev.h (tree_rest_of_compilation): Update prototype.
4407         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
4408
4409 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
4410
4411         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
4412         cleanup_control_flow() out of the while loop.
4413
4414 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
4415
4416         * tree-vectorizer.c (vectorizable_operation): Fail unless
4417         the mode for the vector type is indeed a vector mode.
4418
4419 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
4420
4421         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
4422         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
4423         of convert.
4424         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
4425         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
4426         follow_ssa_edge_in_rhs): Ditto.
4427         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
4428         (dump_iv): Dump base_object.
4429         (dump_use, dump_cand): Use dump_iv.
4430         (determine_base_object): New function.
4431         (alloc_iv): Initialize base_object field.
4432         (record_use): Clear the ssa_name field of iv.
4433         (get_computation_cost_at): Do not use difference of addresses of
4434         two different objects.
4435         (may_eliminate_iv): Do not require the loop to have just single exit.
4436         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
4437         (nonzero_p): New function.
4438         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
4439         tree_simplify_using_condition, simplify_using_initial_conditions,
4440         loop_niter_by_eval, find_loop_niter_by_eval,
4441         estimate_numbers_of_iterations_loop, compare_trees,
4442         upper_bound_in_type, lower_bound_in_type,
4443         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
4444         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
4445         instead of integer_(non)zerop.
4446
4447 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
4448
4449         Revert
4450         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
4451
4452         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
4453         and TI_VA_LIST_FPR_COUNTER_FIELD.
4454         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
4455         * tree-pass.h (pass_stdarg): Add.
4456         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
4457         * tree-stdarg.c: New file.
4458         * Makefile.in (OBJS-common): Add tree-stdarg.o.
4459         (tree-stdarg.o): Add dependencies.
4460         * function.h (struct function): Add va_list_gpr_size and
4461         va_list_fpr_size fields.
4462         * function.c (allocate_struct_function): Initialize them.
4463
4464         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
4465         va_list_{g,f}pr_counter_field.
4466         (ix86_setup_incoming_varargs): Don't do anything if reg_save
4467         area will not be used.  Only save registers that tree-stdarg.c
4468         detected they need saving.
4469         (ix86_va_start): Don't set up fields that won't be used.
4470
4471         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
4472         va_list_{g,f}pr_counter_field.
4473         (setup_incoming_varargs): Don't do anything if reg_save
4474         area will not be used.  Only save registers that tree-stdarg.c
4475         detected they need saving.
4476         (rs6000_va_start): Don't set up fields that won't be used.
4477
4478 2004-09-30  Eric Christopher  <echristo@redhat.com>
4479
4480         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
4481         sh abi.
4482         * dwarf2out.c (add_calling_convention_attribute): New function.
4483         (gen_subroutine_type_die): Use.
4484         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
4485         * target.h (gcc_target): Add dwarf_calling_convention.
4486         * hooks.c (hook_int_tree_0): New function.
4487         * hooks.h: Prototype.
4488         * config/sh/sh.c: Include dwarf2.h.
4489         (sh_dwarf_calling_convention): New function.
4490         (TARGET_DWARF_CALLING_CONVENTION): Use.
4491         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
4492
4493 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4494
4495         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4496         expand_builtin_strrchr, expand_builtin_strpbrk,
4497         expand_builtin_strncat, expand_builtin_strspn,
4498         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
4499         code.
4500
4501 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
4502
4503         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
4504         prototype.
4505         (s390_logical_operator_ok_p): Likewise.
4506         * config/s390/s390.c (s390_expand_logical_operator): New function.
4507         (s390_logical_operator_ok_p): Likewise.
4508         * config/s390/s390.md ("anddi3"): New expander.
4509         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
4510         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
4511         ("andsi3"): Use s390_expand_logical_operator.
4512         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
4513         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
4514         ("andhi3"): New expander.
4515         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
4516         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
4517         ("andqi3"): New expander.
4518         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
4519         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
4520         ("iordi3"): New expander.
4521         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
4522         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
4523         ("iorsi3"): Use s390_expand_logical_operator.
4524         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
4525         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
4526         ("iorhi3"): New expiorer.
4527         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
4528         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
4529         ("iorqi3"): New expiorer.
4530         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
4531         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
4532         ("xordi3"): New expander.
4533         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
4534         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
4535         ("xorsi3"): New expander.
4536         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
4537         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
4538         ("xorhi3"): New expander.
4539         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
4540         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
4541         ("xorqi3"): New expander.
4542         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
4543         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
4544
4545 2004-09-30  Roger Sayle  <roger@eyesopen.com>
4546
4547         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
4548         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
4549         machine mode as the result.
4550
4551 2004-09-30  Ben Elliston  <bje@au.ibm.com>
4552
4553         PR bootstrap/17761
4554         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
4555         FOR_EACH_EDGE macros.
4556
4557 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
4558
4559         * c-tree.h (readonly_error): Remove.
4560         * c-typeck (enum lvalue_use): New.
4561         (lvalue_or_else, readonly_error): Use it.  All callers changed.
4562         (readonly_error): Make static.
4563
4564 2004-09-30  Jan Hubicka  <jh@suse.cz>
4565
4566         PR debug/13974
4567         * cfgrtl.c (try_redirect_by_replacing_jump,
4568         force_nonfallthru_and_redirect, commit_one_edge_insertion,
4569         cfg_layout_merge_blocks):  Do not attach any line number information
4570         to newly inserted instructions.
4571         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
4572         emit_insn_*_noloc.
4573         (emit_*insn_before, emit_insn*_after): New.
4574         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
4575         existing locators.
4576         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
4577         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
4578
4579 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
4580
4581         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
4582         (s390_return_address_offset): Remove.
4583         (s390_can_eliminate): Add prototype.
4584         (s390_initial_elimination_offset): Add prototype.
4585         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
4586         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
4587         * config/s390/s390.c (s390_arg_frame_offset): Remove.
4588         (s390_return_address_offset): Remove.
4589         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
4590         (struct machine_function): New member split_branches_pending_p.
4591         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
4592         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
4593         (s390_optimize_prologue): Remove base_used argument.  Call
4594         s390_update_frame_layout instead of s390_register_info.  Handle
4595         prologue/epilogue insns that touch only RETURN_REGNUM.
4596         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
4597         (s390_register_info): Remove base_used and return_addr_used
4598         arguments, compute special register usage inline.  Return live
4599         register data to caller.
4600         (s390_frame_info): Remove arguments, do not call s390_register_info.
4601         (s390_init_frame_layout): New function.
4602         (s390_update_frame_layout): Likewise.
4603         (s390_emit_prologue): Call s390_update_frame_layout; some code
4604         move to there.  Do not emit pool placeholder insn if unnecessary.
4605
4606 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
4607
4608         * config/s390/s390.c (legitimate_reload_constant_p): Remove
4609         floating point constant workaround.
4610         (s390_secondary_input_reload_class): Handle PLUS reloads
4611         with too-large constant.
4612         (s390_expand_plus_operand): Likewise.
4613         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
4614         ("movsi"): Likewise.  Also, remove workaround for non-general
4615         operands.
4616         ("movdf"): Do not call force_const_mem.
4617         ("movsf"): Likewise.  Merge expander with *movsf insn.
4618         ("*movsf"): Remove, merge with movsf expander.
4619
4620 2004-09-30  Paul Brook  <paul@codesourcery.com>
4621
4622         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
4623         (ENDFILE_SPEC): Define.
4624         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
4625
4626 2004-09-30  Richard Henderson  <rth@redhat.com>
4627
4628         * config/alpha/qrnnd.asm: Mark for noexecstack.
4629
4630 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
4631
4632         * protoize.c, tree-cfg.c: Fix comment typos.
4633
4634 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
4635
4636         PR c/17730
4637         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
4638
4639 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
4640
4641         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
4642         expressions...
4643         (add_pointed_to_expr): ... here.
4644         Call add_pointed_to_expr for variables with DECL_INITIAL set.
4645         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
4646         pointer variable, if set.
4647
4648 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
4649
4650         * config/sh/sh.c: Follow spelling conventions.
4651
4652 2004-09-29  Richard Henderson  <rth@redhat.com>
4653
4654         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
4655         * doc/tm.texi (DWARF_ZERO_REG): New.
4656
4657         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
4658         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
4659         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
4660
4661 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
4662
4663         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
4664         with a PLUS as source operand.
4665         (expand_movstr): Likewise.
4666         (expand_builtin_stpcpy): Likewise.
4667
4668 2004-09-29  Richard Henderson  <rth@redhat.com>
4669
4670         PR 17739
4671         * tree-gimple.c (is_gimple_reg): Reject hard registers.
4672         (is_gimple_asm_val): New.
4673         * tree-gimple.h (is_gimple_asm_val): Declare.
4674         * gimplify.c (gimplify_asm_expr): Use it.
4675         * tree-pretty-print.c (print_declaration): Dump hard regs.
4676         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
4677         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
4678         * tree-ssa-pre.c (is_undefined_value): Likewise.
4679         * tree-ssa-copy.c (may_propagate_copy): Likewise.
4680         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
4681         * tree-ssa.c (warn_uninit): Likewise.
4682         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
4683
4684 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
4685
4686         * c-decl.c (merge_decls): Use comptype when comparing
4687         types to decide on DECL_SIZE save of olddecl.
4688
4689 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
4690
4691         * tree.h (INDIRECT_REF_P): New macro.
4692         * alias.c (get_alias_set): Use it
4693         (nonoverlapping_memrefs_p): Ditto.
4694         * emit-rtl.c (mem_expr_equal_p): Ditto.
4695         (set_mem_attributes_minus_bitpos): Ditto.
4696         (is_gimple_addressable): Ditto.
4697         (get_base_address): Ditto.
4698         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
4699         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
4700         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
4701         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
4702         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
4703         (add_address_candidates): Ditto.
4704         (rewrite_address_base): Ditto.
4705
4706 2004-09-30  Ben Elliston  <bje@au.ibm.com>
4707
4708         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
4709         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
4710         (rewrite_ssa_into_ssa): Likewise.
4711         * tree-phinodes.c (create_phi_node): Access the number of
4712         predecessor edges using EDGE_COUNT() and not num_preds.
4713
4714 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
4715
4716         PR c/7425
4717         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
4718
4719 2004-09-29  Eric Christopher  <echristo@redhat.com>
4720
4721         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
4722
4723 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
4724
4725         * config/cris/cris.md (moverside, movemside): With MEM, make sure
4726         the address is (plus reg mem).
4727
4728 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
4729
4730         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
4731
4732 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
4733
4734         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
4735         cascaded if ... else if with a switch.
4736
4737 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4738
4739         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
4740
4741 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
4742
4743         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
4744         and TI_VA_LIST_FPR_COUNTER_FIELD.
4745         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
4746         * tree-pass.h (pass_stdarg): Add.
4747         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
4748         * tree-stdarg.c: New file.
4749         * Makefile.in (OBJS-common): Add tree-stdarg.o.
4750         (tree-stdarg.o): Add dependencies.
4751         * function.h (struct function): Add va_list_gpr_size and
4752         va_list_fpr_size fields.
4753         * function.c (allocate_struct_function): Initialize them.
4754
4755         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
4756         va_list_{g,f}pr_counter_field.
4757         (ix86_setup_incoming_varargs): Don't do anything if reg_save
4758         area will not be used.  Only save registers that tree-stdarg.c
4759         detected they need saving.
4760         (ix86_va_start): Don't set up fields that won't be used.
4761
4762         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
4763         va_list_{g,f}pr_counter_field.
4764         (setup_incoming_varargs): Don't do anything if reg_save
4765         area will not be used.  Only save registers that tree-stdarg.c
4766         detected they need saving.
4767         (rs6000_va_start): Don't set up fields that won't be used.
4768
4769 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
4770
4771         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
4772         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
4773         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
4774         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
4775         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
4776         ATTR_NONNULL_1_4): New.
4777
4778 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
4779
4780         PR tree-optimization/17697
4781         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
4782         cfg if needed.
4783
4784 2004-09-28  Per Bothner  <per@bothner.com>
4785
4786         * profile.c (branch_prob): Pass correct value to output_location,
4787         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
4788
4789 2004-09-28  Richard Henderson  <rth@redhat.com>
4790
4791         PR 15089
4792         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
4793         * tree-flow.h (may_propagate_copy_into_asm): Declare.
4794         * tree-ssa-ccp.c (replace_uses_in): Use it.
4795         * tree-ssa-dom.c (cprop_operand): Likewise.
4796
4797 2004-09-28 Jeff Law  <law@redhat.com>
4798
4799         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
4800         that no outgoing edges be left in the duplicate block.  Do no
4801         update information on outgoing edges or PHI nodes in target
4802         blocks here.
4803         (remove_ctrl_stmt_and_useless_edges): Renamed from
4804         remove_last_stmt_and_useless_edges.  Handle case where the
4805         block is empty or has no control statements.  Do not update edge
4806         flags here.
4807         (thread_block): Create a template block rather than copying the
4808         original block every time.  Create outgoing edges from the
4809         duplicate blocks and update PHIs at the target of the outgoing
4810         edges here.  Fix edge flags for the original block if necessary.
4811         * cfghooks (duplicate_block): No longer assert that the original
4812         block has incoming edges.
4813
4814 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
4815
4816         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
4817         Reg Vars to enforce register allocation with general constraints.
4818         (Explicit Reg Vars): Clarify relation to asm statements.
4819         (Local Reg Vars): Similar.
4820
4821 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
4822
4823         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
4824         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
4825         build_control_flow, new_edge): Remove.
4826         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
4827         (bitlst, bitlst_table_last, bitlst_table): Remove.
4828         (bblst): Store basic_block pointer instead of block index.
4829         (bblst_table): Likewise.
4830         (edgelst): Store edge pointer instead of edge index.
4831         (edgelst_table, edgelst_last): New variables.
4832         (extract_bitlst): Rename to ...
4833         (extract_edgelst): ... this.  Return edge pointers, not indices.
4834         (split_edges): Update call.
4835         (rgn_edges): Store edge pointers instead of indices.
4836         (edge_to_bit): Remove.
4837         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
4838         (SET_EDGE_TO_BIT): New macro.
4839         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
4840         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
4841         data structures instead of haifa_edge et al.  Use edge pointers
4842         instead of edge indices everywhere.
4843         (compute_dom_prob_ps): Use standard CFG data structures.  Account
4844         for exit edges.
4845         (compute_trg_info): Likewise.
4846         (propagate_deps): Likewise.
4847         (debug_candidate): Account for bblst data structure change.
4848         (check_live_1, update_live_1, is_pfree): Likewise.
4849         (IS_REACHABLE): Use standard CFG data structures.
4850         (init_ready_list): Update bblst_table/edgelst_table allocation.
4851         (schedule_region): Update alloc/cleanup code to data structure
4852         changes.  Use edge->aux to store per-region edge index.
4853         (init_regions): No longer call build_control_flow.  Do not
4854         create edge list any more.
4855
4856 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
4857
4858         * cse.c (cse_insn): Avoid creating direct non-local jumps.
4859         * combine.c (can_combine_p): Likewise.
4860         * local-alloc. (update_equiv_regs): Likewise.
4861
4862 2004-09-28  Richard Henderson  <rth@redhat.com>
4863
4864         PR 17531
4865         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
4866         Don't check VOIDmode here.  Force PLUS operands to common type.
4867         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
4868         Pmode if given a non pointer type.
4869
4870 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4871
4872         PR 17531
4873         * optabs.c (expand_binop): Force constants to the correct mode.
4874
4875 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
4876
4877         * config/s390/s390.c (s390_adjust_cost): Remove.
4878         (TARGET_SCHED_ADJUST_COST): Do not redefine.
4879         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
4880         * config/s390/s390.md ("main_pool"): Use "larl" type
4881         attribute if TARGET_CPU_ZARCH.
4882
4883 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
4884
4885         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
4886         variable.
4887
4888 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
4889
4890         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
4891         name to the pass.
4892
4893 2004-09-28  Steven Bosscher  <stevenb@suse.de>
4894
4895         * common.opt (flag_gcse_sm): Disable by default.
4896         (flag_gcse_las): Likewise.
4897         (flag_web): Likewise.  Create from this file.
4898         * flags.h: Remove flag_web declaration.
4899         * toplev.c (flag_web): Likewise.
4900         (process_options): Never set flag_web.
4901
4902 2004-09-28  Steven Bosscher  <stevenb@suse.de>
4903
4904         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
4905         * tree-ssa-propagate.c: Include vec.h.
4906         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
4907         instead of varrays.
4908         (cfg_blocks_add): Assert the block is not already in the worklist.
4909         Update uses of interesting_ssa_edges and varying_ssa_edges.
4910         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
4911         ssa_propagate): Likewise.
4912
4913 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
4914
4915         PR c/16409
4916         * c-decl.c (start_decl): Check for initializing incomplete array
4917         of VLAs.
4918         (build_compound_literal): Check for TYPE being error_mark_node.
4919         * c-parse.in (primary): Check for VLA compound literals.
4920
4921 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
4922
4923         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
4924         with --disable-checking.
4925
4926 2004-09-28  Devang Patel  <dpatel@apple.com>
4927
4928         * tree-pretty-print.c (dump_generic_node): Print vector types.
4929
4930 2004-09-28  Nick Clifton  <nickc@redhat.com>
4931
4932         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
4933         invocation of the function sh_init_cumulative_args.
4934         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
4935         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
4936         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
4937         * config/sh/sh.c (sh_init_cumulative_args): New function based
4938         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
4939         heuristic added to determine the setting of force_mem when a
4940         library function is being called.
4941
4942 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
4943
4944         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
4945         Skip constant arguments.
4946
4947 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
4948
4949         * tree-ssa-alias.c (create_name_tags): If PTR points to a
4950         volatile type, mark the tag volatile.
4951         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
4952         volatile.
4953
4954 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
4955
4956         * tree.def (vec_cond_expr): Fix. Change 'e'
4957         to tcc_expression.
4958
4959 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
4960
4961         * basic-block.h: Fix a comment typo.
4962
4963 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
4964
4965         * optabs.c, optabs.h: Fix comment typos.
4966
4967 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
4968
4969         * config/sparc/sparc.md (call_address_struct_value_sp32):
4970         Properly mask the immediate field of the 'unimp' instruction.
4971         (call_symbolic_struct_value_sp32): Likewise.
4972
4973 2004-09-28  Ben Elliston  <bje@au.ibm.com>
4974             Steven Bosscher  <stevenb@suse.de>
4975             Andrew Pinski  <pinskia@physics.uc.edu>
4976
4977         Merge from edge-vector-branch:
4978         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
4979         (struct edge_def): Remove pred_next, succ_next members.
4980         (struct basic_block_def): Remove pred, succ members.  Add preds
4981         and succs members of type VEC(edge).
4982         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
4983         (BRANCH_EDGE): Likewise.
4984         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
4985         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
4986         (edge_iterator): New.
4987         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
4988         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
4989         (FOR_EACH_EDGE): New.
4990         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
4991         where applicable.
4992         (rotate_loop): Likewise.
4993         (find_traces_1_route): Likewise.
4994         (bb_to_key): Likewise.
4995         (connect_traces): Likewise.
4996         (copy_bb_p): Likewise.
4997         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
4998         (add_labels_and_missing_jumps): Likewise.
4999         (fix_up_fall_thru_edges): Likewise.
5000         (find_jump_block): Likewise.
5001         (fix_crossing_conditional_branches): Likewise.
5002         (fix_crossing_unconditional_branches): Likewise.
5003         (add_reg_crossing_jump_notes): Likewise.
5004         * bt-load.c (augment_live_range): Likewise.
5005         * cfg.c (clear_edges): Likewise.
5006         (unchecked_make_edge): Likewise.
5007         (cached_make_edge): Likewise.
5008         (make_single_succ_edge): Likewise.
5009         (remove_edge): Likewise.
5010         (redirect_edge_succ_nodup): Likewise.
5011         (check_bb_profile): Likewise.
5012         (dump_flow_info): Likewise.
5013         (alloc_aux_for_edges): Likewise.
5014         (clear_aux_for_edges): Likewise.
5015         (dump_cfg_bb_info): Likewise.
5016         * cfganal.c (forwarder_block_p): Likewise.
5017         (can_fallthru): Likewise.
5018         (could_fall_through): Likewise.
5019         (mark_dfs_back_edges): Likewise.
5020         (set_edge_can_fallthru_flag): Likewise.
5021         (find_unreachable_blocks): Likewise.
5022         (create_edge_list): Likewise.
5023         (verify_edge_list): Likewise.
5024         (add_noreturn_fake_exit_edges): Likewise.
5025         (connect_infinite_loops_to_exit): Likewise.
5026         (flow_reverse_top_sort_order_compute): Likewise.
5027         (flow_depth_first_order_compute): Likewise.
5028         (flow_preorder_transversal_compute): Likewise.
5029         (flow_dfs_compute_reverse_execute): Likewise.
5030         (dfs_enumerate_from): Likewise.
5031         (compute_dominance_frontiers_1): Likewise.
5032         * cfgbuild.c (make_edges): Likewise.
5033         (compute_outgoing_frequencies): Likewise.
5034         (find_many_sub_basic_blocks): Likewise.
5035         (find_sub_basic_blocks): Likewise.
5036         * cfgcleanup.c (try_simplify_condjump): Likewise.
5037         (thread_jump): Likewise.
5038         (try_forward_edges): Likewise.
5039         (merge_blocks_move): Likewise.
5040         (outgoing_edges_match): Likewise.
5041         (try_crossjump_to_edge): Likewise.
5042         (try_crossjump_bb): Likewise.
5043         (try_optimize_cfg): Likewise.
5044         (merge_seq_blocks): Likewise.
5045         * cfgexpand.c (expand_gimple_tailcall): Likewise.
5046         (expand_gimple_basic_block): Likewise.
5047         (construct_init_block): Likewise.
5048         (construct_exit_block): Likewise.
5049         * cfghooks.c (verify_flow_info): Likewise.
5050         (dump_bb): Likewise.
5051         (delete_basic_block): Likewise.
5052         (split_edge): Likewise.
5053         (merge_blocks): Likewise.
5054         (make_forwarder_block): Likewise.
5055         (tidy_fallthru_edges): Likewise.
5056         (can_duplicate_block_p): Likewise.
5057         (duplicate_block): Likewise.
5058         * cfglayout.c (fixup_reorder_chain): Likewise.
5059         (fixup_fallthru_exit_predecessor): Likewise.
5060         (can_copy_bbs_p): Likewise.
5061         (copy_bbs): Likewise.
5062         * cfgloop.c (flow_loops_cfg_dump): Likewise.
5063         (flow_loop_entry_edges_find): Likewise.
5064         (flow_loop_exit_edges_find): Likewise.
5065         (flow_loop_nodes_find): Likewise.
5066         (mark_single_exit_loops): Likewise.
5067         (flow_loop_pre_header_scan): Likewise.
5068         (flow_loop_pre_header_find): Likewise.
5069         (update_latch_info): Likewise.
5070         (canonicalize_loop_headers): Likewise.
5071         (flow_loops_find): Likewise.
5072         (get_loop_body_in_bfs_order): Likewise.
5073         (get_loop_exit_edges): Likewise.
5074         (num_loop_branches): Likewise.
5075         (verify_loop_structure): Likewise.
5076         (loop_latch_edge): Likewise.
5077         (loop_preheader_edge): Likewise.
5078         * cfgloopanal.c (mark_irreducible_loops): Likewise.
5079         (expected_loop_iterations): Likewise.
5080         * cfgloopmanip.c (remove_bbs): Likewise.
5081         (fix_bb_placement): Likewise.
5082         (fix_irreducible_loops): Likewise.
5083         (remove_path): Likewise.
5084         (scale_bbs_frequencies): Likewise.
5085         (loopify): Likewise.
5086         (unloop): Likewise.
5087         (fix_loop_placement): Likewise.
5088         (loop_delete_branch_edge): Likewise.
5089         (duplicate_loop_to_header_edge): Likewise.
5090         (mfb_keep_just): Likewise.
5091         (create_preheader): Likewise.
5092         (force_single_succ_latches): Likewise.
5093         (loop_split_edge_with): Likewise.
5094         (create_loop_notes): Likewise.
5095         * cfgrtl.c (rtl_split_block): Likewise.
5096         (rtl_merge_blocks): Likewise.
5097         (rtl_can_merge_blocks): Likewise.
5098         (try_redirect_by_replacing_jump): Likewise.
5099         (force_nonfallthru_and_redirect): Likewise.
5100         (rtl_tidy_fallthru_edge): Likewise.
5101         (commit_one_edge_insertion): Likewise.
5102         (commit_edge_insertions): Likewise.
5103         (commit_edge_insertions_watch_calls): Likewise.
5104         (rtl_verify_flow_info_1): Likewise.
5105         (rtl_verify_flow_info): Likewise.
5106         (purge_dead_edges): Likewise.
5107         (cfg_layout_redirect_edge_and_branch): Likewise.
5108         (cfg_layout_can_merge_blocks_p): Likewise.
5109         (rtl_flow_call_edges_add): Likewise.
5110         * cse.c (cse_cc_succs): Likewise.
5111         * df.c (hybrid_search): Likewise.
5112         * dominance.c (calc_dfs_tree_nonrec): Likewise.
5113         (calc_dfs_tree): Likewise.
5114         (calc_idoms): Likewise.
5115         (recount_dominator): Likewise.
5116         * domwalk.c (walk_dominator_tree): Likewise.
5117         * except.c (emit_to_new_bb_before): Likewise.
5118         (connect_post_landing_pads): Likewise.
5119         (sjlj_emit_function_enter): Likewise.
5120         (sjlj_emit_function_exit): Likewise.
5121         (finish_eh_generation): Likewise.
5122         * final.c (compute_alignments): Likewise.
5123         * flow.c (calculate_global_regs_live): Likewise.
5124         (initialize_uninitialized_subregs): Likewise.
5125         (init_propagate_block_info): Likewise.
5126         * function.c (thread_prologue_and_epilogue_insns): Likewise.
5127         * gcse.c (find_implicit_sets): Likewise.
5128         (bypass_block): Likewise.
5129         (bypass_conditional_jumps): Likewise.
5130         (compute_pre_data): Likewise.
5131         (insert_insn_end_bb): Likewise.
5132         (insert_store): Likewise.
5133         (remove_reachable_equiv_notes): Likewise.
5134         * global.c (global_conflicts): Likewise.
5135         (calculate_reg_pav): Likewise.
5136         * graph.c (print_rtl_graph_with_bb): Likewise.
5137         * ifcvt.c (mark_loop_exit_edges): Likewise.
5138         (merge_if_block): Likewise.
5139         (find_if_header): Likewise.
5140         (block_jumps_and_fallthru_p): Likewise.
5141         (find_if_block): Likewise.
5142         (find_cond_trap): Likewise.
5143         (block_has_only_trap): Likewise.
5144         (find_if_case1): Likewise.
5145         (find_if_case_2): Likewise.
5146         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
5147         (perfect_nestify): Likewise.
5148         * lcm.c (compute_antinout_edge): Likewise.
5149         (compute_laterin): Likewise.
5150         (compute_available): Likewise.
5151         (compute_nearerout): Likewise.
5152         * loop-doloop.c (doloop_modify): Likewise.
5153         * loop-init.c (loop_optimizer_init): Likewise.
5154         * loop-invariant.c (find_exits): Likewise.
5155         * loop-iv.c (simplify_using_initial_values): Likewise.
5156         (check_simple_exit): Likewise.
5157         (find_simple_exit): Likewise.
5158         * loop-unroll.c (peel_loop_completely): Likewise.
5159         (unroll_loop_constant_iterations): Likewise.
5160         (unroll_loop_runtime_iterations): Likewise.
5161         * loop-unswitch.c (may_unswitch_on): Likewise.
5162         (unswitch_loop): Likewise.
5163         * modulo-sched.c (generate_prolog_epilog): Likewise.
5164         (sms_schedule): Likewise.
5165         * postreload-gcse.c (eliminate_partially_redundant_load):
5166         Likewise.
5167         * predict.c (can_predict_insn_p): Likewise.
5168         (set_even_probabilities): Likewise.
5169         (combine_predictions_for_bb): Likewise.
5170         (predict_loops): Likewise.
5171         (estimate_probability): Likewise.
5172         (tree_predict_by_opcode): Likewise.
5173         (tree_estimate_probability): Likewise.
5174         (last_basic_block_p): Likewise.
5175         (propagate_freq): Likewise.
5176         (estimate_loops_at_level): Likewise.
5177         (estimate_bb_frequencies): Likewise.
5178         * profile.c (instrument_edges): Likewise.
5179         (get_exec_counts): Likewise.
5180         (compute_branch_probabilities): Likewise.
5181         (branch_prob): Likewise.
5182         * ra-build.c (live_in): Likewise.
5183         * ra-rewrite.c (rewrite_program2): Likewise.
5184         * ra.c (reg_alloc): Likewise.
5185         * reg-stack.c (reg_to_stack): Likewise.
5186         (convert_regs_entry): Likewise.
5187         (compensate_edge): Likewise.
5188         (convert_regs_1): Likewise,
5189         (convert_regs_2): Likewise.
5190         (convert_regs): Likewise.
5191         * regrename.c (copyprop_hardreg_forward): Likewise.
5192         * reload1.c (fixup_abnormal_edges): Likewise.
5193         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
5194         (sbitmap_insersection_of_preds): Likewise.
5195         (sbitmap_union_of_succs): Likewise.
5196         (sbitmap_union_of_preds): Likewise.
5197         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
5198         (fix_basic_block_boundaries): Likewise.
5199         (sched_ebbs): Likewise.
5200         * sched-rgn.c (build_control_flow): Likewise.
5201         (find_rgns): Likewise.
5202         * tracer.c (find_best_successor): Likewise.
5203         (find_best_predecessor): Likewise.
5204         (tail_duplicate): Likewise.
5205         * tree-cfg.c (make_edges): Likewise.
5206         (make_ctrl_stmt_edges): Likewise.
5207         (make_goto_expr_edges): Likewise.
5208         (tree_can_merge_blocks_p): Likewise.
5209         (tree_merge_blocks): Likewise.
5210         (cfg_remove_useless_stmts_bb): Likewise.
5211         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
5212         (tree_block_forwards_to): Likewise.
5213         (cleanup_control_expr_graph): Likewise.
5214         (find_taken_edge): Likewise.
5215         (dump_cfg_stats): Likewise.
5216         (tree_cfg2vcg): Likewise.
5217         (disband_implicit_edges): Likewise.
5218         (tree_find_edge_insert_loc): Likewise.
5219         (bsi_commit_edge_inserts): Likewise.
5220         (tree_split_edge): Likewise.
5221         (tree_verify_flow_info): Likewise.
5222         (tree_make_forwarder_block): Likewise.
5223         (tree_forwarder_block_p): Likewise.
5224         (thread_jumps): Likewise.
5225         (tree_try_redirect_by_replacing_jump): Likewise.
5226         (tree_split_block): Likewise.
5227         (add_phi_args_after_copy_bb): Likewise.
5228         (rewrite_to_new_ssa_names_bb): Likewise.
5229         (dump_function_to_file): Likewise.
5230         (print_pred_bbs): Likewise.
5231         (print_loop): Likewise.
5232         (tree_flow_call_edges_add): Likewise.
5233         (split_critical_edges): Likewise.
5234         (execute_warn_function_return): Likewise.
5235         (extract_true_false_edges_from_block): Likewise.
5236         * tree-if-conv.c (tree_if_conversion): Likewise.
5237         (if_convertable_bb_p): Likewise.
5238         (find_phi_replacement_condition): Likewise.
5239         (combine_blocks): Likewise.
5240         * tree-into-ssa.c (compute_global_livein): Likewise.
5241         (ssa_mark_phi_uses): Likewise.
5242         (ssa_rewrite_initialize_block): Likewise.
5243         (rewrite_add_phi_arguments): Likewise.
5244         (ssa_rewrite_phi_arguments): Likewise.
5245         (insert_phi_nodes_for): Likewise.
5246         (rewrite_into_ssa): Likewise.
5247         (rewrite_ssa_into_ssa): Likewise.
5248         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
5249         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
5250         (rewrite_trees): Likewise.
5251         * tree-pretty-print.c (dump_bb_header): Likewise.
5252         (dump_implicit_edges): Likewise.
5253         * tree-sra.c (insert_edge_copies): Likewise.
5254         (find_obviously_necessary_stmts): Likewise.
5255         (remove_data_stmt): Likewise.
5256         * tree-ssa-dom.c (thread_across_edge): Likewise.
5257         (dom_opt_finalize_block): Likewise.
5258         (single_incoming_edge_ignoring_loop_edges): Likewise.
5259         (record_equivalences_from_incoming_edges): Likewise.
5260         (cprop_into_successor_phis): Likewise.
5261         * tree-ssa-live.c (live_worklist): Likewise.
5262         (calculate_live_on_entry): Likewise.
5263         (calculate_live_on_exit): Likewise.
5264         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
5265         (copy_loop_headers): Likewise.
5266         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
5267         (fill_always_executed_in): Likewise.
5268         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
5269         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
5270         (compute_phi_arg_on_exit): Likewise.
5271         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
5272         (get_loops_exit): Likewise.
5273         (split_loop_exit_edge): Likewise.
5274         (ip_normal_pos): Likewise.
5275         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
5276         Likewise.
5277         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
5278         (replace_phi_with_stmt): Likewise.
5279         (value_replacement): Likewise.
5280         * tree-ssa-pre.c (compute_antic_aux): Likewise.
5281         (insert_aux): Likewise.
5282         (init_pre): Likewise.
5283         * tree-ssa-propagate.c (simulate_stmt): Likewise.
5284         (simulate_block): Likewise.
5285         (ssa_prop_init): Likewise.
5286         * tree-ssa-threadupdate.c (thread_block): Likewise.
5287         (create_block_for_threading): Likewise.
5288         (remove_last_stmt_and_useless_edges): Likewise.
5289         * tree-ssa.c (verify_phi_args): Likewise.
5290         (verify_ssa): Likewise.
5291         * tree_tailcall.c (independent_of_stmt_p): Likewise.
5292         (find_tail_calls): Likewise.
5293         (eliminate_tail_call): Likewise.
5294         (tree_optimize_tail_calls_1): Likewise.
5295         * tree-vectorizer.c (vect_transform_loop): Likewise.
5296         * var-tracking.c (prologue_stack_adjust): Likewise.
5297         (vt_stack_adjustments): Likewise.
5298         (vt_find_locations): Likewise.
5299         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
5300         * config/i386/i386.c (ix86_pad_returns): Likewise.
5301         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
5302         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
5303
5304 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
5305
5306         PR target/16532
5307         * config/sparc/sparc.c (struct machine_function): New field
5308         'leaf_function_p' and 'prologue_data_valid_p'.
5309         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
5310         to conveniently access the above fields.
5311         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
5312         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
5313         of the generic flavor 'current_function_uses_only_leaf_regs'.
5314         (eligible_for_sibcall_delay): Likewise.
5315         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
5316         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
5317         (sparc_asm_function_prologue): Add sanity check for the assumption
5318         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
5319         (sparc_can_use_return_insn_p): New function.
5320         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
5321         (output_restore): Likewise.
5322         (output_sibcall): Likewise.
5323         (sparc_output_mi_thunk): Likewise.
5324         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
5325         * config/sparc/sparc.md (return): New expander.
5326
5327         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
5328
5329 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
5330
5331         PR c++/17642
5332         * stor-layout.c (layout_decl): Use fold_convert, not convert.
5333         (bit_from_pos): Likewise.
5334         (byte_from_pos): Likewise.
5335         (pos_from_bit): Likewise.
5336         (normalize_offset): Likewise.
5337         (place_field): Likewise.
5338         (finalize_type_size): Likewise.
5339         (layout_type): Likewise.
5340         * tree.c (build_index_type): Likewise.
5341
5342 2004-09-27  Devang Patel  <dpatel@apple.com>
5343
5344         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
5345         * genopinit.c (optabs): New entry for vcond_gen_code and
5346         vcondu_gen_code.
5347         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
5348         (get_rtx_code): New function.
5349         (vector_compare_rtx): New function.
5350         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
5351         (expand_vec_cond_expr_p): New function.
5352         (expand_vec_cond_expr): New function.
5353         (get_vcond_icode): New function.
5354         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
5355         (vcond_gen_code, vcondu_gen_code): Same.
5356
5357 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
5358
5359         * Makefile.in (STAGESTUFF): Split into ...
5360         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
5361         (mostlyclean): Update.
5362         (stage1-start, stage2-start, stage3-start, stage4-start,
5363         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
5364         Move the STAGEMOVESTUFF.
5365
5366 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
5367
5368         * system.h (getpagesize): Return 'int' instead of 'long'.
5369
5370 2004-09-27  Michael Matz <matz@suse.de>
5371
5372         PR bootstrap/17698
5373         PR bootstrap/17702
5374         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
5375         bmp_iter_and_init): Shift by bit_in_word.
5376
5377 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
5378
5379         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
5380         * configure.ac: Don't sinclude it here.
5381         * configure: Regenerate.
5382
5383 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
5384
5385         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
5386         Handle AND pattern
5387
5388 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
5389
5390         PR c/13804
5391         * c-typeck.c (build_component_ref): Name type involved in
5392         diagnostic for structure or union without a member of the given
5393         name.
5394
5395 2004-09-27  DJ Delorie  <dj@redhat.com>
5396
5397         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
5398         .comm alignment is bytes, not bits.
5399
5400 2004-09-27  Devang Patel  <dpatel@apple.com>
5401
5402         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
5403         (print_call_name): Do not print VEC_COND_EXPR.
5404
5405 2004-09-27  Devang Patel  <dpatel@apple.com>
5406
5407         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
5408
5409 2004-09-27  Jan Hubicka  <jh@suse.cz>
5410
5411         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
5412
5413 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
5414
5415         * bitmap.h: Fix a comment typo.
5416
5417 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
5418
5419         * libgcc2.c (getpagesize): Change type of return value to int.
5420
5421 2004-09-26  Matt Austern  <austern@apple.com>
5422
5423         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
5424         using mmap.
5425
5426 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5427
5428         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
5429         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
5430         (bitmap_iterator): New type.
5431         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
5432         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
5433         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
5434         bmp_iter_and_init, bmp_iter_and_next): New functions.
5435         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
5436         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
5437         use iterator-style EXECUTE_IF_IN_BITMAP macros.
5438         * bitmap.c (bitmap_print): Ditto.
5439         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
5440         btr_def_live_range): Ditto.
5441         * cfganal.c (compute_dominance_frontiers_1) Ditto.
5442         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
5443         Ditto.
5444         * ddg.c (build_inter_loop_deps): Ditto.
5445         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
5446         Ditto.
5447         * except.c (remove_eh_handler): Ditto.
5448         * flow.c (reg_set_to_hard_reg_set): Ditto.
5449         * gcse.c (clear_modify_mem_tables): Ditto.
5450         * global.c (build_insn_chain): Ditto.
5451         * ifcvt.c (dead_or_predicable): Ditto.
5452         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
5453         Ditto.
5454         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
5455         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
5456         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
5457         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
5458         tree_purge_all_dead_eh_edges): Ditto.
5459         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
5460         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
5461         rewrite_ssa_into_ssa): Ditto.
5462         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
5463         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
5464         Ditto.
5465         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
5466         compute_flow_sensitive_aliasing, maybe_create_global_var,
5467         dump_points_to_info_for): Ditto.
5468         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
5469         * tree-ssa-dse.c (dse_finalize_block): Ditto.
5470         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
5471         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
5472         Ditto.
5473         * tree-ssa-loop-ivopts.c (find_induction_variables,
5474         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
5475         determine_use_iv_costs, determine_set_costs, find_best_candidate,
5476         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
5477         Ditto.
5478         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
5479         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
5480         add_call_read_ops): Ditto.
5481         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
5482
5483 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5484
5485         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
5486         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
5487
5488 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
5489
5490         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
5491         reflect size of memory regions being compared.
5492
5493 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
5494
5495         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
5496         expressions.  Always clear MEM_SIZE and alias set.
5497
5498 2004-09-26  Roger Sayle  <roger@eyesopen.com>
5499             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
5500
5501         PR middle-end/17112
5502         * stor-layout.c (compute_record_mode): For records with a single
5503         field, only use the field's mode if its size matches what we'd
5504         have choosen for the record ourselves.  This forces the use of
5505         BLKmode for packed records that don't completely fill a mode.
5506
5507 2004-09-26  Roger Sayle  <roger@eyesopen.com>
5508
5509         PR middle-end/17151
5510         * combine.c (force_to_mode): Remove dubious early return test that
5511         inhibits further optimization.
5512
5513 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
5514
5515         * profile.c: Fix a comment typo.
5516
5517 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5518
5519         PR bootstrap/17591
5520         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
5521         with varying offset.
5522         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
5523         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
5524         ARRAY_REFS.
5525         (expr_invariant_in_loop_p): New function.
5526         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
5527         component_ref_field_offset for COMPONENT_REFs.  Do not allow
5528         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
5529         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
5530         MISALIGNED_INDIRECT_REFs.
5531         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
5532         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
5533         MISALIGNED_INDIRECT_REFs.
5534
5535 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
5536
5537         PR c/11459
5538         * gcc.c (cpp_options, cc1_options): Preserve relative order of
5539         -std and -ansi options.
5540
5541 2004-09-26  Jan Hubicka  <jh@suse.cz>
5542
5543         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
5544         for nested functions whose proper parent has not been output.
5545
5546         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
5547         when re-constructing profile previously invalidated by loop.
5548
5549 2004-09-25  Dale Johannesen  <dalej@apple.com>
5550
5551         * tree-gimple.c:  Move GIMPLE definition...
5552         * doc/tree-ssa.texi:  here.
5553
5554 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
5555
5556         * tree-vectorizer.c: Fix a comment typo.
5557
5558 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
5559
5560         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
5561         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
5562         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
5563         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
5564
5565 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
5566
5567         * tree-ssa-loop-unswitch.c: Fix a comment typo.
5568
5569 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
5570
5571         * doc/passes.texi: Fix a typo.
5572
5573 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5574
5575         * tree-optimize.c (init_tree_optimization_passes): Add
5576         pass_record_bounds.
5577         * tree-pass.h (pass_record_bounds): Declare.
5578         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
5579         New pass.
5580
5581 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5582
5583         PR tree-optimization/17474
5584         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
5585         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
5586
5587 2004-09-25  Jan Hubicka  <jh@suse.cz>
5588
5589         * predict.c (counts_to_freqs): Make global.
5590         * predict.h (counts_to_freqa): Declare.
5591         * profile.c (compute_branch_probabilities): Compute frequencies
5592         * tree-profile.c (do_tree_profiling): Refine conditional on when
5593         tree profiling pass is needed.
5594
5595         * passes.c (rest_of_handle_cfg): Disable const/pure function
5596         detection when doing tree based profiling.
5597
5598         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
5599         conditional.
5600
5601 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
5602
5603         * config/mips/mips.h (struct mips_args): Clarify comments.
5604         * config/mips/mips.c (struct mips_arg_info): Likewise.
5605         (mips_arg_info): Don't allow fpr_p to affect the register or
5606         stack alignment.  Remove o64 silliness.
5607         (function_arg): Deal with the o32 float,float case specially.
5608
5609 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
5610
5611         * config/mips/mips.md (loadx, storex): Define for V2SF.
5612
5613 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
5614
5615         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
5616         * config/s390/s390.c (s390_back_chain_rtx): New function.
5617         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
5618         Call anti_adjust_stack.
5619         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
5620         only if compiling with back chain.
5621         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
5622         back chain only if back chain enabled.  Use s390_back_chain_rtx.
5623
5624 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
5625
5626         * doc/trouble.texi: Remove obsolete information.  Update
5627         information on how to regenerate fixincluded headers.
5628
5629 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
5630
5631         PR c/12951
5632         * doc/invoke.texi: Document that
5633         -Wno-error-implicit-function-declaration is not accepted.
5634
5635 2004-09-24  Richard Henderson  <rth@redhat.com>
5636
5637         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
5638         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
5639         on TARGET_MAX.
5640         (alpha_expand_mov): Allow unaligned vectors.
5641         (alpha_expand_unaligned_store): Use CONST0_RTX.
5642         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
5643
5644 2004-09-24 Jeff Law  <law@redhat.com>
5645
5646         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
5647         aliasing rules.
5648         (simplify_cond_and_lookup_avail_expr): Likewise.
5649
5650 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
5651
5652         PR c/12802
5653         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
5654         title.  Document interaction with -fms-extensions.
5655         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
5656         section.
5657
5658 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
5659
5660         PR c/12713
5661         * doc/extend.texi: Document interaction of attribute noreturn and
5662         longjmp.
5663
5664 2004-09-24  Richard Henderson  <rth@redhat.com>
5665
5666         PR rtl-opt/17503
5667         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
5668         (som_hash, som_eq): New.
5669         (init_subregs_of_mode, record_subregs_of_mode): New.
5670         (cannot_change_mode_set_regs): Rewrite for htab implementation.
5671         (invalid_mode_change_p): Likewise.
5672         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
5673         * flow.c (mark_used_regs): Likewise.
5674         (life_analysis): Use init_subregs_of_mode.
5675         * regs.h (subregs_of_mode): Remove.
5676         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
5677
5678 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
5679
5680         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
5681         type with the copy of the conditional.
5682
5683 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
5684
5685         PR tree-opt/16954
5686         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
5687         Prevent renaming if the aliasing sets of the type which the
5688         pointer points to are different.
5689
5690 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
5691
5692         PR c/17188
5693         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
5694         declarations of enumerators.
5695         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
5696         for redefinition.  Check for nested redefinition.
5697         (finish_struct): Don't check for nested redefinition.
5698         (start_enum): Check for nested redefinition.
5699
5700 2004-09-24  Devang Patel  <dpatel@apple.com>
5701
5702         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
5703         only when necesssary.
5704         (combine_blocks): Combine loop header and exit block.
5705
5706 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
5707
5708         * hooks.c (hook_tree_tree_bool_null): New.
5709         * hooks.h (hook_tree_tree_bool_null): Declare it.
5710         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
5711         * targhooks.c (default_fold_builtin): Remove.
5712         * targhooks.h (default_fold_builtin): Remove.
5713
5714 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5715
5716         PR rtl-optimization/17625
5717         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
5718
5719 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
5720
5721         PR tree-opt/17624
5722         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
5723         Reject if any of the operands occur in an abnormal PHI.
5724
5725 2004-09-24  Andreas Schwab  <schwab@suse.de>
5726
5727         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
5728         rules.
5729
5730 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
5731
5732         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
5733         if the GNU assembler is used.
5734         (sparc-*-solaris2*): Likewise.
5735         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
5736         (dbxout_function_end): Protect N_ENSYM with it.
5737         (dbxout_begin_prologue): Protect N_BNSYM with it.
5738         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
5739         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
5740         * config/sparc/sol2-gas.h: New file.
5741
5742 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
5743
5744         PR bootstrap/17369
5745         * Makefile.in (@set_gcc_lib_path@): Added.
5746
5747         * configure.ac: Include ../config/gcc-lib-path.m4. Use
5748         TL_AC_GNU_MAKE_GCC_LIB_PATH.
5749         * configure: Regenerated.
5750
5751 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
5752
5753         PR c/6980
5754         * c-typeck.c (build_c_cast): Improve wording of
5755         -Wbad-function-cast diagnostic.
5756
5757 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
5758
5759         PR target/17626
5760         * config/cris/cris.md (moverside, movemside): Rename variable
5761         "reg" to "otherop".  To generate canonical RTX, check that otherop
5762         isn't constant instead of checking that operand 1 is a register.
5763
5764 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
5765
5766         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
5767
5768 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
5769             Jakub Jelinek  <jakub@redhat.com>
5770
5771         * tree-flow.h (find_new_referenced_vars): Add prototype.
5772         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
5773         Move to...
5774         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
5775         ... here.
5776         (mark_new_vars_to_rename): Walk through all operands.
5777         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
5778         (execute_fold_all_builtins): Use it.
5779         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
5780
5781 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
5782
5783         * gthr-tpf.h: New file.
5784         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
5785         * gthr.h: Use gthr-tpf.h on TPF OS.
5786
5787 2004-09-23 Jeff Law  <law@redhat.com>
5788
5789         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
5790         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
5791         (substitute_and_fold):  Likewise.
5792         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
5793         except invariants from SSA_NAME_VALUE.
5794         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
5795         and SET_SSA_NAME_EQUIV.
5796         (restore_vars_to_original_value, record_const_or_copy): Likewise.
5797         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
5798         (record_equality, cprop_into_successor_phis): Likewise.
5799         (record_equivalences_from_stmt, cprop_operand): Likewise.
5800         (lookup_avail_expr): Likewise.
5801         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
5802         from SSA_NAME_VALUE.
5803         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
5804         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
5805         annotation from the VALUE_HANDLE field.
5806
5807 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
5808
5809         PR c++/13989
5810         PR c++/9844
5811         * tree.c (reconstruct_complex_type): Remove extra "this".
5812         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
5813         Add V4SFmode to case statement.
5814
5815 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
5816
5817         PR c/16833
5818         * doc/extend.texi, doc/invoke.texi: Document interaction of
5819         -fno-builtin with format checks.  Note that built-in functions
5820         have effects beyond generating code that avoids calls to those
5821         functions.
5822
5823 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
5824
5825         PR tree-optimization/17533
5826         * dominance.c (verify_dominators): Tolerate even more incorrect
5827         dominance data during error message printing.
5828         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
5829         and edges more correctly.
5830
5831 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
5832
5833         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
5834         New tree-codes.
5835         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
5836         MISALIGNED_INDIRECT_REF.
5837         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
5838         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
5839         Likewise.
5840         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
5841         (find_interesting_uses_address): Likewise.
5842         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
5843         (build_fold_addr_expr_with_type): Likewise.
5844         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
5845         * print-rtl.c (print_mem_expr): Likewise.
5846         * tree-dump.c (dequeue_and_dump): Likewise.
5847         * tree-eh.c (tree_could_trap_p): Likewise.
5848         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
5849         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
5850         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
5851         Likewise.
5852         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
5853         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
5854         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
5855         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
5856         (add_address_candidates, rewrite_address_base): Likewise.
5857         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
5858         Likewise.
5859         * tree.c (staticp, build1_stat): Likewise.
5860
5861         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
5862         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
5863         * tree-ssa-operands.c (get_expr_operands): Likewise.
5864         * expr.c (expand_expr_real_1): Likewise.
5865
5866         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
5867         optabs.
5868         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
5869         for the new optabs.
5870         (expand_ternary_op): New function.
5871         * genopinit.c (optabs): Handle the new optabs.
5872         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
5873         (init_optabs): Initialize vec_realign_load_optab.
5874         (expand_ternary_op): New functions.
5875
5876         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
5877         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
5878         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
5879         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
5880         * target.h (struct vectorize): New member for struct gcc_target.
5881         (misaligned_mem_ok): New member for targetm.vectorize.
5882         (builtin_mask_for_load): Likewise.
5883         (builtin_mask_for_store): Likewise.
5884         * targethooks.c (default_vect_misaligned_mem_ok): New function.
5885         * targethooks.h (default_vect_misaligned_mem_ok): New function.
5886
5887         * config/rs6000/altivec.md (build_vector_mask_for_load): New
5888         define_expand.
5889         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
5890         (vec_realign_load_v16qi): New define_insn.
5891         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
5892         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
5893         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
5894         (altivec_builtin_mask_for_store): New variables.
5895         (rs6000_builtin_mask_for_load): New function. Implements
5896         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
5897         (rs6000_builtin_mask_for_store): New function. Implements
5898         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
5899         (rs6000_expand_builtin): Expand the target builtins
5900         builtin_mask_for_load and builtin_mask_for_store.
5901         (altivec_init_builtins): Initialize the new target builtins.
5902         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
5903         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
5904
5905         * tree-vectorizer.c (vect_create_data_ref): Renamed to
5906         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
5907         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
5908         (vectorizable_store): Call vect_create_data_ref_ptr with additional
5909         arguments, and create an indirect_ref with its return value data_ref.
5910         Check aligned_access_p.
5911         (vectorizable_load): Handle misaligned loads, using software-pipelined
5912         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
5913         vec_realign_load_optab is supported, or using a scheme without
5914         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
5915         misaligned_mem_ok is supported.
5916
5917         (vect_finish_stmt_generation): Typo.
5918         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
5919         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
5920         presence of misaligned loads.
5921         (vect_analyze_data_ref_access): Add check for constant init.
5922         (vect_get_symbl_and_dr): Remove duplicate line.
5923         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
5924
5925 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
5926
5927         * builtins.c: Fix a comment typo.
5928
5929 2004-09-23  Jan Hubicka  <jh@suse.cz>
5930
5931         * profile.c (branch_prob): Do not verify flow info in the middle of the
5932         pass.
5933
5934 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5935
5936         * cfgloop.h (update_single_exits_after_duplication): Declare.
5937         (loopify, split_loop_bb): Declaration changed.
5938         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
5939         of rtx.
5940         (loopify): Added redirect_all_edges argument.
5941         (update_single_exits_after_duplication): Export.
5942         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
5943         * tree-flow.h (tree_duplicate_loop_to_header_edge,
5944         tree_ssa_loop_version): Declare.
5945         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
5946         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
5947         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
5948         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
5949
5950         * tree-ssa-loop-unswitch.c: New file.
5951         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
5952         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
5953         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
5954         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
5955         * tree-pass.h (pass_unswitch): Declare.
5956         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
5957         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
5958         * doc/passes.texi: Documen tree level loop unswitching.
5959
5960 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
5961
5962         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
5963
5964 2004-09-22  Eric Christopher  <echristo@redhat.com>
5965
5966         * builtins.c (simplify_builtin_va_start): Remove.
5967         (simplify_builtin): Ditto.
5968         (fold_builtin_strchr): Ditto.
5969         (simplify_builtin_*): Rename remainders to fold_builtin_*.
5970         (expand_builtin): Fix up for above changes.
5971         (fold_builtin_1): Add new folders. Change for above.
5972         (expand_builtin_va_start): Call fold_builtin_next_arg.
5973         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
5974         * tree.h: Remove prototype for simplify_builtin.
5975
5976 2004-09-23  Jan Hubicka  <jh@suse.cz>
5977
5978         PR debug/17389
5979         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
5980         of fully inlined functions.
5981         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
5982         inlined.
5983
5984         * cfgexpand.c (add_reg_br_prob_note): New function.
5985         (expand_gimple_cond_expr): Use it.
5986         (tree_expand_cfg): No longer kill the profile.
5987         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
5988         only if it is present.
5989         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
5990         * predict.c (combine_predictions_for_insn): Set the probabilities
5991         based on REG_BR_PROB note if present.
5992         * predict.c (branch_prob): Profile is read only with
5993         flag_branch_probabilities.
5994
5995 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
5996
5997         * aclocal.m4: Add in gettext's m4 includes.
5998         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
5999         * configure.ac: Add in check for iconv.h
6000         * configure: Regenerate.
6001
6002 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
6003
6004         * aclocal.m4: Update for rename of gettext-sister.m4.
6005
6006 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
6007
6008         Fix PR tree-optimization/17587
6009         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
6010         (insert_aux): Instead of here.
6011
6012 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
6013
6014         PR tree-optimization/16721
6015         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
6016         * tree-ssa-alias.c (create_memory_tag): Move setting of
6017         TREE_THIS_VOLATILE ...
6018         (get_tmt_for): ... here.
6019
6020 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
6021
6022         * config/sparc/sparc.md (cmove splitter): Fix formatting.
6023         (conditional_trap expander): Reject inappropriate CCmodes.
6024         (conditional trap insn): Use V9 syntax if possible.
6025
6026 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
6027
6028         PR c/16566
6029         * c-typeck.c (build_component_ref): Don't special-case
6030         COMPOUND_EXPR.
6031
6032 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
6033
6034         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
6035         returns NULL.
6036
6037 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
6038
6039         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
6040         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
6041         TRUTH_XOR_EXPR): Mention the restriction on types.
6042
6043 2004-09-22  Matt Austern  <austern@apple.com>
6044
6045         * config/darwin.c (darwin_make_decl_one_only):
6046         Allow coalesced symbol to appear in static archive's table of contents
6047
6048 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
6049
6050         PR tree-optimization/17512
6051         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
6052         special cases.
6053
6054 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
6055
6056         * dbxout.c (get_lang_number): Do not define if
6057         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
6058
6059 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
6060
6061         PR target/15583
6062         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
6063         builtin_define ("__USE_INIT_FINI__").
6064
6065 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
6066
6067         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
6068         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
6069         * config/s390/s390.h (TARGET_TPF): New macro.
6070         * config/s390/s390.md ("eh_return"): New expander.
6071         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
6072         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
6073         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
6074         * config/s390/tpf.h (TARGET_TPF): Define to 1.
6075         (STACK_POINTER_OFFSET): Increase to 448.
6076         (TARGET_DEFAULT): Set -mtpf-trace on as default.
6077         (TPF_LOC_DIFF_OFFSET): New macro.
6078         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
6079         encoding.
6080         (__isPATrange): Add prototype.
6081         (MD_FALLBACK_FRAME_STATE_FOR): Define.
6082         * config/s390/tpf-eh.c: New file.
6083
6084 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
6085
6086         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
6087         operands in an integer comparison.
6088         * tree-cfg.c (find_taken_edge): Call fold() to determine
6089         whether the predicate is known.
6090
6091 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
6092
6093         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
6094         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
6095         Create build and doc directories along with the language directories.
6096         Don't create doc directory separately.
6097         * configure: Regenerate.
6098         * Makefile.in: Create all object and executables files built
6099         with the build compiler in a build/ directory.
6100         (genobjnames): Add missing build objects.
6101         (STAGESTUFF): Don't stage the gen* programs.
6102         (ggc-none.o): Define dependencies for the target compiler.
6103         (build-print-rtl.o): Rename to build/print-rtl.o.
6104         (build-errors.o): Rename to build/errors.o.
6105         (build-varray.o): Rename to build/varray.o.
6106         (maintainerclean): Delete the contents of the build directory.
6107         ($(genobjs): %.o): Explicitly use -o.
6108         (build/insn-conditions.o): Delete specfic rule to use generic rule.
6109         (build/gengtype-lex.o): Likewise.
6110         (build/gengtype-yacc.o): Likewise.
6111         (build/gcov-iov.o): Likewise.
6112
6113 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
6114
6115         * vec.h (VEC_space): Return true if there _is_ space.
6116         (VEC_reserve): Adjust.
6117
6118 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
6119
6120         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
6121         use FPRs for scalar, complex and vector types only.
6122
6123 2004-09-21 Jeff Law  <law@redhat.com>
6124
6125         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
6126         the opt_stats_d structure.
6127         (vrp_data): Change from a varray into a hash table.
6128         (vrp_hash_elt): New structure for elements in the vrp hash table.
6129         (vrp_hash, vrp_eq):New functions for hashing and testing equality
6130         in the vrp hash table.
6131         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
6132         initialization slightly to make it easier to read.  No longer need
6133         to grow/clear the varray.  Instead empty and delete the hash table.
6134         (dom_opt_finalize_block): Update due to change of VRP_DATA from
6135         a varray to a hash table.
6136         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
6137
6138         * tree-ssa-ccp.c (get_default_value): If we have a constant
6139         value recorded for an SSA_NAME, then use that constant as
6140         the initial lattice value.
6141         (substitute_and_fold): Transfer equivalences discovered into
6142         SSA_NAME_EQUIV.
6143
6144         * tree.h (SSA_NAME_EQUIV): Add comments.
6145         (SET_SSA_NAME_EQUIV): Similarly.
6146
6147 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
6148
6149         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
6150
6151         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
6152
6153 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
6154
6155         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
6156         (finish_decl): Likewise.
6157
6158 2004-09-21  Devang Patel  <dpatel@apple.com>
6159
6160         * tree.def (VEC_COND_EXPR): New tree node.
6161         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
6162
6163 2004-09-21  Stan Shebs  <shebs@apple.com>
6164
6165         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
6166         * config/rs6000/darwin-world.asm: Likewise.
6167
6168 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
6169
6170         * tree-ssa.c (verify_def): Use print_generic_stmt,
6171         not debug_generic_stmt.
6172         (verify_use): Ditto.
6173         (verify_phi_args): Ditto.
6174         (verify_ssa): Ditto.
6175
6176 2004-09-21  Paul Brook  <paul@codesourcery.com>
6177
6178         * varasm.c (default_assemble_integer): Return false for values wider
6179         than the target word size.  Works around GAS bug.
6180
6181 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
6182
6183         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
6184         gets value 0.
6185         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
6186         if it has value 0.
6187
6188 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
6189
6190         * c-typeck.c (build_function_call): Give name of object
6191         we are attempting to call in error message.
6192         * c-objc-common.c (c_tree_printer): Call pp_expression,
6193         not return false, for 'E' case.
6194
6195 2004-09-21  Steven Bosscher  <stevenb@suse.de>
6196
6197         PR rtl-optimization/17482
6198         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
6199         load_killed_in_block_p): Clarify comments.
6200         (record_last_reg_set_info): Make static inline.
6201         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
6202         (record_opr_changes): New function to replace the above.
6203         (compute_hash_table): Clarify comments.  Use record_opr_changes.
6204         (reg_set_between_after_reload_p): Clean up.
6205         (reg_used_between_after_reload_p): Likewise.
6206         (eliminate_partially_redundant_load): Clarify comments.
6207
6208 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
6209
6210         PR rtl-optimization/17266
6211         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
6212
6213 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
6214
6215         PR rtl-optimization/14851
6216         * rtlanal.c (commutative_operand_precedence): Calculate
6217         precedence of stripped constant.
6218
6219 2004-09-20 Jeff Law  <law@redhat.com>
6220            Jan Hubicka  <jh@suse.cz>
6221
6222         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
6223         initialize key elements here.
6224         (release_ssa_name): Zero the released SSA_NAME here.
6225         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
6226         (struct tree_ssa_name): Add new "equiv" field.
6227         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
6228         (tree_ssa_dominator_optimize): No longer allocate, resize or
6229         clear CONST_AND_COPIES.
6230         (get_value_for, set_value_for): Kill.
6231         (thread_across_edge): Get/set the equivalency using
6232         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
6233         (restore_vars_to_original_value): Likewise.
6234         (record_equivalences_from_phis): Likewise.
6235         (record_dominating_conditions): Likewise.
6236         (record_const_or_copy, record_equality): Likewise.
6237         (lookup_avail_expr): Likewise.
6238         (record_equivalences_from_stmt, cprop_operand): Likewise.
6239         (cprop_into_successor_phis): No longer need to pass around
6240         CONST_AND_COPIES.  Callers updated. Get equivalences via
6241         SSA_NAME_EQUIV.
6242         (cprop_into_phis): Likewise.
6243
6244 2004-09-20  Matt Austern <austern@apple.com>
6245             Zack Weinberg  <zack@codesourcery.com>
6246
6247         * c-common.c (fix_string_type): Build the unqualified array
6248         type unconditionally, then use c_build_qualified_type to get
6249         the proper const-qualified variant, and set its
6250         TYPE_MAIN_VARIANT to refer to the unqualified type.
6251         * c-lex.c (c_lex_return_raw_string): New global.
6252         (c_lex_with_flags): Honor it.
6253         * c-pragma.h: Declare it.
6254
6255 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
6256
6257         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
6258
6259 2004-09-21  Jan Hubicka  <jh@suse.cz>
6260
6261         PR middle-end/17126
6262         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
6263         (tree_rest_of_compilation): Cleanup.
6264
6265 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
6266
6267         * config/s390/s390.c (s390_select_rtx_section): Remove.
6268         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
6269
6270 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6271
6272         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
6273         note to pretend a direct save from the original register when an
6274         intermediate register is used for the save.
6275
6276 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6277
6278         * tsystem.h (alloca): Provide a default definition.
6279
6280         Revert:
6281         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6282             * unwind-dw2.c: Call __builtin_alloca, not alloca.
6283
6284 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
6285
6286         PR tree-opt/17558
6287         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
6288         aliasing sets are the same rather than just conflicting.
6289
6290 2004-09-20  Jan Hubicka  <jh@suse.cz>
6291
6292         PR middle-end/16460
6293
6294         * cgraph.c (cgraph_unnest_node): New function.
6295         (c_finalize): Rename to ....
6296         (c_warn_unused_result_recursivly): ... this one; do only the warning
6297         (finish_function): Finalize the toplevel function; do not lower nested tree.
6298         * cgraph.h (cgraph_unnest_node): Declare.
6299         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
6300         nestedness datastructure.
6301         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
6302         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
6303         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
6304
6305 2004-09-20  Richard Henderson  <rth@redhat.com>
6306
6307         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
6308         from some_small_symbolic_operand_1; export.
6309         (some_small_symbolic_operand): Remove.
6310         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
6311         extra C check.
6312         * config/alpha/predicates.md (some_small_symbolic_operand): New.
6313
6314 2004-09-20  Jan Hubicka  <jh@suse.cz>
6315
6316         * predict.c (return_prediction): New function.
6317         (apply_return_prediction): Likewise.
6318         (tree_bb_level_predictions): Likewise.
6319         (tree_estimate_probability): Add noreturn exit edges; call
6320         bb_level_predictions; fix logic of return heuristics.
6321         (predict_paths_leading_to):  Rescuesce from old CVS version of
6322         process_note_prediction function.
6323         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
6324
6325 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
6326
6327         * config/s390/s390.c (s390_frame_info): Added alignment statement for
6328         floating point register area on stack.
6329
6330 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
6331
6332         * predict.c (expr_expected_value): Use *_CLASS_P macros.
6333
6334 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
6335
6336         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
6337         generating useless garbage.
6338
6339 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
6340
6341         * builtins.c (fold_builtin): Call the new omonymous
6342         target hook for machine-dependent built-ins.
6343         * target-def.h (TARGET_FOLD_BUILTIN): New.
6344         * target.h (struct gcc_target): Add the fold_builtin hook.
6345         * targhooks.c (default_fold_builtin): New.
6346         * targhooks.h (default_fold_builtin): Declare it.
6347
6348 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
6349
6350         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
6351         comment typos.
6352
6353 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
6354
6355         PR target/17565
6356         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
6357
6358 2004-09-20  Jan Hubicka  <jh@suse.cz>
6359
6360         * predict.c (estimate_probability): Remove unnecesary code.
6361
6362 2004-09-19  Ira Rosen  <irar@il.ibm.com>
6363
6364         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
6365         (STMT_VINFO_VECT_DR_BASE): Declare.
6366         (VECT_SMODULO): Declare.
6367         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
6368         (vect_compute_array_base_alignment): New function.
6369         (vect_analyze_data_ref_access): Check array indices. Remove one
6370         dimensional arrays restriction.
6371         (vect_get_ptr_offset): New function.
6372         (vect_get_symbl_and_dr): New function.
6373         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
6374         (former name vect_get_base_decl_and_bit_offset).
6375         (vect_create_index_for_array_ref): Removed.
6376         (vect_create_index_for_vector_ref): New function.
6377         (vect_create_addr_base_for_vector_ref): New function.
6378         (vect_create_data_ref): Handle additional data refs. Call
6379         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
6380         (vect_compute_data_ref_alignment): Support the changes. Call
6381         vect_get_base_and_bit_offset.
6382         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
6383         data refs. Store vect_dr_base.
6384         (vect_analyze_data_ref_accesses): Support nonconstant init.
6385         (new_stmt_vec_info): Initialize vect_dr_base field.
6386         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
6387         (get_vectype_for_scalar_type): Check for BLKmode.
6388         * tree-chrec.h (initial_condition_in_loop_num): Declare.
6389         * tree-chrec.c (initial_condition_in_loop_num): New function.
6390         (chrec_component_in_loop_num): New function.
6391         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
6392         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
6393         to be pointer to varray_type.
6394
6395 2004-09-19  Jan Hubicka  <jh@suse.cz>
6396
6397         * basic-block.h (update_bb_profile_after_threading): Declare.
6398         * cfg.c (update_bb_profile_after_threading): Break out from ...
6399         * cfgcleanup.c (try_forward_edges): ... here; use it.
6400         * tree-ssa-dom.c (thread_across_edge): Use it.
6401         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
6402         profile of the new BB.
6403
6404 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
6405
6406         * tree-ssa-pre.c (insert_into_set): Don't put
6407         is_gimple_min_invariant values into the set.
6408
6409 2004-09-19  Andreas Jaeger  <aj@suse.de>
6410
6411         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
6412         prototype.
6413
6414 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
6415
6416         * config/cris/cris.h: Preserve the original spelling in a
6417         quote.
6418
6419 2004-09-18 Jeff Law  <law@redhat.com>
6420
6421         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
6422         global varrays to replace the block local varrays.
6423         (struct dom_walk_block_data): Remove, no longer used.
6424         (get_eq_expr_value): No longer need to pass around pointers to local
6425         varrays.  Callers updated.  Unused markers added to unused parameters.
6426         (record_range, record_equivalences_from_stmt): Likewise.
6427         (record_equivalences_from_incoming_edge): Likewise.
6428         (record_var_is_nonzero): Likewise.  Update now that we have a
6429         single global varray of SSA_NAMEs that need restoring.
6430         (dom_opt_initialize_block_local_data): Kill, no longer used.
6431         (tree_ssa_dominator_optimize): Initialize new global varrays.
6432         Update callbacks in dominator walker structure.
6433         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
6434         VRP_VARIABLES_STACK.
6435         (restore_nonzero_vars_to_original_value): Update now that we have
6436         a single global varray of SSA_NAMEs that need restoring.
6437         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
6438         Remove unused variables.
6439         (optimize_stmt): Remove unused variable.
6440
6441 2004-09-18  Jan Hubicka  <jh@suse.cz>
6442
6443         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
6444
6445         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
6446         verify_cgraph call.
6447
6448 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
6449
6450         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
6451         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
6452         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
6453         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
6454         tree-ssa-operands.c, tree-ssa-phiopt.c,
6455         tree-ssa-threadupdate.c: Fix comment typos.
6456
6457 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
6458
6459         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
6460         config/arm/README-interworking, config/arm/arm-cores.def,
6461         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
6462         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
6463         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
6464         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
6465         config/frv/frv.md, config/i386/winnt.c,
6466         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
6467         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
6468         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
6469         config/mcore/mcore.c, config/mips/mips.h,
6470         config/mn10300/mn10300.md, config/pa/pa.c,
6471         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
6472         config/rs6000/rs6000.c, config/sh/symbian.c,
6473         config/sparc/sparc.h: Fix comment typos.  Follow spelling
6474         conventions.
6475
6476 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
6477
6478         PR c/17424
6479         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
6480
6481 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
6482
6483         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
6484         remove TREE_ADDRESSABLE from RESULT_DECL.
6485
6486 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
6487
6488         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
6489
6490 2004-09-18  Jan Hubicka  <jh@suse.cz>
6491
6492         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
6493         NULL.
6494         * tree-ssa-alias.c (init_alias_info): Likewise.
6495         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
6496         (verify_ssa): Likewise.
6497         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
6498
6499 2004-09-18  Jan Hubicka  <jh@suse.cz>
6500
6501         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
6502         huge offset.
6503
6504 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6505
6506         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
6507         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
6508         DW_EH_PE_sdata* for data.
6509         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
6510
6511 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
6512
6513         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
6514         shared anyway.
6515
6516         PR pch/13361
6517         * c-typeck.c (constructor_asmspec): Delete.
6518         (struct initializer_stack): Delete field 'asmspec'.
6519         (start_init): Delete saving of asmspec.
6520         (finish_init): Don't update constructor_asmspec.
6521         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
6522         * stmt.c (expand_asm): Duplicate strings from tree.
6523         (expand_asm_operands): Likewise.
6524         * tree.c (tree_size): Update computation of size of STRING_CST.
6525         (make_node): Don't make STRING_CST nodes.
6526         (build_string): Allocate string with tree node.
6527         (tree_code_size): Clean up assertions, don't allow requests
6528         for "the size of a STRING_CST".
6529         * tree.def (STRING_CST): Update comment.
6530         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
6531         (tree_string): Place contents of string in tree node.
6532         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
6533         from tree.
6534
6535 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
6536
6537         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
6538         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
6539
6540 2004-09-17  Jones Desougi  <jones@ingate.com>
6541
6542         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
6543         * configure, config.in: Regenerate.
6544
6545 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
6546
6547         * tree.c, tree.h (tree_class_strings): Make array const.
6548         Reindent per coding convention.  Move asterisk to proper place
6549         per coding convention.
6550
6551 2004-09-18  Andreas Schwab  <schwab@suse.de>
6552
6553         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
6554         (tree-vectorizer.o): Likewise.
6555         (targhooks.o): Likewise.
6556
6557 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
6558             Zack Weinberg  <zack@codesourcery.com>
6559
6560         * alias.c (find_base_decl): Remove unreachable case '3' block.
6561         * expr.c (safe_from_p): Abort if passed a type.
6562         * tree-gimple.c (recalculate_side_effects): Abort if passed
6563         anything other than an expression.
6564         * tree-ssa-pre.c (phi_translate): Return expr immediately if
6565         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
6566         Abort on un-handled tree classes.
6567         (valid_in_set): Likewise.
6568         * tree.c (tree_code_class_strings): New static data.
6569
6570         * tree.h (enum tree_code_class): New.
6571         (tree_code_class_strings): Declare.
6572         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
6573         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
6574         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
6575         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
6576         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
6577
6578         * tree.def, c-common.def, objc/objc-tree.def: Use
6579         tree_code_class enumeration constants instead of code letters.
6580
6581         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
6582         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
6583         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
6584         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
6585         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
6586         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
6587         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
6588         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
6589         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
6590         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
6591         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
6592         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
6593         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
6594         Update to match.
6595
6596         * LANGUAGES: Add note about change.
6597
6598 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
6599
6600         PR tree-optimization/17319
6601         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
6602         examine pointers on the LHS of an assignment.
6603         (collect_points_to_info_r): Handle RETURN_EXPR.
6604
6605 2004-09-17 Jeff Law  <law@redhat.com>
6606
6607         * tree-ssa-dom.c (const_and_copies_stack): New.
6608         (dom_walk_block_data): Remove const_and_copies field.
6609         (record_const_or_copy): No longer need to pass in varray_type *.
6610         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
6611         Callers updated.
6612         (record_equality): Similarly.
6613         (restore_vars_to_original_value): Similarly.  Revamp to use new
6614         single global stack rather than per-block stacks.
6615         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
6616         (thread_across_edge): Remove now unused parameters.
6617         (dom_opt_initialize_block_local_data): No longer test the block
6618         local CONST_AND_COPIES.
6619         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
6620
6621 2004-09-17  Jan Hubicka  <jh@suse.cz>
6622
6623         PR tree-optimization/17509
6624         * tree-optimize.c (update_inlined_to_pointers): New function.
6625         (tree_rest_of_compilation): Use it.
6626
6627 2004-09-17  Devang Patel  <dpatel@apple.com>
6628
6629         * dbxout.c (get_lang_number): New.
6630         (dbxout_init): Include lang number in N_SO  stab.
6631         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
6632         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
6633
6634 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
6635
6636         PR tree-optimization/17273
6637         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
6638         replacement is a constant.
6639
6640 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
6641
6642         * c-tree.h (enum c_typespec_keyword): New.
6643         (struct c_declspecs): Adjust description of "type".  Remove
6644         specbits, explicit_int_p and explicit_char_p.  Rename
6645         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
6646         short_p, signed_p, unsigned_p and complex_p.
6647         (finish_declspecs): New.
6648         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
6649         typename): Call finish_declspecs.
6650         * c-decl.c (finish_declspecs): New.
6651         (declspecs_add_type): Check for combinations which cannot occur in
6652         valid specifier lists.  Update comments.
6653         (shadow_tag_warned): Remove checks done in finish_declspecs.
6654         Don't report useless type name if type defaulted to int.
6655         (grokdeclarator): Remove checks and actions done in
6656         finish_declspecs.  Don't allow for type being NULL.  Update for
6657         datastructures changes.  Initialize decl_attr.
6658         (build_null_declspecs, quals_from_declspecs): Update for
6659         datastructures changes.
6660
6661 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
6662
6663         * doc/extend.texi: Fix duplicated word.
6664
6665 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
6666
6667         * doc/invoke.texi: Remove stray explanation on
6668         -freduce-all-givs and -fmove-all-movables.
6669
6670 2004-09-17  James Morrison  <phython@gcc.gnu.org>
6671
6672         * doc/cfg.texi: Use @smallexample.
6673         * doc/md.texi: Likewise.
6674         * doc/tree-ssa.texi: Likewise.
6675         * doc/extend.texi: Likewise.  Use @r{} in comments.
6676         * doc/trouble.texi: Use @r{} in comments.
6677
6678 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
6679
6680         * configure.ac (gcc_cv_gld_version): Handle whitespace before
6681         "VERSION=".
6682         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
6683         * configure: Regenerate.
6684
6685 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
6686
6687         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
6688         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
6689         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
6690         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
6691         slashes in substitutions.
6692         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
6693
6694 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
6695
6696         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
6697         gimplify.c, lambda-code.c, optabs.c, predict.c,
6698         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
6699         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
6700         conventions.
6701
6702 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
6703
6704         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
6705         doc/extend.texi, doc/install.texi, doc/invoke.texi,
6706         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
6707         doc/trouble.texi: Use @option around options.
6708
6709 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
6710
6711         * Makefile.in (gen-protos.o): Depend on errors.h.
6712
6713 2004-09-17  Steven Bosscher  <stevenb@suse.de>
6714
6715         PR tree-optimization/17513
6716         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
6717         for successors of the entry block.
6718
6719 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
6720
6721         PR rtl-optimization/15187
6722         * ifcvt.c (noce_try_cmove_arith): Exit early if total
6723         insn_rtx_cost of both branches > BRANCH_COST
6724
6725 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
6726
6727         PR tree-optimization/17528
6728         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
6729         erase the may-alias set for a tag when merging it with
6730         another.
6731
6732 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
6733
6734         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
6735         for 32-bit TARGET_SHMEDIA.
6736         (call_value): Likewise.
6737
6738 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
6739
6740         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
6741         test apply only to TREE_STATIC and DECL_EXTERNAL.
6742
6743 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6744
6745         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
6746         * basic-block.h (get_dominated_by_region): Declare.
6747         * dominance.c (get_dominated_by_region): New function.
6748         * tree-cfg.c: Include cfglayout.h.
6749         (tree_duplicate_bb): Duplicate also phi nodes.
6750         (struct ssa_name_map_entry): New type.
6751         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
6752         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
6753         allocate_ssa_names, rewrite_to_new_ssa_names_def,
6754         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
6755         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
6756         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
6757         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
6758         rewrite_to_new_ssa_names, allocate_ssa_names,
6759         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
6760         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
6761         (copy_loop_headers): Use tree_duplicate_sese_region.
6762
6763 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
6764
6765         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
6766
6767 2004-09-16 Jeff Law  <law@redhat.com>
6768
6769         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
6770         (rewrite_block_data): Remove, no longer used.
6771         (rewrite_initialize_block_local_data): Remove, no longer used.
6772         (rewrite_initialize_block): Mark parameters as unused as needed.
6773         Change references to the block local block_defs to be block_defs_stack.
6774         Push a marker onto the block_defs_stack.
6775         (ssa_rewrite_initialize_block): Similarly.
6776         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
6777         (ssa_register_new_def): No longer needs varray argument.  Use
6778         block_defs_stack instead.  No longer handle possibly null block_defs
6779         varray.  Reverse order of items we push on the stack to make it
6780         easier to identify our marker.
6781         (register_new_def): No longer handle possibly null block_defs
6782         varray.
6783         (rewrite_finalize_block): Revamp to look for markers in the global
6784         block_defs_stack varray rather than wiping a block local varray.
6785         Mark arguments as unused as needed.
6786         (ssa_rewrite_finalize_block): Similarly.
6787         (rewrite_into_ssa): Update initialization of dom walker structure
6788         to reflect that we don't need block local data anymore.  Initialize
6789         the block_defs_stack varray.
6790         (rewrite_ssa_into_ssa): Similarly.
6791         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
6792         (struct dom_walk_data): Kill block_defs field.
6793         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
6794         (thread_across_edge): Use the global block_defs_stack instead of
6795         the old block_defs varray.
6796         (dom_opt_initialize_block_local_data): Update now that we don't have
6797         block_defs field to check anymore.
6798         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
6799         (restore_currdefs_to_original_value): Use the new block_defs_stack
6800         instead of a block local varray.
6801         (dom_opt_finalize_block): Similarly.
6802         (record_equivalencs_from_phis): Similarly.
6803         (optimize_stmt, register_definitions_for_stmt): Similarly.
6804
6805 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
6806
6807         PR tree-optimization/17517
6808         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
6809         coalesce same-root variables without checking for abnormal PHI usage.
6810
6811 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
6812
6813         * cfgloop.h (duplicate_loop):  Add prototype.
6814         * cfgloopmanip.c (duplicate_loop): Make non-static.
6815         * lambda-code.c (perfect_nestify): Factor out test whether
6816         we can handle this loop into separate function.
6817         Call it.
6818         (can_convert_to_perfect_nest): New function.
6819         (replace_uses_of_x_with_y): Add modify_stmt call.
6820         * tree-loop-linear.c (linear_transform_loops): Call
6821         rewrite_into_loop_closed_ssa and free_df.
6822
6823 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
6824
6825         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
6826         loop invariant as well.
6827         (perfect_nestify): new function.
6828         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
6829         upper bounds, and steps.
6830         Set outerinductionvar properly.
6831         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
6832         parameters.
6833         Return NULL if we need a perfect loop and can't make one.
6834         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
6835         (not_interesting_stmt): New function.
6836         (phi_loop_edge_uses_def): Ditto.
6837         (stmt_uses_phi_result): Ditto.
6838         (stmt_is_bumper_for_loop): Ditto.
6839         (perfect_nest_p): Ditto.
6840         (nestify_update_pending_stmts): Ditto.
6841         (replace_uses_of_x_with_y): Ditto.
6842         (stmt_uses_op): Ditto.
6843         (perfect_nestify): Ditto.
6844         * lambda-mat.c (lambda_matrix_id_p): New function.
6845         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
6846         * lambda.h: Update prototypes.
6847         * tree-loop-linear (linear_transform_loop): Use new
6848         perfect_nest_p. Detect and ignore identity transform.
6849         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
6850
6851 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
6852
6853         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
6854         Gather also strides of accessed data.  Pass in the data references
6855         array.
6856         (try_interchange_loops): Add a new heuristic for handling the temporal
6857         locality.  Pass in the data references array.
6858         (linear_transform_loops): Pass the data references array to
6859         try_interchange_loops.
6860
6861 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
6862
6863         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
6864
6865 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
6866
6867         * doc/c-tree.texi (Classes): Remove index entries for
6868         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
6869
6870 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6871
6872         * fold-const.c (fold): Fold difference of addresses.
6873         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
6874         get_inner_reference.
6875         * tree-ssa-loop-ivopts.c (peel_address): Removed.
6876         (ptr_difference_const): Moved to fold-const.c.
6877         (split_address_cost): Use get_inner_reference instead of peel_address.
6878         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
6879         * tree.h (ptr_difference_const): Export.
6880
6881         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
6882         variable type to the dump.  Fix indentation.
6883         (idx_find_step): Handle nonconstant array_ref_element_size and
6884         array_ref_low_bound.
6885         (idx_record_use): Handle array_ref_element_size and
6886         array_ref_low_bound.
6887         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
6888         statements correctly.
6889         (get_computation_at, iv_value): Do not unshare expressions here.
6890         (rewrite_use_outer): Unshare the expression before it is emitted
6891         to code.
6892         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
6893         Moved to tree.c.
6894         * tree.c (unsigned_type_for, signed_type_for): Moved from
6895         tree-ssa-loop-niter.c.  Use langhooks.
6896         * tree.h (signed_type_for): Export.
6897
6898 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
6899
6900         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
6901         prototype.
6902
6903 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
6904
6905         PR target/11572
6906         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
6907         Add two parameters to extra_includes.
6908         (C_INCPATH_INIT): Remove.
6909         * c-incpath.c (register_include_chains): Call extra_pre_includes
6910         before adding the standard include directory.
6911         Update call to extra_includes.
6912         (!defined TARGET_EXTRA_INCLUDES): Update
6913         hook_void_charptr_charptr_int and add !define
6914         TARGET_EXTRA_PRE_INCLUDES.
6915         (!define TARGET_EXTRA_INCLUDES): Define as
6916         hook_void_charptr_charptr_int.
6917         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
6918         (target_c_incpath): Always declare.
6919         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
6920         empty function.
6921         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
6922         * config/darwin.h: (darwin_register_frameworks): Update for
6923         the two new parameters.
6924         (darwin_register_objc_includes): Add prototype.
6925         (TARGET_EXTRA_PRE_INCLUDES): Define.
6926         * config/darwin-c.c (darwin_register_objc_includes): New function.
6927         (darwin_register_frameworks): Update for the two new parameters.
6928         (target_c_incpath): Remove.
6929         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
6930         the compile line.
6931         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
6932         parameters.
6933         (TARGET_EXTRA_PRE_INCLUDES): Document.
6934
6935         * gcc.c (spec_function): Add replace-outfile.
6936         (replace_outfile_spec_function): New function.
6937         * config/darwin.h (LINK_SPEC): Add replace
6938         -lobjc with -lobjc-gnu if -fgnu-runtime is
6939         supplied.
6940         * invoke.texi (replace-outfile): Document.
6941
6942 2004-09-13  Jan Hubicka  <jh@suse.cz>
6943
6944         * predict.c (expr_expected_value, strip_builtin_expect): New function.
6945         (tree_predict_by_opcode): Use it.
6946         (tree_estimate_probability): Add, for now disabled,
6947         strip_builtin_expect call.
6948
6949 2004-09-15  James E Wilson  <wilson@specifixinc.com>
6950
6951         PR target/17455
6952         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
6953         if current_function_decl is a sibcall.
6954
6955 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
6956
6957         * varasm.c (default_function_rdodata_section): Make sure to pass
6958         along a decl for a link-once section.
6959
6960 2004-09-15  Richard Henderson  <rth@redhat.com>
6961
6962         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
6963         warning with code disable.  Fix formatting.
6964
6965 2004-09-15  Steven Bosscher  <stevenb@suse.de>
6966
6967         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
6968         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
6969         after propagating into an ADDR_EXPR.
6970
6971 2004-09-15  Andrew Pinski  <apinski@apple.com>
6972
6973         PR rtl-opt/17427
6974         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
6975         Move it out of gcc_assert.
6976
6977 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
6978
6979         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
6980         except.c, fold-const.c, function.c, langhooks.c, params.c,
6981         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
6982         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
6983         for quoting in diagnostics going through pretty-print.c.  Use ''
6984         for quoting in other diagnostic text.
6985         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
6986         translation.
6987         * Makefile.in (langhooks.o): Update dependencies.
6988         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
6989         formats.
6990
6991 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
6992
6993         * configure.ac: Check for COMDAT support.  Robustify check for
6994         SHF_MERGE support.
6995         * configure: Regenerated.
6996         * config.in: Likewise.
6997         * langhooks-def.h (lhd_comdat_group): New function.
6998         (LANG_HOOKS_COMDAT_GROUP): New macro.
6999         (LANG_HOOKS_DECLS): Use it.
7000         * langhooks.c (lhd_comdat_group): Define.
7001         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
7002         * output.h (named_section_flags): Make it a macro.
7003         (named_section_real): New function.
7004         (default_no_named_section): Add decl parameter.
7005         (default_elf_asm_named_section): Likewise.
7006         (default_coff_asm_named_section): Likewise.
7007         (default_pe_asm_named_section): Likewise.
7008         * target.h (gcc_target): Adjust type of named_section.
7009         * varasm.c (named_section_flags): Rename to named_section_real.
7010         Add decl parameter.
7011         (default_no_named_section): Add decl parameter.
7012         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
7013         with the case that ASM_COMMENT_START is "@".
7014         (default_coff_asm_named_section): Add decl parameter.
7015         (default_pe_asm_named_section): Likewise.
7016         * config/alpha/alpha.c (vms_asm_named_section): Add decl
7017         parameter.
7018         (unicosmk_asm_named_section): Likewise.
7019         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
7020         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
7021         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
7022         * config/cris/cris-protos.h (cris_target_asm_named_section):
7023         Likewise.
7024         * config/cris/cris.c (cris_target_asm_named_section):
7025         Likewise.
7026         * config/darwin/darwin-protos.h (darwin_asm_named_section):
7027         Likewise.
7028         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
7029         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
7030         * config/i386/i386-protos.h (i386_pe_asm_named_section):
7031         Likewise.
7032         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
7033         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
7034         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
7035         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
7036         Likewise.
7037         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
7038         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
7039         * cp/cp-tree.h (cxx_comdat_group): Declare.
7040         * cp/decl.c (cxx_comdat_group): New function.
7041
7042 2004-09-15  Jan Hubicka  <jh@suse.cz>
7043
7044         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
7045         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
7046
7047         * tree-cfg.c (remove_bb): Release SSA defs.
7048
7049 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
7050
7051         * doc/tm.texi: Follow spelling conventions.
7052
7053 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
7054
7055         * tree-ssa-dom.c: Fix comment typos.
7056
7057 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
7058
7059         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
7060         include ccr.
7061         (ppc_fallback_frame_state): Save location of CR.
7062
7063 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
7064
7065         * expr.c (string_constant): Handle also read-only variables
7066         initialized to string literals.
7067
7068         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
7069         into memcpy (x, y, 1) if memcpy can be expanded inline.
7070
7071 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7072
7073         PR tree-optimization/17468
7074         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
7075         definition inside a block precede uses.
7076         * tree-tailcall.c (adjust_return_value): Emit statements in the
7077         correct order.
7078
7079 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
7080
7081         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
7082
7083 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
7084
7085         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
7086
7087 2004-09-14 Jeff Law  <law@redhat.com>
7088
7089         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
7090         (struct dom_walk_block_data): Remove avail_exprs member.
7091         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
7092         (lookup_avail_expr): No longer need to pass in address of
7093         the block local available exprs stack.  All callers changed.
7094         (simplify_cond_and_lookup_avail_expr): Similarly.
7095         (simplify_switch_and_lookup_avail_expr): Similarly.
7096         (get_eq_expr_value, record_cond): Likewise.
7097         (record_dominating_conditions): Likewise.
7098         (update_rhs_and_lookup_avail_expr): Likewise.
7099         (record_equivalences_from_stmt): Likewise.
7100         (dom_opt_initialize_block_local_data): No longer test state of
7101         block local avail_exprs.
7102         (dom_opt_initialize_block): Mark unwind point in the global
7103         avail_expr stack.
7104         (remove_expressions_from_table): Update to unwind to the
7105         most recent unwind marker in the global avail_expr stack.
7106         All callers changed.
7107         (dom_opt_finalize_block): Mark unwind point in the global
7108         avail_expr stack as needed.
7109         (record_cond): Push elements into the global avail_exprs stack.
7110
7111         * tree-dfa.c (free_df_for_stmt): No longer static.
7112         (free_df): Update comments.
7113         * tree-flow.h (free_df_for_stmt): Prototype.
7114         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
7115         call release_defs.
7116
7117 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
7118
7119         PR tree-optimization/17252
7120         * tree-ssa-alias.c (may_alias_p): Don't assume that a
7121         pointer may not point to itself when using relaxed
7122         aliasing rules.
7123
7124 2004-09-14  Richard Henderson  <rth@redhat.com>
7125
7126         PR middle-end/17397
7127         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
7128         while folding <ADDR_EXPR <INDIRECT_REF X>>.
7129
7130 2004-09-14  Andrew Pinski  <apinski@apple.com>
7131
7132         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
7133         sets of the pointers but the aliasing sets of what they point to.
7134
7135 2004-09-14  Roger Sayle  <roger@eyesopen.com>
7136
7137         PR rtl-optimization/9771
7138         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
7139         conditional compilation in init_reg_sets_1.
7140         (init_reg_sets_1): Let global_regs[i] take priority over the frame
7141         (but not stack) pointer exceptions to regs_invalidated_by_call.
7142         (globalize_reg): Globalizing a fixed register may need to update
7143         regs_invalidated_by_call.
7144
7145 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
7146
7147         PR tree-optimization/15262
7148         * tree-dfa.c (dump_variable): Also print the type of the
7149         variable.
7150         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
7151         memory tags are of conflicting alias sets but have no aliased
7152         symbols in common, add one tag to the alias set of the other.
7153         (setup_pointers_and_addressables): Remove hack to deal with
7154         programs with no aliased symbols.
7155         (may_alias_p): Don't special case aggregate types.
7156
7157 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
7158
7159         PR c/15498
7160         * doc/invoke.texi (Environment Variables): Correct example locale.
7161
7162 2004-09-14  Jan Hubicka  <jh@suse.cz>
7163
7164         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
7165
7166 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
7167
7168         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
7169
7170 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
7171
7172         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
7173         restrict_p.
7174         (struct c_declarator): Change u.array.quals and pointer_quals to
7175         int.  Add u.array.attrs.
7176         (quals_from_declspecs): New.
7177         * c-decl.c (quals_from_declspecs): New.
7178         (shadow_tag_warned): Give more specific message for useless type
7179         qualifiers.
7180         (build_array_declarator, set_array_declarator_inner,
7181         grokdeclarator, make_pointer_declarator, build_null_declspecs,
7182         declspecs_add_qual): Update for changed structures.
7183
7184 2004-09-14  Jeff Law  <law@redhat.com>
7185
7186         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
7187         to a global varray.
7188         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
7189         (dom_opt_initialize_block_local_data): No longer test state
7190         of stmts_to_rescan.
7191         (dom_opt_finalize_block): Update due to change in scope of
7192         stmts_to_rescan.
7193         (optimize_stmt): Similarly.
7194
7195 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
7196
7197         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
7198         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
7199         comment typos.  Follow spelling conventions.
7200
7201 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
7202
7203         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
7204         config/i386/predicates.md, config/sparc/sparc.c: Follow
7205         spelling conventions.
7206
7207 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7208             Steven Bosscher  <stevenb@suse.de>
7209
7210         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
7211         * basic-block.h (struct reorder_block_def): Add copy_number field.
7212         * cfgloop.h (biv_p): Declare.
7213         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
7214         * common.opt (fsplit-ivs-in-unroller): New flag.
7215         * loop-iv.c (biv_p): New function.
7216         * loop-unroll.c: Include hashtab.h and recog.h.
7217         (struct iv_to_split, struct split_ivs_info): New types.
7218         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
7219         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
7220         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
7221         insert_base_initialization, split_iv): New functions.
7222         (peel_loop_completely, unroll_loop_constant_iterations,
7223         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
7224         Use them.
7225         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
7226
7227 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7228
7229         * tree-cfg.c (thread_jumps): Update dominators correctly in
7230         case destination of threaded edge dominates its source.
7231
7232 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7233
7234         * unroll.c: Removed.
7235         * loop.h: Removed.
7236         * Makefile.in (LOOP_H, unroll.o): Removed.
7237         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
7238         dependency.
7239         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
7240         reference.
7241         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
7242         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
7243         * loop.c: Do not include loop.h.
7244         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
7245         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
7246         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
7247         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
7248         struct loop_regs, struct loop_movables, struct loop_info): Moved
7249         from loop.h.
7250         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
7251         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
7252         find_common_reg_term, loop_iterations, final_giv_value): Moved
7253         from unroll.c.
7254         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
7255         loop_dump_stream, for_each_insn_in_loop, express_from,
7256         extend_value_for_giv, loop_iv_add_mult_emit_before,
7257         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
7258         loop_insn_first_p, get_condition_for_loop,
7259         loop_insn_emit_before, loop_insn_hoist,
7260         loop_insn_sink): Made static.
7261         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
7262         reference.
7263         (strength_reduce): Do not call unroller.
7264         (record_giv): Do not initialize unrolled field.
7265         (prescan_loop): Do not set loop_info->preconditioned.
7266         * passes.c: Do not include loop.h.
7267         (rest_of_handle_loop_optimize): Do not call unroller.
7268         * predict.c: Do not include loop.h.
7269         * rtl.h (NOTE_PRECONDITIONED): Removed.
7270         * stmt.c: Do not include loop.h.
7271         * toplev.c: Do not include loop.h.
7272         (process_options): Do not handle flag_old_unroll_loops.
7273
7274         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
7275         Documentation removed.
7276         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
7277
7278 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
7279
7280         * Makefile.in (STAGE1_CHECKING): New variable.
7281         (stage1_build): Use it.
7282         * tree-ssa.c (verify_ssa): Preserve state of dominance
7283         information.
7284
7285 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
7286
7287         * config/i386/i386.c (output_fp_compare): Add generation
7288         of ftst instruction.
7289         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
7290         Use output_fp_compare () function.
7291         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
7292         (fix_truncdi_memory): Remove operands[5] copy.
7293
7294 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
7295
7296         * config/m32r/m32r.md, config/m68k/m68kelf.h,
7297         config/mcore/mcore.md, config/rs6000/linux64.h,
7298         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
7299         typos.
7300
7301 2004-09-13  James E Wilson  <wilson@specifixinc.com>
7302
7303         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
7304         * gen-protos.c: Include errors.h.
7305         (progname): Delete.
7306
7307 2004-09-14  Jan Hubicka  <jh@suse.cz>
7308
7309         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
7310         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
7311         (predict_loops): Use number_of_iterations_exit to predict
7312         number of iterations on trees.
7313
7314 2004-09-13  Dale Johannesen  <dalej@apple.com>
7315
7316         PR 17408
7317         PR 17409
7318         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
7319         objects declared extern.
7320
7321 2004-09-14  Paul Brook  <paul@codesourcery.com>
7322
7323         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
7324         HOST_WIDE_INT.
7325
7326 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
7327
7328         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
7329         Only use TYPE_BINFO for aggregates.
7330
7331 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
7332
7333         * expmed.c (synth_mult): Initialize latency.  Check cost before
7334         checking ops count.
7335
7336 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
7337
7338         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
7339         add_call_clobber_ops and add_call_read_ops.
7340         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
7341         the number of vdefs and vuses inserted based on analysis of global
7342         variables across calls.  * tree-dfa.c (find_referenced_vars):
7343         Needed to reset static var maps before each function is compiled.
7344         * cgraphunit.c:
7345         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
7346         static_vars_info,functions_to_static_vars_info,module_statics_escape,
7347         all_module_statics,searchc_env,dfs_info): New fields to support
7348         analysis of static global variables.
7349         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
7350         cgraph_reset_static_var_maps, get_global_static_vars_info,
7351         get_global_statics_not_read, get_global_statics_not_written,
7352         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
7353         check_rhs_var, check_lhs_var, get_asm_expr_operands,
7354         process_call_for_static_vars, scan_for_static_refs,
7355         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
7356         clear_static_vars_maps, cgraph_propagate_bits,
7357         cgraph_characterize_statics): New. Functions to support analysis
7358         of static global variables.
7359         (cgraph_mark_local_and_external_functions): Renamed from:
7360         (cgraph_mark_local_functions)
7361         (cgraph_expand_all_functions): Remove call to
7362         cgraph_mark_local_and_external_functions.
7363         (cgraph_optimize): Added driver to analyze static variables whose
7364         scope is within the compilation unit.  * cgraph.h (struct
7365         cgraph_local_info, GTY): Added statics_read, statics_written,
7366         local, calls_read_all, calls_write_all, for_functions_valid.
7367         (struct cgraph_node): Added next_cycle.  * cgraph.c
7368         (dump_cgraph_node): Added print routines for new fields.  *
7369         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
7370         list.
7371
7372 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
7373
7374         * c-decl.c (grokdeclarator): Correct comments about where storage
7375         class specifiers are rejected by grammar and add corresponding
7376         asserts.  Diagnose typedefs and parameters declared inline.
7377         Change warning for inline main to a pedwarn.  Only diagnose inline
7378         main if hosted.
7379         (declspecs_add_scspec): Allow duplicate "inline".
7380
7381 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
7382
7383         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
7384         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
7385
7386 2004-09-13  Richard Henderson  <rth@redhat.com>
7387
7388         PR 17436
7389         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
7390         (tree_type): Replace spare with contains_placeholder_bits.
7391         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
7392         make static.  Remove seen_types list.
7393         (type_contains_placeholder_p): New.
7394
7395 2004-09-13  James E Wilson  <wilson@specifixinc.com>
7396
7397         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
7398         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
7399         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
7400         bdesc_arrays instead of mips_bdesc.
7401         (mips_init_builtins): Likewise.
7402         * config/mips/mips.h (TARGET_SB1): New.
7403         (HAVE_SQRT_P): Delete.
7404         * config/mips/mips.md (divide_condition): Support V2SF.
7405         (sqrt_condition, recip_condition): New.
7406         (div<mode>3): Use ANYF instead of SCALARF.
7407         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
7408         MODE.
7409         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
7410         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
7411         instead of MODE.
7412         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
7413         instead of SCALARF.  Use UNITMODE instead of MODE.
7414
7415 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
7416
7417         * config.in: Regenerate after removal of libbanshee.
7418
7419 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
7420
7421         PR tree-optimization/17400
7422         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
7423         coalesce partitions when one occurs in an abnormal PHI.
7424
7425 2004-09-13  Andrew Pinski  <apinski@apple.com>
7426
7427         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
7428         name to _new_size.
7429
7430 2004-09-13  Richard Henderson  <rth@redhat.com>
7431
7432         PR inline-asm/6806
7433         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
7434         (cselib_invalidate_rtx_note_stores): New.
7435         (cselib_record_sets, cselib_process_insn): Update to match.
7436         * cselib.h (cselib_invalidate_rtx): Declare.
7437         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
7438
7439 2004-09-13  Richard Henderson  <rth@redhat.com>
7440
7441         PR tree-opt/10528
7442         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
7443         after copying its argument.
7444
7445 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
7446
7447         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
7448         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
7449         in diagnostics.  Use %' for English apostrophes.
7450         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
7451         (pedwarn_c90, pedwarn_c99): Use it.
7452         * c-decl.c (lookup_label): Quote label name in diagnostic.
7453         * c-parse.in (yyprint): Use ' instead of ` for left quote.
7454         * c-typeck.c (warn_for_assignment): Likewise.
7455
7456 2004-09-13  Jan Hubicka  <jh@suse.cz>
7457
7458         * i386.c (x86_schedule): New global variable.
7459         (override_options): Disable scheduling when not supported.
7460         * i386.h (x86_schedule): Declare.
7461         (TARGET_SCHEDULE): New macro.
7462
7463 2004-09-12  Richard Henderson  <rth@redhat.com>
7464
7465         PR c++/16254
7466         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
7467         * tree.c, tree.h (has_cleanups): Remove.
7468
7469 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7470
7471         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
7472         arguments of the phi nodes correctly.
7473
7474 2004-09-12  Jan Hubicka  <jh@suse.cz>
7475
7476         * ggc-common.c (cmp_statistics): Fix sorting.
7477
7478 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
7479
7480         PR target/16795
7481         * expmed.c (expand_divmod): If cheap power of 2 divide is
7482         available, use it for negative constant as well.
7483
7484 2004-09-12  Andrew Pinski  <apinski@apple.com>
7485
7486         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
7487         size of 0.
7488
7489         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
7490
7491 2004-09-12  Richard Henderson  <rth@redhat.com>
7492
7493         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
7494         or minus one.
7495         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
7496         post-reload, and scratch NULL.
7497         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
7498         (x86_shift_adj_2): Use ix86_expand_clear.
7499         (ashldi3): Remove CMOVE expansion difference.
7500         (ashldi3_1): Remove.
7501         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
7502         add constraints for immediates.  New peephole for split-with-temp.
7503         Run splitter after peep2 pass.
7504         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
7505         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
7506         (setcc_2): Rename with *.
7507         * config/i386/predicates.md (reg_or_pm1_operand): New.
7508         (ashldi_input_operand): New.
7509
7510 2004-09-12  Richard Henderson  <rth@redhat.com
7511
7512         * print-rtl.c (print_decl_name): New.
7513         (print_mem_expr): Use it.
7514
7515 2004-09-12  Richard Henderson  <rth@redhat.com
7516
7517         PR 17186, part deux
7518         * except.c (sjlj_emit_function_exit): Fix logic locating
7519         sjlj_exit_after in final block.
7520
7521 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
7522
7523         * common.opt: Remove flags -fmove-all-movables and
7524         -freduce-all-givs.
7525         * loop-invariant.c (find_invariants_to_move):
7526         Remove all uses of flag_move_all_movables.
7527         * loop.c (move_movables): Remove all uses of
7528         flag_move_all_movables.
7529         (strength_reduce): Remove all uses of
7530         flag_reduce_all_givs.
7531         * doc/invoke.texi: Remove documentation of flags
7532         -fremove-all-movables and -freduce-all-givs.
7533
7534 2004-09-11  Roger Sayle  <roger@eyesopen.com>
7535
7536         PR middle-end/17411
7537         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
7538         change. elt->type may be a floating point type, so use fold_convert.
7539
7540 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
7541
7542         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
7543         the thing referenced as used, not the stub itself.
7544
7545 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
7546
7547         * c-tree.h (enum c_storage_class): New.
7548         (struct c_declspecs): Add storage_class, inline_p and thread_p.
7549         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
7550         declarations and "auto" or "register" in file scope empty
7551         declarations.  Give more specific warnings for other cases of
7552         storage class specifiers in empty declarations.
7553         (grokdeclarator): Update for new structures.  Don't check for
7554         multiple storage classes.  Diagnose file-scope "register" if
7555         pedantic.
7556         (build_null_declspecs): Update.
7557         (declspecs_add_scspec): Update.  Diagnose multiple storage class
7558         specifiers and invalid uses of "__thread".
7559
7560 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
7561
7562         * tree.c (tree_code_size): New function, bulk of code from tree_size.
7563         (tree_size, make_node): Use it.
7564         * tree-ssa-pre.c (init_pre): Use it.
7565         * tree.h: Prototype it.
7566
7567 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7568
7569         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
7570         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
7571         redirect_immediate_use): Use PHI_DF.
7572         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
7573         (bb_for_stmt): Use PHI_BB.
7574         (get_immediate_uses): Use PHI_DF.
7575         * tree-ssa-dse.c (max_stmt_uid): New variable.
7576         (get_stmt_uid): New function.
7577         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
7578         node annotations.
7579         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
7580         (max_uid): Renamed to max_stmt_uid.
7581         (get_stmt_uid): New function.
7582         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
7583         phi node annotations.
7584         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
7585         * tree.h (PHI_BB, PHI_DF): New accessor functions.
7586         (struct tree_phi_node): Add bb and df fields.
7587
7588 2004-09-11  Richard Henderson  <rth@redhat.com>
7589
7590         PR middle-end/17416
7591         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
7592         in conflict loop.
7593
7594 2004-09-11  Jan Hubicka  <jh@suse.cz>
7595
7596         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
7597         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
7598         * i386.md (i387_cw): Add 'uninitialized' mode.
7599
7600         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
7601         (output_location): Break out from ....
7602         (branch_prob): ... here; handle gcov output on trees.
7603         * toplev.c (process_options): No longer be sorry about coverage for
7604         trees.
7605
7606 2004-09-11  Steven Bosscher  <stevenb@suse.de>
7607
7608         PR c++/17412
7609         * fold-const.c (fold): Do not try to fold the operand of a
7610         CLEANUP_POINT_EXPR if that operand does itself not have any
7611         operands.
7612
7613         PR middle-end/17417
7614         * langhooks.c (lhd_decl_printable_name): Make sure that this
7615         function is called with is a decl node that has an identifier.
7616         * tree-pretty-print.c (dump_function_name): New function to
7617         wrap PRINT_FUNCTION_NAME and dump_decl_name.
7618         (print_call_name): Use it.
7619
7620 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
7621
7622         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
7623         "config.h" if not.
7624
7625 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
7626
7627         * tree-ssa-alias.c (collect_points_to_info_r): Handle
7628         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
7629         to OFFSET.
7630
7631 2004-09-11  Richard Henderson  <rth@redhat.com>
7632
7633         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
7634         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
7635         operand of the ADDR_EXPR.
7636         (expand_expr_real_1): Update to match.
7637
7638 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
7639
7640         PR target/17277
7641         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
7642         choose 64-bit version.
7643
7644 2004-09-11  Richard Henderson  <rth@redhat.com>
7645
7646         PR c/17396
7647         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
7648
7649 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
7650
7651         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
7652         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
7653         Insert @: after i.e. or e.g.
7654
7655 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
7656
7657         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
7658         D.xxx rather than <Dxxx>.
7659
7660 2004-09-10  Adam Nemet  <anemet@lnxw.com>
7661
7662         * configure.ac (AC_MSG_CHECKING(what linker to use)):
7663         in_tree_ld_is_elf should be true for LynxOS.
7664         * configure: Regenerate.
7665
7666 2004-09-10  Adam Nemet  <anemet@lnxw.com>
7667
7668         * Makefile.in (all.cross): Add srcextra.
7669
7670 2004-09-10  Roger Sayle  <roger@eyesopen.com>
7671
7672         PR middle-end/17024
7673         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
7674         floating point comparison operators.  Change aborts to gcc_asserts.
7675
7676 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
7677
7678         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
7679
7680 2004-09-10  James E Wilson  <wilson@specifixinc.com>
7681
7682         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
7683         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
7684
7685         * convert.c (convert_to_vector): Replace recursive call with
7686         error_mark_node.
7687
7688         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
7689         Add integer argument named constant.  Use const_tiny_rtx instead of
7690         CONST0_RTX.
7691         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
7692         and CONST1_RTX.
7693         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
7694         vector types.
7695         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
7696         of gen_rtx_raw_CONST_VECTOR.
7697
7698 2004-09-10  Eric Christopher  <echristo@redhat.com>
7699
7700         PR c/16046
7701         * c-parse.in (attribute): Add NULL_TREE for error case
7702         for error recovery.
7703
7704 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
7705
7706         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
7707         (extract_interface_info): Delete prototype.
7708         * c-decl.c (extract_interface_info): Delete stub.
7709         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
7710         it's not already been done ...
7711         (init_c_lex): ... not here.
7712         (fe_file_change): Don't call extract_interface_info.
7713
7714 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
7715
7716         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
7717         typedef_p and typedef_signed_p.
7718         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
7719         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
7720         Check typedef_p and typedef_signed_p, not typedef_decl.
7721         (grokfield): Check typedef_p, not typedef_decl.
7722         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
7723         not typedef_decl.
7724         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
7725         typedef_decl.
7726
7727 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
7728
7729         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
7730
7731 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
7732
7733         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
7734         temporary variables.
7735
7736         * dbxout.c (dbxout_block): Update for
7737         current_function_func_begin_label a string.
7738         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
7739         * except.c (dw2_output_call_site_table): Likewise.
7740         * toplev.c (current_function_func_begin_label): Likewise.
7741         * tree.h (current_function_func_begin_label): Likewise.
7742         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
7743
7744         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
7745         loop.
7746
7747         * config/darwin.c: Include target.h.
7748         (struct machopic_indirection): Make ptr_name a string.
7749         (machopic_indirection_hash): Update for ptr_name a string.
7750         (machopic_indirection_eq): Likewise.
7751         (machopic_indirection_name): Likewise.
7752         (machopic_output_indirection): Likewise.
7753         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
7754         string.  Don't expect stub names to be in the identifier hash table.
7755         Do call strip_name_encoding before looking up entry in ID hash table.
7756         * config/t-darwin (darwin.o): Add target.h to dependencies.
7757
7758         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
7759         of fprintf for register names.
7760
7761         * output.h (unlikely_section_label): Delete declaration.
7762         (unlikely_text_section_name): Likewise.
7763         * varasm.c (unlikely_section_label_printed): Make static.
7764         (unlikely_section_label): Likewise.
7765         (unlikely_text_section_name): Likewise.
7766         (assemble_start_function): Use reconcat.
7767
7768         * rtl.def (REG): Add comment to describe third field.
7769
7770 2004-09-10  Andrew Pinski  <apinski@apple.com>
7771
7772         * config/darwin.c (machopic_mcount_stub_name): Call
7773         machopic_indirection_name instead of making the string
7774         ourselves.
7775
7776 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
7777
7778         Revert
7779
7780         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
7781
7782             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
7783             memory tag is call clobbered, so are its aliases.
7784             (group_aliases): When two memory tags being grouped, if one is
7785             call clobbered, so are the other and its aliases.
7786             (add_may_alias): Remove call-clobbering stuff.
7787             (replace_may_alias): Likewise.
7788             (merge_pointed_to_info): Merge pt_global_mem
7789
7790 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
7791
7792         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
7793         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
7794         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
7795         tree-scalar-evolution.c, tree-ssa-copyrename.c,
7796         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
7797
7798 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
7799
7800         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
7801         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
7802         pair.  Remove match_dup from inputs.  Remove masaccs handling.
7803         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
7804         (masaccs, mdasaccs): Turn into define_insns.
7805
7806 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
7807
7808         * tree-tailcall.c (process_assignment): Only do accumulator transforms
7809         for floating-point types if flag_unsafe_math_optimizations.
7810
7811 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
7812
7813         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
7814         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
7815         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
7816         config/h8300/h8300.md, config/i386/gmm_malloc.h,
7817         config/ia64/ia64.md, config/ip2k/libgcc.S,
7818         config/mips/mips-ps-3d.md, config/mips/mips.c,
7819         config/rs6000/rs6000.c, config/s390/s390.c,
7820         config/sh/symbian.c: Fix comment typos.
7821
7822 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
7823
7824         * config/s390/s390.c (s390_emit_prologue): Added missing
7825         "{}" brackets.
7826
7827 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
7828
7829         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
7830         typos.  Follow spelling conventions.
7831
7832 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7833
7834         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
7835         in diagnostic.  Don't dereference NULL TYPE_NAME.
7836
7837 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
7838
7839         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
7840         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
7841         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
7842         value-prof.c: Fix comment typos.  Follow spelling conventions.
7843
7844 2004-09-10  Jan Hubicka  <jh@suse.cz>
7845
7846         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
7847         * tree-split_edge.c (tree_split_edge): Likewise.
7848         (thread_jumps): Likewise.
7849
7850 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
7851
7852         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
7853         typos.
7854
7855 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
7856
7857         * cgraph.h (cgraph_dump_file): Do not declare.
7858         * cgraphunit.c (cgraph_dump_file): Declare as static.
7859         (init_cgraph): New.
7860         * toplev.c (cgraph_dump_file): Do not declare.
7861         (compile_file): Call init_cgraph.
7862         * tree-dump.c (dump_files): Add IPA dump file, remove
7863         XML dump of call graph.
7864         (get_dump_file_name): Support IPA dump file naming scheme.
7865         * tree.h (enum tree_dump_index): Add IPA dump file, remove
7866         XML dump of call graph.
7867         * doc/invoke.texi (Debugging Options): Document the new options.
7868
7869 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
7870
7871         * doc/extend.texi: Document the FR-V built-in functions.
7872
7873 2004-09-09  James E Wilson  <wilson@specifixinc.com>
7874
7875         * doc/sourcebuild.texi: Delete libbanshee reference.
7876
7877 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
7878
7879         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
7880
7881 2004-09-09  James E Wilson  <wilson@specifixinc.com>
7882
7883         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
7884         before calling vector_types_convertible_p.
7885         (digest_init): Check that inside_init has VECTOR_TYPE before calling
7886         vector_types_convertible_p.  Don't give another error if
7887         convert_for_assignment returns error_mark_node.
7888
7889 2004-09-09  Roger Sayle  <roger@eyesopen.com>
7890
7891         PR middle-end/17055
7892         * fold-const.c (build_zero_vector): New function to construct a
7893         vector (either floating point or integer) of zeros.
7894         (fold_convert): Internally, enable conversions of integer zero
7895         to arbitrary vector types, using the new build_zero_vector.
7896
7897 2004-09-09  Roger Sayle  <roger@eyesopen.com>
7898
7899         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
7900         expand a left shift by an immediate constant as either an ashl or
7901         a sequence of additions.
7902         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
7903         instead of calling gen_ashlsi3 with a constant directly.
7904
7905 2004-09-09  Roger Sayle  <roger@eyesopen.com>
7906
7907         * config/i386/i386.c (ix86_split_long_move): When optimizing for
7908         size, and the low and high parts of a DImode constant are equal,
7909         copy one register to another instead of loading the same immediate
7910         value twice.
7911
7912 2004-09-09  Richard Henderson  <rth@redhat.com>
7913
7914         PR middle-end/17367
7915         * function.c (assign_parm_setup_block): Only put PARALLELs into
7916         a register if use_register_for_decl.
7917
7918 2004-09-09  Eric Christopher  <echristo@redhat.com>
7919
7920         * ra-colorize.c (reset_lists): Move variable declaration inside
7921         ENABLE_CHECKING to avoid unused variable warnings when
7922         not --enable-checking.
7923         (check_colors): Ditto.
7924
7925 2004-09-09  Mike Stump  <mrs@apple.com>
7926
7927         * version.c (version_string): Bump to 4.0.0.
7928         * doc/include/gcc-common.texi (version-GCC): Likewise.
7929
7930 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
7931
7932         * doc/extend.texi (nothrow attribute): The attribute is not
7933         implemented in 3.2 and earlier.
7934
7935 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
7936
7937         * genrecog.c (compute_predicate_codes): Use op0_codes
7938         instead of codes.
7939
7940 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
7941
7942         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
7943         implementation changes.
7944
7945 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
7946
7947         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
7948         a PARALLEL instead of a SET due to added clobbers.
7949
7950 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
7951
7952         * reload.c (find_reloads_address): Pass correct operand to
7953         maybe_memory_address_p.
7954
7955 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
7956
7957         * Makefile.in: Remove libbanshee, tree-alias-*.
7958         Remove tree-alias-common.h dependencies.
7959         * common.opt: Remove -ftree-points-to.
7960         * configure.ac: Remove libbanshee.
7961         * flags.h: Remove pta_type, flag_tree_points_to.
7962         * gengtype.c (open_base_files): Remove tree-alias-type.h.
7963         * opts.c (OPT_ftree_points_to): Remove.
7964         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
7965         * tree-dfa.c: Remove tree-alias-common.h
7966         * tree-into-ssa.c: Ditto.
7967         * tree-outof-ssa.c: Ditto.
7968         * tree-ssa-copyrename.c: Ditto.
7969         * tree-ssa-live.c: Ditto.
7970         * tree-optimize.c: Ditto.
7971         * tree-ssa.c: Ditto.
7972         Remove pass_build_pta, pass_del_pta.
7973         * tree-pass.h: Ditto.
7974         * tree-ssa-alias.c: Remove tree-alias-common.h.
7975         (struct alias_stats_d): Remove pta_queries, pta_resolved.
7976         (pass_may_alias): Remove PROP_pta requirement.
7977         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
7978         (get_tmt_for): Ditto.
7979         (dump_alias_stats): Ditto.
7980         * doc/passes.texi: Remove blurb about points-to analysis.
7981         * fortran/Make-lang.in: Remove tree-alias-*.o.
7982
7983 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
7984
7985         * genattrtab.c (write_insn_cases): New function, split out from
7986         write_attr_case.  Correctly handle define_peepholes when printing
7987         the instruction name.
7988         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
7989
7990 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
7991
7992         PR target/17377
7993         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
7994         * config/cris/cris.c (cris_return_address_on_stack): New function.
7995         * config/cris/cris.md ("return"): For location of return address,
7996         also check cris_return_address_on_stack.
7997
7998 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
7999
8000         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
8001         calling phi_ssa_name_p.
8002
8003 2004-09-09  Richard Henderson  <rth@redhat.com>
8004
8005         PR c/17322
8006         * c-typeck.c (valid_compound_expr_initializer): Use only
8007         initializer_constant_valid_p, and not TREE_CONSTANT.
8008         (digest_init): Likewise.
8009         (output_init_element): Likewise.
8010
8011 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
8012
8013         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
8014         live_out_1, prune_hardregs_for_mode, init_one_web_common,
8015         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
8016         record_conflict, compare_and_free_webs, init_webs_defs_uses,
8017         parts_to_webs_1, parts_to_webs, reset_conflicts,
8018         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
8019         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
8020         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
8021         put_move, remove_move, combine, select_spill, colorize_one_web,
8022         try_recolor_web, insert_coalesced_conflicts, check_colors,
8023         break_precolored_alias, restore_conflicts_from_coalesce,
8024         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
8025         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
8026         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
8027         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
8028         check_df): Likewise.
8029         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
8030         real_arithmetic, real_compare, real_exponent, real_ldexp,
8031         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
8032         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
8033         real_digit, real_nan, real_maxval, round_for_format, real_convert,
8034         real_to_target, real_from_target, real_hash, encode_ieee_single,
8035         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
8036         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
8037         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
8038         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
8039         extract_insn, peep2_next_insn, peep2_reg_dead_p,
8040         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
8041         if_test_bypass_p): Likewise.
8042         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
8043         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
8044         emit_swap_insn, swap_to_top, move_for_stack_reg,
8045         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
8046         compensate_edge, convert_regs_1): Likewise.
8047         * regclass.c (init_reg_sets, init_reg_sets_1,
8048         memory_move_secondary_cost): Likewise.
8049         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
8050         Likewise.
8051         * reload.c (push_secondary_reload, find_valid_class, push_reload,
8052         operands_match_p, decompose, immune_p, find_reloads,
8053         find_reloads_toplev, find_reloads_address_1, subst_reloads,
8054         copy_replacements, refers_to_regno_for_reload_p,
8055         reg_overlap_mentioned_for_reload_p): Likewise.
8056         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
8057         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
8058         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
8059         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
8060         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
8061         do_output_reload, fixup_abnormal_edges): Likewise.
8062         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
8063         fill_slots_from_thread, relax_delay_slots): Likewise.
8064         * resource.c (mark_referenced_resources, mark_set_resources):
8065         Likewise.
8066         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
8067         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
8068         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
8069         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
8070         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
8071         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
8072         * rtlhooks.c (gen_lowpart_general): Likewise.
8073         * sbitmap.c (sbitmap_difference): Likewise.
8074         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
8075         sched_analyze, add_forward_dependence): Likewise.
8076         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
8077         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
8078         schedule_insns): Likewise.
8079         * sched-vis.c (print_pattern): Likewise.
8080         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
8081         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
8082         simplify_const_relational_operation, simplify_ternary_operation,
8083         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
8084         Likewise.
8085         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
8086         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
8087         resolve_operand_name_1, expand_return, expand_decl,
8088         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
8089         * stor-layout.c (put_pending_size, smallest_mode_for_size,
8090         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
8091         set_sizetype, get_mode_bounds): Likewise.
8092
8093 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
8094
8095         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
8096         * config/arm/pecoff.h, config/i386/beos-elf.h
8097         * config/i386/cygming.h, config/i386/i386-interix.h:
8098         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
8099         comment cloned from manual.
8100         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
8101
8102 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
8103
8104         * builtins.c (build_va_arg_indirect_ref): New function.
8105         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
8106         build_fold_indirect_ref.
8107         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
8108         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
8109         * tree.h: Declare new function.
8110
8111 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
8112
8113         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
8114         dumping for development builds.
8115         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
8116         development builds only.
8117         * genattrtab.c (write_eligible_delay): Fix typo in previous
8118         commit.
8119         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
8120         gcc_assert.
8121
8122 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
8123
8124         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
8125         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
8126         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
8127         hoist_code, extract_mentioned_regs_helper, compute_store_table,
8128         insert_store): Use gcc_assert and gcc_unreachable.
8129         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
8130         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
8131         ggc_record_overhead): Likewise.
8132         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
8133         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
8134         ggc_pop_context, clear_marks, validate_free_objects,
8135         ggc_pch_read): Likewise.
8136         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
8137         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
8138         ggc_push_context, check_cookies, ggc_collect,
8139         ggc_print_statistics): Likewise.
8140         * gimple-low.c (lower_function_body, lower_stmt,
8141         lower_bind_expr): Likewise.
8142         * gimplify.c (gimple_tree_eq, push_gimplify_context,
8143         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
8144         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
8145         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
8146         gimplify_case_label_expr, gimplify_exit_block_expr,
8147         canonicalize_component_ref, gimplify_compound_lval,
8148         gimplify_self_mod_expr, gimplify_call_expr,
8149         gimplify_init_ctor_eval, gimplify_init_constructor,
8150         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
8151         gimplify_expr, check_pointer_types_r,
8152         force_gimple_operand): Likewise.
8153         * global.c (global_alloc, build_insn_chain): Likewise.
8154         * graph.c (clean_graph_dump_file,
8155         finish_graph_dump_file): Likewise.
8156         gcov-io.c (gcov_open): Use GCOV_CHECK.
8157
8158 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
8159
8160         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
8161
8162 2004-09-09  Jan Hubicka  <jh@suse.cz>
8163
8164         middle-end/17128
8165         * tree-inline.c (expand_call_inline): Make overactive sanity check
8166         happy.
8167
8168 2004-09-09  Jan Hubicka  <jh@suse.cz>
8169
8170         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
8171         VIEW_CONVERT_EXPR.
8172
8173 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
8174
8175         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
8176         (gengtype.o): Depend on errors.h.
8177         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
8178         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
8179         attr_alt_subset_p, attr_alt_subset_of_compl_p,
8180         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
8181         write_test_expr, write_attr_value, write_eligible_delay,
8182         make_internal_attr, make_numeric_value): Likewise.
8183         * genautomata.c (regexp_name, get_str_vect,
8184         gen_presence_absence_set, automaton_decl_hash,
8185         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
8186         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
8187         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
8188         test_unit_reserv, it_is_empty_reserv_sets,
8189         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
8190         reserv_sets_and, output_cycle_reservs, get_free_state,
8191         intersected_state_reservs_p, states_union, remove_arc,
8192         copy_insn_regexp, transform_1, transform_2, transform_3,
8193         regexp_transform_func, store_alt_unit_usage,
8194         check_regexp_units_distribution, process_seq_for_forming_states,
8195         process_alts_for_forming_states, make_automaton,
8196         form_arcs_marked_by_insn, create_composed_state,
8197         set_out_arc_insns_equiv_num, partition_equiv_class,
8198         process_insn_equiv_class, set_insn_equiv_classes,
8199         units_to_automata_heuristic_distr, form_regexp,
8200         longest_path_length, output_dfa_max_issue_rate, add_vect,
8201         out_state_arcs_num, add_vect_el, output_trans_table,
8202         output_state_alts_table, output_dead_lock_vect,
8203         output_max_insn_queue_index_def,
8204         output_min_insn_conflict_delay_func,
8205         output_internal_insn_latency_func, output_print_reservation_func,
8206         output_cpu_unit_reservation_p, output_state_arcs,
8207         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
8208         make_default_insn_latency_attr,
8209         form_important_insn_automata_lists): Likewise.
8210         * genemit.c (gen_exp, output_add_clobbers,
8211         output_added_clobbers_hard_reg_p): Likewise.
8212         * genextract.c (print_path, main): Likewise.
8213         * genflags.c (gen_macro): Likewise.
8214         * gengenrtl.c: Include errors.h
8215         (type_from_format, accessor_from_format): Likewise.
8216         * gengtype.c (get_file_basename, output_mangled_typename,
8217         walk_type, write_types_process_field,
8218         write_types_local_process_field): Likewise.
8219         * genmodes.c (complete_mode): Likewise.
8220         * genopinit.c (gen_insn): Likewise.
8221         * genoutput.c (output_insn_data, check_constraint_len,
8222         constraint_len): Likewise.
8223         * genpreds.c (add_mode_tests):Likewise.
8224         * gen-protos.c (add_hash): Likewise.
8225         * genrecog.c (find_operand, find_matching_operand,
8226         validate_pattern, add_to_sequence, maybe_both_true,
8227         nodes_identical_1, merge_trees, write_switch, write_cond,
8228         write_action, is_unconditional, make_insn_sequence,
8229         debug_decision_2): Likewise.
8230         * gensupport.c (is_predicable, collect_insn_data,
8231         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
8232
8233 2004-09-09  Jan Hubicka  <jh@suse.cz>
8234
8235         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
8236         * cfgbuild.c (compute_outgoing_frequencies): When probability is
8237         missing, guess it.
8238         (find_many_sub_basic_blocks): Do update profile only when it is
8239         present.
8240         * predict.c (set_even_probabilities): Break out from ...
8241         (combine_predictions_for_insn): ... here; deal with
8242         !can_predict_insn_p insns.
8243         (combine_predictions_for_bb): Use set_even_probabilities.
8244         (bb_estimate_probability_locally): Break out from ....
8245         (estimate_probability): ... here.
8246         (guess_outgoing_edge_probabilities): New entry point.
8247
8248 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
8249
8250         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
8251         handle_braces, process_brace_body, main, used_arg,
8252         set_multilib_dir, print_multilib_info): Use fatal, not abort.
8253
8254         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
8255
8256         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
8257         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
8258         Morgan's theorem in last checkin.
8259
8260 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
8261             Nathan Sidwell  <nathan@codesourcery.com>
8262
8263         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
8264         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
8265         * timevar.c (timevar_push, timevar_pop, timevar_start,
8266         timevar_stop): Likewise.
8267         * toplev.c (default_pch_valid_p): Likewise.
8268         * tracer.c (tail_duplicate): Likewise.
8269         * tree-alias-common.c (get_alias_var_decl,
8270         get_values_from_constructor, create_alias_var, delete_alias_vars,
8271         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
8272         Likewise.
8273         * tree.c (tree_size, make_node_stat, copy_node_stat,
8274         build_int_cst_wide, integer_all_onesp, list_length, chainon,
8275         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
8276         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
8277         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
8278         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
8279         build_method_type_directly, decl_type_context, get_callee_fndecl,
8280         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
8281         tree_fold_gcd): Likewise.
8282         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
8283         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
8284         cleanup_control_expr_graph, find_taken_edge,
8285         find_taken_edge_switch_expr, phi_alternatives_equal,
8286         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
8287         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
8288         tree_split_edge, tree_verify_flow_info, thread_jumps,
8289         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
8290         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
8291         chrec_fold_multiply_poly_poly): Likewise.
8292         * tree-complex.c (extract_component, expand_complex_division,
8293         expand_complex_comparison, expand_complex_operations_1,
8294         build_replicated_const, expand_vector_operations_1): Likewise.
8295         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
8296         build_classic_dir_vector): Likewise.
8297         * tree-dfa.c (compute_immediate_uses_for_phi,
8298         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
8299         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
8300         * tree-dump.c (dequeue_and_dump): Likewise.
8301         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
8302         record_in_finally_tree, replace_goto_queue_1,
8303         maybe_record_in_goto_queue, verify_norecord_switch_expr,
8304         do_return_redirection): Likewise.
8305         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
8306         add_to_dst_predicate_list, find_phi_replacement_condition,
8307         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
8308         Likewise.
8309         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
8310         initialize_inlined_parameters, declare_return_variable,
8311         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
8312         optimize_inline_calls, copy_tree_r): Likewise.
8313         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
8314         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
8315         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
8316         tsi_split_statement_list_after, tsi_split_statement_list_before):
8317         Likewise.
8318         * tree-mudflap.c (mf_varname_tree): Likewise.
8319         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
8320         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
8321         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8322         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
8323         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
8324         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
8325         Likewise.
8326         * tree-phinodes.c (resize_phi_node, add_phi_arg,
8327         remove_all_phi_nodes_for): Likewise.
8328         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
8329         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
8330         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
8331         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
8332         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
8333         generate_one_element_ref, generate_element_copy,
8334         generate_element_zero, scalarize_copy, scalarize_init,
8335         scalarize_ldst): Likewise.
8336         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
8337         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
8338         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
8339         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
8340         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
8341         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
8342         widen_bitfield, ccp_fold_builtin): Likewise.
8343         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
8344         replace_exp_1, propagate_tree_value): Likewise.
8345         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
8346         * tree-ssa-dce.c (set_control_dependence_map_bit,
8347         find_control_dependence, find_pdom, mark_operand_necessary,
8348         mark_stmt_if_obviously_necessary,
8349         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
8350         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
8351         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
8352         eliminate_redundant_computations, avail_expr_eq): Likewise.
8353         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
8354         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
8355         duplicate_blocks): Likewise.
8356         * tree-ssa-loop-im.c (for_each_index, set_level,
8357         is_call_clobbered_ref): Likewise.
8358         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
8359         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
8360         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
8361         peel_address, ptr_difference_cost, may_replace_final_value,
8362         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
8363         rewrite_use, rewrite_uses): Likewise.
8364         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
8365         check_loop_closed_ssa_use): Likewise.
8366         * tree-ssanames.c (make_ssa_name): Likewise.
8367         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
8368         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
8369         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
8370         get_indirect_ref_operands, add_stmt_operand): Likewise.
8371         * tree-ssa-pre.c (value_exists_in_set_bitmap,
8372         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
8373         phi_translate, valid_in_set, compute_antic,
8374         find_or_generate_expression, create_expression_by_pieces, insert_aux,
8375         create_value_expr_from, eliminate): Likewise.
8376         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
8377         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
8378         Likewise.
8379         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
8380         eliminate_tail_call): Likewise.
8381         * tree-vectorizer.c (vect_create_index_for_array_ref,
8382         vect_align_data_ref, vect_create_data_ref,
8383         vect_create_destination_var, vect_get_vec_def_for_operand,
8384         vect_finish_stmt_generation, vect_transform_stmt,
8385         vect_transform_loop_bound, vect_transform_loop,
8386         vect_analyze_operations): Likewise.
8387         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
8388         Likewise.
8389         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
8390         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
8391         bsi_after_labels, bsi_last): Likewise.
8392         * tree-ssa-live.c (var_union, change_partition_var,
8393         create_ssa_var_map, calculate_live_on_entry, root_var_init,
8394         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
8395         Likewise.
8396         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
8397         tpa_find_tree): Likewise.
8398         (register_ssa_partition_check): Declare.
8399         (register_ssa_partition): use it.
8400         * tree-ssa-live.c: Include errors.h.
8401         (register_ssa_partition_check): New.
8402         * tree-ssa-operands.c: Include errors.h.
8403         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
8404
8405 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
8406             Catherine Moore  <clm@redhat.com>
8407
8408         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
8409         (FRV_CPU_FR405): New processor enums.
8410         (frv_issue_rate, frv_acc_group): Declare.
8411         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
8412         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
8413         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
8414         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
8415         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
8416         handled by CPP_SPEC.
8417         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
8418         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
8419         (ACC_MASK): New macro.
8420         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
8421         (TARGET_MEDIA_FR450): New macro.
8422         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
8423         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
8424         (LABEL_ALIGN_AFTER_BARRIER): Define.
8425         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
8426         (IACC_FIRST, IACC_LAST): New pair of SPRs.
8427         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
8428         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
8429         (REGISTER_NAMES): Add entries for new registers.
8430         (REG_CLASS_CONTENTS): Update for new register ranges.
8431         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
8432         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
8433         (PACKING_FLAG_USED_P): Delete.
8434         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
8435         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
8436         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
8437         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
8438         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
8439         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
8440         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
8441         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
8442         (CPU_UNITS_QUERY): Define to 1.
8443         * config/frv/frv.c: Include gt-frv.h
8444         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
8445         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
8446         (frv_insn_group): New enumeration.
8447         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
8448         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
8449         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
8450         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
8451         gap left by REGSTATE_LIVE.
8452         (regstate_t): New typedef.
8453         (TARGET_MACHINE_DEPENDENT_REORG): Define.
8454         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
8455         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
8456         Initialize frv_unit_codes[] and frv_type_to_unit[].
8457         (frv_conditional_register_usage): Remove redundant fixing of
8458         accumulator registers.
8459         (frv_insn_packing_flag): Update specification.
8460         (frv_function_prologue): Don't set frv_insn_packing_flag here.
8461         Zero out frv_nops[].
8462         (frv_expand_epilogue): Remove comments about the no-longer-present
8463         SIBCALL_P argument.
8464         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
8465         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
8466         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
8467         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
8468         packing is disabled and if INSN can only issue to M1.
8469         (call_operand): Check TARGET_LONG_CALLS.
8470         (acc_operand, even_acc_operand, quad_acc_operand)
8471         (accg_operand): Simplify.  Don't accept pseudo registers.
8472         (output_move_single): Handle SPR<-zero moves.
8473         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
8474         (frv_registers_update, frv_registers_used_p): Delete.
8475         (frv_registers_set_p): Delete.
8476         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
8477         (frv_issues_to_branch_unit_p): New function.
8478         (frv_packet): New structure.
8479         (frv_cond_flags, frv_regstate_conflict_p): New functions.
8480         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
8481         (frv_registers_update_1, frv_registers_update): New functions.
8482         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
8483         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
8484         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
8485         (frv_sort_insn_group, frv_reorder_packet): New functions.
8486         (frv_pack_insns): Use frv_reorder_packet.
8487         (frv_packet_address): New variable.
8488         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
8489         (frv_register_nop, frv_reorg): New functions.
8490         (bdesc_1arg): Add __SCUTSS.
8491         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
8492         __SUBSS, __SLASS and __SCAN.
8493         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
8494         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
8495         (frv_init_builtins): Register the above builtins.
8496         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
8497         registers.  Turn the referenced accumulators into global registers.
8498         (frv_read_iacc_argument): New function.
8499         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
8500         (frv_split_iacc_move): New function.
8501         (frv_expand_builtin): Handle the new builtins.
8502         * config/frv/frv.md: Replace old schedulers with new order-independent
8503         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
8504         packing algorithm.
8505         (cpu): Add fr550, fr450 and fr405.
8506         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
8507         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
8508         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
8509         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
8510         (fnop, mnop): New patterns.
8511         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
8512         New constants.
8513         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
8514         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
8515         registers.
8516         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
8517         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
8518         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
8519         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
8520         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
8521         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
8522         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
8523         (frv_prefetch0, frv_prefetch): New patterns.
8524         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
8525         -mcpu=simple.  Add -mcpu=fr550.
8526         (MULTILIB_DIRNAMES): Update accordingly.
8527         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
8528         -mcpu=fr450.
8529         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
8530         -mlong-calls and -malign-labels options for FR-V.
8531
8532 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
8533
8534         PR c/8420
8535         * c-tree.h (struct c_declspecs): New.
8536         (struct c_declarator, struct c_type_name, struct c_parm): Update
8537         element types.
8538         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
8539         start_function, start_decl, build_c_parm,
8540         make_pointer_declarator): Update prototypes.
8541         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
8542         declspecs_add_scspec, declspecs_add_attrs): New.
8543         (split_specs_attrs): Remove.
8544         * c-parse.in (%union): Add dsptype.
8545         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
8546         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
8547         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
8548         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
8549         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
8550         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
8551         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
8552         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
8553         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
8554         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
8555         maybe_type_quals_attrs): Change to dsptype.
8556         (struct c_declspec_stack): New.
8557         (current_declspecs, declspec_stack): Change type.
8558         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
8559         structures.
8560         (extdefs): Likewise.
8561         (setspecs): Likewise.
8562         (fndef): Use current_declspecs for empty declspecs list.
8563         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
8564         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
8565         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
8566         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
8567         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
8568         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
8569         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
8570         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
8571         structures and helper functions.  Update comments.
8572         (typespec_nonattr): Correct comment.
8573         (maybe_type_quals_attrs, typename): Update to new structures.
8574         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
8575         shadow_tag, shadow_tag_warned, start_function, start_decl,
8576         build_c_parm, make_pointer_declarator,
8577         set_array_declarator_inner, groktypename): Update to new
8578         structures.
8579         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
8580         declspecs_add_scspec, declspecs_add_attrs): New.
8581         (split_specs_attrs): Remove.
8582         (shadow_tag_warned): Make warning for useless type names a
8583         pedwarn.  Give hard error for long, short, signed, unsigned or
8584         _Complex used with struct, union or enum in empty declaration.
8585         Make found_tag a bool.
8586         (grokdeclarator): Remove checks now done at parse time.
8587
8588 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
8589
8590         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
8591         c_declarator, struct c_type_name, struct c_parm): New.
8592         (build_array_declarator, set_array_declarator_inner,
8593         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
8594         start_function, start_decl, build_c_parm, build_attrs_declarator,
8595         build_function_declarator, make_pointer_declarator, c_cast_expr,
8596         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
8597         (build_id_declarator): New.
8598         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
8599         structures.
8600         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
8601         ARG_INFO_OTHERS): Remove.
8602         (build_id_declarator): New.
8603         (build_array_declarator, set_array_declarator_inner, groktypename,
8604         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
8605         grokfield, start_function, store_parm_decls_newstyle,
8606         store_parm_decls_oldstyle, store_parm_decls,
8607         build_c_parm, build_attrs_declarator, build_function_declarator,
8608         make_pointer_declarator, grokdeclarator): Update to new
8609         structures.
8610         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
8611         parmtype.
8612         (declarator, notype_declarator, after_type_declarator,
8613         parm_declarator, parm_declarator_starttypename,
8614         parm_declarator_nostarttypename, array_declarator, typename,
8615         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
8616         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
8617         parmlist_1, parmlist_2, parmlist_or_identifiers,
8618         parmlist_or_identifiers_1): Use these types.
8619         (primary, after_type_declarator, parm_declarator_starttypename,
8620         notype_declarator, component_decl, component_declarator,
8621         component_notype_declarator, typename, absdcl,
8622         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
8623         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
8624
8625 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
8626
8627         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
8628         in_typeof, record_maybe_used_decl, pop_maybe_used,
8629         c_expr_sizeof_expr, c_expr_sizeof_type): New.
8630         * c-decl.c (parser_obstack): New.
8631         (c_init_decl_processing): Initialize parser_obstack.
8632         (c_write_global_declarations_1): Check for used but undefined
8633         static functions.
8634         * c-parse.in (%union): Add otype.
8635         (save_obstack_position): New.
8636         (extdefs): Use it.
8637         (unary_expr): Update in_sizeof and in_alignof.  Use
8638         c_expr_sizeof_expr and c_expr_sizeof_type.
8639         (sizeof): Update in_sizeof.
8640         (alignof): Update in_alignof.
8641         (typeof): Update in_typeof.
8642         (typespec_nonreserved_nonattr): Call pop_maybe_used.
8643         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
8644         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
8645         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
8646         (build_external_ref): Set C_DECL_USED or call
8647         record_maybe_used_decl if appropriate.
8648         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
8649
8650 2004-09-08  Eric Christopher  <echristo@redhat.com>
8651
8652         * builtins.c: Fix prototype for fold_builtin_atan.
8653
8654 2004-09-08  Eric Christopher  <echristo@redhat.com>
8655
8656         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
8657         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
8658         fold_builtin_atan): New functions. Migrate function bodies...
8659         (fold_builtin_1): ... from here.
8660
8661 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
8662
8663         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
8664         save_size.
8665
8666 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
8667
8668         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
8669         * config/rs6000/power5.md (power5-lmul): Same.
8670
8671 2004-09-08  Richard Henderson  <rth@redhat.com>
8672
8673         PR rtl-opt/17186
8674         * function.c (expand_function_end): Have fall-off-the-end
8675         return path jump around return register setup.
8676
8677 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
8678
8679         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
8680         (output_return): Do not test for the presence of the 'unimp' insn.
8681         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
8682         as predicates instead of custom ones.  Return raw strings when
8683         possible.
8684         (output_sibcall): Likewise.  Concatenate strings.
8685         (output_ubranch): Remove kludge for TurboSPARC.
8686         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
8687         (output_v9branch): Likewise.
8688         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
8689         <#>: Set sparc_indent_opcode if the delay slot is filled.
8690         <(>: Likewise.
8691         <)>: New operand to emit the displacement from the saved PC on return.
8692         <@>: Remove.
8693         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
8694         (ASM_OUTPUT_OPCODE): New macro.
8695         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
8696         * config/sparc/sparc.md (normal_branch, inverted_branch,
8697         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
8698         inverted_fpe_branch): Adjust call to output_cbranch.
8699         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
8700         call to output_v9branch.
8701         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
8702         (output_v9branch): Likewise.
8703
8704 2004-09-08  Devang Patel  <dpatel@apple.com>
8705
8706         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
8707         -segs_read_only_addr and -segs_read_write_addr.
8708         (WORD_SWITCH_TAKES_ARG): Same.
8709         (LINK_SPEC): Same.
8710         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
8711         -segs_read_write_addr.
8712
8713 2004-09-08  Richard Henderson  <rth@redhat.com>
8714
8715         * function.c (reference_callee_copied): New.
8716         (assign_parm_setup_reg): Use it.
8717         * calls.c (initialize_argument_information): Likewise.
8718         (emit_library_call_value_1): Likewise.
8719         * function.h (reference_callee_copied): Declare.
8720
8721         * target.h (struct gcc_target): Add callee_copies.
8722         * target-def.h (TARGET_CALLEE_COPIES): New.
8723         (TARGET_PASS_BY_REFERENCE): Update default.
8724         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
8725         * targhooks.c (hook_callee_copies_named): New.
8726         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
8727         hook_pass_by_reference_false.
8728         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
8729         * targhooks.h: Update decls.
8730         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
8731         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
8732         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
8733         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
8734         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
8735         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
8736         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
8737         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
8738         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
8739         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
8740         (mips_callee_copies): New.
8741         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
8742         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
8743         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
8744         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
8745         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
8746         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
8747         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
8748         * config/sh/sh.c (sh_callee_copies): New.
8749         (TARGET_CALLEE_COPIES): New.
8750         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
8751         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
8752         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
8753         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
8754         for FUNCTION_ARG_CALLEE_COPIES.
8755         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
8756
8757 2004-09-08  Devang Patel  <dpatel@apple.com>
8758
8759         * tree-if-conv.c (find_phi_replacement_condition): Return true
8760         edge block.
8761         (replace_phi_with_cond_modify_expr): Select conditional expr args
8762         based on true edge basic block.
8763
8764 2004-09-08  Jan Hubicka  <jh@suse.cz>
8765
8766         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
8767         variables being alias set.
8768
8769 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
8770
8771         * final.c (shorten_branches, final, get_insn_template,
8772         output_alternate_entry_point, final_scan_insn, alter_subreg,
8773         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
8774         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
8775         * fix-header.c (lookup_std_proto): Likewise.
8776         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
8777         verify_local_live_at_start, update_life_info, mark_reg,
8778         calculate_global_regs_live, allocate_reg_life_data,
8779         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
8780         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
8781         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
8782         * fold-const.c (force_fit_type, div_and_round_double,
8783         may_negate_without_overflow_p, int_const_binop, const_binop,
8784         size_binop, size_diffop, fold_convert_const, fold_convert,
8785         invert_tree_comparison, swap_tree_comparison,
8786         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
8787         range_binop, make_range, fold_cond_expr_with_comparison,
8788         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
8789         fold_abs_const, fold_not_const, fold_relational_const, round_up,
8790         round_down): Likewise.
8791         * function.c (find_function_data, assign_stack_temp_for_type,
8792         instantiate_virtual_regs_lossage, aggregate_value_p,
8793         assign_parm_find_entry_rtl, assign_parm_setup_block,
8794         expand_function_start, expand_function_end, keep_stack_depressed,
8795         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
8796
8797 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
8798
8799         * Makefile.in (tree-loop-linear.o): Added.
8800         (OBJS-common): Add tree-loop-linear.o
8801         * common.opt: New flag, ftree-loop-linear.
8802         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
8803         * tree-flow.h: Add prototype for linear_transform_loops.
8804         * tree-optimize.c: Add linear transform after vectorization.
8805         * tree-pass.h: Add struct pass_linear_transform.
8806         * tree-ssa-loop.c: Add pass_linear_transform.
8807         * tree-loop-linear.c: New file.
8808         * lambda-code.c: gcc_assertify.
8809         (gcc_loop_to_lambda_loop): Handle all exit tests.
8810         Handle case where we have (invariant >= induction var).
8811         (find_induction_var_from_exit_cond): Ditto.
8812
8813 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
8814
8815         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
8816         memory tag is call clobbered, so are its aliases.
8817         (group_aliases): When two memory tags being grouped, if one is
8818         call clobbered, so are the other and its aliases.
8819         (add_may_alias): Remove call-clobbering stuff.
8820         (replace_may_alias): Likewise.
8821         (merge_pointed_to_info): Merge pt_global_mem
8822
8823 2004-09-08  Jan Hubicka  <jh@suse.cz>
8824
8825         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
8826         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
8827         (cgraph_expand_function): Remove stale cgraph edges of currently
8828         compiled function; fix non-unit-at-a-time code copying function
8829         node for later reuse.
8830
8831 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
8832
8833         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
8834         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
8835         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
8836         (vec_gc_free, vec_heap_free): New.
8837         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
8838         (DEF_VEC_P): Add allocator argument. Adjust.
8839         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
8840         (DEF_VEC_O): Add allocator argument. Adjust.
8841         (VEC(free)): New.
8842
8843         * tree.h (tree): Define a GC'd vector.
8844         * lamba-code.c (lambda_loop): Likewise.
8845         * value-prof.h (histogram_value): Likewise.
8846
8847 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
8848
8849         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
8850         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
8851         gen_lowpart_common, gen_highpart, gen_highpart_mode,
8852         subreg_highpart_offset, operand_subword, operand_subword_force,
8853         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
8854         set_mem_alias_set, change_address_1, verify_rtx_sharing,
8855         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
8856         try_split, add_insn_after, add_insn_before, remove_insn,
8857         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
8858         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
8859         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
8860         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
8861         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
8862         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
8863         record_path_before_1, check_path_after_1, check_path_after): Likewise.
8864         * except.c (gen_eh_region, resolve_one_fixup_region,
8865         remove_unreachable_regions, convert_from_eh_region_ranges_1,
8866         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
8867         connect_post_landing_pads, sjlj_emit_function_exit,
8868         remove_exception_handler_label, remove_eh_handler,
8869         reachable_next_level, collect_one_action_chain,
8870         output_function_exception_table): Likewise.
8871         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
8872         optimize_save_area_alloca, allocate_dynamic_stack_space,
8873         probe_stack_range, hard_function_value): Likewise.
8874         * expmed.c (mode_for_extraction, store_bit_field,
8875         store_fixed_bit_field, extract_bit_field, expand_shift,
8876         expand_mult_const, expand_mult, choose_multiplier,
8877         expand_mult_highpart, expand_divmod, emit_store_flag,
8878         do_cmp_and_jump): Likewise.
8879         * expr.c (convert_move, convert_modes, move_by_pieces,
8880         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
8881         move_block_from_reg, gen_group_rtx, emit_group_load,
8882         emit_group_move, emit_group_store, use_reg, use_regs,
8883         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
8884         emit_move_insn, emit_move_insn_1, emit_push_insn,
8885         expand_assignment, store_expr, count_type_elements,
8886         store_constructor, store_field, safe_from_p, expand_var,
8887         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
8888
8889 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
8890
8891         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
8892         gcc_assert and gcc_unreachable.
8893         * ddg.c (create_ddg_dependence, add_deps_for_def,
8894         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
8895         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
8896         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
8897         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
8898         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
8899         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
8900         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
8901         dataflow_set_copy, hybrid_search, diagnostic.c,
8902         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
8903         * dojump.c (do_jump): Likewise.
8904         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
8905         compute_dom_fast_query, calculate_dominance_info,
8906         free_dominance_info, get_immediate_dominator,
8907         set_immediate_dominator, get_dominated_by,
8908         redirect_immediate_dominators, nearest_common_dominator,
8909         dominated_by_p, verify_dominators, recount_dominator,
8910         iterate_fix_dominators, add_to_dominance_info,
8911         delete_from_dominance_info): Likewise.
8912         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
8913         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
8914         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
8915         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
8916         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
8917         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
8918         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
8919         output_call_frame_info, output_loc_operands, build_cfa_loc,
8920         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
8921         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
8922         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
8923         splice_child_die, attr_checksum, same_dw_val_p,
8924         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
8925         unmark_dies, value_format, output_loc_list, output_die,
8926         output_pubnames, output_aranges, base_type_die, is_base_type,
8927         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
8928         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
8929         field_byte_offset, add_data_member_location_attribute,
8930         add_const_value_attribute, rtl_for_decl_location,
8931         add_location_or_const_value_attribute, add_byte_size_attribute,
8932         add_bit_offset_attribute, add_bit_size_attribute,
8933         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
8934         decl_start_label, gen_formal_parameter_die,
8935         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
8936         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
8937         force_decl_die, force_type_die, gen_decl_die,
8938         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
8939         dwarf2out_finish): Likewise.
8940
8941 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
8942
8943         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
8944         * builtins.c: Include tree-mudflap.h.
8945
8946 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
8947
8948         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
8949         force operand 0.0 into register in XFmode. Also do not force
8950         operand 0.0 into register if !TARGET_CMOVE.
8951         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
8952         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
8953         implement ftst x87 instruction.
8954         (*fp_jcc_7): New insn pattern. Change corresponding split
8955         pattern to handle "general_operand" instead of
8956         "nonimmediate_operand".
8957
8958 2004-09-08  Ben Elliston  <bje@au.ibm.com>
8959
8960         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
8961
8962 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
8963
8964         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
8965         generated from standard va_arg expansion.
8966         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
8967         marked nodes.
8968         (mf_varname_tree, mf_file_function_line_tree): Add some support
8969         for column numbers if compiled with USE_MAPPED_LOCATION.
8970
8971 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
8972
8973         * c-decl.c (groktypename_in_parm_context): Remove function.
8974         * c-tree.h (groktypename_in_parm_context): Remove prototype.
8975
8976 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
8977
8978         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
8979         * c-parse.in: Include c-common.h instead of objc-act.h.
8980         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
8981         myparms, myparm): Remove %type declarations.
8982         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
8983         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
8984         declarations.
8985         (objc_inherit_code, objc_public_flag): Remove.
8986         (typespec_nonreserved_nonattr): Call
8987         objc_get_protocol_qualified_type() instead of get_static_reference()
8988         and get_protocol_reference().
8989         (stmt_nocomp): Call grokparm() on @catch parameter.
8990         (objcdef): Move semantic action to objc_finish_implementation().
8991         (classdef): Move semantic action to objc_start_class_interface(),
8992         objc_continue_interface(), objc_finish_interface(),
8993         objc_start_class_implementation(), objc_continue_implementation(),
8994         objc_start_category_interface() and
8995         objc_start_category_implementation().
8996         (protocoldef): Move semantic actions to objc_start_protocol() and
8997         objc_finish_interface().
8998         (ivar_decl_list): Remove nonterminal.
8999         (visibility_spec): Move semantic actions to objc_set_visibility().
9000         (ivar_decls): Remove assignment to $$.
9001         (ivar_decl): Rephrase in terms of component_decl; call
9002         objc_add_instance_variable().
9003         (ivars, ivar_declarator): Remove nonterminals.
9004         (opt_semi): New nonterminal.
9005         (methodtype): Remove semantic actions.
9006         (methoddef): Move semantic actions to objc_set_method_type(),
9007         objc_start_method_definition() and objc_finish_method_definition().
9008         (methodproto): Move semantic actions to objc_set_method_type() and
9009         objc_add_method_declaration().
9010         (methoddecl): Use objc_typename instead of typename; move semantic
9011         actions to objc_build_method_signature().
9012         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
9013         (optparmlist): Express in terms of optparms and optellipsis.
9014         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
9015         nonterminals.
9016         (keyworddecl): Use objc_typename instead of typename.
9017         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
9018         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
9019
9020 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
9021
9022         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
9023         (MD_FALLBACK_FRAME_STATE_FOR): Update.
9024         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
9025         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
9026         (MD_FROB_UPDATE_CONTEXT): Remove default.
9027         (uw_update_context_1): Instead #ifdef invocation.
9028         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
9029         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
9030         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
9031         (MD_UNWIND_SUPPORT): Undefine this instead.
9032         * config/i386/gnu.h: Likewise.
9033         * config/alpha/linux-unwind.h: New file, macro converted to
9034         function, extracted from..
9035         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
9036         (MD_UNWIND_SUPPORT): Define.
9037         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
9038         * config/i386/linux-unwind.h, config/i386/linux.h,
9039         config/i386/linux64.h: Likewise.
9040         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
9041         MD_HANDLE_UNWABI too.
9042         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
9043         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
9044         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
9045         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
9046         * config/sparc/linux-unwind.h, config/sparc/linux.h,
9047         config/sparc/linux64.h: Likewise.
9048         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
9049         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
9050         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
9051         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
9052         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
9053
9054 2004-09-07  Jan Hubicka  <jh@suse.cz>
9055
9056         * cse.c (fold_rtx):  Avoid building of
9057         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
9058
9059         * tree-ssa-pre.c (grand_bitmap_obstack): New.
9060         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
9061         (init_pre): Initialize obstack.
9062         (fini_pre): Free obstack.
9063
9064 2004-09-07  David Daney  <ddaney@avtrex.com>
9065
9066         * config.gcc: Added support for --with-divide=[breaks|traps] for
9067         mips targets.
9068         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
9069         (TARGET_DIVIDE_TRAPS): New macro.
9070         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
9071         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
9072         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
9073         GENERATE_DIVIDE_TRAPS.
9074         (mips_output_division): Emit conditional trap if
9075         GENERATE_DIVIDE_TRAPS is set.
9076         * doc/install.texi: Document --with-divide.
9077         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
9078
9079 2004-09-07  Caroline Tice  <ctice@apple.com>
9080
9081         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
9082         EDGE_CROSSING, to flags test case.
9083
9084 2004-09-07  Jan Hubicka  <jh@suse.cz>
9085
9086         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
9087         class too.
9088
9089 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
9090
9091         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
9092         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
9093         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
9094         or gcc_unreachable.
9095         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
9096         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
9097         alloc_aux_for_edges, free_aux_for_edges): Likewise.
9098         * cfgcleanup.c (try_forward_edges,
9099         merge_blocks_move_predecessor_nojumps,
9100         merge_blocks_move_successor_nojumps): Likewise.
9101         * cfgexpand.c (expand_gimple_cond_expr,
9102         expand_gimple_tailcall): Likewise.
9103         * cfghooks.c (duplicate_block): Likewise.
9104         * cfglayout.c (record_effective_endpoints,
9105         insn_locators_initialize, change_scope, fixup_reorder_chain,
9106         verify_insn_chain, fixup_fallthru_exit_predecessor,
9107         duplicate_insn_chain, cfg_layout_finalize): Likewise.
9108         * cfgloopanal.c (check_irred): Likewise.
9109         * cfgloop.c (superloop_at_depth, flow_loops_free,
9110         flow_loop_entry_edges_find, flow_loops_find,
9111         flow_loop_outside_edge_p, get_loop_body,
9112         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
9113         get_loop_exit_edges, num_loop_branches, cancel_loop,
9114         verify_loop_structure): Likewise.
9115         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
9116         duplicate_loop_to_header_edge, create_preheader,
9117         create_loop_notes): Likewise.
9118         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
9119         edirect_branch_edge, force_nonfallthru_and_redirect,
9120         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
9121         commit_edge_insertions, commit_edge_insertions_watch_calls,
9122         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
9123         cfg_layout_redirect_edge_and_branch_force,
9124         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
9125         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
9126         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
9127         cgraph_varpool_node): Likewise.
9128         * cgraphunit.c (cgraph_finalize_function,
9129         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
9130         cgraph_expand_function, cgraph_remove_unreachable_nodes,
9131         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
9132         cgraph_mark_inline, cgraph_expand_all_functions,
9133         cgraph_build_static_cdtor): Likewise.
9134         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
9135         simplify_logical, distribute_notes, insn_cuid): Likewise.
9136         * conflict.c (conflict_graph_add, print_conflict): Likewise.
9137         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
9138         coverage_checksum_string): Likewise.
9139         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
9140         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
9141         cse_cc_succs, cse_condition_code_reg): Likewise.
9142         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
9143         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
9144         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
9145         cselib_record_set): Likewise.
9146
9147 2004-09-07  Jan Hubicka  <jh@suse.cz>
9148
9149         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
9150
9151 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
9152
9153         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
9154         fold_convert.
9155         (fold_builtin_strpbrk): Likewise.
9156         * expr.c (array_ref_low_bound): Likewise.
9157         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
9158         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
9159         * tree-sra.c (generate_element_zero): Likewise.
9160         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
9161         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
9162         add_old_iv_candidates, add_iv_candidates): Likewise.
9163         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
9164
9165 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
9166
9167         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
9168         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
9169         c_expand_expr, boolean_increment, nonnull_check_p,
9170         check_function_arguments_recurse, fold_offsetof_1): Likewise.
9171         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
9172         builtin_define_type_max): Likewise.
9173         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
9174         implicit_decl_warning, builtin_function, build_compound_literal,
9175         complete_array_type, grokdeclarator, get_parm_info,
9176         start_function, store_parm_decls_oldstyle,
9177         c_write_global_declarations): Likewise.
9178         * c-format.c (get_constant, decode_format_attr,
9179         maybe_read_dollar_number, get_flag_spec, check_format_arg,
9180         check_format_types, format_type_warning,
9181         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
9182         init_dynamic_diag_info, handle_format_attribute): Likewise.
9183         * c-gimplify.c (push_context, pop_context, finish_bc_block):
9184         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
9185         * c-objc-common.c (c_tree_printer): Likewise.
9186         * c-pch.c (pch_init): Likewise.
9187         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
9188         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
9189         * c-typeck.c (c_incomplete_type_error, composite_type,
9190         common_pointer_type, common_type, same_translation_unit_p,
9191         tagged_types_tu_compatible_p, finish_init, pop_init_level,
9192         set_designator, set_nonincremental_init_from_string,
9193         process_init_element, c_finish_if_stmt): Likewise.
9194         * caller-save.c (init_caller_save, save_call_clobbered_regs,
9195         insert_restore, insert_save, insert_one_insn): Likewise.
9196         * calls.c (emit_call_1, compute_argument_block_size,
9197         precompute_arguments, expand_call, emit_library_call_value_1,
9198         store_one_arg): Likewise.
9199
9200 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
9201
9202         * configure.ac (enable-checking): Add release option. Reorganize
9203         to avoid repetition.
9204         * configure: Rebuilt.
9205         * doc/install.texi (enable-checking): Amend documentation.
9206
9207 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
9208
9209         PR bootstrap/17313
9210         * Makefile.in (specs.ready): Depend on cc1$(exeext).
9211
9212 2004-09-06  James E Wilson  <wilson@specifixinc.com>
9213
9214         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
9215         movdf_hardfloat_32bit): Split fG into two alternatives.
9216         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
9217
9218         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
9219
9220 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9221
9222         * final.c (output_in_slot): Delete.
9223         (final_scan_insn): Revert 2004-09-03 change.
9224         (output_asm_insn): Likewise.
9225         * config/sparc/sparc.c (output_return): Likewise.
9226         (output_sibcall): Likewise.
9227
9228 2004-09-06  Jan Hubicka  <jh@suse.cz>
9229
9230         * loop.c (loop_dump_aux): Do not print RTL when not available.
9231         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
9232         frontend specific type nodes.
9233         (produce_memory_decl_rtl): Break out from ...
9234         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
9235         (get_computation_at): Avoid random tree sharing.
9236         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
9237
9238 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
9239
9240         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
9241         unnecessary commands.
9242
9243 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
9244
9245         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
9246         (bitmap.o): Likewise.
9247
9248 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
9249
9250         Unify the management of RTL and tree-level dump files.
9251
9252         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
9253         Don't print function name to the dump file, the pass manager
9254         would do this for us. Add code from the top of
9255         rest_of_compilation, up to the initial RTL dump.
9256         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
9257         close the DFI_sibling dump file.
9258         (rest_of_compilation): Don't do that here.  Remove code up to the
9259         initial RTL dump.
9260         (init_optimization_passes): Remove.
9261         (pass_rest_of_compilation): Change pass name to NULL.
9262         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
9263         Do not call init_optimization_passes.
9264         * toplev.h (init_optimization_passes): Remove.
9265
9266         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
9267         finish_graph_dump_file): Remove SUFFIX parameter.
9268         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
9269         finish_graph_dump_file): Likewise.
9270
9271         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
9272         * cfgexpand.c (pass_expand): Adjust.
9273         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
9274         * passes.c (pass_rest_of_compilation): Adjust.
9275         * predict.c (pass_profile): Adjust.
9276         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
9277         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
9278         pass_split_crit_edges, pass_warn_function_return): Adjust.
9279         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
9280         * tree-dfa.c (pass_referenced_vars): Adjust.
9281         * tree-eh.c (pass_lower_eh): Adjust.
9282         * tree-if-conv.c (pass_build_ssa): Adjust.
9283         * tree-into-ssa.c (pass_build_ssa): Adjust.
9284         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
9285         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
9286         * tree-nrv.c (pass_nrv): Adjust.
9287         * tree-optimize.c (pass_gimple, pass_all_optimizations,
9288         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
9289         pass_init_datastructures): Adjust.
9290         * tree-outof-ssa.c (pass_del_ssa): Adjust.
9291         * tree-profile.c (pass_tree_profile): Adjust.
9292         * tree-sra.c (pass_sra): Adjust.
9293         * tree-ssa-alias.c (pass_may_alias): Adjust.
9294         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
9295         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
9296         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
9297         * tree-ssa-dom.c (pass_dominator): Adjust.
9298         * tree-ssa-dse.c (pass_dse): Adjust.
9299         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
9300         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
9301         * tree-ssa-loop-ch.c (pass_ch): Adjust.
9302         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
9303         pass_loop_done, pass_complete_unroll, pass_iv_canon,
9304         pass_iv_optimize, pass_vectorize): Adjust.
9305         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
9306         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
9307         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
9308         pass_late_warn_uninnitialized): Adjust.
9309         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
9310
9311         * Makefile.in (tree-dump.o): Add new dependencies.
9312         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
9313         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
9314         Likewise.
9315         * toplev.c (dump_file_name): New.
9316         * tree-dump.c (dump_enable_all): Add LETTER parameter.
9317         (struct dump_file_info): Add NUM and LETTER fields.
9318         (dump_files): Adjust and add RTL dump files.
9319         (dump_register): Add NUM and LETTER fields.
9320         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
9321         (dump_begin): Use get_dump_file_name.
9322         (dump_switch_p_1): Adjust call to dump_enable_all.
9323         * tree-dump.h (dump_register): Adjust prototype.
9324         * tree-optimize.c (register_one_dump_file): Take dump file index.
9325         Support flags for RTL dumps.
9326         (register_dump_files): Fill in NUM field of struct dump_file_info.
9327         Track properties both when the gate is executed and when it is not.
9328         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
9329         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
9330         dumps of RTL.
9331         * tree-pass.h (dump_file_name): New.
9332         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
9333         New.
9334
9335         * Makefile.in (passes.o): Add new dependencies.
9336         * passes.c (struct dump_file_info, enum dump_file_index,
9337         dump_file_tbl, init_optimization_passes): Remove.
9338         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
9339         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
9340         dump_enabled_p.
9341         (finish_optimization_passes): Update finish_graph_dump_file loop.
9342         (enable_rtl_dump_file): Remove.
9343         * tree-dump.c (dump_files): Adjust and add RTL dump files.
9344         (enable_rtl_dump_file): Add here.
9345         * tree.h (enum tree_dump_index): Add RTL dump file indices.
9346         * doc/invoke.texi (Debugging options): Document new RTL debugging
9347         options.  Update.
9348
9349 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
9350
9351         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
9352         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
9353         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
9354         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
9355         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
9356         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
9357         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
9358         vec.h: Fix comment formatting.
9359
9360 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
9361
9362         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
9363         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
9364         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
9365         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
9366         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
9367         tree-ssa-loop-niter.c, tree-ssa-operands.c,
9368         tree-ssa-operands.h, tree-ssa-propagate.c,
9369         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
9370         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
9371
9372 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
9373
9374         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
9375         vectorizer is enabled.
9376
9377 2004-09-05  Andreas Jaeger  <aj@suse.de>
9378
9379         * tree-if-conv.c: Spell check comments and clean up whitespace.
9380
9381 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9382
9383         * tree-ssa-loop-ivopts.c: New file.
9384         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
9385         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
9386         target_pres_cost, target_spill_cost): Declare.
9387         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
9388         spill_cost): Renamed to ...
9389         (target_avail_regs, target_res_regs, target_small_cost,
9390         target_pres_cost, target_spill_cost): ... and exported.
9391         (init_set_costs, global_cost_for_size): Work with renamed variables.
9392         * common.opt (flag_ivopts): New flag.
9393         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
9394         REF_ORIGINAL.
9395         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
9396         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
9397         generating SSA form.
9398         (force_gimple_operand): New function.
9399         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
9400         * tree-cfg.c (stmt_bsi): New function.
9401         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
9402         PARAM_IV_MAX_CONSIDERED_USES): New.
9403         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
9404         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
9405         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
9406         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
9407         * tree-nested.c (build_addr): Export.
9408         * tree-optimize.c (init_tree_optimization_passes): Add
9409         pass_iv_optimize.
9410         * tree-pass.h (pass_iv_optimize): Declare.
9411         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
9412         IMAGPART_EXPR.
9413         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
9414         as a phi node argument.
9415         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
9416         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
9417         functions.
9418         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
9419         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
9420         pass_iv_optimize): New pass.
9421         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
9422         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
9423         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
9424         * tree.h (REF_ORIGINAL): New macro.
9425         (build_int_cst_type, unsigned_type_for, zero_p,
9426         cst_and_fits_in_hwi, build_addr): Declare.
9427         * doc/invoke.texi (-fivopts): Document.
9428         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
9429         PARAM_IV_MAX_CONSIDERED_USES): Document.
9430         * doc/passes.texi: Document induction variable optimizations pass.
9431
9432 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9433
9434         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
9435         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
9436         * c-common.c (c_common_attribute_table): Accept parameters to
9437         sentinel attribute.
9438         (check_function_sentinel, handle_sentinel_attribute): Likewise.
9439         * doc/extend.texi: Update accordingly.
9440
9441 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9442
9443         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
9444         New.
9445         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
9446         attribute.
9447         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
9448         New functions.
9449         (c_common_attribute_table): Add `sentinel' attribute.
9450         (check_function_arguments): Handle `sentinel' attribute.
9451         * doc/extend.texi: Document `sentinel' attribute.
9452
9453 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
9454
9455         * configure: Regenerated.
9456
9457 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9458
9459         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
9460
9461         * tree.c (save_expr): No longer TREE_READONLY.
9462
9463 2004-09-04  Jan Hubicka  <jh@suse.cz>
9464
9465         * passes.c (rest_of_clean_state):  Fix merge conflict made during
9466         commiting the patch.
9467
9468 2004-09-04  Jan Hubicka  <jh@suse.cz>
9469
9470         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
9471
9472 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
9473
9474         * doc/md.texi (shift patterns): New anchor.  Add reference to
9475         TARGET_SHIFT_TRUNCATION_MASK.
9476         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
9477         * target.h (shift_truncation_mask): New target hook.
9478         * targhook.h (default_shift_truncation_mask): Declare.
9479         * targhook.c (default_shift_truncation_mask): Define.
9480         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
9481         (TARGET_INITIALIZER): Include it.
9482         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
9483         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
9484         reject all out-of-range values.  Fix sign-extension code for modes
9485         whose width is smaller than HOST_BITS_PER_WIDE_INT.
9486         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
9487         (expand_superword_shift, expand_subword_shift): Likewise.
9488         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
9489         (expand_binop): Use them to implement double-word shifts.
9490         * config/arm/arm.c (arm_shift_truncation_mask): New function.
9491         (TARGET_SHIFT_TRUNCATION_MASK): Define.
9492
9493 2004-09-04  Jan Hubicka  <jh@suse.cz>
9494
9495         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
9496         (mix): New macro copied from hashtab.c
9497         (iterative_hash_hashval_t, iterative_hash_pointer,
9498         iterative_hash_host_wide_int): New functions based on hashtab.c
9499         implementation.
9500
9501 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
9502
9503         * config/mips/mips.md (mask): New mode attribute.
9504         (zero_extendsidi2): Add memory alternative.
9505         (*zero_extendsidi2_mem): Delete.
9506         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
9507         memory_operand in the TARGET_MIPS16 check.
9508         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
9509         Redefine using :GPR and :SHORT.
9510         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
9511
9512 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
9513
9514         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
9515         using rint_optab.
9516         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
9517         expand_builtin_mathfn.
9518         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
9519         btrunc?f patterns for btrunc_optab. Implement rint_optab using
9520         rint?f patterns.
9521         * optabs.c (init_optabs): Initialize rint_optab.
9522         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
9523         Add new OTI_rint.
9524         (btrunc_optab): Rename macro from trunc_optab.
9525         (rint_optab): Define corresponding macro.
9526
9527         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
9528         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
9529
9530         * config/i386/i386-protos.h (emit_i387_cw_initialization):
9531         Change prototype. Add new int parameter.
9532         * config/i386/i386.c (emit_i387_cw_initialization):
9533         Handle new rounding modes.
9534
9535         * config/i386/i386.h (enum fp_cw_mode): Delete.
9536         (MODE_NEEDED): Handle new rounding modes.
9537         (EMIT_MODE_SET): Change condition to handle new rounding modes.
9538
9539         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
9540         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
9541         represent different rounding modes of frndint insn.
9542         (type): Add frndint type.
9543         (i387, length, memory): Handle this type.
9544         (i387_cw): New attribute definition.
9545         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
9546         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
9547         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
9548         Add "i387_cw" attribute defined to "trunc".
9549         (x86_fnstcw_1): Remove comment.
9550         (*frndintxf2): Rename insn definition to frndintxf2. Move
9551         insn definition near rint?f2 expanders.
9552         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
9553         rintf and rintl built-ins as inline x87 intrinsics.
9554         (frndintxf2_floor): New pattern to implement floor rounding
9555         mode with frndint x87 instruction.
9556         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
9557         floorf and floorl built-ins as inline x87 intrinsics.
9558         (frndintxf2_ceil): New pattern to implement ceil rounding
9559         mode with frndint x87 instruction.
9560         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
9561         ceilf and ceill built-ins as inline x87 intrinsics.
9562         (frndintxf2_trunc): New pattern to implement trunc rounding
9563         mode with frndint x87 instruction.
9564         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
9565         truncf and truncl built-ins as inline x87 intrinsics.
9566         (frndintxf2_mask_pm): New pattern to implement rounding
9567         mode with exceptions with frndint x87 instruction.
9568         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
9569         implement nearbyint, nearbyintf and nearbyintl built-ins as
9570         inline x87 intrinsics.
9571
9572 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
9573
9574         * config/mips/mips.md (SHORT): New mode macro.
9575         (size): New mode attribute.
9576         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
9577         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
9578         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
9579         !ISA_HAS_SEB_SEH.
9580         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
9581         *extend[qh]isi2_hw patterns and extending them to di.
9582         (extendqihi2): Implement as define_insn_and_split that produces
9583         extendqisi2 after reload.
9584
9585 2004-09-03  Devang Patel  <dpatel@apple.com>
9586
9587         * Makefile.in (OBJS-common): Add tree-if-conv.o
9588         (tree-if-conv.o): New rule.
9589         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
9590         (get_loop_body_in_bfs_order): New.
9591         * cfgloop.h (get_loop_body_in_bfs_order): New.
9592         * tree-flow.h (enum move_pos): Move here from ..
9593         * tree-ssa-loop-im.c (enum move_pos): here.
9594         (movement_possibility): Make externally visible.
9595         * tree-optimize.c (init_tree_optimization_passes): New entry for
9596         if conversion pass.
9597         * tree-pass.h (pass_if_conversion): New.
9598         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
9599         * tree-if-conv.c: New file.
9600         * doc/passes.texi: Document tree if-conversion pass.
9601         * doc/tree-ssa.texi: Same.
9602
9603 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
9604
9605         PR target/14925:
9606         Makefile.in (LIB2ADDEHSTATIC): New.
9607         (LIB2ADDEHSHARED): New.
9608         (LIBUNWIND): New.
9609         (LIBUNWINDDEP): New.
9610         (SHLIBUNWIND_LINK): New.
9611         (SHLIBUNWIND_INSTALL): New.
9612         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
9613         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
9614         (clean): Remove libunwind*
9615         (stage1-start): Remove and copy stage1/libunwind*.
9616         (stage2-start): Remove and copy stage2/libunwind*.
9617         (stage3-start): Remove and copy stage3/libunwind*.
9618         (stage4-start): Remove and copy stage4/libunwind*.
9619         (stageprofile-start): Remove and copy stageprofile/libunwind*.
9620         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
9621
9622         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
9623         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
9624         tmake_file if --with-system-libunwind isn't used.
9625
9626         * config/ia64/t-glibc-libunwind: New file.
9627         * config/t-libunwind-elf: Likewise.
9628         * unwind-compat.c: Likewise.
9629         * unwind-compat.h: Likewise.
9630         * unwind-dw2-fde-compat.c: Likewise.
9631
9632         * config/ia64/t-glibc (LIB2ADDEH): Updated.
9633         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
9634
9635         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
9636         aliases if needed.
9637         * unwind-dw2-fde-glibc.c: Likewise.
9638         * unwind-dw2.c: Likewise.
9639
9640         * config/t-libunwind (LIB2ADDEH): Updated.
9641         (LIB2ADDEHSTATIC): New.
9642         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
9643         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
9644
9645         * configure.ac: Change --enable-libunwind-exceptions to
9646         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
9647         * configure: Regenerated.
9648         * config.in: Updated.
9649
9650         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
9651         above and mention --with-system-libunwind.
9652         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
9653         removed in gcc 3.4.3 and later.
9654
9655         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
9656         USE_LIBUNWIND_EXCEPTIONS is defined.
9657
9658         * mklibgcc.in: Support libunwind.
9659
9660 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
9661
9662         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
9663         m_NOCONA.
9664
9665 2004-09-03  Richard Henderson  <rth@redhat.com>
9666
9667         PR middle-end/9997
9668         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
9669         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
9670         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
9671         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
9672         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
9673         resize_stack_vars_conflict, add_stack_var_conflict,
9674         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
9675         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
9676         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
9677         expand_one_static_var, expand_one_hard_reg_var,
9678         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
9679         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
9680         (expand_used_vars): Rewrite.
9681         * Makefile.in (cfgexpand.o): Update dependencies.
9682
9683 2004-09-04  Jan Hubicka  <jh@suse.cz>
9684
9685         * cfg.c (free_edge): Use ggc_free.
9686         (expunge_block): Use ggc_free.
9687         * passes.c (rest_of_clean_state): Free after compilation.
9688         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
9689         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
9690
9691 2004-09-03  James E Wilson  <wilson@specifixinc.com>
9692
9693         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
9694         DECL_EXTERNAL check.
9695
9696 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9697
9698         * final.c (output_in_slot): New global variable.
9699         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
9700         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
9701         'output_in_slot' before invoking output_asm_insn.
9702         (output_asm_insn): Add a space after the tab if 'output_in_slot'
9703         is set.
9704         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
9705         final_scan_insn.
9706         (output_sibcall): Likewise.
9707
9708 2004-09-03  Jan Hubicka  <jh@suse.cz>
9709
9710         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
9711         * tree-ssanames (init_ssanames): Likewise.
9712
9713 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
9714
9715         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
9716         objc_declare_protocols, objc_start_protocol,
9717         objc_start_class_interface, objc_start_category_interface,
9718         objc_continue_interface, objc_finish_interface,
9719         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
9720         objc_start_class_implementation, objc_start_category_implementation,
9721         objc_continue_implementation, objc_finish_implementation,
9722         objc_add_method_declaration, objc_start_method_definition,
9723         objc_finish_method_definition, objc_build_keyword_decl,
9724         objc_build_method_signature, objc_build_encode_expr,
9725         objc_build_protocol_expr, objc_build_selector_expr,
9726         objc_build_message_expr, objc_build_string_object,
9727         objc_get_class_reference, objc_get_protocol_qualified_type,
9728         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
9729
9730 2004-09-03  James E Wilson  <wilson@specifixinc.com>
9731
9732         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
9733
9734         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
9735         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
9736         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
9737         (mips_recip1_<fmt>): Use frdiv1 type.
9738         (mips_recip2_<fmt>): Use frdiv2 type.
9739         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
9740         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
9741         and frsqrt1.
9742         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
9743
9744 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
9745
9746         * reload.c (find_reloads): Swap operand_loc pointers for
9747         find_dummy_reload if we have swapped two operands.
9748
9749 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
9750
9751         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
9752         to get the tablejump-insn before the jump-table label.
9753
9754 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
9755
9756         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
9757         objc_declare_protocols, objc_build_message_expr,
9758         objc_finish_message_expr, objc_build_selector_expr,
9759         objc_build_protocol_expr, objc_build_encode_expr,
9760         objc_build_string_object, objc_get_protocol_qualified_type,
9761         objc_get_class_reference, objc_get_class_ivars,
9762         objc_start_class_interface, objc_start_category_interface,
9763         objc_start_protocol, objc_continue_interface, objc_finish_interface,
9764         objc_start_class_implementation, objc_start_category_implementation,
9765         objc_continue_implementation, objc_finish_implementation,
9766         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
9767         objc_add_method_declaration, objc_start_method_definition,
9768         objc_finish_method_definition, objc_add_instance_variable,
9769         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
9770         objc_finish_try_stmt, objc_begin_catch_clause,
9771         objc_finish_catch_clause, objc_build_finally_clause,
9772         objc_build_synchronized, objc_static_init_needed_p,
9773         objc_generate_static_init_call): New prototypes.
9774
9775 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
9776
9777         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
9778         is only one reg.
9779         (ia64_function_value): Ditto.
9780
9781 2004-09-03  Jan Beulich  <jbeulich@novell.com>
9782
9783         * config.gcc: Resurrect NetWare as a target. Handle special case of
9784         Novell linker to be used (specified through --with-ld=) and threading
9785         model of either Posix (default) or NKS.
9786         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
9787         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
9788         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
9789         * config/i386/netware.c, config/i386/netware.h: New.
9790         * config/i386/nwld.c, config/i386/nwld.h: New.
9791         * config/i386/netware-crt0.c: New.
9792         * config/i386/netware-libgcc.c: New.
9793         * config/i386/netware-libgcc.def: New.
9794         * config/i386/netware-libgcc.exp: New.
9795         * config/i386/t-netware, config/i386/t-nwld: New.
9796         * gthr-nks.h: New.
9797         * doc/install.texi: Document NKS threading model.
9798
9799 2004-09-03  Jan Beulich  <jbeulich@novell.com>
9800
9801         PR c/7054
9802         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
9803         * tree.h (initial_max_fld_align): Declare
9804         * stor-layout.c (initial_max_fld_align): Define and initialize.
9805         (maximum_field_alignment): Initialize to the same value.
9806         * common.opt: Add -fpack-struct= variant of switch.
9807         * opts.c: Handle -fpack-struct= variant of switch.
9808         * c-pragma.c: Change #pragma pack() handling so that it becomes
9809         compatible to other compilers: accept individual 'push' argument,
9810         make final pop restore (command line) default, correct interaction
9811         of push/pop and sole specification of a new alignment (so that the
9812         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
9813         to #pragma pack(push, <n>).
9814         * doc/extend.texi: New node "Structure-Packing Pragmas" under
9815         "Pragmas", describing #pragma pack.
9816         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
9817         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
9818         Document new TARGET_DEFAULT_PACK_STRUCT.
9819
9820 2004-09-03  Devang Patel  <dpatel@apple.com>
9821
9822         * dwarf2out.c (gen_field_die). Equate decl number to die.
9823
9824 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
9825
9826         PR target/15832
9827         * global.c (modify_reg_pav): New function.
9828         (make_accurate_live_analysis): Call the new function.  Move pavin
9829         modification by earlyclobber set into the new function.
9830
9831 2004-09-03  Andreas Schwab  <schwab@suse.de>
9832
9833         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
9834         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
9835         extended.
9836
9837 2004-09-02  Jan Beulich  <jbeulich@novell.com>
9838
9839         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
9840         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
9841         not unwind code specific ones.
9842         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
9843         Remove unwind code specific dependencies.
9844         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
9845         Remove gbl-ctors.h.
9846         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
9847         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
9848         * tsystem.h: Declare memcpy and memset when inhibit_libc.
9849
9850 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
9851
9852         * combine.c (try_combine): Delay modifying of insns which cannot
9853         be easily undone.
9854
9855 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
9856
9857         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
9858         tree-loop-im.
9859         * gcc/tree-ssa-loop.c: Ditto
9860         * gcc/tree-ssa-loop-ivcanon.c: Ditto
9861         * gcc/doc/invoke.texi: Ditto.
9862
9863 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
9864
9865         * c-decl.c (store_parm_decls_newstyle): Make static.
9866         (store_parm_decls_from): New function.
9867         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
9868         (store_parm_decls_from): New prototype.
9869
9870 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
9871
9872         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
9873         HImode with STRICT_ALIGNMENT.
9874
9875 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
9876
9877         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
9878         (TARGET_OS_CPP_BUILTINS): Likewise.
9879         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
9880         TARGET_BPABI_CPP_BUILTINS.
9881
9882 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
9883
9884         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
9885
9886 2004-09-02  Eric Christopher  <echristo@redhat.com>
9887
9888         * builtins.c (expand_builtin_cabs): Delete.
9889         (expand_builtin): If unable to fold the values do a normal
9890         library call for builtin_cab*.
9891         (fold_builtin_cabs): Depend on optimize and optimize_size.
9892         * optabs.c (expand_cmplxdiv_straight): Delete.
9893         (expand_cmplxdiv_wide): Ditto.
9894         (expand_vector_binop): Ditto.
9895         (expand_vector_unop): Ditto.
9896         (expand_complex_abs): Delete.
9897         (expand_binop): Remove calls to above functions.
9898         Remove open coding of complex arithmetic.
9899         (expand_unop): Ditto.
9900         * optabs.h: Remove prototypes.
9901
9902 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
9903
9904         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
9905         * c-tree.h (store_parm_decls_newstyle): New prototype.
9906
9907 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
9908
9909         * config/rs6000/rs6000.c (expand_block_clear): Use vector
9910         instructions if available.
9911         (expand_block_move): Likewise.
9912
9913 2004-09-03  Jan Hubicka  <jh@suse.cz>
9914
9915         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
9916
9917 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
9918
9919         * config/arm/symbian.h (LIB_SPEC): Define to empty.
9920         * config/arm/t-symbian (SHLIB_LC): Likewise.
9921
9922 2004-09-02  Paul Brook  <paul@codesourcery.com>
9923
9924         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
9925
9926 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
9927
9928         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
9929         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
9930         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
9931         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
9932         (mips_issue_rate): Remove unreachable abort.
9933         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
9934         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
9935         (mips_block_move_straight, print_operand_address, mips_file_start)
9936         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
9937         (mips_output_conditional_branch, mips_expand_builtin_direct)
9938         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
9939         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
9940         with gcc_assert.
9941
9942 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
9943
9944         * config/mips/mips.md (*lea_high64): Change split condition to
9945         flow2_completed.  Add a peephole2 to generate a more parallel version.
9946
9947 2004-09-02  Jan Hubicka  <jh@suse.cz>
9948
9949         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
9950         GGC.
9951
9952         * ggc-page.c: include tree-flow.h.
9953         (extra_order_size_table): Add stmt_ann_d.
9954         (STAT_LABEL): Rename from ....
9955         (LABEL): ... this one.
9956         * Makefile.in (ggc-page.o): Add dependency.
9957
9958         * ggc-common.c (ggc_force_collect): New global variable.
9959         (loc_description): Add fields "freed", "collected"
9960         (ptr_hash): New static hash
9961         (ptr_hash_entry): New structure.
9962         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
9963         (ggc_record_overhead): Take ptr argument, record it
9964         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
9965         (cmp_statistics): Imrove sorting.
9966         (dump_ggc_loc_statistics): Output newly collected statistics
9967         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
9968         (ggc_free): Call ggc_free_overhead.
9969         (ggc_collect): Force collection when asked to be forced.
9970         (ggc_collect): Call ggc_prune_overhead_list.
9971         * ggc.h (ggc_force_collect): Declare
9972         (ggc_record_overhead): Update prototype.
9973         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
9974
9975 2004-09-02  James E Wilson  <wilson@specifixinc.com>
9976
9977         * common.opt (ftrapping-math): Default to on.
9978
9979 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
9980
9981         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
9982
9983 2004-09-02  Denis Chertykov  <denisc@overta.ru>
9984
9985         PR target/16884
9986         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
9987         match_scratch.
9988         (*movmemqi_insn): Likewise.
9989         (*movmemhi): Likewise.
9990         (clrmemhi): Likewise.
9991         (*clrmemqi): Likewise.
9992         (*clrmemhi): Likewise.
9993
9994 2004-09-02  Paul Brook  <paul@codesourcery.com>
9995
9996         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
9997         default_use_cxa_atexit=yes.
9998
9999 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
10000
10001         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
10002         (struct kernel_old_ucontext): Delete.
10003         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
10004         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
10005         when IN_LIGGCC2.
10006
10007 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
10008
10009         * toplev.c (process_options): Fix typo.
10010
10011 2004-09-01  Richard Henderson  <rth@redhat.com>
10012
10013         PR middle-end/17258
10014         * calls.c (initialize_argument_information): Tighten pass-through
10015         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
10016         Use build_fold_addr_expr.
10017         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
10018         that assumes ADDR_EXPR allocates stack space.
10019         * fold-const.c (build_fold_addr_expr_with_type): Look through
10020         WITH_SIZE_EXPR.
10021
10022 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
10023
10024         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
10025         * ggc.h (ggc_alloc_rtx): Delete.
10026
10027 2004-09-01  Roger Sayle  <roger@eyesopen.com>
10028
10029         * expmed.c (enum alg_code): Remove long unused enumeration values.
10030         (struct mult_cost): New structure to hold the "score" of a synthetic
10031         multiply sequence, including both a rtx_cost and a latency field.
10032         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
10033         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
10034         (struct algorithm): Change type of cost field to be mult_cost.
10035         (synth_mult): Change type of cost_limit argument to be a
10036         pointer to a mult_cost.  Update all cost comparisons to use the
10037         new mult_cost infrastructure.  For alg_add_factor and
10038         alg_sub_factor operations, latency is lower than the rtx_cost.
10039         (choose_mult_variant):  Update calls to synth_mult.  Perform
10040         cost comparisons using the new mult_cost infrastructure.
10041         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
10042         to optain the total rtx_cost of a synth_mult "algorithm".
10043
10044 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
10045
10046         * config/rs6000/power4.md: Increase store latency to 12.
10047         * config/rs6000/power5.md: Same.
10048
10049 2004-09-01  James E Wilson  <wilson@specifixinc.com>
10050
10051         PR target/14064
10052         * config/avr/avr.c (avr_unique_section): Delete prototype and
10053         definition.
10054         (TARGET_ASM_UNIQUE_SECTION): Delete.
10055
10056 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
10057
10058         * c-parse.in (primary): Call objc_build_message_expr(),
10059         objc_build_selector_expr(), objc_build_protocol_expr(),
10060         objc_build_encode_expr() and objc_build_string_object() instead of
10061         build_message_expr(), build_selector_expr(), build_protocol_expr(),
10062         build_encode_expr() and build_objc_string_object(), respectively.
10063         (component_decl_list2): Call objc_get_class_ivars() instead of
10064         get_class_ivars_from_name().
10065         (keyworddecl): Call objc_build_keyword_decl() instead of
10066         build_keyword_decl().
10067         (receiver): Call objc_get_class_reference() instead of
10068         get_class_reference().
10069         (reswords): Add blank line before @@ifobjc section, for clarity.
10070
10071 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
10072
10073         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
10074         to Altivec vetors.
10075
10076 2004-09-01  Wu Yongwei  <adah@sh163.net>
10077             Danny Smith  <dannysmith@users.sourceforge.net>
10078
10079         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
10080         not Windows 'DWORD'.
10081         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
10082         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
10083         (__gthr_win32_recursive_mutex_init_function): Add prototype for
10084         __GTHREAD_HIDE_WIN32API case..
10085         (__gthr_win32_recursive_mutex_lock): Likewise.
10086         (__gthr_win32_recursive_mutex_trylock): Likewise.
10087         (__gthr_win32_recursive_mutex_unlock): Likewise.
10088         (__gthread_recursive_mutex_init_function); Add definition for
10089         __GTHREAD_HIDE_WIN32API case.
10090         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
10091         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
10092         call to InterlockedDecrement.
10093
10094 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10095
10096         * tree-tailcall.c (find_tail_calls): Also fail is statement has
10097         volatile operands.
10098
10099         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
10100
10101         * doc/c-tree.texi: Document new operands for ARRAY_REF and
10102         COMPONENT_REF.
10103
10104 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10105
10106         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
10107         * common.opt (fspeculative-prefetching): New.
10108         * flags.h (flag_speculative_prefetching_set): Declare.
10109         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
10110         values.
10111         * opts.c (flag_sepculative_prefetching_set): New variable.
10112         (common_handle_option): Handle -fspeculative-prefetching.
10113         * passes.c (rest_of_compilation): Ditto.
10114         * profile.c (instrument_values, compute_value_histograms, branch_prob):
10115         Use vectors instead of arrays.
10116         * toplev.c (process_options): Handle -fspeculative-prefetching.
10117         * rtl-profile.c: Include ggc.h.
10118         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
10119         rtl_gen_one_value_profiler_no_edge_manipulation,
10120         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
10121         argument changed.
10122         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
10123         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
10124         argument changed.
10125         * value-prof.c: Include ggc.h.
10126         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
10127         macros.
10128         (insn_prefetch_values_to_profile, find_mem_reference_1,
10129         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
10130         speculative_prefetching_transform): New.
10131         (value_profile_transformations): Call speculative_prefetching_transform.
10132         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
10133         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
10134         tree_find_values_to_profile, find_values to profile): Use vectors
10135         instead of arrays.
10136         (free_profiled_values): Removed.
10137         * value-prof.h (struct histogram_value): Renamed to
10138         struct histogram_value_t.
10139         (histogram_value, histogram_values): New types.
10140         (find_values_to_profile): Declaration changed.
10141         (free_profiled_values): Removed.
10142         (struct profile_hooks): Type of argument of the hooks changed to
10143         histogram_value.
10144         * doc/invoke.texi (-fspeculative-prefetching): Document.
10145
10146 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10147
10148         PR rtl-optimization/16408
10149         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
10150
10151 2004-09-01  Richard Henderson  <rth@redhat.com>
10152
10153         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
10154         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
10155
10156 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
10157
10158         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
10159
10160 2004-09-01  Mike Stump  <mrs@apple.com>
10161
10162         * config/darwin.c (machopic_symbol_defined_p): In addition to
10163         being SYMBOL_REF_LOCAL_P, a symbol must also be
10164         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
10165         defined in this output file, or translation unit in the case
10166         of IMA not being used.
10167         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
10168         never need .indirect_symbol when indirecting.
10169
10170 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
10171
10172         * Makefile.in (bb-reorder.o): Add several dependencies.
10173
10174 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
10175
10176         * fold-const.c (operand_equal_p): Require equal sign also for
10177         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
10178
10179 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
10180
10181         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
10182         for use in configargs.h.  Put the cname in a separate variable.  Use
10183         that to set target_cpu_default2.
10184
10185 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
10186             Nick Clifton  <nickc@redhat.com>
10187
10188         * config/sh/sh.md ("length"): Increase branch length when
10189         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
10190         constant, 2 byte for aligning the constant.
10191
10192 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
10193
10194         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
10195         CPU.
10196         (arm7tdmi-s): New CPU name.
10197         * arm/arm.c (ARM_CORE): Update for new format.
10198         * arm/arm.h (ARM_CORE): Likewise.
10199         * arm/gentune.sh: Update for extra field.
10200         * config.gcc: Likewise.
10201         * arm/arm-tune.md: Regenerate.
10202         * doc/invoke.texi: Document the real processor names for ARM cpus.
10203
10204 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
10205
10206         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
10207         (floatdidf): New functions.
10208         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
10209         (floatdisf): New functions.
10210         * t-arm-elf: Use them.
10211
10212 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
10213
10214         * c-common.h (lookup_interface): Remove prototype.
10215         (is_class_name): Rename to objc_is_class_name.
10216         (lookup_objc_ivar): Rename to objc_lookup_ivar.
10217         (get_current_scope): Rename to objc_get_current_scope.
10218         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
10219         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
10220         (yylexname): Call objc_is_class_name() instead of is_class_name().
10221         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
10222         instead of lookup_objc_ivar().
10223         * stub-objc.c (lookup_interface): Remove stub.
10224         (is_class_name): Rename to objc_is_class_name.
10225         (lookup_objc_ivar): Rename to objc_lookup_ivar.
10226
10227 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
10228
10229         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
10230         * config/arm/lib1funcs.asm: Do not include supplemental .S files
10231         when compiling for Symbian.
10232         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
10233         (TARGET_OS_CPP_BUILTINS): Likewise.
10234         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
10235
10236 2004-08-31  Stan Shebs  <shebs@apple.com>
10237
10238         * toplev.c (process_options): Ensure debug_hooks is initialized.
10239
10240 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
10241
10242         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
10243         * target.h (cxx): Add export_class_data.
10244         * config/arm/arm.c (arm_cxx_export_class_data): New function.
10245         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
10246         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
10247
10248 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
10249
10250         * config/sh/sh.c (output_branch): Check the insn length possibly
10251         in the delayed slot.
10252
10253 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10254
10255         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
10256         blank after ')'.
10257         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
10258
10259         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
10260         (c_sizeof_of_alignof_type): Likewise.
10261         * expr.c (array_ref_element_size): Likewise.
10262         (highest_pow2_factor_for_target): Likewise.
10263         * gimplify.c (canonicalize_addr_expr): Likewise.
10264         (gimplify_compound_lval): Likewise.
10265         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
10266         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
10267         * varasm.c (assemble_variable): Likewise.
10268         (output_constant_def_contents): Alignments are unsigned.
10269
10270 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10271             Jeff Law  <law@redhat.com>
10272
10273         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
10274         gets modified.
10275
10276 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
10277
10278         * hooks.c (hook_bool_void_true): New function.
10279         * hooks.h (hook_bool_void_true): Declare.
10280         * target-def.h (TARGET_CXX): Add
10281         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
10282         * target.h (struct cxx): Add key_method_may_be_inline.
10283         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
10284         function.
10285         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
10286         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
10287         __THUMB_INTERWORK.
10288
10289 2004-08-31  Denis Chertykov  <denisc@overta.ru>
10290
10291         PR target/15417
10292         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
10293         frame pointer register only in Pmode while reload in progress.
10294
10295 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
10296
10297         PR target/15334
10298         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
10299         because it breaks the 32-bit shift patterns that rely on a match_dup.
10300
10301 2004-08-31  Matt Austern  <austern@apple.com>
10302
10303         * config/darwin.c (darwin_make_decl_one_only): Allocate section
10304         names once per compilation, instead of once per symbol.
10305
10306 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
10307
10308         * Makefile.in (build_subdir): New substitution.
10309         (fixinc.sh): Simplify heavily since fixincludes is already built.
10310         (stmp-fixinc): Depend on specs.ready.
10311         (install-mkheaders): Use new location of fixincludes.
10312         (clean): Do not descend into fixinc.
10313         (FORBUILD): Replace with ../$(build_subdir).
10314         * configure.ac (build_subdir): Substitute.
10315         (FORBUILD): Do not set.
10316         (all_outputs): Remove fixinc/Makefile.
10317         (default commands): Do not create links in fixinc.
10318         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
10319         the fixincludes configuration steps and substituting
10320         @FIXINCL@ in fixinc.in.
10321         * fixinc.in: New, from fixinc/fixincl.sh.
10322
10323         * fixinc/*: Removed.
10324
10325 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
10326
10327         * attribs.c (strip_attrs): Remove.
10328         (split_specs_attrs): Move ...
10329         * c-decl.c: ... to here.
10330         * tree.h (split_specs_attrs, strip_attrs): Remove.
10331         * c-tree.h (split_specs_attrs): Declare.
10332
10333 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
10334
10335         * read-rtl.c: Disable RTL checking.
10336         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
10337
10338 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
10339
10340         * config/mips/mips.md (fcond): New code macro and attribute.
10341         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
10342         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
10343         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
10344
10345 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
10346
10347         Revert:
10348         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
10349         PR rtl-optimization/16590
10350         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
10351
10352 2004-08-30  Andrew Pinski  <apinski@apple.com>
10353
10354         * hard-reg-set.h:
10355         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
10356         * ChangeLog: Fix previous ChangeLog entry.
10357
10358         PR rtl-opt/13987
10359         * config.host (use_long_long_for_widest_fast_int): New, default is
10360         off.
10361         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
10362         * configure.ac: If use_long_long_for_widest_fast_int, then
10363         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
10364         * configure: Regenerate.
10365         * config.in: Regenerate.
10366         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
10367         New: widest integer type supported efficiently in hardware for the
10368         host.
10369         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
10370         HOST_BITS_PER_WIDEST_FAST_INT.
10371         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
10372         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
10373         HOST_WIDEST_FAST_INT
10374         instead of HOST_WIDE_INT.
10375         (HARD_REG_SET_LONGS): Likewise.
10376         (UHOST_BITS_PER_WIDE_INT): Likewise.
10377         Change the checks for the fast cases to be based on
10378         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
10379
10380 2004-08-30  Steven Bosscher  <stevenb@suse.de>
10381
10382         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
10383         not the pointers.
10384
10385 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
10386
10387         PR 12738
10388         PR 17205
10389         Radar 3460526
10390         Radar 3775729
10391         * c-decl.c (grokdeclarator): Produce error for 'static' on local
10392         function declaration.
10393
10394 2004-08-30  Richard Henderson  <rth@redhat.com>
10395
10396         * expr.c (array_ref_element_size): Force aligned_size back to
10397         sizetype.
10398         (component_ref_field_offset): Similarly for aligned_offset.
10399         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
10400         low-bound, element-size, field-offset fields rather than
10401         computed values.
10402
10403 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
10404
10405         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
10406         redundant code.
10407
10408 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
10409
10410         * c-tree.h (struct language_function): Add arg_info element.
10411         * c-decl.c (current_function_arg_info): New.
10412         (grokdeclarator, store_parm_decls): Use it instead of
10413         DECL_ARGUMENTS.
10414         (c_push_function_context, c_pop_function_context): Save and
10415         restore it.
10416
10417 2004-08-30  Richard Henderson  <rth@redhat.com>
10418
10419         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
10420         COMPONENT_REF to pointer arithmetic.
10421         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
10422         constant "c" as a valid constant initializer.  Allow narrowing of
10423         differences against the same base object, for any base object.
10424
10425 2004-08-30  Richard Henderson  <rth@redhat.com>
10426
10427         * expr.c (expand_expr_addr_expr): New.
10428         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
10429
10430 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
10431
10432         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
10433         (mips_fp_condition): New enum.
10434         (mips_fp_conditions): New array.
10435         (print_fcc_operand): Delete.
10436         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
10437         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
10438         (builtin_description): Add "cond" field.
10439         (DIRECT_BUILTIN): Initialize it.
10440         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
10441         into INSN and CODE.  Initialize the "cond" field.
10442         (CMP_BUILTINS): Update accordingly.
10443         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
10444         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
10445         mips_fp_condition as argument.  Make it the final operand of the
10446         comparison instruction.
10447         (mips_expand_builtin): Update accordingly.
10448         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
10449         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
10450         the gaps.
10451         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
10452         Don't use the 'Q' operand prefix; just print the operand normally.
10453         (mips_cabs_*, mips_c_*): Delete, replacing with...
10454         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
10455         patterns.  Split the 4s versions into 2 ps patterns after reload.
10456
10457 2004-08-30  Richard Henderson  <rth@redhat.com>
10458
10459         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
10460         assuming an ADDR_EXPR is non-null.
10461
10462 2004-08-30  Jason Merrill  <jason@redhat.com>
10463
10464         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
10465
10466 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
10467
10468         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
10469         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
10470         gcc_assert and gcc_unreachable instead of abort.
10471         * alloc-pool.c (abort, fancy_abort): Remove.
10472         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
10473         gcc_assert or gcc_unreachable.
10474         * attribs.c (init_attributes, decl_attributes): Likewise.
10475         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
10476         mark_bb_for_unlikely_executed_section,
10477         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
10478         fix_crossing_unconditional_branches):  Likewise.
10479         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
10480         bitmap_operation):  Likewise.
10481         * bt-load.c (insn_sets_btr_p, augment_live_range,
10482         move_btr_def):  Likewise.
10483         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
10484         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
10485         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
10486         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
10487         expand_builtin_memcmp, expand_builtin_args_info,
10488         std_gimplify_va_arg_expr, expand_builtin_unop,
10489         expand_builtin_fputs, expand_builtin_profile_func,
10490         expand_builtin_fork_or_exec, fold_builtin_bitop,
10491         fold_builtin_classify, fold_builtin_fputs): Likewise.
10492
10493 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
10494
10495         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
10496         * gcov.c (abort): Remove undef.
10497
10498         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
10499         (struct tree_binfo): Remove primary field.
10500
10501 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
10502
10503         * fixinc/Makefile.in (machname.h): Remove.
10504         (fixincl.x): Do not pass $@ to genfixes.
10505         * fixinc/genfixes: Remove code to produce machname.h.
10506         * fixinc/fixincl.sh: Move it here instead.
10507         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
10508         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
10509         return a bool indicating whether pz_mn_name_pat is NULL.
10510         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
10511         Declare extern C variables for the ENV_TABLE.
10512         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
10513         instead use the result of mn_get_regexps.
10514         * fixinc/fixtests.c: Likewise.
10515
10516 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
10517
10518         * configure.ac: Do not run fixincludes after stage1 during
10519         toplevel bootstrap.
10520         * configure: Regenerate.
10521
10522 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
10523
10524         * sched-deps.c (get_condition): Partially revert previous, by never
10525         trying to extract the condition from a condjump.
10526
10527 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
10528
10529         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
10530         (handle_visibility_attribute, c_determine_visibility): Likewise.
10531         * c-common.h (my_friendly_assert): Remove.
10532
10533 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
10534
10535         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
10536         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
10537         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
10538         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
10539         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
10540
10541 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
10542
10543         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
10544         in COMPONENT_REF nodes.
10545
10546 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10547
10548         PR c++/15378
10549         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
10550         global_dc->warning_as_error_requested.
10551         * diagnostic.c (diagnostic_initialize): Tidy.
10552         * diagnostic.h (diagnostic_context::x_data): Remove
10553         (diagnostic_context::issue_warnings_are_errors_message): Rename
10554         from warnings_are_errors_message.
10555         (diagnostic_context::warning_as_error_requested): New.
10556
10557 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
10558
10559         * sched-deps.c (get_condition): Fix breakage in previous patch.
10560
10561 2004-08-30  Paul Brook  <paul@codesourcery.com>
10562
10563         * doc/install.texi: Fix broken mpfr link.
10564
10565 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
10566
10567         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
10568         other FreeBSD platforms.
10569
10570 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
10571
10572         * arm.h (REVERSE_CONDITION): Define.
10573         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
10574
10575 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
10576
10577         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
10578         just the codes, call reversed_comparison_code ().
10579         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
10580         (not_reg_cond): Use reversed_comparison_code.
10581         (and_reg_cond): Likewise.
10582         * ifcvt.c (cond_exec_process_if_block): Likewise.
10583         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
10584
10585 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
10586
10587         * sched-deps.c (get_condition): Rewrite using jump support functions.
10588         Use reversed_comparison_code.
10589         (conditions_mutex_p): Use reversed_comparison_code.
10590
10591 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
10592
10593         * config/mips/mips.c (override_options): Disable hot/cold partitioning
10594         for MIPS16.
10595
10596 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
10597
10598         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
10599         (mips_function_type): Move to mips.c.
10600         * config/mips/mips.c (mips_builtin_type): New enum.
10601         (builtin_description): Replace code and ftype with builtin_type
10602         and function_type.
10603         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
10604         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
10605         (CODE_FOR_mips_abs_ps): Define.
10606         (mips_bdesc): Use new macros.
10607         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
10608         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
10609         (mips_expand_builtin_direct): New function.
10610         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
10611         builtin.  Replace boolean parameter with builtin_type.
10612         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
10613         (mips_expand_4s_compare_builtin): Delete, replacing with...
10614         (mips_expand_builtin_compare): ...this new function.
10615
10616 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
10617
10618         PR rtl-optimization/16590
10619         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
10620
10621 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
10622
10623         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
10624         * tree-ssa-propagate.c: Fix documentation.
10625
10626 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
10627
10628         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
10629         (mov[sd]fcc): Likewise.
10630
10631 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
10632
10633         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
10634
10635 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
10636
10637         * config/mips/mips.md (divide_condition): New mode attribute.
10638         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
10639         (sqrt[sd]f3): Redefine using SCALARF.
10640         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
10641         patterns.
10642
10643 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
10644
10645         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
10646         (loadx, storex, fmt, UNITMODE): New mode attributes.
10647         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
10648         (mul[sd]f3): Redefine using :SCALARF.
10649         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
10650         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
10651         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
10652         Check TARGET_FUSED_MADD for V2SF too.
10653         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
10654         were already named.
10655         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
10656         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
10657
10658 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
10659
10660         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
10661         V2SF_type_node if it will be needed.
10662
10663 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
10664
10665         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
10666         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
10667         (mips_prepare_builtin_target): New function.
10668         (mips_expand_builtin): Use them.  Update calls to subroutines.
10669         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
10670         cmp_choice with a boolean argument to select between movt and movf.
10671         Take the comparison's icode as an argument, not the function's fcode.
10672         (mips_expand_compare_builtin): New function.  Rename existing function
10673         to mips_expand_scalar_compare_builtin.
10674         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
10675         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
10676         comparison's icode as an argument, not the builtin's fcode.
10677
10678 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
10679
10680         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
10681         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
10682         registers are false and -1 if all registers are true.
10683         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
10684         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
10685         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
10686         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
10687         (bc1any2t, bc1any2f): Likewise CCV2.
10688         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
10689
10690 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
10691
10692         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
10693         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
10694         UNSPEC rather than an IF_THEN_ELSE.
10695         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
10696         mips_cond_move_tf_ps by name.
10697
10698 2004-08-29  Chao-ying Fu  <fu@mips.com>
10699             James E Wilson  <wilson@specifixinc.com>
10700
10701         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
10702         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
10703         * config/mips/mips-ps-3d.md: New file.
10704         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
10705         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
10706         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
10707         (mips_output_move): Emit "mov.ps" for V2SFmode.
10708         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
10709         MODE_VECTOR_FLOAT.
10710         (override_options): Check if TARGET_MIPS3D and there was an explicit
10711         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
10712         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
10713         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
10714         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
10715         and allow CCV2 and CCV4 to occupy two and four CC registers.
10716         (print_fcc_operand): New function.
10717         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
10718         %Z to call print_fcc_operand.
10719         (mips_function_value): Handle MODE_VECTOR_FLOAT.
10720         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
10721         (mips_vector_mode_supported_p): New function.
10722         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
10723         (builtin_description): New struct.
10724         (mips_bdesc): New array of struct builtin_description.
10725         (mips_expand_builtin, mips_init_builtins,
10726         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
10727         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
10728         functions.
10729         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
10730         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
10731         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
10732         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
10733         "-mips3d", and "-mno-mips3d".
10734         (ASM_SPEC): Map -mips3d to -mips3d in gas.
10735         (EXTRA_CONSTRAINT_Y): New macro.
10736         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
10737         multi-letter constraint 'Y'.
10738         (CONSTRAINT_LEN): New macro.
10739         (enum mips_builtins): New for MIPS builtin functions.
10740         (enum mips_function_type): New for the types of MIPS builtin functions.
10741         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
10742         * config/mips/mips.md: New constants for paired single and MIPS-3D
10743         instructions.  Include the new mips-ps-3d.md file.
10744         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
10745         movv2sf_hardfloat_64bit): New named patterns.
10746         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
10747         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
10748         sdxc1_v2sf_di): New unnamed patterns.
10749         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
10750         const_vector support.
10751         (const_0_or_1_operand): New predicate.
10752         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
10753
10754 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
10755
10756         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
10757         (tree-ssa-propagate.o): New rule.
10758         (GTFILES): Add tree-ssa-propagate.c.
10759         * tree-flow.h (struct stmt_ann_d): Remove field
10760         in_ccp_worklist.
10761         * tree-ssa-propagate.c: New file.
10762         * tree-ssa-propagate.h: New file.
10763         * tree-ssa-ccp.c: Re-write to use the routines from
10764         tree-ssa-propagate.c.
10765
10766 2004-08-28  Andrew Pinski  <apinski@apple.com>
10767
10768         * tree-ssa-loop.c: Remove extra include of basic-block.h.
10769
10770 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
10771
10772         * c-common.h: Update comments about ObjC/ObjC++ entry points.
10773         (objc_is_reserved_word): New prototype.
10774         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
10775         separate section; these are call-backs.
10776         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
10777         ObjC/ObjC++ "@" keywords.
10778         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
10779         prototypes; they already live in c-common.h.
10780         * stub-objc.c: Update copyright notice.
10781         (objc_is_reserved_word): New stub.
10782
10783 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
10784
10785         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
10786         even when not checking.
10787
10788 2004-08-27  Jason Merrill  <jason@redhat.com>
10789
10790         PR c++/13684
10791         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
10792         (gimple_push_cleanup): Add eh_only parm.
10793         (gimplify_target_expr): Pass it.
10794         * c.opt (-fno-threadsafe-statics): New option.
10795         * c-opts.c (c_common_handle_option): Handle it.
10796         * c-common.h (flag_threadsafe_statics): Declare it.
10797         * c-common.c (flag_threadsafe_statics): Record it.
10798         * doc/invoke.texi: Document it.
10799         * tsystem.h (_GNU_SOURCE): Define.
10800         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
10801         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
10802         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
10803         (__gthread_recursive_mutex_init_function): New fn.
10804         (__gthread_recursive_mutex_lock): New fn.
10805         (__gthread_recursive_mutex_trylock): New fn.
10806         (__gthread_recursive_mutex_unlock): New fn.
10807         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
10808         * gthr-win32.h, gthr-vxworks.h: Likewise.
10809         * gthr.h: Document.
10810
10811 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
10812
10813         * config/rs6000/rs6000.c (rs6000_override_options): Increase
10814         maximum skip to 15.  Set function alignment, jump alignment, and
10815         loop alignment to 16 for processors that form dispatch groups.
10816         (rs6000_rtx_costs): outer_code is used.
10817
10818 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
10819
10820         * stor-layout.c (sizetype_set): Remove.
10821         (set_sizetype): Don't test or set it.
10822
10823         * tree.h (size_int_type): Remove.
10824         * fold-const.c: Do not #include gt-fold-const.h.
10825         (size_htab_hash, size_htab_eq): Remove.
10826         (size_int_kind): Use build_int_cst.
10827         (new_const, size_htab): Remove.
10828         (size_int_type): Remove.
10829         (round_up): Use build_int_cst.
10830         (round_down): Likewise. Remove spurious constant build.
10831
10832 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
10833
10834         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
10835         Add is_release variable, use it for --enable-werror and
10836         --enable-checking defaults.
10837         * system.h (gcc_assert, gcc_unreachable): New.
10838         * doc/install.texi (--enable-checking): Update.
10839         * configure, config.in: Rebuilt.
10840
10841 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
10842
10843         * rtl.h (read_rtx): Change prototype.
10844         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
10845         line number.  Return true on success.
10846         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
10847         callers accordingly.
10848
10849 2004-08-26  Richard Henderson  <rth@redhat.com>
10850
10851         * c-typeck.c (build_offsetof): Remove.
10852         * c-tree.h (build_offsetof): Remove.
10853         * c-common.c (fold_offsetof_1, fold_offsetof): New.
10854         * c-common.h (fold_offsetof): Declare.
10855         * c-parse.in (offsetof_base): New.
10856         (offsetof_member_designator): Use it.  Build references, not just
10857         a tree list.
10858         (primary): Use fold_offsetof, not build_offsetof.
10859
10860 2004-08-26  Richard Henderson  <rth@redhat.com>
10861
10862         * tree.c (staticp): Return the static object.
10863         * tree.h (staticp): Update decl.
10864         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
10865         * langhooks.c (lhd_staticp): Return NULL_TREE.
10866         * langhooks-def.h (lhd_staticp): Update decl.
10867         * c-common.c (c_staticp): Return the static object.
10868         * c-common.h (c_staticp): Update decl.
10869
10870 2004-08-26  Richard Henderson  <rth@redhat.com>
10871
10872         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
10873         modes.
10874
10875 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
10876
10877         PR c/13801
10878         * c-decl.c (struct c_binding): Add type and inner_comp fields.
10879         (bind): Set type and inner_comp fields.
10880         (pop_scope): Restore type of decl to the correct type from an
10881         outer scope.  Give error when popping file scope for incomplete
10882         arrays completed incompatibly with default initialization in an
10883         inner scope.
10884         (diagnose_mismatched_decls): Handle externs with initializers at
10885         block scope.
10886         (pushdecl): Set type of external declaration at block scope based
10887         only on the visible declarations.  Save type when changing the
10888         type of a declaration.  Merge an external declaration at block
10889         scope with a visible static declaration at file scope.
10890         (implicitly_declare): Give recycled old declaration the new type
10891         except for incompatible declarations of built-in functions, saving
10892         the old type.
10893
10894 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
10895
10896         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
10897
10898 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
10899
10900         * tree-alias-common.c (gate_pta): New function.
10901         (pass_build_pta): Use it.
10902         (pass_del_pta): Use it.
10903         (delete_alias_vars): Don't check flag_tree_points_to.
10904
10905 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
10906
10907         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
10908         TFmode as additional register mode cloberred by call.
10909
10910 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
10911
10912         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
10913         parallel pattern for library call returning DImode in
10914         mixed mode.
10915
10916 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
10917
10918         * config/rs6000/rs6000.c (function_arg): Generate parallel
10919         pattern for more split args.
10920
10921 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
10922
10923         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
10924         either gen_movdi_di_update or gen_movdi_si_update depending on
10925         target mode.
10926         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
10927         to generate two versions.
10928
10929 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
10930
10931         * Makefile.in (lambda-code.o): New.
10932         (lambda-trans.o): Ditto.
10933         (TREE_DATA_REF_H): Ditto.
10934         (LAMBDA_H): Ditto.
10935         (lambda-mat.o): Use LAMBDA_H.
10936         (tree-data-ref.o): Ditto.
10937         * lambda-code.c: New file.  Lambda code generation algorithm.
10938         * lambda-trans.c: Ditto. Lambda transformation matrix support.
10939         * lambda.h: Add lambda loop structures.
10940         Add lambda loopnest structures.
10941         Add lambda body vector structure.
10942         Add lambda linear expression structures.
10943         Add prototypes for functions in new files.
10944         * lambda-mat.c: Include tree.h
10945
10946 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
10947             Sebastian Pop  <pop@cri.ensmp.fr>
10948
10949         * tree-data-ref.h: Include lambda.h
10950         (free_dependence_relation): Declared here.
10951         (free_dependence_relations): Ditto.
10952         (free_data_refs): Ditto.
10953         * tree-data-ref.c (free_dependence_relation): New function.
10954         (free_dependence_relations): Ditto.
10955         (free_data_refs): Ditot.
10956         (analyze_all_data_dependences): Free datarefs and dependence_relations.
10957         (build_classic_dist_vector): Store in the dependence_relations the
10958         information. Each arc in the dependence_relations graph is labelled
10959         with the distance and direction vectors.
10960         (build_classic_dir_vector): Ditto.
10961         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
10962         Now computes again the whole dependence graph including read-read
10963         relations.
10964         (compute_data_dependences_for_loop): Now dependence_relations contains
10965         all the data, and thus it doesn't need to initialize the classic_dir
10966         and classic_dist vectors.
10967         (analyze_all_data_dependences): Adjusted for using the new interface of
10968         compute_data_dependences_for_loop.  Remove the statistics dump.
10969
10970 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
10971
10972         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
10973         (xtensa_expand_block_move): Update comment.
10974         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
10975
10976 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
10977
10978         PR target/13506
10979         * toplev.c (crash_signal): If we crashed while emitting
10980         a user asm, then die more gracefully.
10981
10982 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10983
10984         PR target/17119.
10985         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
10986         checking for a valid constant, regardless of sign.
10987
10988 2004-08-25  Richard Henderson  <rth@redhat.com>
10989
10990         PR target/16974
10991         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
10992         if the constant satisfies add_operand.
10993
10994 2004-08-25  Richard Henderson  <rth@redhat.com>
10995
10996         PR debug/10695
10997         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
10998         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
10999         unwind info for >16-bit frames.
11000
11001 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
11002
11003         PR target/17171
11004         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
11005
11006 2004-08-25  Richard Henderson  <rth@redhat.com>
11007
11008         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
11009         (TARGET_CANNOT_FORCE_CONST_MEM): New.
11010
11011 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
11012
11013         * doc/tree-ssa.texi: Document new operand iterator.
11014
11015 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
11016
11017         PR target/16480
11018         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
11019         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
11020         as PLUS base regs.
11021
11022 2005-08-28  Paul Brook  <paul@codesourcery.com>
11023
11024         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
11025         -mfpu=vfp -march=armv5t
11026         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
11027
11028 2004-08-25  Richard Henderson  <rth@redhat.com>
11029
11030         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
11031         * target.h (struct gcc_target): Add scalar_mode_supported_p.
11032         * targhooks.c (default_scalar_mode_supported_p): New.
11033         * targhooks.h (default_scalar_mode_supported_p): Declare.
11034         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
11035
11036         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
11037         before attempting to create types.  Tidy.
11038         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
11039
11040         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
11041         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
11042
11043 2004-08-25  Richard Henderson  <rth@redhat.com>
11044
11045         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
11046         set REAL_MODE_FORMAT for TFmode.
11047
11048 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
11049
11050         * c-decl.c (grokparm): New function.
11051         * c-tree.h (grokparm): New prototype.
11052
11053 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
11054
11055         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
11056         iterator controlling structure.
11057         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
11058         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
11059         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
11060         iterator flags.
11061         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
11062         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
11063         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
11064         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
11065         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
11066         Empty operand pointers.
11067         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
11068         (op_iter_next_use): New.  Return next use_operand_p.
11069         (op_iter_next_def): New.  Return next def_operand_p.
11070         (op_iter_next_tree): New.  Return next operands as a tree.
11071         (op_iter_init): New.  Initialize an iterator structure.
11072         (op_iter_init_use): New.  Initialize structure and get the first use.
11073         (op_iter_init_def): New.  Initialize structure and get the first def.
11074         (op_iter_init_tree): New.  Initialize structure and get the first tree.
11075         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
11076         (op_iter_init_maydef): New.  Initialize structure and get the first
11077         V_MAY_DEF operands.
11078         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
11079         * tree-dfa.c (compute_immediate_uses_for_stmt,
11080         redirect_immediate_uses): Use new operand iterator.
11081         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
11082         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
11083         operands instead of using *_disappeared_p routines.
11084         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
11085         ssa_rewrite_stmt): Use new operand iterator.
11086         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
11087         rewrite_trees): Use new operand iterator.
11088         * tree-pretty-print.c (dump_vops): Use new operand iterator.
11089         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
11090         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
11091         dump_points_to_info): Use new operand iterator.
11092         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
11093         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
11094         operand iterator.
11095         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
11096         propagate_necessity): Use new operand iterator.
11097         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
11098         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
11099         a parameter instead of a stmt_ann_t.
11100         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
11101         build_tree_conflict_graph): Use new operand iterator.
11102         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
11103         rewrite_mem_refs): Use new operand iterator.
11104         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
11105         check_loop_closed_ssa_use): Use new operand iterator.
11106         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
11107         * tree-ssanames.c (release_defs): Use new operand iterator.
11108         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
11109
11110 2004-08-25  Adam Nemet  <anemet@lnxw.com>
11111
11112         * tlink.c (initial_cwd): New variable.
11113         (tlink_init): Initialize it.
11114         (recompile_files): Use tlink_execute() instead of system().  Don't
11115         duplicate verbose output of collect_execute.  Restore initial_cwd.
11116         Update comment before the function.
11117
11118 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
11119
11120         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
11121         accept) a cast from one Objective-C pointer type to another.
11122
11123 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
11124
11125         * doc/install.texi: Document that libstdc++-v3 requires
11126         now automake 1.9.1.
11127
11128 2004-08-25  Caroline Tice  <ctice@apple.com>
11129
11130         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
11131         to comments at start of function.
11132         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
11133         comment.
11134         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
11135         merge_blocks_move_predecessor_nojumps,
11136         merge_blocks_move_successor_nojumps, merge_blocks_move,
11137         try_crossjump_to_edge, try_crossjump_bb): Likewise.
11138         * cfglayout.c (fixup_reorder_chain): Likewise.
11139         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
11140         cfg_layout_can_merge_blocks_p):  Likewise.
11141         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
11142         * passes.c (rest_of_compilation): Update comments for calling
11143         optimization that partitions hot/cold basic blocks.
11144         * doc/invoke.texi:  Update documentation of
11145         freorder-blocks-and-partition flag.
11146
11147 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
11148
11149         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
11150         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
11151
11152 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
11153
11154         * config/mips/mips.md (any_shift): New code macro.
11155         (optab, insn): New code attributes.
11156         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
11157         Use the standard rather than internal patterns for the MIPS16
11158         double-shift optimization.
11159         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
11160         Redefine using :GPR and any_shift.
11161         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
11162         to cover all three shifts.
11163         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
11164         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
11165         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
11166
11167 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
11168
11169         * gimplify.c (lookup_tmp_var): Separate temporaries when not
11170         optimizing.
11171
11172 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11173
11174         PR libstdc++/17005 (fix for HP-UX 11.11)
11175         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
11176         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
11177         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
11178         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
11179         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
11180         (LINK_SPEC): Handle march=1.0 option.
11181         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
11182         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
11183         (SUBTARGET_OPTIONS): New define.
11184         (LINK_SPEC): Handle march=1.0 option.
11185         (STARTFILE_SPEC): New define.
11186         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
11187         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
11188         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
11189         (SUBTARGET_OPTIONS): New define.
11190         (LINK_SPEC): Handle march=1.0 option.
11191         (STARTFILE_SPEC): New define.
11192         * config/pa/pa.c (override_options): Add code to process -munix= option.
11193         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
11194         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
11195         defines.
11196         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
11197         (SUBTARGET_OPTIONS): Provide default define.
11198         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
11199         STANDARD_STARTFILE_PREFIX_2): New defines.
11200         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
11201         (ENDFILE_SPEC): Use %O.
11202         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
11203         Mention issue caused by changing namespace and runtime to UNIX 95/98.
11204         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
11205         Document -munix=std option.
11206
11207 2004-08-25  Steven Bosscher  <stevenb@suse.de>
11208
11209         * cse.c (cse_around_loop, cse_check_loop_start,
11210         cse_set_around_loop): Remove.
11211         (cse_basic_block): Remove the around_loop argument.
11212         (cse_end_of_basic_block): Remove the after_loop argument.
11213         (cse_main): Likewise.
11214         * rtl.h (cse_main): Update prototype.
11215         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
11216         rest_of_handle_gcse): Update cse_main calls.
11217
11218 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
11219
11220         * tree.h  (build_int_cst): New, sign extended constant.
11221         (build_int_cstu): New, zero extended constant.
11222         (build_int_cst_wide): Renamed from build_int_cst.
11223         * tree.c (build_int_cst, build_int_cstu): New.
11224         (build_int_cst_wide): Renamed from build_int_cst.
11225         (make_vector_type, build_common_tree_nodes,
11226         build_common_tree_nodes_2): Adjust build_int_cst calls.
11227         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
11228         expand_builtin_strpbrk, expand_builtin_fputs,
11229         build_string_literal, expand_builtin_printf,
11230         expand_builtin_sprintf, fold_builtin_classify_type,
11231         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
11232         fold_builtin_toascii, fold_builtin_isdigit,
11233         simplify_builtin_strstr, simplify_builtin_strpbrk,
11234         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
11235         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
11236         DEF_ATTR_INT): Likewise.
11237         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
11238         Likewise.
11239         * c-lex.c (interpret_integer, lex_charconst): Likewise.
11240         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
11241         * c-pretty-print.c (pp_c_integer_constant): Likewise.
11242         * c-typeck.c (really_start_incremental_init, push_init_level,
11243         set_nonincremental_init_from_string): Likewise.
11244         * calls.c (load_register_parameters): Likewise.
11245         convert.c (convert_to_pointer): Likewise.
11246         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
11247         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
11248         build_gcov_info): Likewise.
11249         * except.c (init_eh, assign_filter_values): Likewise.
11250         * expmed.c (store_fixed_bit_field, extract_bit_field,
11251         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
11252         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
11253         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
11254         * expr.c (convert_move, emit_group_load, emit_group_store,
11255         expand_assignment, store_constructor, store_field,
11256         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
11257         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
11258         invert_truthvalue, optimize_bit_field_compare,
11259         decode_field_reference, all_ones_mask_p, constant_boolean_node,
11260         fold_div_compare, fold, fold_read_from_constant_string,
11261         fold_negate_const, fold_abs_const, fold_not_const, round_up,
11262         round_down): Likewise.
11263         * function.c (assign_parm_setup_block): Likewise.
11264         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
11265         Likewise.
11266         * stor-layout.c (layout_type, initialize_sizetypes,
11267         set_min_and_max_values_for_integral_type): Likewise.
11268         * tree-chrec.c (chrec_fold_multiply_poly_poly,
11269         reset_evolution_in_loop): Likewise.
11270         * tree-chrec.h (build_polynomial_chrec): Likewise.
11271         * tree-complex.c (build_replicated_const): Likewise.
11272         * tree-eh.c (honor_protect_cleanup_actions,
11273         lower_try_finally_onedest, lower_try_finally_copy,
11274         lower_try_finally_switch): Likewise.
11275         * tree-mudflap.c (mf_build_string, mx_register_decls,
11276         mudflap_register_call, mudflap_enqueue_constant): Likewise.
11277         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
11278         * tree-pretty-print.c (dump_generic_node): Likewise.
11279         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
11280         Likewise.
11281         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
11282         * tree-ssa-loop-niter.c (number_of_iterations_cond,
11283         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
11284         Likewise.
11285         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
11286         canonicalize_loop_induction_variables): Likewise.
11287         * tree-vectorizer.c (vect_create_index_for_array_ref,
11288         vect_transform_loop_bound, vect_compute_data_ref_alignment):
11289         Likewise.
11290
11291         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
11292         alpha_gimplify_va_arg_1): Likewise.
11293         * config/arm/arm.c (arm_get_cookie_size): Likewise.
11294         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
11295         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
11296         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
11297         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
11298         mips_gimplify_va_arg_expr): Likewise.
11299         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
11300         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
11301         add_compiler_branch_island): Likewise.
11302         * config/s390/s390.c (s390_va_start): Likewise.
11303         * config/sh/sh.c (sh_va_start): Likewise.
11304         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
11305         Likewise.
11306         * config/xtensa/xtensa.c (xtensa_va_start,
11307         xtensa_gimplify_va_arg_expr): Likewise.
11308
11309         * objc/objc-act.c (build_objc_string_object,
11310         build_objc_symtab_template, init_def_list, init_objc_symtab,
11311         init_module_descriptor, generate_static_references,
11312         build_selector_translation_table, get_proto_encoding,
11313         build_typed_selector_reference, build_selector_reference,
11314         build_next_objc_exception_stuff,
11315         build_method_prototype_list_template, generate_descriptor_table,
11316         generate_protocols, build_protocol_initializer,
11317         build_ivar_list_template, build_method_list_template,
11318         build_ivar_list_initializer, generate_ivars_list,
11319         generate_dispatch_table, generate_protocol_list,
11320         build_category_initializer, build_shared_structure_initializer,
11321         generate_shared_structures, handle_impent,
11322         generate_objc_image_info): Likewise.
11323
11324 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
11325
11326         * cfglayout.c (duplicate_insn_chain): Remove references to
11327         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
11328         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
11329         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
11330         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
11331         and NOTE_INSN_LOOP_CONT.
11332         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
11333         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
11334         and NOTE_INSN_LOOP_CONT.
11335         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
11336         check_dbra_loop, loop_dump_aux): Remove references to removed notes
11337         and fields.
11338         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
11339         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
11340         references to removed notes and fields.
11341         (subtract_reg_term, ujump_to_loop_cont): Remove.
11342
11343 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
11344
11345         * doc/install.texi: Document that libcpp does not require
11346         Automake any longer.  Document that Automake 1.9.1 should
11347         work everywhere.
11348
11349 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
11350
11351         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
11352         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
11353         DWARF_DEBUGGING_INFO from choice-of-definition chain;
11354         restructure using C89 features (#elif, #error).
11355         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
11356         * config/sh/sh.h: Remove references to DWARF_DEBUG.
11357         * doc/invoke.texi: Remove references to DWARF version 1;
11358         clarify why -gdwarf-2<n> doesn't work.
11359
11360 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
11361
11362         * basic-block.h (BB_SET_PARTITION): Clear old value first.
11363         * cfg.c (clear_bb_flags): Don't clear partition setting.
11364         * ifcvt.c (find_if_case_1): Remove ??? comment.
11365
11366 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
11367
11368         PR target/17052
11369         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
11370         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
11371         current_function_stdarg in place of sysv_varargs_p.
11372         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
11373         sysv_varargs_p.
11374
11375 2004-08-24  Richard Henderson  <rth@redhat.com>
11376
11377         PR target/16298
11378         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
11379         random codes within CONST.
11380
11381 2004-08-24  James E Wilson  <wilson@specifixinc.com>
11382
11383         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
11384         -freorder-blocks-and-partition.
11385
11386 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11387
11388         PR middle-end/17044
11389         * tree-ssa-threadupdate.c (redirection_data): Make static.
11390         (thread_block): Use ggc_alloc_cleared to allocate struct
11391         redirection_data.  Don't free elements in redirection_data.
11392
11393 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11394
11395         * config/mips/predicates.md (small_data_pattern): Match prefetches.
11396
11397 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11398
11399         PR tree-optimization/17016
11400         * tree-ssa-loop-niter.c (number_of_iterations_cond,
11401         number_of_iterations_exit): Use POINTER_TYPE_P instead
11402         of testing for POINTER_TYPE.
11403
11404 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11405
11406         * tree-ssa-loop-ivcanon.c: New file.
11407         * tree-ssa-loop-manip.c (create_iv): New function.
11408         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
11409         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
11410         * cfgloop.c (mark_single_exit_loops): New function.
11411         (verify_loop_structure): Verify single-exit loops.
11412         * cfgloop.h (struct loop): Add single_exit field.
11413         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
11414         (mark_single_exit_loops): Declare.
11415         (tree_num_loop_insns): Declare.
11416         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
11417         (duplicate_loop_to_header_edge): Use it.
11418         * common.opt (fivcanon): New flag.
11419         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
11420         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
11421         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
11422         (bsi_insert_on_edge_immediate): New function.
11423         * tree-flow.h (bsi_insert_on_edge_immediate,
11424         canonicalize_induction_variables, tree_unroll_loops_completely,
11425         create_iv): Declare.
11426         * tree-optimize.c (init_tree_optimization_passes): Add
11427         pass_iv_canon and pass_complete_unroll.
11428         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
11429         * tree-scalar-evolution.c (get_loop_exit_condition,
11430         get_exit_conditions_rec, number_of_iterations_in_loop,
11431         scev_initialize): Use single_exit information.
11432         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
11433         missing assumptions.
11434         (loop_niter_by_eval):  Return number of iterations as unsigned
11435         int.
11436         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
11437         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
11438         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
11439         New passes.
11440         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
11441         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
11442         the defining statement is ready.
11443         * tree-vectorizer.c (vect_create_iv_simple): Removed.
11444         (vect_create_index_for_array_ref, vect_transform_loop_bound):
11445         Use create_iv.
11446         (vect_transform_loop_bound): Use single_exit information.
11447         (vect_analyze_loop_form): Cleanup bogus tests.
11448         (vectorize_loops): Do not call flow_loop_scan.
11449         * tree.h (may_negate_without_overflow_p): Declare.
11450         * fold-const.c (may_negate_without_overflow_p): Split out from ...
11451         (negate_expr_p): ... this function.
11452         (tree_expr_nonzero_p): Handle overflowed constants correctly.
11453         * doc/invoke.texi (-fivcanon): Document.
11454         * doc/passes.texi: Document canonical induction variable creation.
11455
11456 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11457
11458         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
11459         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
11460         using the mode of the operand to decide between them.
11461         * config/mips/mips.md (MOVECC): New mode macro.
11462         (ccreg): New mode attribute.
11463         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
11464         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
11465         (mov[sd]icc): Redefine using :GPR.
11466
11467 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11468
11469         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
11470         (mips_prefetch_cookie): New function.
11471         * config/mips/mips.c (print_operand_address): Fix handling of
11472         ADDRESS_CONST_INT.
11473         (mips_emit_prefetch): Delete.
11474         (mips_prefetch_cookie): New function.
11475         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
11476         mode of QImode for the address_operand.  Use mips_prefetch_cookie
11477         to calculate the first "pref" operand.
11478         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
11479         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
11480
11481 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
11482
11483         * arm.md: Include predicates.md.
11484         * predicates.md: New file.
11485         * arm.c (s_register_operand, arm_hard_register_operand)
11486         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
11487         (arm_immediate_operand, arm_neg_immediate_operand)
11488         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
11489         (arm_add_operand, arm_addimm_operand, arm_not_operand)
11490         (offsettable_memory_operand, alignable_memory_operand)
11491         (arm_reload_memory_operand, arm_float_rhs_operand)
11492         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
11493         (index_operand, shiftable_operator, logical_binary_operator)
11494         (shift_operator, equality_operator, arm_comparison_operator)
11495         (minmax_operator, cc_register, dominant_cc_register)
11496         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
11497         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
11498         (const_shift_operand, load_multiple_operation)
11499         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
11500         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
11501         (cirrus_register_operand, cirrus_fp_register)
11502         (cirrus_shift_const): Delete, replaced with equivalents in
11503         predicates.md.
11504         (shift_op): Handle ROTATE.
11505         * arm-protos.h: Delete declarations for above.
11506         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
11507         * t-arm (MD_INCLUDES): Add predicates.md.
11508         (s-preds): Depends on MD_INCLUDES.
11509
11510 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11511
11512         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
11513         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
11514         patterns.  Redefine using :GPR.  Give the match_operator a mode.
11515         Use '%2' rather than '%z2' for operand 2.
11516
11517 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11518
11519         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
11520         attribute.
11521
11522 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11523
11524         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
11525         of internal patterns.
11526         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
11527         Redefine using :P.
11528         (tablejump): Use expand_binop to calculate address.  Adjust names
11529         of internal patterns.
11530         (tablejump[sd]i): Renamed from tablejump_internal[12].
11531         Redefine using :P.
11532         (tablejump_mips16[12]): Delete.
11533
11534 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11535
11536         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
11537         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
11538         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
11539         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
11540         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
11541
11542 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11543
11544         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
11545         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
11546         using :GPR.
11547         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
11548         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
11549         (*branch_equality[sd]i_inverted): Likewise
11550         branch_equality{,_di}_inverted.
11551         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
11552         Redefine using :GPR.
11553
11554 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
11555
11556         * rtl.def: Reorganize, placing all codes used only in machine
11557         descriptions at the end.
11558
11559         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
11560         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
11561         rtx_name, rtx_format arrays by direct reference to rtl.def,
11562         first undefining GENERATOR_FILE.  Define enum insn_note and
11563         note_insn_name array by direct reference to insn-notes.def.
11564         (adjust_field_rtx_def): Remove local definition of rtx_name.
11565         Use symbolic names for insn notes.
11566         * Makefile.in (gengtype.o): Update dependencies.
11567
11568 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
11569
11570         * basic-block.h (struct basic_block_def): Reorder fields to
11571         eliminate interior padding.  Remove 'partition' field.
11572         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
11573         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
11574         (BB_COPY_PARTITION): New macros.
11575         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
11576         Replace all references to the 'partition' field of a basic
11577         block with new macros.
11578
11579         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
11580         * final.c (final_scan_insn): Don't handle it.
11581         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
11582         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
11583         * sched-rgn.c (sched_is_disabled_for_current_region_p):
11584         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
11585
11586 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
11587
11588         * c-decl.c (c_init_decl_processing): Adjust
11589         build_common_tree_nodes call.
11590         * expmed.c (const_mult_add_overflow_p): Use
11591         build_distinct_type_copy.
11592         * stor-layout.c (early_type_list): Remove.
11593         (layout_type): Don't append to early_type_list.
11594         (initialize_sizetypes): Add signed_p argument.
11595         (set_sizetype): Overwrite the stub type nodes directly.
11596         * tree.c (copy_node_stat): Clear a type's value cache here ...
11597         (build_distinct_type): ... not here.
11598         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
11599         * tree.h (initialize_sizetypes): Add signed_p argument.
11600         (build_common_tree_nodes): Likewise.
11601
11602         * objc/objc-act.c (get_static_reference): Use
11603         build_variant_type_copy.
11604         (get_protocol_reference): Likewise.
11605         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
11606
11607 2004-08-24  Richard Henderson  <rth@redhat.com>
11608             Andrew Pinski  <apinski@apple.com>
11609
11610         * gimplify.c (gimplify_array_ref_to_plus): Delete.
11611         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
11612         for ARRAY_REF.
11613
11614         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
11615         ARRAY_REF also to get to the STRING_CST.
11616
11617 2004-08-24  Paul Brook  <paul@codesourcery.com>
11618
11619         * config/arm/arm.c (arm_override_options): Update error message.
11620         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
11621         TARGET_HARD_FLOAT_ABI.
11622         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
11623         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
11624
11625 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11626
11627         PR target/17093
11628         * config/m32r.md (movsi_sda): Add SI mode specification to
11629         UNSPEC.
11630
11631 2004-08-24  Nick Clifton  <nickc@redhat.com>
11632
11633         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
11634         of seth_add3_operand.
11635
11636 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
11637
11638         * Makefile.in (PROTO_OBJS): Add errors.o.
11639         * protoize.c (fancy_abort): Remove.
11640         * mips-tfile.c (fancy_abort): Add parameters.
11641
11642 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
11643
11644         * doc/trouble.texi (C++ misunderstandings): Fix example code.
11645
11646 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
11647
11648         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
11649         (host-default.o): Add dependency on HOOKS_H.
11650         * config/x-linux: Likewise.
11651         * config/x-solaris: Likewise.
11652         * config/i386/x-mingw32: Likewise.
11653         * config/rs6000/x-darwin: Likewise.
11654
11655 2004-08-23  James E Wilson  <wilson@specifixinc.com>
11656
11657         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
11658         DEF_REG_NOTE.
11659
11660 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
11661
11662         PR c/14492
11663         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
11664
11665 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
11666
11667         * cfg.c (check_bb_profile): Fix typos.
11668         * function.c (assign_parm_is_stack_parm): Likewise.
11669         * tree-nested.c: Likewise.
11670
11671 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
11672
11673         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
11674         Remove TYPECODE.
11675         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
11676
11677 2004-08-23  Eric Christopher  <echristo@redhat.com>
11678
11679         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
11680         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
11681         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
11682         * target.h: Ditto.
11683         * hooks.h: Include machmode.h.
11684         (hook_bool_mode_false): Declare.
11685         * hooks.c (hook_bool_mode_false): Define.
11686         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
11687         * stor-layout.c (layout_type): Ditto.
11688         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
11689         Define to target macro.
11690         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
11691         * config/arm/arm.c: Ditto. Use.
11692         * config/arm/arm.h: Ditto.
11693         * config/arm/arm-protos.h: Ditto.
11694         * config/i386/i386.c: Ditto.
11695         * config/i386/i386.h: Ditto.
11696         * config/rs6000/rs6000.c: Ditto.
11697         * config/rs6000/rs6000.h: Ditto.
11698         * config/sh/sh.c: Ditto.
11699         * config/sh/sh.h: Ditto.
11700         * config/sh/sh-protos.h: Ditto.
11701         * config/sh/sh.md: Use.
11702         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
11703         to TARGET_VECTOR_MODE_SUPPORTED_P.
11704
11705 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
11706
11707         * Makefile.in (BUILD_ERRORS): Set to build-errors.
11708         (errors.o): New target for host.
11709         (build-errors.o): New target for build.
11710         (genobjs): Replace errors.o with build-errors.
11711         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
11712         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
11713         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
11714         (fix-header.o): Add errors.h
11715         * collect2.c (fancy_abort): Add parameters.
11716         * collect2.h (fancy_abort): Don't declare.
11717         * errors.h (fancy_abort): Don't declare.
11718         * errors.c: Include either bconfig.h or config.h.
11719         (fancy_abort): Trim filename.
11720         * fix-header.c (v_fatal, fatal): Remove.
11721         (progname): Remove definition.
11722         (main): Set progname here.
11723         * gcc.c (fancy_abort): Add parameters.
11724         * gcc.h (fancy_abort): Remove declaration.
11725         * gcov.c (fancy_abort): Remove.
11726         * rtl.h (fancy_abort): Don't declare.
11727         (abort): Don't define.
11728         * tree.h (fancy_abort): Don't declare.
11729         (abort): Don't define.
11730         * system.h (fancy_abort): Declare.
11731         (abort): Define to fancy_abort.
11732         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
11733
11734         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
11735         (usize_type, ubitsizetype): Remove.
11736         * stor-layout.c (set_sizetype): Don't initialize usizetype,
11737         ubitsizetype.
11738         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
11739
11740         * tree.h (build_distinct_type_copy): New.
11741         (build_type_copy): ... here.  Rename to ...
11742         (build_variant_type_copy): ... here.
11743         * tree.c (build_qualified_type): Rename build_type_copy call.
11744         (build_distinct_type_copy): New, broken out of ...
11745         (build_type_copy): ... here.  Rename to ...
11746         (build_variant_type_copy): ... here.  Use
11747         build_distinct_type_copy.
11748         (build_common_tree_nodes_2): Rename build_type_copy call.
11749         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
11750         call.
11751         (handle_packed_attribute, handle_unused_attribute,
11752         handle_transparanet_union_attribute, handle_aligned_attribute,
11753         handle_deprecated_attribute): Likewise.
11754         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
11755         Likewise.
11756         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
11757         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
11758         build_distinct_type_copy.
11759
11760 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11761
11762         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
11763         attribute.
11764
11765 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11766
11767         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
11768         loads and stores.
11769         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
11770         formerly unnamed patterns.  Redefine using :P for the address.  Remove
11771         explicit length attributes.
11772
11773 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11774
11775         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
11776         New functions.
11777         (single_reachable_address): Use them.
11778         (schedule_sm): Add dump.
11779         (is_call_clobbered_ref): New function.
11780         (determine_lsm_reg): Check whether the reference is call clobbered.
11781         Only work for gimple_reg_type values.
11782
11783 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11784
11785         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
11786         $31 store insns.  Redefine using :GPR.
11787
11788 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11789
11790         * config/mips/mips.md (P): New mode macro.
11791         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
11792         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
11793         Add mode attributes.
11794
11795 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11796
11797         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
11798         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
11799         later constants to cover the gap.
11800         (load, store): New mode attributes.
11801         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
11802         Use new unspec constants.
11803
11804 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11805
11806         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
11807         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
11808         to use register_operand rather than uns_arith_operand as the predicate
11809         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
11810         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
11811         Redefine using :GPR.  Make same predicate change here.  Extend the
11812         commutativity of operands 1 and 2 from the SImode version to the
11813         DImode one.
11814         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
11815         but with no predicate changes.
11816         (*nor[sd]i3): Redefine using :GPR.
11817
11818 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11819
11820         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
11821         noreturn functions.
11822
11823 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11824
11825         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
11826         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
11827         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
11828         rather than "%z2" (with a fake const0_rtx for operand 2).
11829         (ffs[sd]i2): Redefine using :GPR.
11830         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
11831
11832 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11833
11834         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
11835
11836 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11837
11838         * config/mips/mips.md (any_extend): New code macro.
11839         (u, su): New code attributes.
11840         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
11841         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
11842         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
11843         (*{s,u}mul_acc_di): Redefine using any_extend.
11844         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
11845         to reflect real insn names.
11846         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
11847         with an any_extend template.
11848         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
11849         Add '*' to name.
11850
11851 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11852
11853         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
11854         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
11855         (mul[sd]i3_r4000): Redefine using :GPR.
11856         (mulsi3_mult3): Don't check TARGET_MAD separately.
11857         (muldi3_mult3): Moved after mulsi_mult3.
11858
11859 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11860
11861         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
11862         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
11863         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
11864         (TARGET_GAS, TARGET_MIPS_AS): Delete.
11865         (TARGET_GPWORD): Define to true for n32 on IRIX.
11866         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
11867         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
11868         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
11869         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
11870         (MDEBUG_ASM_SPEC): Delete, folding into...
11871         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
11872         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
11873         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
11874         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
11875         to define asm_abi_default_spec.
11876         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
11877         (TARGET_ASM_SELECT_SECTION): Delete.
11878         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
11879         for non-mips16 code, removing previous workaround for SGI assemblers.
11880         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
11881         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
11882         (override_options): Remove !TARGET_GAS and !have_named_sections code.
11883         (print_operand): Fold TARGET_GAS conditionals into asm strings.
11884         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
11885         ASM_STABS_OP and ASM_STABN_OP.
11886         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
11887         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
11888         (mips_output_function_prologue): Remove !TARGET_GAS code.
11889         (mips_select_rtx_section): Remove !have_named_sections code.
11890         (mips_select_section): Delete.
11891         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
11892         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
11893         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
11894         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
11895         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
11896         * config/mips/windiss.h (ASM_SPEC): Likewise.
11897
11898 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11899
11900         * read-rtl.c (map_value, mapping, macro_group): New structures.
11901         (BELLWETHER_CODE): New macro.
11902         (modes, codes, bellwether_codes): New variables.
11903         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
11904         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
11905         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
11906         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
11907         (add_map_value, initialize_macros): New functions.
11908         (def_hash, def_hash_eq_p): Generalize to anything that points to,
11909         or starts with, a char * field.
11910         (find_macro, read_mapping, check_code_macro): New functions.
11911         (read_rtx_1): New, split out from read_rtx.  Handle the new
11912         define_{mode,code}_{macro,attr} constructs.  Use find_macro
11913         to parse the name of a code or mode.  Use BELLWETHER_CODE to
11914         extract the format and to choose a suitable code for rtx_alloc.
11915         Modify recursive invocations to use read_rtx_1.
11916         (read_rtx): Call initialize_macros.  Apply code and mode macros
11917         to the rtx returned by read_rtx_1.  Cache everything after the
11918         first macro expansion for subsequent read_rtx calls.
11919         * doc/md.texi: Document new .md constructs.
11920         * config/mips/mips.md (GPR): New mode macro.
11921         (d, si8_di5): New mode attributes.
11922         (any_cond): New code macro.
11923         (add[sd]i3): Redefine using :GPR.
11924         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
11925         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
11926         previously unnamed MIPS16 patterns.
11927         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
11928         lines.  Don't match (plus (const_int 0) ...).
11929         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
11930         Use a define_split to generate the addition.
11931         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
11932         (subsi3_internal): Delete.
11933         (*subsi3_extended): Renamed from subsi3_internal_2.
11934         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
11935         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
11936         using an any_cond template.
11937
11938 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11939
11940         * read-rtl.c (read_rtx): Tidy use of format_ptr.
11941
11942 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
11943
11944         * read-rtl.c (string_obstack): New file-scope variable.
11945         (read_string, read_quoted_string, read_braced_string)
11946         (read_escape): Remove obstack parameter and use string_obstack instead.
11947         (read_rtx): Remove function-local rtl_obstack and initialize
11948         string_obstack instead.  Update call to read_string.
11949
11950 2004-08-22  Andrew Pinski  <apinski@apple.com>
11951
11952         PR c/15262
11953         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
11954         expression is not constant.
11955         (c_finish_return): Do not go through INDIRECT_REF when looking
11956         for the inner expression of an ADDR_EXPR for warning about.
11957
11958 2004-08-22  Richard Henderson  <rth@redhat.com>
11959
11960         PR 17075
11961         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
11962         create new blocks and fall through.
11963         (expand_gimple_basic_block): Update to match.
11964
11965 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
11966
11967         * reload.c (find_reloads_address): Make return value tri-state.
11968         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
11969         (find_reloads): Assume that reloaded addresses match 'o' or
11970         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
11971         returned 1 (not -1).  Omit optional reloads for address operands
11972         only if find_reloads_address returned 1 (not -1).
11973
11974         * config/s390/s390.c (legitimize_reload_address): New function.
11975         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
11976         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
11977         legitimize_reload_address.
11978
11979 2004-08-22  Richard Hendersion  <rth@redhat.com>
11980
11981         * tree.h (SAVE_EXPR_RESOLVED_P): New.
11982         * gimplify.c (gimplify_save_expr): Use it.
11983         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
11984         on the temporary variable.
11985
11986 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
11987
11988         * fold-const.c (rtl_expr_nonnegative_p): Delete.
11989         * tree.h (rtl_expr_nonnegative_p): Remove.
11990
11991 2004-08-22  Steven Bosscher  <stevenb@suse.de>
11992
11993         * config/i386/ppro.md (ppro_complex_insn): Add missing check
11994         for cpu==pentiumpro.
11995
11996         * combine.c (struct reg_stat): Fix comment typo.
11997
11998 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
11999
12000         * c-tree.h (c_sizeof_nowarn): Remove.
12001
12002 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
12003
12004         * c-decl.c (set_array_declarator_type): Rename to
12005         set_array_declarator_inner.
12006         (build_c_parm, build_attrs_declarator, build_function_declarator):
12007         New functions.
12008         (make_pointer_declarator): Call build_attrs_declarator.
12009         * c-tree.h (set_array_declarator_type): Rename to
12010         set_array_declarator_inner.
12011         (build_c_parm, build_attrs_declarator, build_function_declarator):
12012         New prototypes.
12013         * c-parse.in (after_type_declarator,
12014         parm_declarator_starttypename, parm_declarator_nostarttypename,
12015         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
12016         firstparm): Use these functions
12017
12018 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
12019
12020         * c-decl.c (build_array_declarator, set_array_declarator_type,
12021         start_decl, grokdeclarator, grokparms): Change boolean parameters
12022         to type bool.
12023         * c-tree.h (build_array_declarator, set_array_declarator_type,
12024         start_decl): Update prototypes.
12025         * c-decl.c, c-parse.in: All callers changed.
12026
12027 2004-08-21  Mike Stump  <mrs@apple.com>
12028
12029         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
12030         (darwin_fix_and_continue): Likewise.
12031         (darwin_fix_and_continue_switch): Likewise.
12032         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
12033         (darwin_fix_and_continue): Likewise.
12034         (darwin_fix_and_continue_switch): Likewise.
12035
12036 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
12037
12038         PR  c++/16030
12039         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
12040         Remove, merging into ...
12041         (gen_stdcall_or_fastcall_suffix): New function, returning tree
12042         rather than const char*, and accepting additional parameter.
12043         Don't add suffix to '*'-prefixed symbols or variadic functions.
12044         (i386_pe_encode_section_info): Adjust for call to new function.
12045         Call change_decl_assembler_name.
12046
12047 2004-08-20  Mike Stump  <mrs@apple.com>
12048
12049         * config/darwin.c (machopic_indirect_data_reference): Mark
12050         stubs as defined.
12051         * config/386/386.c (darwin_local_data_pic): Add.
12052         (legitimate_constant_p): Reorder so that PLUS handling runs
12053         before darwin_local_data_pic to match the ordering in
12054         legitimate_pic_address_disp_p and so that MINUS runs after
12055         darwin_local_data_pic as otherwise the darwin_local_data_pic
12056         logic can be skipped, which would be very bad.
12057         (legitimate_pic_address_disp_p): Move from from here to
12058         darwin_local_data_pic so it can be reused.
12059
12060 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
12061
12062         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
12063         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
12064         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
12065         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
12066         (RS6000_ABI_NAME): Define as "linux".
12067         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
12068         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
12069         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
12070         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
12071         * config/rs6000/rs6000.c (dot_symbols): New global var.
12072         (rs6000_output_function_entry): New function, modified for
12073         !DOT_SYMBOLS..
12074         (print_operand <case 'z'>): ..extracted from here.
12075         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
12076         (rs6000_output_function_epilogue): Likewise.
12077         (rs6000_elf_declare_function_name): Likewise.
12078         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
12079         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
12080         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
12081         * configure: Regenerate.
12082         * config.in: Regenerate.
12083
12084 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
12085
12086         * reload.c (find_reloads_address): Fix thinko in previous change.
12087
12088         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
12089         a CONST_INT.
12090
12091 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
12092
12093         PR rtl-optimization/17099
12094         * combine.c (force_to_mode): Check if inner_mask has any bits set
12095         outside of GET_MODE (x) instead of op_mode.
12096
12097 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
12098
12099         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
12100         fragment.
12101         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
12102         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
12103         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
12104         architecture.
12105         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
12106         configurations.
12107         * config/arm/t-symbian: New file.
12108
12109 2004-08-20  Andrew Pinski  <apinski@apple.com>
12110
12111         * regrename.c (kill_value_regno): ANSIfy.
12112
12113 2004-08-20  Dale Johannesen  <dalej@apple.com>
12114
12115         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
12116
12117 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
12118
12119         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
12120         (kill_value_regno): New function, derived from kill_value.
12121         (kill_value): Update.
12122         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
12123
12124 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
12125
12126         Fix PR tree-optimization/17111
12127         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
12128         of non-value_handles.
12129         (bitmap_set_contains): All constants are in every set.
12130
12131 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
12132
12133         * fold-const.c (round_up, round_down): Use build_int_cst.
12134         Optimize common case.
12135
12136 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
12137             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12138
12139         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
12140         one_only_data_section): Rename to som_readonly_data_section,
12141         som_one_only_readonly_data_section and som_one_only_data_section.
12142         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
12143         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
12144         conditional defines.
12145         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
12146         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
12147         string values.
12148         (pa_select_section): Use renamed section functions.
12149         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
12150         SOM_READONLY_DATA_SECTION_FUNCTION,
12151         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
12152         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
12153         Define here ...
12154         * config/pa/som.h: ... not here.
12155         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
12156         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
12157         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
12158         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
12159         (READONLY_DATA_SECTION): Use som_readonly_data_section.
12160
12161 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
12162
12163         * fold-const.c (int_const_binop): Don't generate non-overflowing
12164         size-types specially.
12165         (fold_convert_const): Likewise.
12166
12167         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
12168         clear cache on copied sizetype.
12169
12170 2004-08-20  Ben Elliston  <bje@au.ibm.com>
12171
12172         * configure.ac: Don't escape apostrophe in --enable-coverage help.
12173         * configure: Regenerate.
12174
12175 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
12176
12177         PR 5620
12178         * gcc.c (struct stat input_stat): Don't define if
12179         HOST_LACKS_INODE_NUMBERS
12180         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
12181         than stat to determine if temp file is same as input file.
12182         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
12183         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
12184
12185 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
12186
12187         * configure.ac (mips*-*-*): Print an error if not using GAS.
12188         * configure: Regenerated.
12189         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
12190         comments about buggy MIPSpro assemblers.
12191         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
12192         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
12193         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
12194         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
12195         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
12196         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
12197         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
12198         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
12199         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
12200         of more general IRIX 6 definitions.
12201         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
12202         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
12203         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
12204         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
12205         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
12206         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
12207         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
12208         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
12209         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
12210         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
12211         (LINK_SPEC): Move most of definition to iris.h.
12212         (SUBTARGET_LINK_SPEC): New macro.
12213         (IRIX_STARTFILE_SPEC): Fold into...
12214         (STARTFILE_SPEC): ...here.
12215         (IRIX_ENDFILE_SPEC): Fold into...
12216         (ENDFILE_SPEC): ...here.
12217         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
12218         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
12219         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
12220         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
12221         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
12222         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
12223         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
12224         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
12225         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
12226         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
12227         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
12228         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
12229         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
12230         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
12231         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
12232         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
12233         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
12234         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
12235         (TARGET_IRIX6): Define to 1.
12236         (DRIVER_SELF_SPECS): Define.
12237         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
12238         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
12239         (SUBTARGET_LINK_SPEC): New macro.
12240         (IRIX_STARTFILE_SPEC): Fold into...
12241         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
12242         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
12243         (LIB_SPEC, LIBGCC_SPEC): Use them.
12244         (LIB_SPEC): Remove !mabi=* case.
12245         (IRIX_ENDFILE_SPEC): Fold into...
12246         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
12247         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
12248         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
12249         (TARGET_IRIX6): New macro.
12250         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
12251         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
12252         (LABEL_AFTER_LOC): Delete.
12253         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
12254         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
12255         (mips_build_builtin_va_list): Check TARGET_IRIX6.
12256         (override_options): Remove TARGET_SGI_O32_AS-related code.
12257         (irix_output_external_libcall): Make static.
12258         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
12259         LABEL_AFTER_LOC.
12260         (mips_file_start): Tidy guard for ABI sections.  Remove use of
12261         ABICALLS_ASM_OP; use .abicalls instead.
12262         (mips_output_aligned_decl_common, mips_declare_object_name)
12263         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
12264         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
12265         .globl foo .text directives.
12266         (irix_asm_named_section_1, irix_asm_named_section)
12267         (irix_section_align_entry, irix_section_align_htab)
12268         (irix_orig_asm_out_file, irix_section_align_entry_eq)
12269         (irix_section_align_entry_hash, irix_asm_output_align)
12270         (irix_file_start, irix_section_align_1, copy_file_data)
12271         (irix_file_end, irix_section_type_flags): Delete.
12272         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
12273         Use standard section syntax.  Remove protective "jr $31".
12274         (__gcc_fini): Likewise .gcc_fini.
12275         * config/mips/irix-crtn.asm: Adjust sections accordingly.
12276         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
12277         iris5gas.h.
12278         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
12279         from t-irix-gld.
12280         (EXTRA_MULTILIB_PARTS): Define.
12281         * config/mips/t-iris6: Remove bogus comment.
12282         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
12283         * config/mips/iris5gas.h, config/mips/iris5gld.h,
12284         config/mips/iris6gas.h, config/mips/iris6gld.h,
12285         config/mips/t-iris5-as, config/mips/t-iris5-gas
12286         config/mips/t-irix-gld: Delete.
12287         * config/mips/iris.h: New file.
12288         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
12289
12290 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
12291
12292         * postreload.c (reload_cse_move2add): Allow any condjump, but check
12293         that the implicit set isn't clobbered in the jump insn.
12294
12295 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
12296
12297         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
12298         * optabs.c (init_optabs): Don't check it.
12299         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
12300         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
12301
12302 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
12303
12304         * config/s390/s390.md (s390_warn_framesize_string)
12305         (s390_warn_dynamic_string, s390_stack_size_string)
12306         (s390_stack_guard_string): New global string variables.
12307         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
12308         (s390_stack_guard): New global variables.
12309         (override_options): Added checks for the new options.
12310         (s390_emit_prologue): Emit stack check and trap code and perform
12311         compile time stack size checking.
12312
12313         * config/s390/s390.h (TARGET_OPTIONS): Added new options
12314         "warn-framesize", "warn-dynamicstack", "stack-size" and
12315         "stack-guard".
12316
12317         * doc/invoke.texi: Added documentation for the new options.
12318
12319 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
12320
12321         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
12322         to eliminate warning.
12323         (linear_search_fdes): Declare p as unsigned.
12324         (binary_search_mixed_encoding_fdes): Likewise.
12325         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
12326         to eliminate warning.
12327         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
12328         type cast.
12329
12330 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
12331
12332         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
12333         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
12334         instead of one.  Check for strictly legitimate address.
12335         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
12336         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
12337
12338 2004-08-19  Eric Christopher  <echristo@redhat.com>
12339
12340         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
12341         * langhooks.h (unsave_expr_now): Ditto.
12342         * tree.h (unsave_expr_1): Remove prototype.
12343         (lhd_unsave_expr_now): Rename to unsave_expr_now.
12344         * tree-inline.c (unsave_expr_1): Move here
12345         from tree.c. Make static.
12346         (unsave_expr_now): Rename from lhd_unsave_expr_now.
12347         * tree-sra.c: Fix up for rename.
12348         * tree-ssa-copy.c: Ditto.
12349         * tree-eh.c: Ditto.
12350         * tree.c (unsave_expr_1): Move to tree-inline.c.
12351
12352 2004-08-19  Caroline Tice  <ctice@apple.com>
12353
12354         * config/i386/cygming.h (switch_to_section):  Fix typo (change
12355         in_unlikely_text_section to in_unlikely_executed_text).
12356
12357 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
12358
12359         * vec.h (VEC_lower_bound): New macro.
12360
12361 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
12362
12363         PR target/16446
12364         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
12365         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
12366         treat each ABI separately.  Deal with n32/n64 complex float arguments.
12367         (function_arg): Add associated complex handling here.
12368
12369 2004-08-19  Richard Henderson  <rth@redhat.com>
12370
12371         * config/arm/arm.c (arm_gen_load_multiple): Use
12372         adjust_automodify_address.  Take base memory and offset instead
12373         of unchanging/struct/scalar bits.
12374         (arm_gen_store_multiple): Likewise.
12375         (arm_gen_movmemqi): Use adjust_automodify_address.
12376         * config/arm/arm-protos.h: Update decls.
12377         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
12378         (store_multiple): Similarly.
12379
12380 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
12381
12382         * regclass.c (globalize_reg): Update call_really_used_regs.
12383
12384 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
12385
12386         * doc/invoke.texi (integer-share-limit): Document.
12387
12388         * tree.h (TYPE_CACHED_VALUES_P): New.
12389         (TYPE_CACHED_VALUES): New.
12390         (TYPE_ORIG_SIZE_TYPE): Adjust.
12391         * tree.def (INTEGER_CST): Update documentation.
12392         * tree.c: Inlcude params.h.
12393         (build_int_cst): Cache small values.
12394         (build_type_copy): Do not copy the value cache.
12395         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
12396         unneeded zeroing.
12397         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
12398         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
12399         cache.
12400         * fold-const.c (force_fit_type): Copy value when setting
12401         overflows.
12402         (int_const_binop): Likewise.
12403         * stor-layout.c: Include params.h
12404         (set_sizetype): Create values cache.
12405         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
12406         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
12407         * params.h (INTEGER_SHARE_LIMIT): New.
12408         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
12409
12410 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
12411
12412         * gimplify.c (gimplify_minimax_expr): Remove.
12413         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
12414
12415 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
12416
12417         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
12418         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
12419
12420 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
12421
12422         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
12423
12424 2004-08-18  Andrew Pinski  <apinski@apple.com>
12425
12426         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
12427
12428 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
12429
12430         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
12431         (__aeabi_ul2f): Likewise.
12432
12433 2004-08-18  Richard Henderson  <rth@redhat.com>
12434
12435         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
12436         move to rtl completely.
12437         (struct meminsnbuf, xtensa_emit_block_move): Remove.
12438         (xtensa_find_mode_for_size): Remove.
12439         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
12440         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
12441
12442 2004-08-18  Richard Henderson  <rth@redhat.com>
12443
12444         * config/mcore/mcore.c (mode_from_align): Remove DImode.
12445         (block_move_sequence): Rewrite to use adjust_address.
12446         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
12447         Return boolean indicating success/failure.
12448         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
12449         * config/mcore/mcore.md (movmemsi): Update to match.
12450
12451 2004-08-18  Mike Stump  <mrs@apple.com>
12452
12453         * doc/invoke.texi (-mfix-and-continue): Add support for
12454         fast turn around debugging.
12455         (-ffix-and-continue): Likewise.
12456         (-mindirect-data): Likewise.
12457         (-findirect-data): Likewise.
12458         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
12459         (indirect_data): Likewise.
12460         (machopic_data_defined_p): Likewise.
12461         (machopic_output_indirection): Likewise.
12462         (darwin_encode_section_info): Likewise.
12463         (darwin_fix_and_continue): Likewise.
12464         (darwin_fix_and_continue_switch): Likewise.
12465         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
12466         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
12467         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
12468         (SUBTARGET_OPTIONS): Likewise.
12469         (darwin_fix_and_continue): Likewise.
12470         (darwin_fix_and_continue_switch): Likewise.
12471         (TARGET_FIX_AND_CONTINUE): Likewise.
12472         * config/rs6000.c (rs6000_emit_prologue): Likewise.
12473
12474 2004-08-19  Steven Bosscher  <stevenb@suse.de>
12475
12476         * basic-block.h (struct edge_def): Remove crossing_edge.
12477         (EDGE_CROSSING): New define.
12478         (EDGE_ALL_FLAGS): Update.
12479         * bb-reorder.c (find_traces_1_round, better_edge_p,
12480         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
12481         find_jump_block, fix_crossing_conditional_branches,
12482         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
12483         Replace all occurences of crossing_edge with an edge flag check
12484         or set/reset.
12485         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
12486         try_crossjump_bb): Likewise.
12487         * cfglayout.c (fixup_reorder_chain): Likewise.
12488         * cfgrtl.c (force_nonfallthru_and_redirect,
12489         commit_one_edge_insertion): Likewise.
12490
12491         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
12492         * tree-flow.h (compute_dominance_frontiers): Move prototype...
12493         * basic-block.h:  ...here.
12494         * tree-cfg.c (compute_dominance_frontiers_1,
12495         compute_dominance_frontiers): Move from here...
12496         * cfganal.c: ...to here.  Include timevar.h.
12497
12498 2004-08-18  James E Wilson  <wilson@specifixinc.com>
12499
12500         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
12501         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
12502
12503         * config/mips/mips.md (type): Add frdiv.
12504         (divsf3+1, divsf3+2): Change type to frdiv.
12505         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
12506         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
12507
12508         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
12509         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
12510         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
12511         * config/mips/5000.md (r5k_fdiv_single): Likewise.
12512         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
12513         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
12514         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
12515         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
12516         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
12517         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
12518         Likewise.
12519         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
12520
12521 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
12522
12523         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
12524         get regression tester working again.
12525
12526 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
12527
12528         * insn-notes.def, reg-notes.def: New files.
12529         * rtl.h: Use them to define enum insn_note and enum reg_note.
12530         * rtl.c: Use them to define note_insn_name and reg_note_name.
12531         * Makefile.in (RTL_BASE_H): Update.
12532
12533         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
12534         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
12535
12536 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
12537
12538         * arm.c (arm_size_rtx_costs): New function.
12539         (arm_override_options): Use it if optimizing for space.
12540
12541 2004-08-18  Richard Henderson  <rth@redhat.com>
12542
12543         * emit-rtl.c (gen_const_mem): New.
12544         * rtl.h (gen_const_mem): Declare.
12545         * expr.c (do_tablejump): Use it.
12546         * varasm.c (force_const_mem): Likewise.
12547         * config/darwin.c (machopic_indirect_data_reference): Likewise.
12548         (machopic_legitimize_pic_address): Likewise.
12549         * config/arm/arm.c (legitimize_pic_address): Likewise.
12550         * config/i386/i386.c (legitimize_pic_address): Likewise.
12551         (legitimize_tls_address): Likewise.
12552         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
12553         * config/ia64/ia64.md (load_fptr): Likewise.
12554         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
12555         * config/pa/pa.c (legitimize_pic_address): Likewise.
12556         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
12557         (rs6000_emit_move): Likewise.
12558         * config/s390/s390.c (legitimize_pic_address): Likewise.
12559         (legitimize_tls_address): Likewise.
12560         * config/s390/s390.md (casesi): Likewise.
12561         * config/sh/sh.c (sh_reorg): Likewise.
12562         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
12563         * config/v850/v850.md (casesi): Likewise.
12564
12565         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
12566         * config/sh/sh.c (prepare_move_operands): Remove incorrect
12567         use of MEM_READONLY_P.
12568
12569 2004-08-18  Steven Bosscher  <stevenb@suse.de>
12570
12571         * Makefile.in (OBJS-common): Add postreload-gcse.c.
12572         Add new postreload-gcse.o.
12573         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
12574         (lookup_as_function, insert, rehash_using_reg, use_related_value,
12575         equiv_constant): Use SAFE_HASH instead of safe_hash.
12576         (exp_equiv_p): Export.  Add for_gcse argument when comparing
12577         for GCSE.
12578         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
12579         find_comparison_args, fold_rtx, cse_insn): Update callers.
12580         (hash_rtx): New function derived from old canon_hash and bits
12581         from gcse.c hash_expr_1.
12582         (canon_hash_string): Rename to hash_rtx_string.
12583         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
12584         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
12585         (cselib_lookup): Update this caller.
12586         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
12587         Make static.
12588         (hash_expr): Call hash_rtx.
12589         (ldst_entry): Likewise.
12590         (expr_equiv_p): Call exp_equiv_p.
12591         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
12592         reg_used_on_edge, reg_set_between_after_reload_p,
12593         reg_used_between_after_reload_p, get_avail_load_store_reg,
12594         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
12595         get_bb_avail_insn, hash_scan_set_after_reload,
12596         compute_hash_table_after_reload,
12597         eliminate_partially_redundant_loads, gcse_after_reload,
12598         get_bb_avail_insn, gcse_after_reload_main): Remove.
12599         * postreload-gcse.c: New file, reincarnating most of the above.
12600         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
12601         (gcse_after_reload_main): Update prototype.
12602         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
12603         * passes.c (rest_of_handle_gcse2): Use it.
12604
12605 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
12606
12607         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
12608         (pass_loop_done): Likewise.
12609
12610 2004-08-18  Andrew Pinski  <apinski@apple.com>
12611
12612         * config/rs6000/darwin.md: Delete the altivec patterns which are
12613         handled differently now.
12614         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
12615         (macho_correct_pic_di): Likewise.
12616         (call_indirect_nonlocal_darwin64): Likewise.
12617         Delete the save world/saveFP/saveVec patterns.
12618
12619         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
12620         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
12621         * config/rs6000/rs6000.md: Include darwin.md.
12622         (builtin_setjmp_receiver): Add DImode case.
12623         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
12624         Darwin bits.
12625
12626 2004-08-18  Matt Austern  <austern@apple.com>
12627
12628         Dead code stripping
12629         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
12630         * darwin.c (darwin_file_end): Mark file as potentially strippable.
12631
12632 2004-08-18  Richard Henderson  <rth@redhat.com>
12633
12634         * alias.c (readonly_fields_p): Remove.
12635         (objects_must_conflict_p): Don't call it.
12636         * tree.h (readonly_fields_p): Remove.
12637         * langhooks.h (struct lang_hooks): Remove honor_readonly.
12638         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
12639
12640 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
12641
12642         * tree-dfa.c (add_referenced_var): Only global variables are
12643         call-clobbered.
12644         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
12645         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
12646         all pointers dereferenced if the statement dereferences them.
12647         (create_name_tags): Do not create memory tags for pointers
12648         that have PT_ANYTHING set.
12649         Also check if PT_VARS is not empty before creating a name tag.
12650         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
12651         variables that share the same alias set with a pointer that
12652         may point anywhere.
12653         (add_may_alias): Add FIXME comment to remove clobbering
12654         aliased variables and tags.
12655         (replace_may_alias): Likewise.
12656         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
12657         (merge_pointed_to_info): If the original variable has not
12658         points-to information, call set_pt_anything.
12659         (add_pointed_to_var): Do not prevent adding a pointed-to
12660         variable if the pointers is PT_ANYTHING.
12661         If the variable is a global, set PT_GLOBAL_MEM.
12662         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
12663         pointer type only come in PTR+OFFSET flavours.
12664         Always call merge_pointed_to_info on PHI arguments that are
12665         SSA_NAMEs.
12666         (get_nmt_for): Mark call-clobbered tags whose pointer points
12667         to global memory.
12668         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
12669         values.
12670         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
12671         FLAGS.
12672         (add_stmt_operand): Abort if the caller tried to add a killing
12673         definition for a memory tag.
12674         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
12675         unnecessary checks.
12676
12677 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
12678
12679         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
12680         from call_used_regs.  Update call_really_used_regs.
12681         (CALL_REALLY_USED_REGISTERS): Define.
12682         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
12683         Replace call_used_regs with call_really_used_regs.
12684         (calc_live_regs, sh_media_register_for_return): Likewise.
12685         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
12686         * sh.md (return_media): Likewise.
12687
12688 2004-08-18  Andrew Pinski  <apinski@apple.com>
12689
12690         * config/darwin.c (machopic_legitimize_pic_address): Only set
12691         MEM_READONLY_P in the non TARGET_TOC case.
12692
12693 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
12694
12695         * rtl.def (NIL): Delete.
12696         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
12697         Tighten the syntax a little.
12698
12699         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
12700         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
12701         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
12702         * config/i386/predicates.md, config/m32r/m32r.h
12703         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
12704         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
12705         * config/sparc/sparc.h, doc/tm.texi:
12706         Replace all occurrences of NIL with UNKNOWN.
12707
12708 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
12709
12710         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
12711         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
12712         sequence inline.  Move drop_through_label code into this
12713         block, being the only place it is used.  Adjust comments.
12714
12715 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
12716
12717         * config/rs6000/altivec.md: Add new patterns for calls to
12718         save_world/rest_world functions.
12719
12720         * config/rs6000/rs6000-protos.h: (save_world_operation,
12721         restore_world_operation) new declarations.
12722
12723         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
12724         field added.
12725         (rs6000_stack_info): Set world_save_p field.
12726         (save_world_operation): New function.
12727         (restore_world_operation): New function.
12728         (compute_save_world_info): New function.
12729         (rs6000_stack_info): Call compute_save_world_info.
12730         (rs6000_emit_prologue): Check for world_save_p and generate
12731         pattern to call save_world for saving all non-volatile and
12732         special registers.
12733         (rs6000_emit_epilogue): Check for world_save_p and generate
12734         pattern to call rest_world to restore saved registers.
12735
12736         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
12737         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
12738         (rs6000_reg_names): New entries added for save_world_operation and
12739         restore_world_operation.
12740
12741 2004-08-18  Caroline Tice  <ctice@apple.com>
12742
12743         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
12744         "-freorder-blocks-and-partition" to the flags used in second
12745         stage of profiledbootstrap.
12746         * bb-reorder.c (push_to_next_round_p): Add new variable,
12747         next_round_is_last; set and use variable to make sure, when
12748         partitioning, that the last trace construction round consists
12749         of all (and only) cold basic blocks.
12750         (rotate_loop): Don't copy blocks that end in a section
12751         crossing jump.
12752         (copy_bb): Correctly initialize "partition" of duplicated bb.
12753         (add_unlikely_executed_notes): Add a comment.
12754         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
12755         to make sure, if function contains hot blocks, that the
12756         successors of ENTRY_BLOCK_PTR are hot; also, only look for
12757         crossing edges if the architecture supports named sections.
12758         (mark_bb_for_unlikely_executed_section): Modify to always
12759         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
12760         the basic block note insn.
12761         (fix_crossing_unconditional_branches): Remove extra space.
12762         (fix_edges_for_rarely_executed_code): Modify to only do
12763         partitioning work if the architecture supports named sections.
12764         (reorder_basic_blocks): Modify to only add
12765         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
12766         supports named sections.
12767         * c-common.c (handle_section_attribute): Initialize new global
12768         variable, user_defined_section_attribute, to true if user has
12769         specified one.
12770         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
12771         forward edges that cross section boundaries.
12772         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
12773         partitioning information if the architecture supports named
12774         sections.
12775         * cfgrtl.c (target.h): Add statement to include this.
12776         (rtl_split_block): Make sure newly created bb gets correct
12777         partition.
12778         (try_redirect_by_replacing_jump): Make sure redirection isn't
12779         attempting to cross section boundaries.
12780         (force_nonfallthru_and_redirect): Only do partition fix up if
12781         architecture supports named sections.
12782         (rtl_split_edge): Make sure newly created bb ends up in
12783         correct partition.
12784         (commit_one_edge_insertion): Remove code that incorrectly
12785         updated basic block partition; Make sure partition fix up only
12786         happens if architecture supports named sections and it's not
12787         already done.
12788         (rtl_verify_flow_info_1): Fix if-condition on test/error
12789         condition that fallthru edges are not allowed to cross section
12790         boundaries.
12791         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
12792         * final.c (final_scan_insn): Remove redundant test from if-statement;
12793         change calls to text_section into calls to function_section; add code
12794         to only to partitioning fix up if architecture supports named
12795         sections.
12796         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
12797         partition.
12798         (if_convert): Add targetm.have_named_sections to test.
12799         * output.h (unlikely_section_label): Extern declaration for new global
12800         variable.
12801         (unlikely_text_section_name): Likewise.
12802         * opts.c (decode_options): If both partitioning and DWARF debugging
12803         are turned on, issue a warning that this doesn't work, and change
12804         partitiong to basic block reordering (without hot/cold partitions).
12805         * passes.c (rest_of_handle_final): Re-set new global variable,
12806         user_defined_section_attribute, to false.
12807         (rest_of_compilation): Change options for calling partitioning
12808         function: Don't call if the user defined the section attribute, and
12809         don't call if DECL_ONE_ONLY is true for the current function.
12810         * predict.c (choose_function_section): Return immediately if we
12811         are doing hot/cold partitioning (i.e. let the basic block partitioning
12812         determine where the function belongs).
12813         * reg-stack.c (emit_swap_insn): Add condition to step over
12814         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
12815         * toplev.c (user_defined_section_attribute): New global variable.
12816         * toplev.h (user_defined_section_attribute): Extern declaration
12817         for new global variable.
12818         * varasm.c (unlikely_section_label): New global variable.
12819         (unlikely_text_section_name): New global variable.
12820         (unlikely_text_section): Add code to initialize
12821         unlikely_text_section_name if necessary; modify to use
12822         unlikely_text_section_name and unlikely_section_label; also to use
12823         named_section properly.
12824         (in_unlikely_text_section):  Modify to work correctly with
12825         named_section and to use unlikely_text_section_name.
12826         (named_section):  Add code to work properly with cold section.
12827         (function_section): Clean up if-statement.
12828         * config/darwin.c (darwin_asm_named_section): Return to original
12829         code, removing use of SECTION_FORMAT_STRING.
12830         * config/arm/pe.h (switch_to_section):  Add case for
12831         in_unlikely_executed_text to switch statement.
12832         * config/i386/cygming.h (switch_to_section): Likewise.
12833         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
12834         (SECTION_FORMAT_STRING): Likewise.
12835         * config/mcore/mcore.h (switch_to_section): Likewise.
12836         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
12837         (SECTION_FORMAT_STRING): Remove.
12838
12839 2004-08-18  Roger Sayle  <roger@eyesopen.com>
12840
12841         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
12842         -ffixed-reg safe, by preserving the meanings of zero and one.
12843         (CALL_USED_REGISTERS): Likewise.
12844         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
12845
12846 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
12847
12848         * config/sh/sh.c (split_branches): Check the result of
12849         next_active_insn.
12850         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
12851         Call rtl_register_cfg_hooks.
12852
12853 2004-08-18  Richard Henderson  <rth@redhat.com>
12854
12855         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
12856         * alias.c (true_dependence): Update to match new semantics.
12857         (canon_true_dependence, write_dependence_p): Likewise.
12858         (anti_dependence, output_dependence): Update write_dependence_p args.
12859         (unchanging_anti_dependence): Remove.
12860         * calls.c (purge_mem_unchanging_flag): Remove.
12861         (fixup_tail_calls): Don't call it.
12862         (expand_call): Don't add unchanging memory to function usage.
12863         * expr.c (emit_block_move_via_libcall): Likewise.
12864         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
12865         (get_subtarget): Don't use RTX_UNCHANGING_P.
12866         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
12867         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
12868         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
12869         * cse.c (insert): Don't use RTX_UNCHANGING_P.
12870         (cse_insn, canon_hash): Use MEM_READONLY_P.
12871         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
12872         instead of RTX_UNCHANGING_P.
12873         * explow.c (maybe_set_unchanging): Remove.
12874         * expr.h (maybe_set_unchanging): Remove.
12875         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
12876         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
12877         (assign_parm_setup_reg, expand_function_start): Likewise.
12878         * integrate.c (copy_rtx_and_substitute): Likewise.
12879         * ra-rewrite.c (emit_colors): Likewise.
12880         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
12881         (fixup_match_1): Likewise.
12882         * reload1.c (reload, alter_reg): Likewise.
12883         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
12884         not RTX_UNCHANGING_P.
12885         (equiv_init_varies_p): Likewise.
12886         * loop-invariant.c (check_maybe_invariant): Likewise.
12887         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
12888         * loop.c (note_addr_stored): Likewise.
12889         (prescan_loop): Likewise. Don't check function usage for clobbered
12890         unchanging memory.
12891         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
12892         not RTX_UNCHANGING_P.
12893         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
12894         * varasm.c (force_const_mem): Likewise.
12895         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
12896         * web.c (entry_register): Likewise.
12897         * tree-gimple.h (get_base_address): Move decl ...
12898         * tree.h: ... here.
12899         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
12900
12901         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
12902         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
12903         (alpha_set_memflags): Update to match.
12904
12905         * config/darwin.c (machopic_indirect_data_reference): Set
12906         MEM_READONLY_P instead of RTX_UNCHANGING_P.
12907         (machopic_indirect_call_target): Likewise.
12908         (machopic_legitimize_pic_address): Likewise.
12909         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
12910         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
12911         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
12912         * config/frv/frv.md (symGOT2reg): Likewise.
12913         * config/i386/i386.c (legitimize_pic_address,
12914         legitimize_tls_address, ix86_split_to_parts): Likewise.
12915         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
12916         * config/ia64/ia64.md (load_fptr): Likewise.
12917         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
12918         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
12919         * config/mcore/mcore.c (block_move_sequence): Likewise.
12920         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
12921         * config/pa/pa.c (legitimize_pic_address): Likewise.
12922         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
12923         (rs6000_emit_move): Likewise.
12924         * config/s390/s390.c (legitimize_pic_address): Likewise.
12925         (legitimize_tls_address): Likewise.
12926         * config/s390/s390.md (casesi): Likewise.
12927         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
12928         * config/sh/sh.md (symGOT2reg): Likewise.
12929         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
12930         * config/v850/v850.md (casesi): Likewise.
12931
12932         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
12933         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
12934         * config/mips/mips.c (mips_restore_gp): Likewise.
12935         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
12936         * config/sh/sh.c (sh_reorg): Likewise.
12937
12938 2004-08-18  Richard Henderson  <rth@redhat.com>
12939
12940         * tree.h (struct tree_decl): Add gimple_formal_temp.
12941         (DECL_GIMPLE_FORMAL_TEMP_P): New.
12942         * gimplify.c (pop_gimplify_context): Clear it.
12943         (lookup_tmp_var): Set it, if is_formal.
12944         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
12945         Use is_gimple_val for VECTOR.  Simplify return value.
12946         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
12947         (gimplify_expr): Likewise.
12948         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
12949         is_gimple_tmp_rhs for clarity.  Update all callers.
12950         (is_gimple_reg_rhs): Simplify logic.
12951         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
12952         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
12953         (is_gimple_formal_tmp_reg): Similarly.
12954         * tree-gimple.h: Update decls.
12955         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
12956         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
12957         * tree-ssa-live.c (var_union, type_var_init): Likewise.
12958
12959 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
12960
12961         * c4x.c (legitimize_operands): Remove calls to
12962         preserve_subexpressions_p.
12963
12964 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
12965
12966         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
12967         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
12968
12969 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
12970
12971         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
12972         Objective-C++ extensions.
12973         * gengtype.c (get_file_basename): Match entire subdirectory name
12974         ('cp', 'objc', 'objcp') rather than just its suffix.
12975         (get_base_file_bitmap): Allow for files to belong to more than one
12976         language.
12977         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
12978         used by more than one front-end.
12979
12980 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
12981
12982         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
12983         avoid use of preserve_subexpressions_p.
12984
12985 2004-08-17  Richard Henderson  <rth@redhat.com>
12986
12987         PR 17051
12988         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
12989
12990 2004-08-17  DJ Delorie  <dj@redhat.com>
12991
12992         * doc/extend.texi: Document new xstormy16 attribute.
12993
12994         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
12995         (xstormy16_splittable_below100_or_register): New.
12996         (combine_bnp): New.
12997         (xstormy16_reorg): New.
12998         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12999
13000         * config/stormy16/stormy16.md (movqi_internal): Make name public.
13001         (movhi_internal): Likewise.
13002         (cbhranchhi): Likewise.
13003         (cbhranchhi_neg): Likewise.
13004         (andhi3): Only allow splittable below100 operands.
13005         (iorhi3): Likewise.
13006         (peephole2): New and/zero_extend->and peephole.
13007         (peephole2): New load/ior/save->set1 peephole.
13008         (peephole2): New load/and/save->clr1 peephole.
13009         (bclrx, bclrx2, bclr7, bclr15): New.
13010         (bsetx, bsetx2, bset7, bset15): New.
13011
13012         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
13013         liberal about acceptable 'B' masks.
13014
13015         * config/stormy16/stormy16-protos.h
13016         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
13017         xstormy16_below100_operand, xstormy16_below100_or_register,
13018         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
13019         (PREDICATE_CODES): Add new predicates.
13020
13021         * config/stormy16/stormy16.c
13022         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
13023         xstormy16_below100_operand, xstormy16_below100_or_register,
13024         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
13025         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
13026         (xstormy16_legitimate_address_p): Allow below100 symbols.
13027         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
13028         (xstormy16_expand_move): Leave below100 operands as-is.
13029         (xstormy16_encode_section_info): Encode below100 symbols.
13030         (xstormy16_strip_name_encoding): New.
13031         (xstormy16_print_operand): Print 'b' as shift mask.
13032         (xstormy16_attribute_table): Add below100 attributes.
13033         (xstormy16_handle_below100_attribute): New.
13034
13035         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
13036         (XSTORMY16_SECTION_FUNCTION): New.
13037         (EXTRA_SECTION_FUNCTIONS): Define using the above.
13038         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
13039         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
13040         (ASM_OUTPUT_LABELREF): Define.
13041
13042         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
13043         (movhi_internal): Add below100 support.
13044         (andhi3): Add below100 support.
13045         (iorhi3): Add below100 support.
13046         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
13047
13048 2004-08-17  James E Wilson  <wilson@specifixinc.com>
13049
13050         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
13051         of VOIDmode for comparison code mode.
13052         * config/mips/mips.md: For conditional move patterns, use mode of
13053         first compare operand for comparison mode, instead of VOIDmode.
13054
13055         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
13056         normal and -ffast-math code.
13057
13058 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
13059
13060         PR c++/15871
13061         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
13062
13063 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
13064
13065         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
13066
13067 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
13068
13069         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
13070         for non Darwin targets.
13071         (*call_value_nonlocal_darwin64): Likewise.
13072
13073 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
13074
13075         * config/rs6000/rs6000.c (rs6000_function_value): Check for
13076         altivec mode for altivec return register.
13077
13078 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
13079
13080         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
13081         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
13082         * config/rs6000/rs6000.md: Include darwin.md.
13083         (builtin_setjmp_receiver): Add DImode case.
13084         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
13085         Darwin bits.
13086
13087 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
13088
13089         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
13090         trees.
13091         * tree-vectorizer.h: New File: Same.
13092         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
13093         * common.opt (ftree-vectorize): New flag to enable vectorization.
13094         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
13095         vectorization pass.
13096         * tree-data-ref.h (init_data_ref): Additional argument.
13097         (array_base_name_differ_p): Moved to tree-data-ref.c.
13098         * tree-data-ref.c (array_base_name_differ_p): Revised.
13099         (initialize_data_dependence_relation): Call array_base_name_differ_p
13100         with an extra argument.
13101         (analyze_all_data_dependences): Same.
13102         (init_data_ref): Additional argument is_read to set DR_IS_READ.
13103         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
13104         file.
13105         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
13106         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
13107         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
13108         vectorization pass.
13109         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
13110         (tree_ssa_loop_done): Call scev_finalize.
13111         (tree_vectorize): Define the new vectorization pass.
13112         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
13113         size of the vector they support (until support for multiple vector
13114         sizes is added to the vectorizer).
13115         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
13116         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
13117         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
13118         documentation.
13119
13120 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
13121
13122         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
13123         usage.
13124         (generate_protocol_list, handle_impent): Likewise.
13125
13126 2004-08-17  Roger Sayle  <roger@eyesopen.com>
13127
13128         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
13129         ensure that call_used_regs is a superset of both fixed_regs and
13130         call_really_used_regs.
13131
13132 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
13133
13134         PR target/17019
13135         * arm.md (addsi3_cbranch_scratch): Correct case labels.
13136
13137 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
13138
13139         PR middle-end/17036
13140         * fold-const.c (fold): Check for integer operand when
13141         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
13142         Pinski  <pinskia@physics.uc.edu>.
13143
13144 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
13145
13146         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
13147         No need to check if in a cross configuration.
13148         * configure: Regenerate.
13149
13150         * calls.c (precompute_register_parameters):
13151         Inline preserve_subexpressions_p ().
13152         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
13153         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
13154         Likewise.
13155         * expr.c (get_subtarget): Likewise.
13156         * rtl.h (preserve_subexpressions_p): Remove.
13157         * stmt.c (preserve_subexpressions_p): Remove.
13158
13159         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
13160         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
13161         Abort on gimplified cases.
13162
13163 2004-08-16  James E Wilson  <wilson@specifixinc.com>
13164
13165         * tree.h (VECTOR_FLOAT_TYPE_P): New.
13166         (FLOAT_TYPE_P): Use it.
13167         * c-typeck.c (build_binary_op): After convert calls, check for
13168         check for ERROR_MARK operands.
13169
13170 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
13171
13172         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
13173         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
13174         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
13175         (genobjs static pattern rule): Remove %.c dependency.
13176         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
13177         Rename rules; delete commands; fix dependencies.
13178         (mostlyclean): Do not delete temporary source copies.
13179         * configure.ac: Delete all references to BUILD_PREFIX and
13180         BUILD_PREFIX_1.
13181         * configure: Regenerate.
13182
13183         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
13184         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
13185         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
13186         with #ifndef GENERATOR_FILE so that nothing from those headers
13187         is used.
13188
13189         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
13190
13191 2004-08-16  Adam Nemet  <anemet@lnxw.com>
13192
13193         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
13194
13195 2004-08-16  Andrew Pinski  <apinski@apple.com>
13196
13197         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
13198         extraneous semicolon.
13199
13200 2004-08-16  Devang Patel  <dpatel@apple.com>
13201
13202         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
13203         * print-tree.c (print_node): Print DECL_PRESERVE_P.
13204         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
13205         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
13206         * target.h (struct gcc_target): New member, mark_decl_preserved.
13207         * hooks.c (hook_void_charptr): Rename to ...
13208         (hook_void_constcharptr): ... new name.
13209         * hooks.h (hook_void_charptr): Rename to ..
13210         (hook_void_constcharptr): ... new name.
13211         * tree.h (DECL_PRESERVE_P): New #define.
13212         (struct tree_decl): New member, preserve_flag.
13213         * varasm.c (assemble_start_function): Mark decl preserved.
13214         (assemble_variable): Same.
13215         * darwin.c (darwin_mark_decl_preserved): New function.
13216         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
13217         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
13218         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
13219
13220 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
13221
13222         * c-decl.c (grokdeclarator): Allow for function definition where
13223         innermost declarator has attributes.
13224
13225 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
13226
13227         * except.c (get_exception_filter, build_post_landing_pads,
13228         dw2_build_landing_pads): Use target-specific mode for 'filter'.
13229         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
13230         * target.h (eh_return_filter_mode): New field added.
13231         * targhooks.c (default_eh_return_filter_mode): Defined.
13232         * targhooks.h (default_eh_return_filter_mode): Declared.
13233         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
13234
13235 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
13236
13237         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
13238         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
13239         * configure: Regenerate.
13240
13241 2004-08-16  Stan Shebs  <shebs@apple.com>
13242
13243         Basic support for 64-bit Darwin.
13244         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
13245         (machopic_legitimize_pic_address): Similarly, plus use Pmode
13246         instead of SImode.
13247         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
13248         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
13249         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
13250         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
13251         (PROCESSOR_DEFAULT64): Define.
13252         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
13253         Darwin.
13254         * config/rs6000/rs6000.md: Include darwin.md.
13255         (builtin_setjmp_receiver): Add DImode case.
13256         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
13257         Darwin.
13258         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
13259         (rs6000_emit_move): Add DImode case to Darwin bits.
13260         (machopic_output_stub): Use .quad if 64-bit.
13261         * invoke.texi: Document -m32 and -m64.
13262
13263 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
13264
13265         * doc/extend.texi (AltiVec builtins): Document additional differences
13266         from the Motorola AltiVec PIM.
13267
13268 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
13269
13270         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
13271         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
13272         (struct tree_common): Update public_flag documentation.
13273
13274 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
13275
13276         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
13277         Check for artificial variables, not is_gimple_tmp_var.
13278         * tree-ssa-live.c (var_union): Likewise.
13279
13280 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
13281
13282         * calls.c (load_register_parameters): Remove spurious FIXME token.
13283
13284 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
13285
13286         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
13287         (c-lang.o): Depend on c-objc-common.h.
13288         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
13289         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
13290         * c-lang.c: Include c-objc-common.h.
13291         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
13292         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
13293         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
13294         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
13295         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
13296         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
13297         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
13298         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
13299         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
13300         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
13301         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
13302         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
13303         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
13304         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
13305         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
13306         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
13307         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
13308         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
13309         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
13310         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
13311         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
13312         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
13313         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
13314         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
13315         Move to c-objc-common.h.
13316         * c-objc-common.c: Include c-objc-common.h.
13317         * c-objc-common.h: New file.
13318
13319 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
13320             Andrew Pinski  <pinskia@physics.uc.edu>
13321
13322         PR target/14931
13323         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
13324         style.
13325
13326 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
13327
13328         * tree.h (build_int_cst): New.
13329         (build_int_2): Remove.
13330         * tree.c (build_int_2): Remove.
13331         (build_int_cst): New.
13332         (make_vector_type, build_common_tree_nodes,
13333         build_common_tree_nodes_2): Use build_int_cst.
13334         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
13335         expand_builtin_strpbrk, expand_builtin_fputs,
13336         build_string_literal, expand_builtin_printf,
13337         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
13338         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
13339         fold_builtin_isdigit, simplify_builtin_strstr,
13340         simplify_builtin_strpbrk, fold_builtin_fputs,
13341         simplify_builtin_sprintf): Use build_int_cst.
13342         * c-common.c (start_fname_decls, fix_string_type,
13343         c_common_nodes_and_builtins, c_init_attributes,
13344         shorten_compare): Likewise.
13345         * c-decl.c (complete_array_type,
13346         check_bitfield_type_and_width): Likewise.
13347         * c-lex.c (interpret_integer, lex_charconst): Likewise.
13348         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
13349         * c-pretty-print.c (pp_c_integer_constant): Likewise.
13350         * c-typeck.c (really_start_incremental_init, push_init_level,
13351         set_nonincremental_init_from_string): Likewise.
13352         * calls.c (load_register_parameters): Likewise.
13353         * convert.c (convert_to_pointer): Likewise.
13354         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
13355         build_fn_info_type, build_ctr_info_value, build_gcov_info):
13356         Likewise.
13357         * except.c (init_eh, assign_filter_values, assign_filter_values):
13358         Likewise.
13359         * expmed.c (store_fixed_bit_field, extract_bit_field,
13360         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
13361         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
13362         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
13363         * expr.c (convert_move, emit_group_load, emit_group_store,
13364         expand_assignment, store_constructor, store_field,
13365         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
13366         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
13367         invert_truthvalue, optimize_bit_field_compare,
13368         decode_field_reference, all_ones_mask_p, constant_boolean_node,
13369         fold_div_compare, fold, fold_read_from_constant_string,
13370         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
13371         * function.c (assign_parm_setup_block): Likewise.
13372         * stmt.c (shift_return_value, expand_end_case_type,
13373         estimate_case_costs): Likewise.
13374         * stor-layout.c (layout_type, initialize_sizetypes,
13375         set_min_and_max_values_for_integral_type): Likewise.
13376         * tree-chrec.c (chrec_fold_multiply_poly_poly,
13377         reset_evolution_in_loop): Likewise.
13378         * tree-chrec.h (build_polynomial_chrec): Likewise.
13379         * tree-complex.c (build_replicated_const): Likewise.
13380         * tree-eh.c (honor_protect_cleanup_actions,
13381         lower_try_finally_onedest, lower_try_finally_copy,
13382         lower_try_finally_switch): Likewise.
13383         * tree-mudflap.c (mf_build_string, mx_register_decls,
13384         mudflap_register_call, mudflap_enqueue_constant): Likewise.
13385         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
13386         * tree-pretty-print.c (dump_generic_node): Likewise.
13387         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
13388         Likewise.
13389         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
13390         * tree-ssa-loop-niter.c (number_of_iterations_cond,
13391         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
13392         Likewise.
13393
13394         * config/alpha/alpha.c (alpha_initialize_trampoline,
13395         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
13396         * config/arm/arm.c (arm_get_cookie_size): Likewise.
13397         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
13398         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
13399         * config/i860/i860.c (i860_va_start): Likewise.
13400         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
13401         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
13402         mips_gimplify_va_arg_expr): Likewise.
13403         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
13404         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
13405         add_compiler_branch_island): Likewise.
13406         * config/s390/s390.c (s390_va_start): Likewise.
13407         * config/sh/sh.c (sh_va_start): Likewise.
13408         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
13409         Likewise.
13410         * config/xtensa/xtensa.c (xtensa_va_start,
13411         xtensa_gimplify_va_arg_expr): Likewise.
13412
13413         * objc/objc-act.c (build_objc_string_object,
13414         build_objc_symtab_template, init_def_list, init_objc_symtab,
13415         init_module_descriptor, generate_static_references,
13416         build_selector_translation_table, get_proto_encoding,
13417         build_typed_selector_reference, build_selector_reference,
13418         build_next_objc_exception_stuff,
13419         build_method_prototype_list_template, generate_descriptor_table,
13420         generate_protocols, build_protocol_initializer,
13421         build_ivar_list_template, build_method_list_template,
13422         build_ivar_list_initializer, generate_ivars_list,
13423         generate_dispatch_table, generate_protocol_list,
13424         build_category_initializer, build_shared_structure_initializer,
13425         generate_shared_structures, handle_impent,
13426         generate_objc_image_info): Use build_int_cst.
13427
13428 2004-08-15  Ben Elliston  <bje@au.ibm.com>
13429
13430         * vec.h: Comment improvements.
13431
13432 2004-08-14  Roger Sayle  <roger@eyesopen.com>
13433
13434         * c-common.c (shorten_compare, pointer_int_sum,
13435         c_common_truthvalue_conversion, boolean_increment): Replace calls
13436         to build with calls to buildN.
13437         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
13438         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
13439         gimplify_switch_stmt): Likewise.
13440         * c-typeck.c (default_function_array_conversion,
13441         build_component_ref, build_array_ref, build_function_call,
13442         pointer_diff, build_unary_op, build_conditional_expr,
13443         build_compound_expr, build_modify_expr, c_finish_goto_label,
13444         c_finish_goto_ptr, c_finish_return, c_finish_loop,
13445         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
13446         build_binary_op): Likewise.
13447
13448 2004-08-15  Steven Bosscher  <stevenb@suse.de>
13449
13450         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
13451
13452 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13453
13454         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
13455         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
13456         * fixinc/fixincl.x: Rebuilt.
13457
13458 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
13459
13460         * config/mips/mips-protos.h (mips_symbolic_constant_p)
13461         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
13462         (mips_small_data_pattern_p): Declare.
13463         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
13464         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
13465         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
13466         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
13467         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
13468         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
13469         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
13470         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
13471         (pc_or_label_operand, call_insn_operand, move_operand)
13472         (consttable_operand, symbolic_operand, general_symbolic_operand)
13473         (global_got_operand, local_got_operand, stack_operand)
13474         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
13475         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
13476         (mips_small_data_pattern_p): Replace previous small_data_pattern
13477         predicate.  Turn into a bool () (rtx) function.
13478         * config/mips/predicates.md: New file.
13479         * config/mips/mips.md: Include it.  Use the target-independent
13480         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
13481         trap_comparison_operator and equality_op to equality_operator.
13482         Replace uses of small_int with the equivalent const_arith_operand.
13483         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
13484         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
13485         to fcc_reload_operand.
13486         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
13487
13488 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13489
13490         PR libstdc++/17005 partial fix.
13491         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
13492         except when generating ANSI/C89 code.
13493
13494 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
13495
13496         * c-common.c (shorten_compare): Use force_fit_type directly.
13497
13498 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
13499             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
13500             Dave Korn  <dk@artimi.com>
13501
13502         * doc/install.texi (Building): Avoid duplicate reference to GNU
13503         make requirement.
13504         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
13505
13506 2004-08-14  Richard Henderson  <rth@redhat.com>
13507
13508         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
13509         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
13510
13511 2004-08-13  Richard Henderson  <rth@redhat.com>
13512
13513         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
13514         for constant_call_address_operand.
13515         (call_value_pop_1, call_value_1): Likewise.
13516         (sibcall_value_1, call_value_1_rex64): Likewise.
13517
13518 2004-08-13  James E Wilson  <wilson@specifixinc.com>
13519
13520         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
13521         Correct mode from SFmode to DFmode.
13522
13523 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
13524
13525         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
13526         __cstring_object and __image_info sections with the no_dead_strip
13527         attribute.
13528
13529 2004-08-13  Roger Sayle  <roger@eyesopen.com>
13530             David Billinghurst  <David.Billinghurst@riotinto.com>
13531
13532         PR libgfortran/15930
13533         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
13534         * fixinc/fixincl.x: Regenerate.
13535         * fixinc/tests/base/internal/math_core.h: New file.
13536
13537 2004-08-13  Richard Henderson  <rth@redhat.com>
13538
13539         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
13540         (dbxout_function_end): Remove ifdefs for it.
13541         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
13542
13543 2004-08-13  Richard Henderson  <rth@redhat.com>
13544
13545         * Makefile.in (insn-preds.o): Depend on TREE_H.
13546         * genpreds.c (write_insn_preds_c): Include tree.h.
13547         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
13548         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
13549         const48_operand, and_operand, or_operand, mode_width_operand,
13550         mode_mask_operand, mul8_operand, const0_operand,
13551         hard_fp_register_operand, hard_int_register_operand,
13552         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
13553         samegp_function_operand, direct_call_operand, small_symbolic_operand,
13554         global_symbolic_operand, call_operand, symbolic_operand,
13555         dtp16_symbolic_operand, dtp32_symbolic_operand,
13556         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
13557         gottp_symbolic_operand, alpha_comparison_operator,
13558         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
13559         signed_comparison_operator, alpha_fp_comparison_operator,
13560         divmod_operator, fix_operator, aligned_memory_operand,
13561         unaligned_memory_operand, reg_or_unaligned_mem_operand,
13562         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
13563         reg_no_subreg_operand, addition_operation): Move to predicates.md.
13564         (reg_or_const_int_operand): Remove.  Replace all users with
13565         reg_or_cint_operand.
13566         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
13567         (resolve_reload_operand): Split out of aligned_memory_operand.
13568         * config/alpha/alpha-protos.h: Update for exports.
13569         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
13570         * config/alpha/alpha.md: Include predicates.md.
13571         * config/alpha/predicates.md: New file.
13572
13573 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
13574
13575         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
13576         fields with a pointer to the instruction definition.
13577         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
13578         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
13579         (write_attr_case, write_const_num_delay_slots): Update accordingly.
13580         (write_attr_case, write_const_num_delay_slots): Write the name of
13581         an insn next to its case statement.
13582         * genoutput.c (data): Add a filename field.
13583         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
13584         (output_insn_data): Print the location of each insn definition.
13585         * genrecog.c (write_action): Print the name of an insn above
13586         the statement that returns its code.
13587
13588 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
13589
13590         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
13591         * config/libgloss.h: Likewise.
13592         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
13593         * c4x/c4x-modes.def: Likewise.
13594         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
13595         (c4x_rptb_nop_p): Likewise.
13596         (c4x_rptb_valid_p): Likewise.
13597         (c4x_rptb_insert): Likewise.
13598         (c4x_address_conflict): Likewise.
13599         * config/c4x/c4x.md: Likewise.
13600         * config/frv/frv.md: Likewise.
13601         * config/i386/athlon.md: Likewise.
13602         * config/i386/i386.md: Likewise.
13603         * config/i386/predicates.md: Likewise.
13604         * config/ia64/ia64.c: Likewise.
13605         * config/ia64/itanium1.md: Likewise.
13606         * config/ia64/itanium2.md: Likewise.
13607         * config/iq2000/iq2000.md: Likewise.
13608         * config/mcore/mcore.c: Likewise.
13609         * config/mips/mips.c: Likewise.
13610         * config/mips/r3900.h: Likewise.
13611         * config/mips/sb1.md: Likewise.
13612         * config/pa/milli64.S: Likewise.
13613         * config/pa/pa.c: Likewise.
13614         * config/pa/pa.h: Likewise.
13615         * config/rs6000/8540.md: Likewise.
13616
13617 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
13618
13619         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
13620
13621 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
13622
13623         * sh.md (cbranch define_delay) Use cond_delay_slot for
13624         non-anulled condition too.
13625
13626 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
13627
13628         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
13629         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
13630         any_parallel_operand, lmw_operation, stmw_operation,
13631         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
13632         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
13633         any_parallel_operand.
13634         (return_and_restore_fpregs_{si,di}): Same.
13635
13636 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
13637
13638         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
13639         if pred->singleton != PARALLEL, issue a warning and pretend it was.
13640         Also issue a warning for any predicate we don't know about.
13641
13642 2004-08-12  Richard Henderson  <rth@redhat.com>
13643
13644         * config/i386/i386.c (internal_label_prefix): Export.
13645         (internal_label_prefix_len, struct ix86_address,
13646         ix86_decompose_address, maybe_get_pool_constant,
13647         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
13648         memory_address_length): Export.
13649         (any_fp_register_operand, fp_register_operand,
13650         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
13651         x86_64_general_operand, x86_64_szext_general_operand,
13652         x86_64_nonmemory_operand, x86_64_movabs_operand,
13653         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
13654         x86_64_zext_immediate_operand, const_int_1_31_operand,
13655         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
13656         tls_symbolic_operand, global_dynamic_symbolic_operand,
13657         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
13658         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
13659         constant_call_address_operand, const0_operand, const1_operand,
13660         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
13661         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
13662         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
13663         general_no_elim_operand, nonmemory_no_elim_operand,
13664         index_register_operand, q_regs_operand, flags_reg_operand,
13665         non_q_regs_operand, zero_extended_scalar_load_operand,
13666         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
13667         ix86_comparison_operator, ix86_carry_flag_operator,
13668         fcmov_comparison_operator, promotable_binary_operator,
13669         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
13670         mult_operator, div_operator, arith_or_logical_operator,
13671         memory_displacement_operand, cmpsi_operand, long_memory_operand,
13672         aligned_operand): Move to predicates.md as define_predicates.
13673         (tls_symbolic_operand_1): Remove.
13674         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
13675         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
13676         (legitimize_address): Merge tls_symbolic_operand contents.
13677         (ix86_expand_move): Likewise.
13678         * config/i386/i386-protos.h: Update for exports.
13679         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
13680         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
13681         * config/i386/i386.md: Include predicates.md.
13682         * config/i386/predicates.md: New file.
13683
13684 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
13685
13686         PR c++/16924
13687         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
13688         SYMBOL_REF_DECL.
13689         (i386_pe_mark_dllimport): Likewise.
13690         (i386_pe_encode_section_info): Likewise, when overriding
13691         dllimport attribute.
13692
13693 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
13694
13695         * configure.ac: When testing for flex, nm, ar, and bison, check
13696         that they will actually be built.
13697         * configure: Regenerate.
13698
13699 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
13700
13701         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
13702         (MOVE_MAX_PIECES): Define.
13703
13704 2004-08-12  Devang patel  <dpatel@apple.com>
13705
13706         * dbxout.c (dbxout_begin_prologue): New function.
13707         (dbx_debug_hooks): Use new begin prologue hook.
13708         (dbxout_function_end): Emit N_ENSYM.
13709         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
13710
13711 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
13712
13713         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
13714         argument is float*.
13715
13716         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
13717         for vec_dss.
13718
13719         * doc/extend.texi (AltiVec builtins): Fix description for recent
13720         changes.  Update operation list to match current support.
13721
13722 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
13723
13724         * config/s390/s390.c (struct s390_frame_layout): New struct as element
13725         of struct machine_function.
13726         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
13727         changed all uses.
13728         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
13729         changed all uses.
13730         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
13731         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
13732         (s390_frame_area, s390_register_info): New functions.
13733         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
13734         for base register.
13735         (s390_return_addr_rtx, s390_return_address_offset)
13736         (s390_va_start, s390_gimplify_va_arg)
13737         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
13738         layouts.
13739         (s390_frame_info): Functionality partly moved to s390_register_info.
13740         Made adaptions for new stack layout.
13741         (save_gprs, restore_gprs): Changed meaning of second parameter and
13742         adapted all callers.
13743
13744         * config/s390/s390.h (s390_backchain_string): New global variable.
13745         (MASK_BACKCHAIN): Removed definition.
13746         (TARGET_BACKCHAIN): Changed check.
13747         (TARGET_KERNEL_BACKCHAIN): New macro.
13748         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
13749         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
13750         "kernel-backchain".
13751         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
13752
13753         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
13754         as condition.  Adjusted for new stack layout.
13755
13756         * doc/invoke.texi: Added documentation for new option
13757         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
13758         "-mno-backchain".
13759
13760 2004-08-12  Paul Brook  <paul@codesourcery.com>
13761
13762         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
13763         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
13764
13765 2004-08-12  David Daney  <ddaney@avtrex.com>
13766
13767         * java/gcj.texi:  Add subsection on signal usage.
13768
13769 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
13770
13771         * expr.c (move_by_pieces): Set alignment for move to minimum of
13772         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
13773         alignment, but not less than the original alignment.
13774         (move_by_pieces_ninsns): Same.
13775         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
13776         (store_by_pieces_1): Same.
13777
13778 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
13779
13780         PR tree-optimization/16867
13781         * tree.c (is_global_var): New function.
13782         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
13783         Call is_global_var.
13784         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
13785         Update all users.
13786         (is_global_var): Declare.
13787         * tree-dfa.c (dump_variable): Display global and addressable
13788         attributes.
13789         (add_referenced_var): Clarify documentation when marking
13790         variables call-clobbered.
13791         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
13792         instead of needs_to_live_in_memory.
13793         (mark_call_clobbered): If the variable is a tag, mark it
13794         DECL_EXTERNAL.
13795         * tree-gimple.c (is_gimple_reg): Don't check for
13796         TREE_ADDRESSABLE.
13797         (is_gimple_non_addressable): Likewise.
13798         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
13799         needs to be marked call-clobbered.
13800         (setup_pointers_and_addressables): Call is_global_var instead
13801         of needs_to_live_in_memory.
13802         * tree-ssa-dce.c (need_to_preserve_store): Remove.
13803         Update all users with is_global_var.
13804         (mark_stmt_if_obviously_necessary): Fix processing of aliased
13805         stores.  Don't check the virtual definitions.  Rather, check
13806         whether the store is going into global memory.
13807         (find_obviously_necessary_stmts): Get the symbol from the PHI
13808         result.
13809         * tree-ssa-operands.c (get_call_expr_operands): Do not add
13810         clobbering may-defs if the call does not have side effects.
13811
13812 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
13813
13814         PR c++/16276
13815         * output.h (default_function_rodata_section,
13816         default_no_function_rodata_section): New prototypes.
13817         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
13818         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
13819         (TARGET_ASM_OUT): Add it.
13820         * varasm.c (default_function_rodata_section,
13821         default_no_function_rodata_section): New functions.
13822         * final.c (final_scan_insn): Call
13823         targetm.asm_out.function_rodata_section instead of
13824         readonly_data_section.
13825         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
13826         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
13827         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
13828         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
13829         Likewise.
13830         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
13831         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
13832         Likewise.
13833         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
13834         Likewise.
13835         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
13836         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
13837         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
13838
13839 2004-08-12  Paul Brook  <paul@codesourcery.com>
13840
13841         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
13842         frame info.
13843         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
13844         DWARF2_UNWIND_INFO.
13845
13846 2004-08-12  Ben Elliston  <bje@au.ibm.com>
13847
13848         PR target/16286
13849         * config/rs6000/altivec.h: Change vector to __vector throughout.
13850         (Except for the `vector' macro itself).
13851
13852 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
13853
13854         * genpreds.c: Add capability to generate predicate bodies as
13855         well as function prototypes.  Write function prototypes for
13856         the generic predicates too.
13857         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
13858         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
13859         (write_match_code, write_predicate_expr, write_one_predicate_function)
13860         (parse_option): New functions.
13861         (output_predicate_decls): Delete.
13862         (main): Read the machine description, process DEFINE_PREDICATE or
13863         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
13864         as appropriate.
13865
13866         * genrecog.c (struct decision_test): Replace index with
13867         struct pred_data pointer.
13868         (next_index): Remove, unused.
13869         (pred_table, preds, special_mode_pred_table): Delete.
13870         (compute_predicate_codes, process_define_predicate): New functions.
13871         (validate_pattern, add_to_sequence, write_switch): Update for
13872         new data structures.
13873         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
13874         Check both error_count and have_error.
13875
13876         * gensupport.c (in_fname, first_predicate): New globals.
13877         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
13878         (predicate_table, last_predicate, old_pred_table)
13879         (old_special_pred_table): New statics.
13880         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
13881         (add_predicate, init_predicate_table): New functions.
13882         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
13883         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
13884         it or max_include_len.  Call init_predicate_table.
13885         (read_rtx): Run the predicate queue after the attribute queue
13886         but before all the others.
13887         * gensupport.h (in_fname, struct pred_data, first_predicate)
13888         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
13889         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
13890         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
13891         * dummy-conditions.c: Don't include bconfig.h, system.h,
13892         coretypes.h, tm.h, or system.h.  Do include stddef.h.
13893         Duplicate declaration of struct c_test from gensupport.h.
13894
13895         * Makefile.in (OBJS-common): Add insn-preds.o.
13896         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
13897         (insn-preds.c, insn-preds.o): New rules.
13898         (s-preds): Also generate insn-preds.c.
13899         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
13900         Update dependencies.
13901         (print-rtl.o, print-rtl1.o): Correct dependencies.
13902
13903         * recog.h: Delete prototypes of predicate functions.
13904
13905         * doc/md.texi (Predicates): New section with complete
13906         documentation of operand/operator predicates.  Remove some
13907         incomplete documentation of predicates from other places.
13908         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
13909         PREDICATE_CODES; indicate that both are deprecated in favor
13910         of define_predicate/define_special_predicate.
13911
13912         * config/ia64/ia64.c: All predicate function definitions moved
13913         to ia64.md, except
13914         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
13915         (ia64_expand_load_address, ia64_expand_move):
13916         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
13917
13918         * config/ia64/ia64.md: All predicates now defined here.
13919         (symbolic_operand): Is now a special predicate.
13920
13921         * config/ia64/ia64.h: Declare ia64_section_threshold.
13922         (PREDICATE_CODES): Delete.
13923
13924 2004-08-12  Richard Henderson  <rth@redhat.com>
13925
13926         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
13927         * c-semantics.c (add_stmt): Set it.
13928         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
13929         before instantiating a variable sized type.
13930
13931 2004-08-12  Richard Henderson  <rth@redhat.com>
13932
13933         * stor-layout.c (round_up, round_down): Move ...
13934         * fold-const.c (round_up, round_down): ... here.  Use
13935         multiple_of_p to avoid any arithmetic at all.
13936
13937 2004-08-12  Richard Henderson  <rth@redhat.com>
13938
13939         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
13940         (gimplify_init_ctor_preeval_1): New.
13941         (gimplify_init_ctor_preeval): New.
13942         (gimplify_init_ctor_eval): New.
13943         (gimplify_init_constructor): Use them.  Always gimplify the LHS
13944         object first.
13945
13946 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
13947
13948         (This patch is part of merge of objc-improvements-branch
13949         into mainline.)
13950
13951         * doc/frontends.texi: Mention Objective-C++ in addition to
13952         Objective-C.
13953         * doc/install.texi: Add 'obj-c++' to list of configurable
13954         languages.
13955         * doc/invoke.texi: Rename Objective-C option headings to
13956         indicate they also apply to Objective-C++.  List file
13957         extensions for Objective-C++ sources.  Mention that
13958         ObjC and ObjC++ compilations may also use C and C++ options,
13959         respectively.  Point users to doc/standards.texi for
13960         further info on ObjC and ObjC++.
13961         * doc/sourcebuild.texi: Mention the objcp/ directory and
13962         the Objective-C++ sources it contains.
13963         * doc/standards.texi: Update link to Apple ObjC site;
13964         add link to gcc readings.html WWW doc.
13965
13966 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
13967
13968         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
13969         and 2004-07-14 changes.
13970
13971 2004-08-12  Paul Brook  <paul@codesourcery.com>
13972
13973         * doc/invoke.texi: Fix typo.
13974
13975 2004-08-11 Devang Patel  <dpatel@apple.com>
13976
13977         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
13978         and -no_dead_strip_inits_and_terms.
13979         (LINK_SPEC): Same.
13980         * doc/invoke.texi (Darwin Options): Document -dead_strip and
13981         -no_dead_strip_inits_and_terms.
13982
13983 2004-08-11  Paul Brook  <paul@codesourcery.com>
13984
13985         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
13986         (arm_load_pic_register): ... to this.
13987         * config/arm/arm.c (arm_finalize_pic): Rename ...
13988         (arm_load_pic_register): ... to this.  Always output insns at the
13989         current location.  Load via low reg in thumb mode.
13990         (arm_expand_prologue): Call arm_load_pic_register.
13991         (thumb_expand_prologue): Ditto.
13992         * config/arm/arm.h (FINALIZE_PIC): Remove.
13993         * config/arm/arm.md (builtin_setjmp_receiver): Call
13994         arm_load_pic_register.
13995
13996 2004-08-11  Paul Brook  <paul@codesourcery.com>
13997
13998         * arm.c (thumb_force_lr_save): Add prototype.
13999         (thumb_compute_save_reg_mask): New function.
14000         (thumb_find_work_register): New function.
14001         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
14002         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
14003         Don't clobber r3 when removing pretend args.
14004         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
14005         (thumb_output_function_prologue): Use new functions.
14006         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
14007         * arm.h (THUMB_REG_PUSHED_P): Remove.
14008
14009 2004-08-11  James E Wilson  <wilson@specifixinc.com>
14010
14011         PR rtl-optimization/16490
14012         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
14013         global_live_at_end for new basic block if already set for other blocks.
14014
14015 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
14016
14017         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
14018
14019         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
14020         (mfcr rlwinm rlwinm patterns): Set length to 12.
14021
14022 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
14023
14024         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
14025         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
14026         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
14027         (start_ssa_stmt_operands): Delete.
14028         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
14029         struct stmt_operands_d.
14030         (build_ssa_operands): New extern entry point.
14031         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
14032         building code, replace with create_ssa_artficial_load_stmt().
14033         * tree-ssa-operands.c (struct voperands_d): Delete.
14034         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
14035         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
14036         (free_uses, free_defs, free_vuses, free_v_may_defs,
14037         free_v_must_defs): Remove dealloc parameter.
14038         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
14039         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
14040         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
14041         vector comparisons, ssa_name reuse, and allocations here.
14042         (verify_start_operands): Delete.
14043         (finalize_ssa_stmt_operands): Set new operands by calling finalize
14044         routines.
14045         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
14046         (append_def, append_usei): Simplify to simple accumulation.
14047         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
14048         duplicates and simple accumulation.
14049         (free_ssa_operands): Free vectors in a stmt_operand structure.
14050         (build_ssa_operands): New. Create a new stmt_operand structure from
14051         a stmt and an old set of stmt_operands.
14052         (get_stmt_operands): Simplify and call build_ssa_operands.
14053         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
14054         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
14055         add_call_read_ops): Don't pass prev_vops around anymore.
14056         (note_addressable): Return if no stmt annotation.
14057         (copy_virtual_operands): Access v_may_def operands through a struct.
14058         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
14059         hash tables without treating the stmt as a real stmt.
14060         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
14061         v_may_def def and use through a struct instead of 2 array elements.
14062         (struct v_may_def_optype_d): Use v_may_def_operand_type.
14063         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
14064
14065 2004-08-11  Nick Clifton  <nickc@redhat.com>
14066
14067         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
14068         this funciton's behaviour.  Return true when the current function
14069         has a section attribute and -mlong-calls is in effect.
14070         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
14071         short-call marker when -mlong-calls is in effect and the function
14072         has a section attribute.
14073
14074 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
14075
14076         * stmt.c (expand_return): If asked to return the RESULT_DECL,
14077         just call expand_value_return on result_rtl.
14078
14079 2004-08-10  Richard Henderson  <rth@redhat.com>
14080
14081         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
14082         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
14083         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
14084         (add_location_or_const_value_attribute): ... not here.  Use
14085         loc_descriptor_from_tree if possible.
14086         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
14087         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
14088         values specially.
14089         (loc_descriptor_from_tree): New.  Update callers.
14090         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
14091         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
14092         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
14093         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
14094         and BUILT_IN_STACK_RESTORE.
14095         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
14096         * stmt.c (expand_stack_alloc): Remove.
14097         * tree-mudflap.c (mx_register_decls): Don't look for
14098         BUILT_IN_STACK_ALLOC.
14099         * tree-nested.c (convert_local_reference): Likewise.
14100         * tree.h (DECL_VALUE_EXPR): New.
14101
14102 2004-08-10  Richard Henderson  <rth@redhat.com>
14103
14104         * stor-layout.c (round_up): Check for 0/1 before dividing.
14105         (round_down): Likewise.
14106
14107         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
14108
14109 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
14110
14111         * config.gcc (arm*-*-eabi*): New target.
14112         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
14113         (TARGET_LIB_INT_CMP_BIASED): Likewise.
14114         * expmed.c (expand_divmod): Try a two-valued divmod function as a
14115         last resort.
14116         * gthr.h: Remove bogus tokens at end of #pragma.
14117         * optabs.c (expand_twoval_binop_libfunc): New function.
14118         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
14119         (prepare_float_lib_cmp): Try reversing the condition.
14120         (debug_optab_libfuncs): New function.
14121         * optabs.h (expand_twoval_binop_libfunc): Declare.
14122         * config/arm/arm.c (arm_init_libfuncs): New function.
14123         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
14124         (TARGET_INIT_LIBFUNCS): Define it.
14125         * config/arm/arm.h (TARGET_BPABI): New macro.
14126         * config/arm/arm-protos.h
14127         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
14128         * config/arm/bpabi.S: New file.
14129         * config/arm/bpabi.c: Likewise.
14130         * config/arm/bpabi.h: Likewise.
14131         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
14132         (__aeabi_drsub): Likewise.
14133         (__aeabi_dsub): Likewise.
14134         (__aeabi_dadd): Likewise.
14135         (__aeabi_ui2d): Likewise.
14136         (__aeabi_i2d): Likewise.
14137         (__aeabi_f2d): Likewise.
14138         (__aeabi_dmul): Likewise.
14139         (__aeabi_ddiv): Likewise.
14140         (__aeabi_cdrcmple): Likewise.
14141         (__aeabi_cdcmpeq): Likewise.
14142         (__aeabi_cdcmple): Likewise.
14143         (__aeabi_dcmpeq): Likewise.
14144         (__aeabi_dcmplt): Likewise.
14145         (__aeabi_dcmple): Likewise.
14146         (__aeabi_dcmpge): Likewise.
14147         (__aeabi_dcmpgt): Likewise.
14148         (__aeabi_dcmpun): Likewise.
14149         (__aeabi_d2iz): Likewise.
14150         (__aeabi_d2uiz): Likewise.
14151         (__aeabi_d2f): Likewise.
14152         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
14153         (__aeabi_frsub): Likewise.
14154         (__aeabi_fsub): Likewise.
14155         (__aeabi_fadd): Likewise.
14156         (__aeabi_ui2f): Likewise.
14157         (__aeabi_i2f): Likewise.
14158         (__aeabi_fmul): Likewise.
14159         (__aeabi_fdiv): Likewise.
14160         (__aeabi_cfrcmple): Likewise.
14161         (__aeabi_cfcmpeq): Likewise.
14162         (__aeabi_cfcmple): Likewise.
14163         (__aeabi_fcmpeq): Likewise.
14164         (__aeabi_fcmplt): Likewise.
14165         (__aeabi_fcmple): Likewise.
14166         (__aeabi_fcmpge): Likewise.
14167         (__aeabi_fcmpgt): Likewise.
14168         (__aeabi_fcmpun): Likewise.
14169         (__aeabi_f2iz): Likewise.
14170         (__aeabi_f2uiz): Likewise.
14171         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
14172         (__aeabi_uidivmod): New function or alias.
14173         (__aeabi_idivmod): Likewise.
14174         (__aeabi_idiv0): Likewise.
14175         (__aeabi_ldiv0): Likewise.
14176         (__aeabi_llsr): Likewise.
14177         (__aeabi_lasr): Likewise.
14178         (__aeabi_llsl): Likewise.
14179         (bpabi.S): Include it.
14180         * config/arm/libgcc-bpabi.ver: New file.
14181         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
14182         (LINK_SPEC): Remove.
14183         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
14184         __aeabi_ulcmp.
14185         * config/arm/t-bpabi: New file.
14186         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
14187         (TARGET_LIB_INT_CMP_BIASED): Likewise.
14188
14189 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
14190
14191         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
14192         * config/rs6000/rs6000.md (clrmemsi): New pattern.
14193         * config/rs6000/rs6000.c (expand_block_clear): New function.
14194         (expand_block_move): Convert alignment to bits.  Use SImode and
14195         HImode for unaligned addresses if not STRICT_ALIGNMENT.
14196
14197 2004-08-10  Caroline Tice  <ctice@apple.com>
14198
14199         * varasm.c (unlikely_section_label): New global variable.
14200         (unlikely_text_section_name): New global variable.
14201         (text_section):  Remove alignment statement.
14202         (unlikely_text_section): Remove alignment statement; use
14203         unlikely_section_label rather than hard-coded string.
14204         (assemble_start_function): Initialize unlikely_section_label and
14205         unlikely_text_section_name;  make sure cold section is properly
14206         aligned at start of function; output unlikely_section_label if
14207         appropriate.
14208
14209 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
14210
14211         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
14212         * config/s390/s390.c (s390_canonicalize_comparison): New function.
14213         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
14214         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
14215         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
14216         ("*tmqi_mem"): Remove SUBREG from pattern.
14217         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
14218         ("*andsi3_cconly"): Likewise.
14219
14220 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
14221
14222         PR target/16909
14223         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
14224
14225 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
14226
14227         * doc/sourcebuild.texi (compat testing): Document available test
14228         framework commands.  Use the preferred spelling of DejaGnu.
14229
14230 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
14231
14232         * lambda.h: Add matrix type, and prototypes for remainder of
14233         matrix and vector functions.
14234         (lambda_vector_mult_const): New function.
14235         (lambda_vector_negate): Ditto.
14236         (lambda_vector_add): Ditto.
14237         (lambda_vector_add_mc): Ditto.
14238         (lambda_vector_copy): Ditto.
14239         (lambda_vector_zerop): Ditto.
14240         (lambda_vector_equal): Ditto.
14241         (lambda_vector_min_nz): Ditto.
14242         (lambda_vector_first_nz): Ditto.
14243         (lambda_vector_matrix_mult): Ditto.
14244         * lambda-mat.c: New file.
14245         * Makefile.in (lambda-mat.o): New.
14246
14247 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
14248
14249         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
14250         after linking stmt into the program.
14251         (bsi_remove): Don't call modify_stmt.
14252         * tree-complex.c (update_complex_assignment,
14253         expand_complex_comparison): Call modify_stmt after changing the stmt.
14254         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
14255         removing the stmt.
14256         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
14257         the stmt, and only if needed.
14258         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
14259         expression.
14260         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
14261         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
14262         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
14263         (eliminate_redundant_computations): Don't pass an annotation. Call
14264         modify_stmt rather than setting the annotation directly.
14265         (record_equivalences_from_stmt): Remove unused local 'j'.
14266         (cprop_operand): Take a stmt rather than an annotation as a parameter.
14267         Call modify_stmt.
14268         (cprop_into_stmt): Pass stmt rather than annotation.
14269         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
14270         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
14271         modify_stmt.
14272         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
14273
14274 2004-08-10  Jason Merrill  <jason@redhat.com>
14275
14276         PR middle-end/16948
14277         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
14278         the RESULT_DECL.
14279
14280 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
14281
14282         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
14283         hash function.
14284
14285 2004-08-10  Roger Sayle  <roger@eyesopen.com>
14286
14287         * config/mips/mips.md: New reciprocal square root patterns that
14288         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
14289
14290 2004-08-10  Paul Brook  <paul@codesourcery.com>
14291
14292         * config/arm/arm-protos.h (arm_set_return_address,
14293         thumb_set_return_address): Add prototypes.
14294         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
14295         * config/arm/arm.c (arm_compute_func_type,
14296         use_return_insn, arm_compute_save_reg0_reg12_mask,
14297         arm_compute_save_reg_mask, arm_output_function_prologue,
14298         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
14299         current_function_calls_eh_return.
14300         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
14301         old eh code.
14302         (arm_set_return_address, thumb_set_return_address): New functions.
14303         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
14304         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
14305         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
14306         (epilogue): Use the stackadj register.
14307         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
14308
14309 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
14310
14311         PR target/3144
14312         * expr.c (move_by_pieces_ninsns): Add max_size argument.
14313         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
14314         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
14315         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
14316         but using MOVE_RATIO.
14317         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
14318         (can_store_by_pieces): Change max_size type to unsigned int.
14319         (store_by_pieces_1): Likewise.  Pass max_size to
14320         move_by_pieces_ninsns.
14321         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
14322         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
14323         to move_by_pieces_ninsns.
14324         (STORE_BY_PIECES_P): Define.
14325         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
14326         to move_by_pieces_ninsns.
14327         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
14328
14329         * config/i386/i386.h (CLEAR_RATIO): Define.
14330
14331 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
14332
14333         * expr.c (expand_expr_real_1): Add back code that was not dead.
14334
14335 2004-08-09  Andrew Pinski  <apinski@apple.com>
14336
14337         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
14338         which is found to be compatible before returning the aliasing set.
14339
14340 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
14341
14342         * ggc-zone.c (struct alloc_zone): Add statistics counters.
14343         (always_collect): New flag.
14344         (ggc_alloc_zone_1): Update statistics support.  Don't include
14345         overhead in allocated counter.
14346         (sweep_pages): Update allocated counter for large pages.  Don'y
14347         include overhead.
14348         (ggc_collect_1): Always collect.
14349         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
14350         whether to collect.
14351         (SCALE, LABEL): New macros.
14352         (ggc_print_statistics): Add statistics support.
14353
14354 2004-08-09  Roger Sayle  <roger@eyesopen.com>
14355
14356         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
14357         (init_expmed): Fix potential overrun problem with "all.reg".
14358         (expand_sdiv2_pow2): Add an alternate implementation for signed
14359         division, if the target provides a suitable conditional move insn.
14360
14361 2004-08-09  Paul Brook  <paul@codesourcery.com>
14362         Richard Henderson  <rth@redhat.com>
14363
14364         * unwind-dw2.c (uw_install_context_1): Update target saved stack
14365         pointer.
14366
14367 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
14368
14369         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
14370         Check DATA limit only if there's no AS limit.  Ignore insanely
14371         low DATA limits.
14372         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
14373         but take care that the AS limit isn't overrun.
14374         * doc/invoke.texi: Update documentation of min-heapsize parameter.
14375
14376 2004-08-09  Jeff Law  <law@redhat.com>
14377
14378         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
14379         (tree-ssa-threadupdate.o): Add dependencies.
14380         * tree-ssa-threadupdate.c: New file.
14381         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
14382         (rewrite_vars_out_of_ssa): Remove prototype.
14383         (cleanup_tree_cfg): Returns a bool.
14384         * tree.h (thread_through_all_blocks): Prototype.
14385         * tree-outof-ssa.c  (SSANORM_*): Move into here.
14386         (remove_ssa_form): Now static.
14387         (rewrite_vars_out_of_ssa): Kill.
14388         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
14389         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
14390         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
14391         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
14392         anything was changed.
14393         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
14394         from the PHI's annotation rather than the edge associated with
14395         the new argument.
14396         * tree-ssa-dom.c (redirection_edges): Kill.
14397         (redirect_edges_and_update_ssa_graph): Kill.
14398         (tree_ssa_dominator_optimize): Do not reset forwardable flag
14399         for blocks anymore.  Do not initialize redirection_edges.
14400         Call thread_through_all_blocks.  Simplify code for cleanup
14401         of the CFG and iterating.  No longer call cleanup_tree_cfg
14402         outside the iteration loop.
14403         (thread_across_edge): No longer mess with forwardable blocks.
14404
14405 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
14406
14407         * explow.c (memory_address): Use memory_address_p.
14408         * recog.c (general_operand): Likewise.
14409         * regrename.c: No need to define REG_OK_STRICT.
14410
14411 2004-08-09  Steven Bosscher  <stevenb@suse.de>
14412
14413         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
14414         New timers.
14415         * gcse.c: Include timevar.h.
14416         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
14417         and global_copy_prop_count.
14418         (local_const_prop_count, local_copy_prop_count): New static globals.
14419         (gcse_main): Set the right timevar for each pass.
14420         (cprop_jump): Increment global_const_prop_count when a constant is
14421         propagated.  Add "GLOBAL" to dump output.
14422         (cprop_insn): Increment global_const_prop_count when a constant is
14423         propagated, or global_copy_prop_count when a copy is propagated.
14424         (do_local_cprop): Likewise for local_const_prop_count and
14425         local_copy_prop_count.
14426         (one_cprop_pass): Initialize const/cprop counters to zero.
14427         Print out results of local and global const/cprop separately.
14428         (bypass_block): Break over-length line.
14429         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
14430         for bb-reorder.o and tracer.o.
14431
14432 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
14433
14434         * Makefile.in (GTFILES): Remove stmt.c
14435         (stmt.o): Do not depend on gt-stmt.h.
14436         * emit-rtl.c (emit_line_note): Do not call
14437         set_file_and_line_for_stmt.
14438         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
14439         do everything.
14440         * function.c (free_after_parsing): Do not free STMT field.
14441         (allocate_struct_function): Do not call init_stmt_for_function.
14442         (assign_stack_temp_for_type): Do not accept values of keep
14443         other than 0 or 1.
14444         (init_temp_slots): Do not initialize removed variables.
14445         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
14446         and X_VAR_TEMP_SLOT_LEVEL fields.
14447         * rtl.h (set_file_and_line_for_stmt): Remove.
14448         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
14449         struct stmt_status, cond_stack, case_stack, nesting_stack,
14450         nesting_depth, emit_locus, set_file_and_line_for_stmt,
14451         same_case_target_p, init_stmt_for_function, emit_nop,
14452         expand_start_cond, expand_start_elseif, expand_start_else,
14453         expand_elseif, expand_end_cond): Remove.
14454         (preserve_subexpressions_p): Remove references to CFUN->STMT.
14455         (expand_start_case, expand_end_case_type): Remove, merge into...
14456         (expand_case): ... this one, including other bits from
14457         expand_expr_real_1.  Inline same_case_target_p.  Turn members
14458         of CASE_STACK into local variables.
14459         (emit_case_bit_tests): Inline same_case_target_p.
14460         (add_case_node): Add HEAD argument, return new head of the list,
14461         do not handle default label here.
14462         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
14463         expand_start_elseif, current_nesting_level, expand_start_case,
14464         expand_end_case_type, expand_end_case, add_case_node,
14465         init_stmt_for_function, expand_elseif): Remove prototypes.
14466         (expand_case): Add prototype.
14467
14468 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
14469
14470         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
14471
14472 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
14473
14474         * expr.c (var_rtx): Remove.
14475         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
14476         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
14477         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
14478         Abort.
14479         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
14480         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
14481         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
14482
14483 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
14484         Ayal Zaks <zaks@il.ibm.com>
14485
14486         * common.opt (freschedule-modulo-scheduled-loops): New flag.
14487         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
14488         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
14489         when -freschedule-modulo-scheduled-loops flag is not specified.
14490         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
14491         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
14492         More accurate placing of insn in row of partial schedule.
14493         (ps_insn_find_column): New function.
14494         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
14495         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
14496         (schedule_region): Use sched_is_disabled_for_current_region_p.
14497         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
14498
14499 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
14500
14501         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
14502         change.
14503
14504 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
14505
14506         * config/i386/i386.c (ix86_expand_clrmem): Properly call
14507         gen_strset for 64bit target.
14508
14509 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
14510
14511         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
14512
14513 2004-08-07  Jason Merrill  <jason@redhat.com>
14514
14515         Make return in memory explicit.
14516         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
14517         (assign_parm_find_data_types): Remove code for old front end
14518         invisible reference handling.
14519         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
14520         (expand_function_end): Likewise.
14521         * gimplify.c (gimplify_return_expr): Handle a dereferenced
14522         RESULT_DECL.
14523         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
14524         (declare_return_variable): Handle DECL_BY_REFERENCE.
14525         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
14526         (cp_genericize_r): Use convert_from_reference.
14527         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
14528         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
14529
14530         * c-common.c (c_warn_unused_result): Check TREE_USED before
14531         warning about a CALL_EXPR with an unused value.
14532
14533 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
14534
14535         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
14536         to the compiler.  Use -fshort-wchar by default.
14537
14538 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
14539
14540         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
14541         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
14542         threshhold.
14543         * doc/invoke.texi (param): Document min-crossjump-insns.
14544
14545 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
14546
14547         PR c/13282
14548         * c.opt (Wmissing-field-initializers): New option.
14549         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
14550         * c-typeck.c (pop_init_level): Guard the missing field warning with
14551         warn_missing_field_initializers rather than extra_warnings.
14552         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
14553         some of the explanation from...
14554         (-Wextra): ...here.  Say that the missing field warning can be
14555         seperately controlled by -Wmissing-field-initializers.
14556
14557 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
14558
14559         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
14560         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
14561         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
14562         * tree.def (ENTRY_VALUE_EXPR): Remove.
14563
14564 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
14565
14566         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
14567         the places where it is actually needed.  Don't use repz; stosb
14568         for -Os with sufficiently small constant sizes.
14569         For sufficiently small repz; stos{l,q} repeat counts use a sequence
14570         of stos{l,q} instructions instead.
14571
14572 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14573
14574         PR tree-optimization/16807
14575         * loop-iv.c (dump_iv_info): Dump invariants correctly.
14576         (iv_subreg, iv_extend): Express value of invariant purely in
14577         base field.
14578
14579 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
14580
14581         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
14582         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
14583
14584 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
14585
14586         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
14587         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
14588         pre_dec_operand.
14589         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
14590         pattern until reload is finished to allow better code generation
14591         and split them completely into separate instrunctions.
14592         (*andsi3_split): New pattern.
14593
14594 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
14595
14596         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
14597         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
14598         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
14599         * tree.h (handle_dll_attribute): Declare.  Test
14600         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
14601         * c-common.h (c_determine_visibility): Declare.
14602         * c-common.c (c_determine_visibility): New function.
14603         * c-decl.c (finish_decl): Use it.
14604         (finish_function): Likewise.
14605         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
14606         zero, by default.  Use #if, not #ifdef, to test it.
14607         * config/arm/arm.c (arm_attribute_table): Use
14608         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
14609         #if.
14610         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
14611         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
14612         to 1.
14613         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
14614         * config/i386/i386.c (ix86_attribute_table): Use
14615         handle_dll_attribute for dllimport/dllexport.  Test
14616         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
14617         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
14618         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
14619         it to 1.
14620         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
14621         with #if.
14622         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
14623         it to 1.
14624         * doc/extend.texi (dllexport): Clarify and correct documentation.
14625         (dllimport): Likewise.
14626         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
14627         handle_dll_attribute.
14628
14629 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14630
14631         * tree-ssa-loop-manip.c: New file.
14632         * Makefile.in (tree-ssa-loop-manip.o): Add.
14633         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
14634         Declare.
14635         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
14636         form.
14637         (tree_ssa_loop_done): Verify loop closed ssa form.
14638         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
14639
14640 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14641
14642         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
14643         pa_asm_output_aligned_local): New functions.
14644         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
14645         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
14646         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
14647         pa_asm_output_aligned_common.
14648         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
14649         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
14650         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
14651         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
14652         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
14653         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
14654         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
14655         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
14656         common data.
14657
14658 2004-08-05  Andrew Pinski  <apinski@apple.com>
14659
14660         * objc/objc-act.c (build_objc_string_object): Mark the address
14661         expression as constant.
14662
14663 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
14664
14665         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
14666         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
14667         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
14668
14669 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14670
14671         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
14672         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
14673         out, and associated obsolete comments.
14674
14675 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
14676
14677         * tree.h (force_fit_type): Return a tree, take three flags.
14678         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
14679         TREE_CONSTANT_OVERFLOW here.
14680         (int_const_binop, const_binop): Adjust.
14681         (size_int_type): Do sign extension here.
14682         (fold_convert_const, optimize_bit_field_compare,
14683         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
14684         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
14685         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
14686
14687 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14688
14689         PR tree-optimization/16864
14690         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
14691         for ssa names without default_def.
14692
14693 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
14694
14695         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
14696         frame pointer, restore eax with an ebp-relative address.
14697
14698 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
14699
14700         PR 14516
14701         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
14702         * c-common.h (make_rtl_for_local_static): Delete.
14703         * c-decl.c (shadow_tag_warned): Clean up comment.
14704         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
14705         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
14706         * c-semantics.c (make_rtl_for_local_static): Delete.
14707         * expr.c (init_block_move_fn): Use set_user_assembler_name.
14708         (init_block_clear_fn): Likewise.
14709         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
14710         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
14711         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
14712         * tree.h (make_decl_rtl): Remove second parameter.
14713         (set_user_assembler_name): New.
14714         * varasm.c (set_user_assembler_name): New.
14715         (make_decl_rtl): Remove second parameter.  Update callers in many
14716         files.
14717
14718 2004-08-05  Adam Nemet  <anemet@lnxw.com>
14719
14720         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
14721         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
14722         to LynxOS 4.0.
14723         * gthr-lynx.h: New file.
14724         * config/lynx-ng.h: Remove file.
14725         * config/lynx.h: Update to LynxOS 4.0.
14726         * config/t-lynx: New file.
14727         * config/i386/lynx-ng.h: Remove file.
14728         * config/i386/lynx.h: Update to LynxOS 4.0.
14729         * config/rs6000/lynxbase.h: Remove file.
14730         * config/rs6000/lynx.h: Update to LynxOS 4.0.
14731         * config/rs6000/t-lynx: New file.
14732         * doc/install.texi (Options specification): Remove reference to
14733         LynxOS from systems where --with-gnu-as makes a difference.
14734
14735 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14736
14737         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
14738         __UINTMAX_TYPE__.
14739         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
14740         __INTMAX_MAX__.
14741         (c_cpp_builtins): Call it.
14742         * doc/cpp.texi: Update.
14743
14744 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
14745
14746         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
14747         cost.
14748
14749 2004-08-04  Jan Hubicka  <jh@suse.cz>
14750
14751         * basic-block.h (profile_staus): New global variable.
14752         * cfg.c (profile_status): Declare.
14753         (check_bb_profile): Break out from ....; use profile_status
14754         (dump_flow_info): ... here.
14755         * cfgbuild.c (find_basic_blocks): Set profile_status.
14756         * cfgexpand.c (tree_expand_cfg): Likewise.
14757         * predict.c (estimate_probability): Likewise.
14758         * profile.c (branch_prob): Likewise.
14759         * tree-cfg.c (build_tree_cfg): Likewise.
14760         (dump_function_to_file): Use check_bb_profile.
14761         * tree-pretty-print (dump_bb_header): Likewise.
14762         * tree-profile.c (do_tree_profiling): Cleanup.
14763
14764 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
14765
14766         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
14767         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
14768         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
14769         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
14770         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
14771         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
14772         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
14773         (ggc-none.o, errors.o): Move rule to generators section;
14774         correct dependencies.
14775         (min-insn-modes.o): Move rule to generators section; remove
14776         unnecessary explicit command; correct dependencies.
14777         (print-rtl.o, print-rtl1.o): Correct dependencies.
14778         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
14779         (mostlyclean): Update.
14780
14781         * errors.c: Include bconfig.h not config.h.  Correct comment.
14782         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
14783         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
14784         * print-rtl.c: Don't include tm_p.h.
14785
14786         * rtl.h: Move forward-decl of struct function down where it's
14787         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
14788         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
14789
14790 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14791             Jeff Law  <law@redhat.com>
14792
14793         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
14794         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
14795         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
14796         manipulate the duplicated ssa names.
14797         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
14798         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
14799         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
14800         New functions.
14801         (release_ssa_name): Do not release ssa names that may have multiple
14802         definitions.
14803         * tree.h (release_ssa_name_force, mark_for_rewrite,
14804         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
14805         marked_ssa_names): Declare.
14806         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
14807         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
14808         Update call to rewrite_ssa_into_ssa.
14809
14810 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
14811
14812         * defaults.h (TARGET_DECLSPEC): New macro.
14813         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
14814         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
14815         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
14816         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
14817         __declspec support.
14818         (TARGET_DECLSPEC): Define.
14819         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
14820         __declspec support.
14821         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
14822         __declspec support.
14823         (TARGET_DECLSPEC): Define.
14824         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
14825         __declspec support.
14826         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
14827         support.
14828         * doc/tm.texi (TARGET_DECLSPEC): Document.
14829
14830         * doc/extend.texi: Fix typo in comment.
14831
14832 2004-08-04  Paul Brook  <paul@codesourcery.com>
14833
14834         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
14835         (TARGET_CXX): Use it.
14836         * target.h (struct gcc_target): Add cdtor_returns_this.
14837         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
14838         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
14839         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
14840
14841 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
14842
14843         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
14844         low/high pair. Do range checking directly.
14845         (interpret_integer): Adjust.
14846
14847 2004-08-04  Nick Clifton  <nickc@redhat.com>
14848
14849         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
14850         GCC ABI.
14851         * doc/invoke.texi: Document this new switch and also the -mrenesas
14852         switch.
14853
14854 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
14855
14856         * cfglayout.c (insn_locators_initialize): Update the current
14857         location before initializing a location.
14858
14859 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
14860
14861         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
14862         (dbxout_function_end): Return after emitting the "Lscope" symbol
14863         under the same conditions that this function formerly wasn't called.
14864         Add explanatory comments.
14865
14866         PR 14860
14867         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
14868         on the new decl.
14869
14870         PR 13956
14871         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
14872         functions, broken out of dbxout_block.
14873         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
14874         stabs too, if it contains symbols.  Use the begin_label and
14875         the Lscope label (emitted by dbxout_function_end) for the
14876         range of this block.
14877
14878 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
14879
14880         * doc/install.texi: Update autoconf version requirements.
14881
14882 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
14883
14884         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
14885         * recog.c (general_operand, immediate_operand, nonmemory_operand)
14886         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
14887         * regclass.c (record_reg_classes): Likewise.
14888         * reload.c (find_reloads): Likewise.
14889         * reload1.c (reload): Likewise.
14890
14891 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
14892
14893         * gensupport.c (init_md_reader_args_cb): Renamed from
14894         init_md_reader_args.  Add third option, callback function for
14895         parsing program-specific options.  Add diagnosis of incorrect
14896         number of input files.
14897         (init_md_reader): Fold into init_md_reader_args_cb.
14898         (init_md_reader_args): Now a thin wrapper around
14899         init_md_reader_args_cb.
14900         * gensupport.h: Update prototypes.
14901
14902         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
14903         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
14904         * genrecog.c: No need to diagnose lack of an input file;
14905         init_md_reader_args will handle it.
14906         * genconditions.c: Likewise, and use init_md_reader_args.
14907         * genconstants.c: Likewise, and no need to call read_md_rtx.
14908
14909 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
14910
14911         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
14912         declarations.
14913
14914 2004-08-03  Mike Stump  <mrs@apple.com>
14915
14916         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
14917         for frameworks.
14918         * doc/invoke.texi (Darwin Options): Update to reflect above.
14919
14920 2004-08-03  Roger Sayle  <roger@eyesopen.com>
14921
14922         PR middle-end/16790
14923         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
14924         truncations, not just global truncations.
14925
14926 2004-08-03  Andrew Pinski  <apinski@apple.com>
14927
14928         PR bootstrap/16865
14929         * loop-iv.c (simplify_using_assignment): Initialize lhs.
14930
14931 2004-08-03  Paul Brook  <paul@codesourcery.com>
14932
14933         * gcc/doc/install.texi: Document MPFR requirement.
14934
14935 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
14936
14937         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
14938         and mmap() explicitly instead of relying on preset autoconf cache
14939         variables.
14940         * configure: Regenerate.
14941
14942 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
14943
14944         PR target/16570
14945         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
14946         to tmake_file.
14947         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
14948         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
14949         to tmake_file.
14950
14951         * config/i386/t-gmm_malloc: New file.
14952         * config/i386/t-pmm_malloc: Likewise.
14953
14954         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
14955
14956 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
14957             Tanguy Fautrà <tfautre@pandora.be>
14958
14959         * config/i386/pmm_malloc.h: New file.
14960
14961 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
14962
14963         * config/i386/gmm_malloc.h: New file.
14964
14965 2004-08-03  Dale Johannesen  <dalej@apple.com>
14966
14967         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
14968         * c-common.c: Include opts.h.
14969         (c_common_get_alias_set): Fix check for a single input file.
14970         * toplev.c: Remove current_file_decl.
14971         * tree.h: Ditto.
14972
14973 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
14974
14975         * config.gcc (arm*-*-symbianelf*): New target.
14976         * config/arm/symbian.h: New file.
14977
14978         * gthr-gnat.c: Add visibility #pragmas.
14979         * gthr-gnat.h : Likewise.
14980         * gthr.h: Likewise.
14981         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
14982         (__ffsDI2): Likewise.
14983         (__clzSI2): Likewise.
14984         (__ctzSI2): Likewise.
14985         (__ctzDI2): Likewise.
14986         (__popcountSI2): Likewise.
14987         (__popcountDI2): Likewise.
14988         (__paritySI2): Likewise.
14989         (__parityDI2): Likewise.
14990         * libgcc2.h: Add visibility #pragmas.
14991         (__clzDI2): Add prototype.
14992         (__clzSI2): Likewise.
14993         (__ctzSI2): Likewise.
14994         (__ffsDI2): Likewise.
14995         (__ffsSI2): Likewise.
14996         (__ctzDI2): Likewise.
14997         (__popcountSI2): Likewise.
14998         (__popcountDI2): Likewise.
14999         (__paritySI2): Likewise.
15000         (__parityDI2): Likewise.
15001         * unwind-dw2-fde.h: Add visibility #pragmas.
15002         * unwind.h: Likewise.
15003
15004 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
15005             Dale Johannesen  <dalej@apple.com>
15006             Roger Sayle  <roger@eyesopen.com>
15007
15008         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
15009         constants more accurately.  Adjust costs for FMA instructions.
15010         Add cases for most logical and float operations.  Recurse into
15011         most operands.
15012
15013 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
15014
15015         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
15016
15017 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
15018
15019         * ra-build.c (conflicts_between_webs): For webs that cross a call add
15020         conflicts to regs_invalidated_by_call.
15021
15022 2004-08-03  Paul Brook  <paul@codesourcery.com>
15023
15024         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
15025
15026 2004-08-03  Jan Hubicka  <jh@suse.cz>
15027
15028         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
15029         ARRAY_REF argument.
15030
15031 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
15032
15033         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
15034         arm968es, arm10e, arm1020e, arm1022e.
15035         * invoke.texi: Update list of ARM cores.
15036         * arm-tune.md: Regenerate.
15037
15038 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
15039
15040         * arm/gentune.sh: New file.
15041         * arm/t-arm: New file.
15042         * arm/arm-tune.md: New file (autogenerated).
15043         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
15044         * arm.md (attribute tune): Delete.  Include arm-tune.md.
15045
15046 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
15047
15048         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
15049         penultimate parameter.  All callers adjusted.
15050         (struct prefix_list): Remove used_flag_ptr.
15051         (find_a_file): Do not set *pl->used_flag_ptr.
15052         (warn_B, warn_std_ptr): Remove.
15053
15054 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
15055             Mostafa Hagog <mustafa@il.ibm.com>
15056
15057         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
15058
15059 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
15060
15061         * dwarf2out.c (output_call_frame_info): Don't change data format
15062         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
15063         label.  Use 'true' not '1'.
15064         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
15065         required.
15066
15067 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15068
15069         * gdbinit.in: Reflect previous changes to rtunion_def.
15070
15071 2004-08-02  Roger Sayle  <roger@eyesopen.com>
15072
15073         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
15074         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
15075
15076 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15077
15078         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
15079         vec_p_reserve.
15080         * langhooks.h (lang_hooks::builtin_function): Rename parameter
15081         from "class" to "bt_class".
15082
15083 2004-08-02  Paul Brook  <paul@codesourcery.com>
15084
15085         PR rtl-optimization/15068
15086         * flow.c (init_propagate_block_info): Check condition is reversible.
15087
15088 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15089
15090         * gengtype.h (options::info): Change type to const char *.
15091         (enum gc_used_enum): Move out of struct type scope.
15092         * gengtype.c (create_option): Convert initializer for option::info to
15093         appropiate type.
15094         (adjust_field_type, walk_type, write_func_for_structure,
15095         write_root, write_roots): Remove pointless cast.
15096
15097 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
15098
15099         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
15100
15101 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15102
15103         * rtl.h (union rtunion_def): Have all members  start with the
15104         prefix "rt_".
15105         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
15106         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
15107         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
15108         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
15109         access.
15110         * gengtype.c (adjust_field_rtx_def): Likewise.
15111         * rtlanal.c (loc_mentioned_in_p): Likewise.
15112
15113 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
15114
15115         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
15116         Replace uses of mips/elf64.h with mips/elf.h
15117         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
15118         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
15119         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
15120         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
15121         (HANDLE_SYSV_PRAGMA): Delete.
15122         (ASM_OUTPUT_DEF): Fix formatting.
15123         * config/mips/elf64.h: Delete.
15124
15125 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
15126
15127         * config/ia64/ia64.c (got_symbolic_operand): Do require a
15128         symbol+offset operand to have its offset be zero mod 0x3fff
15129         when GOT entries are in use.  Clarify logic in SYMBOL_REF
15130         case.  Clarify comments.
15131         (ia64_expand_load_address): Split a symbol+offset load when
15132         the offset is nonzero mod 0x3fff, not 0x1fff.
15133
15134 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
15135
15136         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
15137         if trying to *store* to a non-offsettable address.
15138         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
15139         a nonoffsettable address.
15140         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
15141         Clean up.
15142         (movti_string): Don't move GPRs to a nonoffsettable address.
15143         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
15144
15145 2004-08-02  Ben Elliston  <bje@au.ibm.com>
15146
15147         PR target/16155
15148         * config/rs6000/altivec.h: Replace typeof with __typeof__.
15149
15150 2004-08-01  Richard Henderson  <rth@redhat.com>
15151
15152         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
15153         variable sized types.
15154
15155 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
15156
15157         * doc/invoke.texi: In the MIPS options section, remove the passage
15158         saying that -mexplicit-relocs is usually disabled for -mabicalls
15159         -fno-unit-at-a-time.
15160         * config/mips/mips.c (override_options): Remove the code that enforced
15161         this rule.
15162
15163 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
15164
15165         * config/mips/mips.md (cprestore): Provide two alternatives, one for
15166         an in-range offset and one for an out-of-range offset.  Wrap the latter
15167         in .set macro/.set nomacro if it's inside a .set nomacro block.
15168
15169 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
15170
15171         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
15172         (mips_restore_gp): Declare.
15173         * config/mips/mips.c (mips_add_offset): Add a scratch register
15174         argument.  Reimplement in rtl only, reusing MIPS16 logic from
15175         mips_output_mi_thunk.
15176         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
15177         to mips_add_offset.
15178         (mips_gp_save_slot): Delete.
15179         (mips_restore_gp): New function.
15180         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
15181         * config/mips/mips.md (exception_receiver): Turn into a
15182         define_insn_and_split.  Use mips_restore_gp to do the split.
15183         (call_internal, call_value_internal, call_value_multiple_internal): Use
15184         mips_restore_gp to restore $gp.
15185
15186 2004-07-31  Andrew Pinski  <apinski@apple.com>
15187
15188         PR other/16842
15189         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
15190
15191 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
15192
15193         * c-decl.c (diagnose_mismatched_decls): Give error for external
15194         redeclaration of identifier declared with no linkage, not just
15195         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
15196         error for redeclaration with no linkage.
15197
15198 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
15199             Fariborz Jahanian <fjahanian@apple.com>
15200
15201         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
15202         non-offsettable addresses even for DImode.
15203         (rs6000_split_multireg_move): Cope with non-offsettable addresses
15204         being moved into multiple GPRs.
15205
15206         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
15207         to 64.
15208         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
15209         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
15210         to 128.
15211         * config/rs6000/darwin-ldouble.c (isless): New macro.
15212         (inf): New macro.
15213         (nonfinite): New macro.
15214         (FPKINF): Delete.
15215         (_xlqadd): Completely rewrite.
15216         (_xlqmul): Correct overflow handling.
15217         (_xlqdiv): Correct overflow handling.
15218         * config/rs6000/darwin-ldouble-format: New file.
15219
15220 2004-07-30  Roger Sayle  <roger@eyesopen.com>
15221             Richard Henderson  <rth@redhat.com>
15222
15223         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
15224         9 into the equivalent lea instruction.
15225
15226 2004-07-30  Richard Henderson  <rth@redhat.com>
15227
15228         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
15229         with DECL_INITIAL if fb_lvalue.
15230         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
15231         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
15232         with <Cxxx>.
15233         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
15234
15235 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
15236
15237         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
15238         pointer escapes through a function call, assume that the
15239         callee will dereference it.
15240         (add_pointed_to_var): Assume that VALUE is always an
15241         ADDR_EXPR.
15242         (collect_points_to_info_r): Only call add_pointed_to_var if
15243         the value is an ADDR_EXPR.
15244
15245 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
15246
15247         * tree-ssa-alias.c (create_alias_map_for): Do not get the
15248         alias set of the inner type of ARRAY_TYPEs.
15249
15250 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
15251
15252         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
15253         setting a non-register to UNDEFINED right before the call to
15254         set_lattice_value.
15255
15256 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
15257
15258         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
15259
15260 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
15261
15262         * tree-ssa.c (verify_flow_sensitive_alias_info): When
15263         comparing points-to sets of different pointers, make sure the
15264         second pointer is actually referenced in the code.
15265
15266 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
15267
15268         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
15269         (got_symbolic_operand): Remove unreachable code.
15270         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
15271         setjmp_operand; add entry for tls_symbolic_operand.
15272         * config/ia64/ia64-protos.h: Remove all prototypes of
15273         predicate functions.
15274
15275 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
15276
15277         * c-common.h (lang_post_pch_load): New variable.
15278         * c-pch.c (lang_post_pch_load): Define it.
15279         (c_common_read_pch): Use it.
15280         * cgraphunit.c (record_call_1): Give the front end a chance to
15281         record additional needed entities when a variable is marked as
15282         needed.
15283         * tlink.c (recompile_files): Robustify.
15284         (scan_linker_output): If a symbol is assigned to a file,
15285         but after recompilation is not present there, issue an error
15286         message.
15287
15288 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15289
15290         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
15291         Take orig_loop argument and pass it to set_level.
15292         (schedule_sm): Pass the correct orig_loop to force_move_till.
15293
15294 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15295
15296         * cfgloop.c (update_latch_info): Update dominator of the new block.
15297         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
15298         info.
15299         * dominance.c (verify_dominators): Check that the dominance tree is
15300         connected.
15301         (recount_dominator): Ignore unreachable blocks.
15302         (iterate_fix_dominators): Cleanup old dominance information before
15303         recomputing it.
15304
15305 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
15306
15307         * tree-ssa-operands.c (get_expr_operands): Revert changes
15308         to ADDR_EXPR processing introduced by:
15309             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15310             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
15311
15312 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
15313
15314         * doc/implement-c.texi: Add C90 subclause references.  Point to
15315         preprocessor documentation instead of duplicating it.  Add points
15316         only present in C90.  Fill in documentation for all points.
15317
15318 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15319
15320         * pa.c (output_movb): Correct typo.
15321
15322 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
15323
15324         * ra.h (single_reg_in_regclass): Declare.
15325         * ra.c (single_reg_in_regclass): Define.
15326         (first_hard_reg): New.
15327         (init_ra): Initialize single_reg_in_regclass.
15328         * ra-colorize.c (ok_class): New.
15329         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
15330
15331 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
15332
15333         * gcov-io.h: Allow zero tag as EOF indicator.
15334         (gcov_is_eof): Remove.
15335         (gcov_truncate): Remove.
15336         * gcov-io.c (gcov_seek): Always SEEK_SET.
15337         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
15338         EOF tag.
15339         * coverage.c (read_counts_file): Don't use gcov_is_eof.
15340         * gcov-dump.c (dump_file): Likewise.
15341         * gcov.c (read_graph_file, read_count_file): Likewise.
15342
15343         * c-decl.c (complete_array_type): Don't gratuitously copy
15344         maxindex.  Check it always has a type.
15345
15346 2004-07-29  Steven Bosscher  <stevenb@suse.de>
15347
15348         * rtl.c (currently_expanding_to_rtl): New.
15349         * rtl.h (currently_expanding_to_rtl): Export it.
15350         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
15351
15352         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
15353         inliner hack.
15354         * config/sh/sh.c: Replace rtx_equal_function_value_matters
15355         with currently_expanding_to_rtl.
15356         * config/sh/sh.md: Likewise.
15357         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
15358
15359 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
15360
15361         Introduce sh2a support.
15362         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
15363         * config.gcc: Build multilibs for sh2a and sh2a-single by
15364         default.
15365         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
15366         default.  Split their tests out of the corresponding SH4
15367         multilibs.
15368         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
15369         multilibs for SH2a.
15370         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
15371         * config.gcc: Handle sh2a multilibs and cpu selection.
15372         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
15373         * config/sh/t-mlib-sh2a: New.
15374         * config/sh/t-mlib-sh2a-nofpu: New.
15375         * config/sh/t-mlib-sh2a-single: New.
15376         * config/sh/t-mlib-sh2a-single-only: New.
15377         2004-07-09  Nick Clifton  <nickc@redhat.com>
15378         Issue 43400
15379         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
15380         -ml and -m2a are used together.
15381         2004-03-23  DJ Delorie  <dj@redhat.com>
15382         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
15383         when we have a double-sized FPU.
15384         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
15385         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
15386         is set.
15387         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
15388         -msh2a-single and -msh2a-single-only
15389         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
15390         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
15391         is set.
15392         2004-02-20  DJ Delorie  <dj@delorie.com>
15393         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
15394         2004-02-20  Fred Fish <fnf@redhat.com>,
15395         Corinna Vinschen <vinschen@redhat.com>
15396         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
15397         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
15398         2004-02-18  DJ Delorie  <dj@redhat.com>
15399         * config/sh/sh.c (broken_move): Add support for movi20.
15400         * config/sh/sh.h: Likewise.
15401         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
15402         * config/sh/sh.md (udivsi3_sh2a): New.
15403         (udivsi3): Call it.
15404         (divsi3_sh2a): New.
15405         (divsi3): Call it.
15406         (mul_r): New.
15407         (ashlsi3_sh2a): New.
15408         (ashrsi3_sh2a): New.
15409         (lshrsi3_sh2a): New.
15410         (movsi_i): Disable for sh2a.
15411         (movsi_ie): Add movi20.
15412         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
15413         sh2a, for -m2a-nofpu mode.
15414         2004-02-13  DJ Delorie  <dj@redhat.com>
15415         * config/sh/lib1funcs.asm: Handle double vs single better.
15416         * config/sh/sh.h: Likewise.
15417         2004-02-09  DJ Delorie  <dj@redhat.com>
15418         * config/sh/crt1.asm: Add support for sh2a.
15419         * config/sh/elf.h: Likewise.
15420         * config/sh/lib1funcs.asm: Likewise.
15421         * config/sh/sh.c: Likewise.
15422         * config/sh/sh.md: Likewise.
15423         * config/sh/sh.h: Likewise.
15424         * config/sh/t-sh: Likewise.
15425
15426 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
15427
15428         * config/frv/frv.md (movqi_internal, movhi_internal,
15429         movsi_internal): Add backup alternatives for memory inputs.
15430
15431 2004-07-28  Matt Austern  <austern@apple.com>
15432
15433         * config/darwin.c (darwin_one_byte_bool): New global variable.
15434         * config/darwin.h (darwin_one_byte_bool): Declare.
15435         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
15436         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
15437         value of darwin_one_byte_bool.
15438         * doc/invoke.texi: Document -mone-byte-bool flag.
15439
15440 2004-07-28  Eric Christopher  <echristo@redhat.com>
15441
15442         * c-common.c (c_common_unsafe_for_reeval): Delete.
15443         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
15444         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
15445         * calls.c (fix_unsafe_tree): Delete.
15446         (expand_call): Delete code which used above.
15447         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
15448         * expr.c (expand_expr_real_1): Ditto.
15449         * fold-const.c (non_lvalue): Ditto.
15450         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
15451         (lhd_unsafe_for_reeval): Ditto.
15452         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
15453         * langhooks.h (unsafe_for_reeval): Ditto.
15454         (unsave_expr_now): Adjust comment.
15455         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
15456         (estimate_num_insns_1): Ditto.
15457         * tree-pretty-print.c (dump_generic_node): Ditto.
15458         * tree.c (expr_align): Ditto.
15459         (unsave_expr): Delete.
15460         (unsafe_for_reeval): Ditto.
15461         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
15462         * tree.def (UNSAVE_EXPR): Delete.
15463         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
15464
15465 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
15466
15467         * tree.h (enum tls_model): Move ...
15468         * coretypes.h: ... here.
15469
15470 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
15471
15472         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
15473
15474 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
15475
15476         * cse.c (validate_canon_reg): New function, split out from...
15477         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
15478
15479 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
15480
15481         * tree-ssa-alias.c (maybe_create_global_var): Don't just
15482         return if .GLOBAL_VAR has been created.
15483
15484 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
15485
15486         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
15487         every variable that may have aliases, not just tags.
15488
15489 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
15490
15491         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
15492         move_from_CR_eq_bit.
15493         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
15494
15495
15496         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
15497         e500_flip_eq_bit.
15498
15499         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
15500         output_e500_flip_eq_bit.
15501
15502         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
15503         output_e500_flip_eq_bit.
15504         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
15505         output_e500_flip_eq_bit.
15506         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
15507         (print_operand): case D.  Get to EQ bit.
15508
15509 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
15510
15511         * gcov.c (function_summary): Add missing \n.
15512
15513 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
15514
15515         Introduce sh4a support.
15516         * config.gcc: Handle sh4a multilibs and cpu selection.
15517         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
15518         * config/sh/t-mlib-sh4a: New.
15519         * config/sh/t-mlib-sh4al: New.
15520         * config/sh/t-mlib-sh4a-nofpu: New.
15521         * config/sh/t-mlib-sh4a-single: New.
15522         * config/sh/t-mlib-sh4a-single-only: New.
15523         2004-02-20  DJ Delorie  <dj@redhat.com>
15524         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
15525         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
15526         2003-08-22  Eric Christopher  <echristo@redhat.com>
15527         * config/sh/sh4a.md: Update for chip errata.
15528         2003-08-07  Eric Christopher  <echristo@redhat.com>
15529         * config/sh/sh4a.md: New file. sh4a processor description.
15530         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
15531         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
15532         of -m4a-nofpu.
15533         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
15534         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
15535         * doc/invoke.texi (SH Options): Document -m4al.
15536         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
15537         * config/sh/sh.c (expand_block_move): Remove commented-out code
15538         checked in by mistake.
15539         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
15540         single elements from SFmode vectors.
15541         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
15542         register.
15543         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
15544         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
15545         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
15546         sh_fsca_int2sf): Remove variable declarations.
15547         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
15548         sh_fsca_int2sf): New functions.
15549         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
15550         sh_fsca_int2sf_rtx): New static variables.
15551         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
15552         sh_fsca_int2sf): Declare.
15553         * config/sh/sh.md: Adjust.
15554         * doc/invoke.texi (SH Options): Document new options.
15555         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
15556         compatibility from SH4 code.
15557         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
15558         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
15559         early.
15560         (memory_movsrc_operand): Renamed to...
15561         (unaligned_load_operand): ... this.  Simplified.
15562         * config/sh/sh.h (PREDICATE_CODES): Adjust.
15563         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
15564         input operand to SImode, and adjust the others.  Introduce
15565         post-increment by peephole.
15566         * config/sh/sh.c (expand_block_move): Give the target address the
15567         same mode as the temp reg.
15568         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
15569         copying.
15570         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
15571         Introduce support for SH4a.
15572         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
15573         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
15574         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
15575         sh_fsca_int2sf): New.
15576         (sh_init_builtins): Initialize them.
15577         (print_operand): Support `d'.
15578         (expand_block_move): Use movua if src is misaligned.
15579         (memory_movsrc_operand): New.
15580         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
15581         and one of the SH4 macros.
15582         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
15583         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
15584         SELECT_SH4A_SINGLE): New.
15585         (TARGET_NONE): Add SH4A_BIT.
15586         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
15587         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
15588         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
15589         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
15590         (enum processor_type): Added PROCESSOR_SH4A.
15591         (PREDICATE_CODES): Add memory_movsrc_operand.
15592         * config/sh/sh.md: Removed unused variables.
15593         (attr cpu): Add sh4a.
15594         (attr type): Add movua, fsrra and fsca.
15595         (prefetch): New, for SH4.
15596         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
15597         (toggle_sz): Set type to fp.
15598         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
15599         (movua, extv, extzv): New.
15600         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
15601         and 4a-single-only.
15602
15603 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
15604
15605         * tree-optimize.c (init_tree_optimization_passes): Schedule
15606         pass_may_alias right after the program is renamed into SSA.
15607         * tree-pass.h (PROP_alias): Define.
15608         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
15609         * tree-sra.c (pass_sra): Likewise.
15610         * tree-ssa-ccp.c (pass_ccp): Likewise.
15611         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
15612         * tree-ssa-dce.c (pass_dce): Likewise.
15613         * tree-ssa-dom.c (pass_dominator): Likewise.
15614         * tree-ssa-dse.c (pass_dse): Likewise.
15615         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
15616         * tree-ssa-loop-ch.c (pass_ch): Likewise.
15617         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
15618         * tree-ssa-pre.c (pass_pre): Likewise.
15619         * tree-tailcall.c (pass_tail_recursion): Likewise.
15620         * tree-ssa.c (pass_redundant_phi): Likewise.
15621         * tree-ssa-alias.c (aliases_computed_p): Remove.
15622         Update all users.
15623         (init_alias_info): Do not mark all type tags for renaming
15624         unconditionally.
15625         Clear may_aliases from every symbol.
15626         (setup_pointers_and_addressables): If a pointer has not been
15627         dereferenced and it had a type tag, clear it and mark the old
15628         tag for renaming.
15629
15630 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
15631
15632         PR tree-optimization/16705
15633         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
15634         .GLOBAL_VAR.
15635
15636 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15637
15638         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
15639         check.
15640
15641         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
15642         don't make another one.
15643
15644         PR optimization/15077
15645         * function.h (struct function): Add field saved_static_chain_decl.
15646         Fix comment for static_chain_decl.
15647         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
15648         * tree-inline.h (save_body): Add new arg.
15649         * tree-optimize.c (tree_rest_of_compilation): Handle saving
15650         static_chain_decl.
15651
15652 2004-07-27  Richard Henderson  <rth@redhat.com>
15653
15654         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
15655         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
15656         is_gimple_addressable.
15657         * tree-gimple.c (is_gimple_addressable): Rename from
15658         is_gimple_addr_expr_arg; accept INDIRECT_REF.
15659         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
15660         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
15661         rename to is_gimple_addressable.
15662
15663 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
15664
15665         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
15666
15667 2004-07-27  Richard Henderson  <rth@redhat.com>
15668
15669         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
15670         before rounding.
15671
15672 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
15673
15674         * libgcc2.c: Change all conditionals testing
15675         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
15676         * libgcc2.h: Likewise.
15677         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
15678         TYPE_PRECISION of float80_type to 80.
15679         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
15680         of fpreg_type and float80_type to 80.
15681         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
15682         * config/m68k/netbsd-elf.h:
15683         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
15684         to evaluate to 80 whenever they would formerly have evaluated to 96.
15685         * config/i386/sco5.h: Remove unnecessary redefinition of
15686         LONG_DOUBLE_TYPE_SIZE.
15687         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
15688         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
15689         XFmode, with a bitsize of 80.  Update commentary.
15690         * config/ia64/ia64-modes.def: Likewise.
15691         * config/m68k/m68k-modes.def: Likewise.
15692
15693 2004-07-27  Steven Bosscher  <stevenb@suse.de>
15694
15695         * cfgexpand.c (tree_expand_cfg): Fix comment.
15696
15697         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
15698         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
15699         Remove.
15700         (prepare_function_start): Don't set rtx_equal_function_value_matters.
15701         * integrate.c (copy_rtx_and_substitute): Don't test for it.
15702         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
15703         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
15704         here again.  Update leading comment.
15705         * rtl.c (rtx_equal_function_value_matters): Remove.
15706         (rtx_equal_p): Don't test for it.
15707         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
15708         Likewise.
15709
15710         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
15711         * rtl.c (note_insn_name): Likewise.
15712         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
15713         * final.c (final_scan_insn): Likewise.
15714
15715         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
15716         * passes.c (rest_of_handle_eh): Do it here.
15717
15718         * stmt.c (struct nesting): Remove struct nesting block member.
15719         (struct stmt_status): Remove x_block_start_count field.
15720         (current_block_start_count): Remove.
15721
15722 2004-07-27  Brian Booth  <bbooth@redhat.com>
15723
15724         * tree-optimize.c (register_one_dump_file): Update condition that uses
15725         static_pass_number.
15726         (dup_pass_1): Replace with...
15727         (next_pass_1): This.
15728         (NEXT_PASS): Call next_pass_1.
15729         (DUP_PASS): Remove.
15730         (init_tree_optimization_passes): Remove uses of DUP_PASS.
15731         (execute_one_pass): Update condition that uses
15732         static_pass_number.
15733         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
15734         integer.
15735
15736 2004-07-27  Nick Clifton  <nickc@redhat.com>
15737
15738         * config/m32r/m32r.c: Include integrate.h in order to get the
15739         prototype for get_hard_reg_initial_val().
15740
15741         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
15742         and tidy up indentation.
15743         (final_presence_set): Use absence_set instead, so that if there is
15744         nothing in the "o" pipe the "s" pipe can be scheduled.
15745
15746 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
15747
15748         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
15749         don't have PT_VARS nor PT_MALLOC set.
15750         Clear name tag from pointers that have not been dereferenced.
15751         (set_pt_anything, set_pt_malloc): Forward declare.
15752         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
15753         not type compatibility when determining if a pointer can be
15754         copy propagated.
15755
15756 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
15757
15758         * expr.h (canonicalize_condition, get_condition): Add an int argument.
15759         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
15760         it to check whether the condition is still valid at the jump insn.
15761         * ifcvt.c (noce_get_condition): Likewise.
15762         (noce_get_alt_condition): Update call to canonicalize_condition.
15763         * loop-iv.c (simplify_using_initial_values): Update call to
15764         get_condition.  Remove FIXME.
15765         (check_simple_exit): Update call to get_condition.
15766         * loop-unswitch.c (may_unswitch_on): Likewise.
15767         * loop.c (check_dbra_loop): Likewise.
15768         (canonicalize_condition, get_condition): Add an argument to say whether
15769         the condition must still be valid at INSN.
15770         (get_condition_for_loop): Update call to get_condition.  Require that
15771         the condition be valid at INSN.
15772         * predict.c (estimate_probability): Update call to get_condition.
15773         Remove unused earliest parameter.
15774         (expected_value_to_br_prob): Update call to canonicalize_condition.
15775
15776 2004-07-26  Eric Christopher  <echristo@redhat.com>
15777
15778         * tree-dfa.c (add_referenced_var): Register initializers of global
15779         variables.
15780
15781 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
15782
15783         * config/i386/i386.c (function_arg): Always treat 8-
15784         and 16-byte wide vectors the same, even if MMX/SSE
15785         are disabled.
15786         (contains_128bit_aligned_vector_p): Add comment.
15787
15788 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
15789
15790         * ra.h (enum node_type): Rename to:
15791         (enum ra_node_type).
15792         * ra-colorize.c: Likewise.
15793
15794 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
15795
15796         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
15797         after simplifying the jump.
15798
15799 2004-06-26  Richard Henderson  <rth@redhat.com>
15800
15801         * calls.c (combine_pending_stack_adjustment_and_call): Make
15802         preferred_unit_stack_boundary argument unsigned.  Make
15803         unadjusted_alignment unsigned.
15804         (expand_call): Make preferred_stack_boundary and
15805         preferred_unit_stack_boundary variables unsigned.
15806         * function.c (assign_stack_local_1): Make alignment unsigned.
15807         * function.h (struct function): Make stack_alignment_needed,
15808         preferred_stack_boundary unsigned.
15809         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
15810         (ix86_compute_frame_layout): Make stack_alignment_needed,
15811         preferred_alignment variables unsigned.
15812         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
15813
15814 2004-07-26  Tom Tromey  <tromey@redhat.com>
15815
15816         * tree.h: Fix typo in comment.
15817
15818 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
15819
15820         PR bootstrap/12804
15821         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
15822         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
15823         (ggc_free): Remove incorrect freeing.
15824         (sweep_pages): Advance PP for large pages.  Fix indentation.
15825
15826 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
15827
15828         PR rtl-optimization/16643
15829         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
15830         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
15831         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
15832         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
15833         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
15834         * function.c (thread_prologue_and_epilogue_insns): Likewise.
15835         * rtl.h (tracer): Add a flags parameter.
15836         * tracer.c (tracer): Pass it to cfg_layout_initialise.
15837         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
15838         (rest_of_handle_reorder_blocks): Update calls to tracer and
15839         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
15840         (rest_of_handle_tracer): Pass 0 to tracer.
15841         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
15842
15843 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
15844
15845         PR target/16239
15846         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
15847         f->f.
15848
15849 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
15850
15851         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
15852         (BINFO_BASE_ACCESS): Adjust.
15853         (BINFO_BASE_ACCESS_APPEND): New.
15854         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
15855         * dbxout.c (dbxout_type): Adjust binfo access accessing.
15856         * dwarf2out.c (gen_member_die): Likewise.
15857         * tree-dump.c (deque_and_dump): Likewise.
15858
15859 2004-07-26  Falk Hueffner  <falk@debian.org>
15860
15861         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
15862         costs.
15863
15864 2004-07-25  Roger Sayle  <roger@eyesopen.com>
15865
15866         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
15867         value off of the stack if TARGET_USE_FFREEP.
15868
15869 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
15870
15871         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
15872         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
15873         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
15874         check on invocation of XRESIZEVEC ().
15875
15876 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
15877
15878         * c-common.c (disable_builtin_function): Rename variable n to
15879         new_disabled_builtin.
15880         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
15881         Rename local variable old to old_decl.
15882         * gensupport.c (shift_output_template): Rename parameter old to src.
15883         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
15884         old_rtx and newx to new_rtx.
15885
15886 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
15887
15888         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
15889         of c-pragma.h.
15890         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
15891         enum cpp_ttype.
15892         * c-lex.c: Likewise.
15893
15894 2004-07-25  Roger Sayle  <roger@eyesopen.com>
15895
15896         * fold-const.c (constant_boolean_node): Make extern.
15897         (make_range): Wrap long lines.
15898         (fold_cond_expr_with_comparison): Remove unnecessary call to
15899         pedantic_non_lvalue.  Add missing calls to fold_convert.
15900         (fold_truthop): Add missing calls to fold_convert.
15901         (fold): Likewise.
15902         * tree.h (constant_boolean_node): Add prototype here.
15903         * builtins.c (expand_builtin_strncmp): Add missing calls to
15904         fold_convert.
15905         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
15906         Call fold_convert and constant_boolean_node to correct types.
15907         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
15908         missing call to fold_convert to correct types.
15909
15910 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
15911             Brian Ryner  <bryner@brianryner.com>
15912
15913         PR c++/9283
15914         PR c++/15000
15915         * c-common.c (c_common_attribute_table): Allow
15916         handle_visibility_attribute to be called for types.
15917         (handle_visibility_attribute) When given a type, set the visibility
15918         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
15919         so that we can check later whether the attribute was present. Added
15920         warning if attribute applied to non class type.
15921         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
15922         decls and checking that they are consistent.
15923         * common.opt: Added -fvisibility.
15924         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
15925         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
15926         * flags.h, tree.h: Added assorted support defines for overall patch
15927         * opts.c: Added parsing support for -fvisibility.
15928         * tree.c (build_decl): Set visibility for all decls to be whatever
15929         is in force at that time.
15930         * varasm.c (default_binds_local_p_1): Reworked logic determining
15931         when to make a symbol locally bound.
15932         * doc/invoke.texi: Added documentation for -fvisibility and
15933         -fvisibility-inlines-hidden.
15934
15935 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
15936
15937         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
15938         * c-common.c: Add missing casts from void * to other types.
15939         * c-decl.c: Likewise.
15940         * c-format.c: Likewise.
15941         * c-lex.c: Likewise.
15942         * c-pragma.c: Likewise.
15943         * c-typeck.c: Likewise.
15944         * defaults.h: Likewise.
15945         * genconstants.c: Likewise.
15946         * gengtype-lex.l: Likewise.
15947         * genmodes.c: Likewise.
15948         * read-rtl.c: Likewise.
15949         * rtl.c: Likewise.
15950
15951 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
15952
15953         * bitmap.c: Use type-safe memory allocation macros from libiberty.
15954         * c-common.c: Likewise.
15955         * c-decl.c: Likewise.
15956         * c-lang.c: Likewise.
15957         * c-lex.c: Likewise.
15958         * c-opts.c: Likewise.
15959         * c-parse.in: Likewise.
15960         * c-typeck.c: Likewise.
15961         * genconditions.c: Likewise.
15962         * gengtype-lex.l: Likewise.
15963         * gengtype-yacc.y: Likewise.
15964         * gengtype.c: Likewise.
15965         * genmodes.c: Likewise.
15966         * gensupport.c: Likewise.
15967         * read-rtl.c: Likewise.
15968         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
15969         htab_find_slot().
15970
15971 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
15972
15973         * c-decl.c (groktypename, groktypename_in_param_context): Rename
15974         variable typename to type_name.
15975         * c-lex.c (interpret_float): Likewise.
15976
15977 2004-07-25  Roger Sayle  <roger@eyesopen.com>
15978
15979         * convert.c (convert_to_real, convert_to_integer,
15980         convert_to_complex): Replace calls to build with calls to buildN.
15981         * coverage.c (tree_coverage_counter_ref): Likewise.
15982         * dojump.c (do_jump): Likewise.
15983         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
15984         * emit-rtl.c (component_ref_for_mem_expr,
15985         set_mem_attributes_minus_bitpos): Likewise.
15986         * explow.c (update_nonlocal_goto_save_area): Likewise.
15987         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
15988         expand_mult_add): Likewise.
15989         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
15990         store_constructor, get_inner_reference, expand_expr_real_1,
15991         try_casesi, try_tablejump): Likewise.
15992         * function.c (expand_function_start): Likewise.
15993         * stmt.c (emit_case_bit_tests, expand_end_case_type,
15994         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
15995         * stor-layout.c (place_union_field, layout_type): Likewise.
15996         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
15997         * varasm.c (copy_constant): Likewise.
15998
15999 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16000
16001         * c-common.c: Rename all identifiers named `new'.
16002         * c-decl.c: Likewise.
16003         * gensupport.c: Likewise.
16004         * simplify-rtx.c: Likewise.
16005         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
16006         with XNEW().
16007         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
16008         with XNEWVEC().
16009
16010 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
16011
16012         PR c/15360
16013         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
16014         declarations until after calling pushdecl.
16015         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
16016         "extern" and not on whether the declaration is initialized.
16017
16018 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
16019
16020         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
16021         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
16022         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
16023         "cpplib.h", "c-pragma.h", "c-common.h".
16024         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
16025         (solaris_register_pragmas): New functions.
16026         * config/sol2-protos.h: New file.
16027         * config/sol2.c: New file.
16028         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
16029         (REGISTER_TARGET_PRAGMAS): New macros.
16030         (solaris_pending_aligns, solaris_pending_inits)
16031         (solaris_pending_finis): New variables.
16032         * config/t-sol2 (sol2-c.o): Update dependencies.
16033         (sol2.o): New rule.
16034         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
16035         SUBTARGET_INSERT_ATTRIBUTES.
16036         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
16037         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
16038         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
16039         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
16040         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
16041         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
16042         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
16043         * config/sparc/sparc.c (sparc_attribute_table): New.
16044         (TARGET_INSERT_ATTRIBUTES): Define in terms of
16045         SUBTARGET_INSERT_ATTRIBUTES.
16046         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
16047         is defined.
16048         * doc/extend.texi (Solaris Pragmas): New section.
16049
16050 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16051
16052         * c-common.c: Rename all identifiers named `class' to `cl'.
16053         * c-common.h: Likewise.
16054         * c-parse.in: Likewise.
16055         * c-typeck.c: Likewise.
16056         * genmodes.c: Likewise.
16057         * real.c: Likewise.
16058         * real.h: Likewise.
16059         * recog.c: Likewise.
16060         * recog.h: Likewise.
16061         * regrename.c: Likewise.
16062         * tree.h: Likewise.
16063         * c-common.c (builtin_function_2): Change type of 5th parameter from
16064         int to enum built_in_function. Change type of 8th parameter from int
16065         to bool.
16066         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
16067         with GGC_CNEW().
16068         * c-typeck.c (convert_arguments): Change type of formal_prec from
16069         int to unsigned int.
16070         * genmodes.c (blank_mode): Make a few negative constants unsigned.
16071         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
16072         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
16073         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
16074         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
16075         iterator to for_all_modes () instead of an enum because enums can't
16076         be incremented in C++.
16077
16078
16079 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
16080
16081         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
16082         hard registers.
16083
16084 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16085
16086         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
16087         Handle ARRAY_RANGE_REF like ARRAY_REF.
16088
16089 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
16090
16091         * c-typeck.c (digest_init): Don't allow arrays of signed or
16092         unsigned variants of wchar_t to be initialized by wide string
16093         constants.  Do allow arrays of enumerated types compatible with
16094         wchar_t to be initialized by wide string constants.  Refine tests
16095         distinguishing wide and narrow strings and arrays.  Give specific
16096         error for arrays of other integer types initialized by string
16097         constants.
16098         (output_init_element, process_init_element): Check for
16099         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
16100         initializing with string constants.
16101
16102 2004-07-25  Richard Henderson  <rth@redhat.com>
16103
16104         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
16105         on the RESULT_DECL.
16106         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
16107         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
16108         DECL_IGNORED_P to new decl.
16109
16110 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
16111
16112         * config/ia64/ia64.c (general_xfmode_operand)
16113         (destination_xfmode_operand): Delete.
16114         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
16115         * config/ia64/ia64.md (*movxf_internal): Use general_operand
16116         and destination_operand.
16117
16118 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
16119
16120         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
16121         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
16122
16123 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
16124             Zack Weinberg  <zack@codesourcery.com
16125
16126         PR 16684
16127         * c-decl.c (diagnose_mismatched_decls): Don't issue a
16128         redundant-declaration warning the first time a builtin is
16129         declared explicitly.
16130
16131 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16132
16133         * tree.h (staticp): Change return type to bool.
16134
16135 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16136
16137         * c-common.c (c_staticp): Last episode of the staticp saga.
16138
16139 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16140
16141         * c-common.h (c_staticp): Change return type from int to bool.
16142         * tree.c (staticp): Likewise.
16143         * langhooks.h (staticp): Likewise.
16144
16145 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16146
16147         * langhooks-def.h (lhd_staticp): Change return type from int to
16148         bool in prototype to match definition.
16149
16150 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16151
16152         * system.h (bool, true, false): Don't redefine as preprocessor macros
16153         in C++.
16154
16155 2004-07-24  Roger Sayle  <roger@eyesopen.com>
16156
16157         * expmed.c (init_expmed): A signed modulus by a power of two is
16158         considered cheap if its less than or equal to four instructions.
16159
16160 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16161
16162         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
16163         GGC_CNEWVAR): New macros.
16164
16165 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16166
16167         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
16168         lists.
16169         * c-decl.c: Likewise.
16170         * c-format.c: Likewise.
16171         * c-lex.c: Likewise.
16172         * c-opts.c: Likewise.
16173         * c-pragma.c: Likewise.
16174         * c-typeck.c: Likewise.
16175         * gencheck.c: Likewise.
16176         * genconditions.c: Likewise.
16177         * genconfig.c: Likewise.
16178         * genflags.c: Likewise.
16179         * gengtype.c: Likewise.
16180         * gensupport.c: Likewise.
16181         * ggc-none.c: Likewise.
16182         * langhooks.c: Likewise.
16183         * statistics.h: Likewise.
16184         * stub-objc.c: Likewise.
16185         * java/decl.c: Likewise.
16186
16187 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
16188
16189         * config/m68k/m68k.c (output_scc_di): Fix coding style.
16190         (symbolic_operand): Fix prototype.
16191         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
16192         * config/m68k/m68k.md: Add constants for registers a0 and sp and
16193         use them, change from the "{...}" syntax to the simpler {...}
16194         syntax.
16195         (*cfv4_extendqisi2): Fix destination predicate.
16196         * config/m68k/m68k-protos.h: Remove various declarations also
16197         generated via PREDICATE_CODES.
16198
16199 2004-07-23  Mike Stump  <mrs@apple.com>
16200
16201         * c-typeck.c (convert_for_assignment): Tightened up pointer
16202         converstions that differ in signedness.
16203
16204 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
16205
16206         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
16207
16208 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16209
16210         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
16211         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
16212
16213         * gimplify.c (gimplify_compound_lval): Check for no handled
16214         operations, rather than checking for explicit list of nodes.
16215         (is_gimple_addr_expr_arg_or_indirect): New function.
16216         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
16217         redundant setting of TREE_INVARIANT.
16218         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
16219         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
16220
16221 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
16222
16223         PR tree-optimization/16688
16224         PR tree-optimization/16689
16225         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
16226         unnecessary initialization of 'tag'.
16227         (get_tmt_for): Check that the new type tag has the same alias
16228         set as the pointed-to type.
16229         (group_aliases): Only regular variables need to be removed
16230         from the alias set of a name tag.
16231         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
16232         propagation if the two types are not compatible.
16233         (merge_alias_info): Rename from replace_ssa_names_ann.
16234         Add more checking.
16235         (replace_exp_1): If both arguments are SSA_NAMEs, check that
16236         the propagation can be done.
16237         Only call merge_alias_info on pointers.
16238         (propagate_value): Likewise.
16239         * tree-ssa-copyrename.c: Include langhooks.h.
16240         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
16241         to do the merging.
16242         Do not coalesce variables with incompatible types.
16243         (rename_ssa_copies): Call replace_ssa_name_symbol.
16244         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
16245         the same type as the underlying _DECL.
16246         * tree-ssanames.c (replace_ssa_name_symbol): New function.
16247         * tree.h (replace_ssa_name_symbol): Declare.
16248
16249 2004-07-23  Richard Henderson  <rth@redhat.com>
16250
16251         PR c++/16277
16252         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
16253         unshare it properly.
16254         (gimplify_modify_expr_rhs): Push assignment from a conditional into
16255         the conditional for all non-register types.
16256
16257 2004-07-23  Richard Henderson  <rth@redhat.com>
16258
16259         * expr.c (expand_expr_real_1): Don't handle non-local variables.
16260         * expr.h (fix_lexical_addr): Remove.
16261         * function.c (NEED_SEPARATE_AP): Remove.
16262         (fix_lexical_addr): Remove.
16263         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
16264         not null decl_function_context.
16265         (create_alias_vars): Likewise.
16266         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
16267         (simple_goto_p): Likewise.
16268         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
16269         * tree-ssa-ccp.c (get_default_value): Likewise.
16270         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
16271         * tree.c (needs_to_live_in_memory): Likewise.
16272         * tree-flow-inline.h (may_be_aliased): Move...
16273         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
16274         when TREE_STATIC variables may be addressable.
16275
16276 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
16277
16278         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
16279
16280 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
16281
16282         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
16283         bitmap contents if GENERATOR_FILE is defined.
16284         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
16285         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
16286
16287 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
16288
16289         * c-decl.c (start_function): Form composite type of function types
16290         rather than copying type from previous prototype declaration.
16291
16292 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
16293
16294         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
16295         the const qualifier for the second argument in the C++ functions.
16296
16297         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
16298         specific pointer types.
16299
16300         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
16301         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
16302         for vector bool and/or vector pixel, add C++ and C missing support.
16303         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
16304         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
16305         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
16306         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
16307         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
16308         missing C++ and C support for vector bool and/or vector pixel.
16309         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
16310         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
16311         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
16312         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
16313         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
16314         C++ and C types used for vector bool and/or vector pixel.
16315         (vec_st, vec_stl): Add C++ support for vector pixel.
16316         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
16317         (vec_all_ne): Add C++ support for vector pixel.
16318
16319         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
16320         (vec_vmulesb): Add missing C++ function.
16321         (vec_perm): Fix type of third argument in C++ function.
16322         (vec_vsum4shs): Fix C++ function name.
16323         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
16324         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
16325         argument passed to the error handler in C macro.
16326         (vec_nmsub): Remove extra parens around argument names in C macro.
16327         (vec_packpx): Add missing parens in C macro.
16328
16329 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
16330
16331         * machmode.def: Remove vector modes.
16332         * config/alpha/alpha-modes.def: Add supported vector modes.
16333         * config/arm/arm-modes.def: Likewise.
16334         * config/frv/frv-modes.def: Likewise.
16335         * config/i386/i386-modes.def: Likewise.
16336         * config/rs6000/rs6000-modes.def: Likewise.
16337         * config/sh/sh-modes.def: Likewise.
16338
16339 2004-07-23  Matthias Klose  <doko@debian.org>
16340
16341         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
16342         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
16343         * config.h: Regenerate.
16344         * configure: Likewise.
16345
16346 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
16347
16348         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
16349         generated SYMBOL_REFs for labels.
16350         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
16351         Change prototype.
16352         (machopic_stub_name): Remove.
16353         (machopic_indirection_name): New function.
16354         (machopic_mcount_stub_name): Likewise.
16355         (machopic_classify_name): Remove.
16356         (machopic_function_base_sym): New function.
16357         (machpoic_classify_symbol): Likewise.
16358         (machopic_classify_ident): Remove.
16359         (machopic_define_ident): Likewise.
16360         (machopic_define_name): Likewise.
16361         (machopic_name_defined_p): Likewise.
16362         (machopic_ident_defined_p): Likewise.
16363         (darwin_strip_name_encoding): Likewise.
16364         (machopic_define_symbol): New function.
16365         * config/darwin.c (hashtab.h): Include.
16366         (machopic_defined_list): Remove.
16367         (machopic_classify_ident): Likewise.
16368         (machopic_classify_name): Likewise.
16369         (machopic_ident_defined_p): Likewise.
16370         (machopic_define_ident): Likewise.
16371         (machopic_define_name): Likewise.
16372         (machopic_symbol_defined_p): New function.
16373         (machopic_classify_symbol): Likewise.
16374         (machopic_data_defined_p): Use machopic_classify_symbol.
16375         (machopic_define_symbol): New function.
16376         (machopic_function_base_sym): New function.
16377         (machopic_non_lazy_pointers): Remove.
16378         (machopic_non_lazy_ptr_name): Likewise.
16379         (machopic_stubs): Likewise.
16380         (machopic_stub_name): Likewise.
16381         (NON_LAZY_POINTER_SUFFIX): New macro.
16382         (STUB_SUFFIX): Likewise.
16383         (machopic_indirection): New structure.
16384         (machopic_indirections): New variable.
16385         (machopic_indirection_hash): New function.
16386         (machopic_indirection_eq): Likewise.
16387         (machopic_indirection_name): Likewise.
16388         (machopic_mcount_stub_name): New function.
16389         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
16390         hash table.
16391         (machopic_indirect_data_reference): Rework to use new functions.
16392         (machopic_indirect_call_target): Likewise.
16393         (machopic_legitimize_pic_address): Likewise.
16394         (machopic_output_indirection): New function.
16395         (machopic_finish): Use it.
16396         (machopic_operand_p): Rework to use new functions.
16397         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
16398         (darwin_strip_name_encoding): Remove.
16399         (update_non_lazy_ptrs): Remove.
16400         (update_stubs): Likewise.
16401         (darwin_non_lazy_pcrel): Use new functions.
16402         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
16403         (ASM_OUTPUT_LABELREF): Likewise.
16404         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
16405         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
16406         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
16407         (TARGET_STRIP_NAME_ENCODING): Do not use
16408         darwin_strip_name_encoding.
16409         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
16410         darwin_strip_name_encoding.
16411         * config/i386/darwin.h (FUNCTION_PROFILER): Use
16412         machopic_mcount_stub_name.
16413         * config/i386/i386.c (x86_output_mi_thunk): Use
16414         machopic_indirection_name, not machopic_stub_name.
16415         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
16416         machopic_function_base_sym.
16417         (print_operand): Use machopic_classify_symbol.
16418         (rs6000_emit_prologue): Use machopic_function_base_sym.
16419         (output_profile_hook): Do not use machopic_stub_name.
16420         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
16421
16422 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
16423
16424         PR c/7284
16425         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
16426         as multiplication.
16427
16428 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
16429
16430         * doc/implement-c.texi: New file.
16431         * doc/extend.texi (C Implementation): Move to there.
16432         * doc/gcc.texi: Include implement-c.texi.
16433         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
16434
16435 2004-07-22  Jason Merrill  <jason@redhat.com>
16436
16437         * integrate.c (copy_decl_for_inlining): Remove invisible reference
16438         handling.
16439         * tree-inline.c (setup_one_parameter): Likewise.
16440
16441 2004-07-22  Brian Booth  <bbooth@redhat.com>
16442
16443         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
16444         (substitute_and_fold): Propigate into VUSE operands when possible.
16445         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
16446         (cp_lattice_meet): Handle merging of latticevalues when
16447         UNKNOWN_VAL is present.
16448         (visit_stmt): Visit assignments with V_MUST_DEFs.
16449         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
16450         (ccp_fold): Deal with RHS' that are constant and virtual.
16451         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
16452         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
16453         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
16454         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
16455         computing immediate uses.
16456         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
16457         transition.
16458         (replace_vuse_in): New function.
16459         (likely_value): Add check of vuse operands.
16460         (get_default_value): Set the default value of virtually defined
16461         variables to UKNOWN_VAL instead of VARYING.
16462
16463 2004-07-22  Richard Henderson  <rth@redhat.com>
16464
16465         * expr.c (emit_push_insn): Don't use set_mem_attributes.
16466
16467 2004-07-22  Richard Henderson  <rth@redhat.com>
16468
16469         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
16470         variables due to conditional compilation.
16471
16472 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
16473
16474         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
16475         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
16476         Release SSA names that have been re-renamed.
16477         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
16478         variable.
16479         * tree-ssa-alias.c (init_alias_info): If aliases have been
16480         computed before, clear existing alias information.
16481         (create_name_tags): Do no fixup PT_ANYTHING pointers.
16482         If the new name tag for a pointer is different than the one it
16483         had before, mark the old tag for renaming.
16484         (replace_may_alias): New function.
16485         (group_aliases): Call it.
16486         (setup_pointers_and_addressables): Always call get_tmt_for.
16487         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
16488         once.
16489         (set_pt_anything): New local function.
16490         (set_pt_malloc): New local function.
16491         (merge_pointed_to_info): Don't merge pointed-to variables from
16492         the original pointer if the destination is pointing to an
16493         unknown location.
16494         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
16495         (add_pointed_to_var): Do not add a variable to the points-to
16496         set if the pointer is already pointing to anywhere.
16497         (collect_points_to_info_r): If the defining statement is a PHI
16498         node, only merge pointed-to information if the argument has
16499         already been visited.
16500         (get_tmt_for): Only create a new tag if the pointer didn't
16501         have one already.
16502         (dump_alias_info): Emit more information.
16503         (dump_points_to_info_for): Likewise.
16504         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
16505         try to get the annotation of an SSA_NAME.
16506         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
16507         alias sets when checking is enabled.
16508         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
16509         (eliminate): Mark basic blocks that will need
16510         EH information cleaned up.
16511         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
16512         predecessor.
16513         Initialize need_eh_cleanup.
16514         (fini_pre): Call tree_purge_all_dead_eh_edges and
16515         cleanup_tree_cfg if needed.
16516         Free need_eh_cleanup.
16517         * tree-ssa.c (verify_ssa_name): New function.
16518         (verify_def): Call it.
16519         Re-arrange to avoid printing too many error messages.
16520         (verify_use): Likewise.
16521         (verify_phi_args): Likewise.
16522         (verify_flow_insensitive_alias_info): New function.
16523         (verify_flow_sensitive_alias_info): New function.
16524         (verify_alias_info): New function.
16525         (verify_ssa): Call verify_alias_info.
16526         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
16527         program.
16528         Re-arrange to avoid printing too many error messages.
16529         * tree-ssanames.c (make_ssa_name): Clear
16530         SSA_NAME_IN_FREE_LIST.
16531         (release_ssa_name): Never release a default definition.
16532         (release_defs): New function.
16533         * tree.h: Declare it.
16534         * tree-ssa-dce.c (remove_dead_stmt): Call it.
16535
16536 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
16537
16538         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
16539         If true, do a depth-first search.  Do a breadht-first search,
16540         otherwise.
16541         (walk_use_def_chains): Add new argument IS_DFS.
16542         Update all users.
16543         * tree-flow.h (walk_use_def_chains): Update prototype.
16544
16545 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
16546
16547         * config/cris/cris.md: Tweak formatting.
16548         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
16549         (mover2side, moverside, movemside, movei, op3, andu): Replace
16550         live define_peephole:s with define_peephole2 near-equivalents.
16551         Delete the rest.
16552         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
16553         word-size modes.
16554         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
16555         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
16556         "*mov_sidesi_mem" respectively.
16557
16558 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
16559
16560         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
16561         (gimplify_build1): Move from tree-complex.c do_unop.
16562         (gimplify_build2): Move from tree-complex.c do_binop.
16563         (gimplify_build3): New.
16564         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
16565         Adjust throughout to call the functions above.
16566         * tree-flow.h: Declare the functions above.
16567         * tree-nested.c (gimplify_val): Rename to...
16568         (tsi_gimplify_val): ... this.
16569
16570         * Makefile.in (tree_complex.o): Update dependencies.
16571         (stor-layout.o): Depend on regs.h.
16572         * c-common.c (handle_vector_size_attribute): Update for
16573         vector types without corresponding vector modes.
16574         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
16575         a corresponding vector mode is not available.
16576         * print-tree.c (print_node): Print nunits for vector types
16577         * regclass.c (have_regs_of_mode): New.
16578         (init_reg_sets_1): Initialize it and use it instead
16579         of allocatable_regs_of_mode.
16580         * regs.h (have_regs_of_mode): Declare it.
16581         * stor-layout.c (layout_type): Pick a mode for vector types.
16582         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
16583         build_replicated_const, do_unop, do_binop, do_plus_minus,
16584         do_negate, expand_vector_piecewise, expand_vector_parallel,
16585         expand_vector_addition, expand_vector_operations_1,
16586         expand_vector_operations, tree_lower_operations,
16587         pass_lower_vector_ssa, pass_pre_expand): New.
16588         (expand_complex_operations, pass_lower_complex): Remove.
16589         * tree-optimize.c (init_tree_optimization_passes): Adjust
16590         pass ordering for changes in tree-complex.c.
16591         * tree-pass.h: Declare new passes.
16592         * tree.c (finish_vector_type): Remove.
16593         (make_vector_type): New.
16594         (build_vector_type_for_mode, build_vector_type): Rewritten.
16595         * tree.def (VECTOR_TYPE): Document where the number of
16596         subparts is stored.
16597         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
16598         (make_vector): Remove declaration.
16599
16600 2004-07-21  Richard Henderson  <rth@redhat.com>
16601
16602         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
16603         TREE_THIS_VOLATILE, may_aliases, or optimization level.
16604         (remove_useless_vars): Dump debugging info.
16605         (expand_used_vars): Move ...
16606         * cfgexpand.c (expand_used_vars): ... here.  Make static.
16607         * tree-flow-inline.h (set_is_used): New.
16608         (set_default_def): Use get_var_ann.
16609         * tree-flow.h: Update decls.
16610         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
16611         (create_ssa_var_map): Use it.
16612         * tree-ssa.c (set_is_used): Remove.
16613
16614 2004-07-22  Ben Elliston  <bje@au.ibm.com>
16615
16616         * gdbinit.in: Set a breakpoint on internal_error.
16617
16618 2004-07-21  Richard Henderson  <rth@redhat.com>
16619
16620         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
16621         to create a new basic block.
16622
16623 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
16624
16625         PR c/15052
16626         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
16627         return type on function definitions.  Move other warnings for
16628         qualified return type to -Wreturn-type.  Do not condition any such
16629         warnings on -pedantic.  Update comments.
16630         (start_function): Only copy function type from previous prototype
16631         declaration if return types are compatible.
16632         * c-typeck.c (function_types_compatible_p): Don't condition
16633         warning for incompatibility of volatile qualifiers on the return
16634         type on -pedantic.  Update comment.
16635         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
16636
16637 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
16638
16639         * c-typeck.c (set_init_index): Require designator to be of integer
16640         type.
16641
16642 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
16643
16644         PR c/11250
16645         * c-parse.in (init): Change to exprtype.
16646         (primary): Set original_code for STRING to STRING_CST.
16647         Call maybe_warn_string_init for compound literals.
16648         (initdcl, notype_initdcl): Call maybe_warn_string_init.
16649         (initval): Update.
16650         * c-tree.h (maybe_warn_string_init): New.
16651         (pop_init_level, process_init_element): Use struct c_expr.
16652         (struct c_expr): Update comment.
16653         * c-typeck.c (maybe_warn_string_init): New function.
16654         (digest_init): Call it.  Additional parameter strict_string.  All
16655         callers changed.
16656         (output_init_element): Likewise.
16657         (struct constructor_stack): Use struct c_expr for
16658         replacement_value.
16659         (really_start_incremental_init, push_init_level): Update.
16660         (pop_init_level): Update.  Return struct c_expr.
16661         (process_init_level): Update.  Take struct c_expr argument.
16662
16663 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
16664
16665         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
16666         commit.
16667
16668 2004-07-21  Eric Christopher  <echristo@redhat.com>
16669
16670         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
16671         removal.
16672         * c-decl.c (pop_scope): Ditto.
16673         * calls.c (expand_call): Remove call to current_nesting_level,
16674         update comment accordingly. Remove calls to expand_start_target_temps
16675         and expand_end_target_temps.
16676         * cfgexpand.c (construct_init_block): Remove call to
16677         expand_start_bindings_and_block.
16678         (construct_exit_block): Remove call to expand_end_bindings.
16679         * expr.c (safe_from_p): Remove BIND_EXPR handling.
16680         (expand_expr_real_1): Ditto. Fix formatting.
16681         (expand_vars): Delete.
16682         * stmt.c (POPSTACK): Remove block_stack.
16683         (stmt_status): Remove x_block_stack.
16684         (block_stack): Delete.
16685         (expand_start_bindings_and_block): Ditto.
16686         (expand_start_target_temps): Ditto.
16687         (expand_end_target_temps): Ditto.
16688         (current_nesting_level): Ditto.
16689         (warn_about_unused_variables): Ditto.
16690         (expand_end_bindings): Ditto.
16691         * tree.h: Remove declarations for above.
16692
16693 2004-07-21  Steven Bosscher  <stevenb@suse.de>
16694
16695         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
16696         * rtl.c (note_insn_name): Likewise.
16697         * print-rtl.c (print_rtx): Don't print it.
16698         * cfgrtl.h (can_delete_note_p): Don't handle it.
16699         (rtl_delete_block): Likewise.
16700         * passes.c (rest_of_handle_guess_branch_prob): Remove.
16701         (rest_of_compilation): Don't call it.
16702         * predict.c (process_note_predictions, process_note_prediction,
16703         note_prediction_to_br_prob): Remove.
16704         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
16705         * stmt.c (return_prediction): Remove.
16706         (expand_value_return): Don't call it.  Don't add prediction
16707         notes for return statements.
16708
16709 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
16710
16711         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
16712         once.
16713
16714 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
16715
16716         * c-common.c (vector_types_convertible_p): Use vector types'
16717         TYPE_SIZE and TREE_TYPE instead of their mode.
16718         * convert.c (convert_to_integer): Likewise.
16719         (convert_to_vector): Likewise.
16720         * fold-const.c (fold_convert): Likewise.
16721         * varasm.c (output_constant): Likewise.
16722         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
16723         Allow a VECTOR_TYPE initializer to be made of several vectors.
16724         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
16725         of cleared and need_to_clear, and use fold_convert.
16726         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
16727         integer vectors.
16728
16729 2004-07-20  Richard Henderson  <rth@redhat.com>
16730
16731         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
16732         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
16733
16734 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
16735
16736         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
16737         enormous cost if not TARGET_HARD_MUL.
16738
16739 2004-07-20  Andrew Pinski  <apinski@apple.com>
16740
16741         PR target/16557
16742         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
16743         (ASM_SPEC): here.
16744
16745 2004-07-21  Paul brook  <paul@codesourcery.com>
16746
16747         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
16748
16749 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16750
16751         * fold-const.c (operand_equal_p): Temporarily support NULL args.
16752         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
16753         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
16754
16755 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
16756
16757         * rtl.h (plus_constant): Delete.
16758         (plus_constant_wide): Rename to plus_constant.
16759         (plus_constant_for_output_wide): Delete vestigial prototype.
16760         (GEN_INT): Remove unnecessary cast.
16761         * tree.h (build_int_2, size_int_type): Delete.
16762         (build_int_2_wide): Rename to build_int_2.
16763         (size_int_wide): Rename to size_int_kind.
16764         (size_int_type_wide): Rename to size_int_type.
16765         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
16766         Remove unnecessary cast.
16767         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
16768         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
16769         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
16770         (size_int_type_wide): Rename size_int_type.
16771         (int_const_binop): Use size_int_type.
16772         * c-lex.c (interpret_integer): Use build_int_2.
16773         * final.c (split_double): Remove unnecessary casts.
16774         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
16775
16776 2004-07-20  Richard Henderson  <rth@redhat.com>
16777
16778         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
16779         (gimplify_compound_lval): Use is_gimple_tmp_reg.
16780         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
16781         (is_gimple_tmp_reg): New.
16782         * tree-gimple.h (is_gimple_tmp_reg): Declare.
16783
16784 2004-07-20  Richard Henderson  <rth@redhat.com>
16785
16786         * tree-pretty-print.c (dump_generic_node): Dump
16787         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
16788
16789 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
16790
16791         * tree-mudflap.c (mf_set_options_fndecl): New tree.
16792         (mudflap_init): Set it.
16793         (mudflap_register_call): Remove __mf_init call.
16794         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
16795         to pass "-ignore-reads" option to libmudflap if needed.
16796
16797 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
16798
16799         PR c++/14607
16800         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
16801         (MAKE_DECL_ONE_ONLY): Undefine.
16802         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
16803         readonly_data, one_only_data_section, forget_section): New prototypes.
16804         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
16805         functions.
16806         (pa_select_section): Add one-only (COMDAT) support.
16807         * pa.h (struct machine_function): Define.
16808         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
16809         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
16810         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
16811         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
16812         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
16813         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
16814         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
16815         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
16816         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
16817         for EXTRA_SECTION_FUNCTIONS.
16818         * doc/install.texi: Update binutils requirements.
16819
16820 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
16821
16822         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
16823         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
16824         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
16825         size_t.
16826         (struct VEC): Use unsigned for num and alloc.
16827         * vec.c (struct vec_prefix): Likewise.
16828         (vec_o_reserve): Adjust.
16829
16830         * dbxout.c (dbxout_type): Fix printf format.
16831
16832         * tree.h (binfo_member): Remove.
16833         * tree.c (binfo_member): Remove.
16834
16835 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
16836
16837         * tree.h: Include vec.h
16838         (DEF_VEC_P(tree)): New type.
16839         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
16840         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
16841         (BINFO_LANG_SLOT): Remove.
16842         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
16843         (struct tree_binfo): Turn base_binfos into a trailing
16844         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
16845         (binfo_lang_slots): Remove.
16846         * tree.c (binfo_lang_slots): Remove.
16847         (make_tree_binfo_stat): Take a base binfo count, not a
16848         lang slot count.  Adjust.
16849         * Makefile.in (TREE_H): Add vec.h
16850         * alias.c (record_component_aliases): Adjust BINFO access.
16851         * dbxout.c (dbxout_type): Likewise.
16852         * dwarf2out.c (gen_member_die): Likewise.
16853         * sdbout.c (sdbout_one_type): Likewise.
16854         * tree-dump.c (deque_and_dump): Likewise.
16855         * config/i386/i386.c (classify_argument,
16856         contains_128bit_aligned_vector_p): Likewise.
16857         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
16858         * doc/c-tree.texi (Classes): Update BINFO documentation.
16859
16860 2004-07-20  Steven Bosscher  <stevenb@suse.de>
16861
16862         * c-common.h (check_case_value): Remove prototype.
16863         (c_add_case_label): Adjust prototype.
16864         * c-common.c (check_case_value): Make static.
16865         (check_case_bounds): New function.
16866         (c_add_case_label): Use it.  Take new argument orig_type.
16867         * c-typeck.c (struct c_switch): New orig_type field.
16868         (c_start_case): Set it.
16869         (do_case): Pass it to c_add_case_label.
16870         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
16871         cases from here.  Add the labels in reverse order.
16872         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
16873         (add_case_node): Return nothing, don't check for duplicate cases.
16874         Insert new case nodes in a list, not in an AVL tree.
16875         (expand_end_case_type): Don't turn a case tree into a case list.
16876         (case_tree2list): Remove.
16877         * tree.h (add_case_node): Adjust prototype.
16878
16879 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
16880
16881         * genattr.c (struct range, struct function_unit,
16882         write_units, extend_range, init_range): Remove them.
16883         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
16884         Output "#define INSN_SCHEDULING" here.
16885         * genattrtab.c (struct range, struct function_unit_op,
16886         struct function_unit, struct dimension, enum operator,
16887         operate_exp, expand_units, simplify_knowing,
16888         encode_units_mask, simplify_by_exploding,
16889         find_and_mark_used_attributes, unmark_used_attributes,
16890         add_values_to_cover, increment_current_value,
16891         test_for_current_value, simplify_with_current_value,
16892         simplify_with_current_value_aux, gen_unit,
16893         write_unit_name, write_function_unit_info,
16894         write_complex_function, write_toplevel_expr,
16895         find_single_value, extend_range): Remove.
16896         (write_attr_get): Do not handle common_av->value
16897         being an FFS.
16898         (struct attr_desc): Remove func_units_p and blockage_p.
16899         (write_attr_valueq): Do not handle them.
16900         (find_attr): Do not clear them.
16901         (make_internal_attr): Do not initialize them.
16902         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
16903         * sched-vis.c (init_target_units, insn_print_units,
16904         init_block_visualization, print_block_visualization,
16905         visualize_scheduled_insns, visualize_no_unit,
16906         visualize_stall_cycles, visualize_alloc,
16907         visualize_free, target_units, get_visual_tbl_length,
16908         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
16909         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
16910         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
16911         * haifa-sched.c (blockage_range, clear_units,
16912         schedule_unit, actual_hazard, potential_hazard,
16913         insn_unit, unit_last_insn, unit_tick,
16914         actual_hazard_this_instance, potential_hazard,
16915         schedule_unit, max_insn_queue_index_value): Remove.
16916         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
16917         max_insn_queue_index.
16918         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
16919         * doc/md.texi (Processor pipeline description): Remove
16920         references to old pipeline descriptions.
16921         (Automaton pipeline description): Merge with the above.
16922         (Old pipeline description, Comparison of the two descriptions):
16923         Remove.
16924
16925         * bt-load.c (migrate_btr_def): Remove references to
16926         use_pipeline_interface.
16927         * haifa-sched.c (insn_cost, schedule_insn,
16928         schedule_block, advance_one_cycle, sched_init,
16929         queue_to_ready, sched_finish): Likewise.
16930         * modulo-sched.c (sms_schedule, advance_one_cycle,
16931         ps_has_conflicts): Likewise.
16932         * sched-rgn.c (init_ready): Likewise.
16933         (debug_dependencies): Likewise, and remove an "if (1)".
16934         * target.h (use_dfa_pipeline_interface): Remove.
16935         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16936         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16937         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16938         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16939         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16940         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16941         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16942         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16943         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16944         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16945         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16946         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16947         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16948         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16949         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16950         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16951         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16952         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16953         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
16954
16955 2004-07-19  Roger Sayle  <roger@eyesopen.com>
16956
16957         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
16958
16959 2004-07-19  Jeff Law  <law@redhat.com>
16960
16961         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
16962         (get_eq_expr_value): Use it.  Simplify slightly.
16963
16964 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
16965
16966         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
16967         (umulsidi3_32bit_r4000): Likewise.
16968
16969 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
16970
16971         * vec.h: Propagate location information properly.
16972         (VEC_T_iterate): Add result pointer parameter.
16973         (VEC_T_space): New.
16974         (VEC_T_reserve): Use it.
16975
16976 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
16977
16978         * Makefile.in (c-format.o): Depend on c-format.h.
16979         * c-format.h: New file.
16980         (struct format_char_info): Add CHAIN member.
16981         * c-format.c: Move some types and constants to c-format.h.
16982         (format_type_error): Set to -1.
16983         (struct function_format_info): Use an int for format_type.
16984         (decode_format_type): Return an int.  Return format_type_error
16985         on error.
16986         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
16987         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
16988         (scan_char_table, time_char_table, monetary_char_table): Initialize
16989         CHAIN to NULL.
16990         (n_format_types): New variable.
16991         (check_format_info_main): Handle CHAIN in format_char_info.
16992         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
16993         TARGET_N_FORMAT_TYPES.
16994         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
16995         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
16996         * config/sol2-c.c: New file.
16997         * config/t-sol2: New file.
16998         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
16999         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
17000         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
17001
17002         * doc/extend.texi (Target Format Checks): New section.
17003         (Function Attributes): Mention it.
17004         * doc/invoke.texi: Mention target format checks.
17005         * doc/sourcebuild.texi: Mention target format checks.
17006         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
17007         TARGET_FORMAT_TYPES.
17008
17009 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
17010
17011         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
17012         added.
17013         * config/s390/s390.c (regclass_map initializer): Register 35 added to
17014         ADDR_REGS.
17015         (load_multiple_operation, store_multiple_operation): Removed
17016         pointless sanity check.
17017         (s390_decompose_address): Added check for return_address_pointer_rtx.
17018         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
17019         (s390_return_address_offset): New function.
17020         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
17021         (FRAME_REGNO_P): Added check for register 35.
17022         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
17023         REG_ALLOC_ORDER): Appended entry for register 35.
17024         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
17025         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
17026         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
17027         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
17028         is eliminable using stack pointer or hard frame pointer.
17029         (REGISTER_NAMES): Added name for register 35.
17030         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
17031         pointless sanity check.
17032
17033 2004-07-19  Roger Sayle  <roger@eyesopen.com>
17034
17035         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
17036         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
17037         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
17038         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
17039         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
17040         (fold_relational_const): Tidy up handling of floating point
17041         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
17042         transformation; fold_relational_const assumes constant operands.
17043
17044 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
17045
17046         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
17047         directory.
17048
17049 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
17050
17051         * c-tree.h (struct c_expr): Define.
17052         (C_SET_EXP_ORIGINAL_CODE): Remove.
17053         (parser_build_binary_op, build_compound_expr): Update prototypes.
17054         * c-parse.in (%union): Add exprtype.
17055         (FUNC_NAME): Mark as ttype.
17056         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
17057         exprtype.
17058         (expr): Update.  Define directly in terms of expr_no_commas
17059         instead of using nonnull_exprlist.
17060         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
17061         offsetof_member_designator, typespec_nonreserved_nonattr, init,
17062         initval, designator, component_declarator,
17063         component_notype_declarator, enumerator, array_declarator,
17064         condition, exexpr, switch_statement, stmt_nocomp, stmt,
17065         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
17066         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
17067         where appropriate.
17068         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
17069         * c-common.c (c_common_truthvalue_conversion): Don't check
17070         C_EXP_ORIGINAL_CODE.
17071         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
17072         Don't use C_EXP_ORIGINAL_CODE.
17073         (default_conversion, default_function_array_conversion): Don't use
17074         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
17075         (internal_build_compound_expr): Merge into build_compound_expr.
17076         (build_compound_expr): Take two operands instead of a TREE_LIST.
17077         * objc/objc-act.c (get_super_receiver): Update calls to
17078         build_compound_expr.
17079
17080 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
17081
17082         * config/sh/sh.c (sh_use_dfa_interface): Remove.
17083         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
17084         hook_int_void_1.
17085         * config/sh/sh.md: Extract pipeline descriptions
17086         into separate files.
17087         * config/sh/sh1.md: New file, extracted from sh.md.
17088         * config/sh/sh4.md: New file, extracted from sh.md.
17089         * config/sh/shmedia.md: New file, extracted from sh.md
17090         and rewritten using new-style pipeline description.
17091
17092 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
17093
17094         * config/pa/pa.md: Delete the two remaining define_peephole
17095         patterns.
17096
17097 2004-07-18  Steven Bosscher  <stevenb@suse.de>
17098             Joseph S. Myers  <jsm@polyomino.org.uk>
17099
17100         * c-common.c (c_common_truthvalue_conversion): Don't warn if
17101         TREE_NO_WARNING is set.
17102
17103 2004-07-18  Roger Sayle  <roger@eyesopen.com>
17104
17105         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
17106         simplify_builtin_strncmp): Delete.
17107         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
17108         Change argument to accept an arglist instead of an "exp".  Assume
17109         that the return type is always integer_type_node.  Copy missing
17110         transformations from their now obsolete simplify_builtin_*
17111         equivalents.
17112         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
17113         fold_builtin_strcmp and fold_builtin_strncmp.
17114         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
17115         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
17116         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
17117
17118 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
17119
17120         * Makefile.in (tree-alias-common.o): Update dependencies.
17121
17122 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
17123
17124         * cfgloop.c (flow_loop_nested_p): Fix comment.
17125
17126 2004-07-17  Jason Merrill  <jason@redhat.com>
17127
17128         PR c++/16115
17129         * stor-layout.c (relayout_decl): New fn.
17130         * tree.h: Declare it.
17131         (DECL_BY_REFERENCE): New macro.
17132
17133 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
17134
17135         * libgcc2.c (__enable_execute_stack): New symbol.
17136         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
17137         and declare __enable_execute_stack.
17138         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
17139         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
17140         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
17141         ENABLE_EXECUTE_STACK.
17142         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
17143         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
17144         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
17145         ENABLE_EXECUTE_STACK.
17146         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
17147         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
17148         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
17149         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
17150         ENABLE_EXECUTE_STACK.
17151         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
17152         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
17153         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
17154         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
17155         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
17156         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
17157         (sparc64_initialize_trampoline): Likewise.
17158         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
17159
17160 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
17161
17162         * langhooks.h (builtin_function): New langhook.
17163         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
17164         (LANG_HOOKS_INITIALIZER): Update.
17165         * tree.h (builtin_function): Remove.
17166         * doc/tm.texi: Update.
17167         * c-tree.h (builtin_function): Declare.
17168         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
17169         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
17170         config/ia64/ia64.c, config/iq2000/iq2000.c,
17171         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
17172         config/stormy16/stormy16.c: All callers of builtin_function
17173         changed.
17174
17175 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
17176
17177         PR target/16556
17178         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
17179         Remove white space after the backslash.
17180
17181 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
17182
17183         PR rtl-optimization/16294
17184         * resource.c (return_insn_p): New predicate.
17185         (mark_target_live_regs): Use it.  Special-case return insns.
17186         (init_resource_info): Use it.  Don't scan the epilogue past
17187         a return.
17188
17189 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17190
17191         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
17192         destroy dominance information.
17193         * passes.c (rest_of_handle_loop2):  Free dominance information.
17194         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
17195         jump threading.
17196         (thread_jumps): Update dominance information and remove unreachable
17197         blocks.
17198         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
17199         information and remove the unreachable block.
17200
17201 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
17202
17203         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
17204
17205 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
17206
17207         * doc/sourcebuild.texi: Remove libf2c entry.
17208
17209 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
17210
17211         * config/i386/i386.md (movv16qi_internal): Fix typo.
17212
17213 2004-07-17  Steven Bosscher  <stevenb@suse.de>
17214
17215         * final.c (final_scan_insn): Fix broken commit from previous
17216         patch.
17217
17218 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
17219
17220         * c-typeck.c (parser_build_binary_op): Condition warnings for
17221         X<=Y<=Z on -Wparentheses instead of -Wextra.
17222         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
17223         supported for C only.
17224
17225 2004-07-17  Steven Bosscher  <stevenb@suse.de>
17226
17227         * cfgcleanup.c (try_simplify_condjump): Don't remove line
17228         notes to avoid unreachable code warnings.
17229         * toplev.c (backend_init): Don't emit line notes for
17230         unreachable code warnings.
17231
17232         * combine.c (distribute_notes): Don't distribute a
17233         REG_VTABLE_REF note.
17234         * final.c (final_scan_insn): Don't handle it.
17235         * rtl.c (reg_note_name): Remove it.
17236         * rtl.h (enum reg_node): Dito.
17237
17238         * emit-rtl.c (force_line_numbers, restore_line_number_status):
17239         Remove.
17240         * rtl.h (force_line_numbers, restore_line_number_status):
17241         Remove prototypes.
17242
17243         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
17244         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
17245         (using_eh_for_cleanups): Also moved here.
17246
17247         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
17248         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
17249         to expand_start_case and add_case_node.
17250         * stmt.c (struct nesting): Cleanup unused fields condition_code,
17251         last_unconditional_cleanup, nominal_type, printname, and
17252         line_number_status.
17253         (struct fixup_goto): Remove.
17254         (struct stmt_status): Remove x_goto_fixup_chain field.
17255         (goto_fixup_chain): Remove.
17256         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
17257         pushcase, pushcase_range): Remove.
17258         (expand_start_bindings_and_block): Don't set unused fields in
17259         the nesting stack.
17260         (expand_start_case, add_case_node): Cleanup unused formal arguments.
17261         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
17262         instead of emit_jump_if_reachable.
17263         (emit_case_nodes): Likewise.
17264         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
17265         static.
17266         (update_eh_label): Work around left-over exception handing regions.
17267         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
17268         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
17269         (pass_cleanup_cfg_post_optimizing): New pass.
17270         (init_tree_optimization_passes): Run the new pass after all
17271         optimizations.
17272         * tree.h (pushcase, pushcase_range): Remove prototypes.
17273         (expand_start_case, add_case_node): Update prototypes.
17274
17275 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
17276
17277         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
17278
17279 2004-07-16  Richard Henderson  <rth@redhat.com>
17280
17281         * builtins.c (std_expand_builtin_va_arg): Remove.
17282         (expand_builtin_va_arg): Remove.
17283         * expr.h: Don't declare them.
17284         * gimplify.c (mark_decls_volatile_r): Remove.
17285         (copy_if_shared_r): Don't call it.
17286         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
17287         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
17288         * gimple-low.c (lower_stmt): Likewise.
17289         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
17290         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
17291         * tree-ssa-operands.c (get_expr_operands): Likewise.
17292         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
17293         EXPAND_BUILTIN_VA_ARG.
17294         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
17295         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
17296         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
17297         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
17298
17299 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
17300
17301         * tree-ssa-pre.c (insert_aux): Break out if we hit
17302         a critical edge.
17303
17304 2004-07-16  Richard Henderson  <rth@redhat.com>
17305
17306         * basic-block.h (remove_fake_exit_edges): Declare.
17307         * cfganal.c (remove_fake_predecessors): Rename from
17308         remove_fake_successors; iterate over predecessors.
17309         (remove_fake_exit_edges): New.
17310         * cfgcleanup.c (try_optimize_cfg): Use it.
17311         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
17312         * predict.c (estimate_probability): Likewise.
17313         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
17314         * tree-cfg.c (make_edges): Likewise.
17315         * tree-ssa-pre.c (fini_pre): Likewise.
17316         * profile.c (instrument_edges): Don't remove_fake_edges.
17317         (branch_prob): Do it earlier here.
17318
17319 2004-07-16  Richard Henderson  <rth@redhat.com>
17320
17321         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
17322         switchification wrt CONSTRUCTOR.  Document the reason.
17323
17324 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
17325
17326         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
17327         that prevented descriptive __mf_check source location strings.
17328
17329 2004-07-16  Richard Henderson  <rth@redhat.com>
17330
17331         * tree-def (WITH_SIZE_EXPR): New.
17332         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
17333         * expr.c (expand_expr_real_1): Likewise.
17334         * gimplify.c (maybe_with_size_expr): New.
17335         (gimplify_arg, gimplify_modify_expr): Use it.
17336         (gimplify_modify_expr_to_memcpy): Take size parameter.
17337         (gimplify_modify_expr_to_memset): Likewise.
17338         (gimplify_expr): Handle WITH_SIZE_EXPR.
17339         * tree-alias-common.c (find_func_aliases): Likewise.
17340         * tree-eh.c (tree_could_trap_p): Likewise.
17341         (tree_could_throw_p): Likewise.
17342         * tree-gimple.c (is_gimple_lvalue): Likewise.
17343         (get_call_expr_in): Likewise.
17344         * tree-inline.c (estimate_num_insns_1): Likewise.
17345         (expand_calls_inline): Likewise.
17346         * tree-nested.c (convert_call_expr): Likewise.
17347         * tree-pretty-print.c (dump_generic_node): Likewise.
17348         * tree-sra.c (sra_walk_expr): Likewise.
17349         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
17350         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
17351         * tree-ssa-operands.c (get_expr_operands): Likewise.
17352         * tree-tailcall.c (find_tail_calls): Likewise.
17353
17354         * calls.c (expand_call): Reset old_stack_allocated after
17355         calling emit_stack_restore.
17356
17357 2004-07-16  Richard Henderson  <rth@redhat.com>
17358
17359         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
17360         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
17361         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
17362         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
17363         copy_res_decl_for_inlining.
17364
17365         * tree-inline.c (declare_return_variable): New modify_dest argument.
17366         Use it as the return value, when possible or manditory.  Handle
17367         TREE_ADDRESSABLE types.
17368         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
17369         replacement of CALL_EXPR.
17370
17371 2004-07-16  Richard Henderson  <rth@redhat.com>
17372
17373         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
17374         * gimple-low.c (expand_var_p): Don't check it.
17375         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
17376         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
17377         * tree-ssa-operands.c (add_stmt_operand): Likewise.
17378         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
17379         (find_referenced_vars): Don't call them.
17380         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
17381
17382 2004-07-16  Richard Henderson  <rth@redhat.com>
17383
17384         * function.c (pass_by_reference): True for all variable sized types.
17385
17386 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
17387
17388         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
17389         * tree-pretty-print.c: Include tree-chrec.h.
17390         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
17391         and POLYNOMIAL_CHREC nodes.
17392
17393 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
17394
17395         * builtins.c (expand_builtin_stpcpy): Do not create temporary
17396         reg with VOIDmode.
17397
17398 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
17399
17400         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
17401
17402 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
17403
17404         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
17405         to BASE_REGNUM.
17406         * config/s390/s390.c: Likewise.
17407         * config/s390/s390.h: Likewise.
17408
17409 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17410
17411         * config/mips/mips.md (addsi3, adddi3): Remove special handling
17412         of $sp adds.  Remove REGNO checks from mips16 patterns.
17413
17414 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17415
17416         * config/mips/mips.md: Delete outdated comment.
17417
17418 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17419
17420         * config/mips/mips.c (get_float_compare_codes): Delete.
17421         (mips_emit_compare): New function, mostly extracted from
17422         get_float_compare_codes and gen_conditional_branch.
17423         (gen_conditional_branch, gen_conditional_move): Use it.
17424
17425 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
17426
17427         * genautomata.c (add_vect): Speedup by using integers as
17428         bit-vectors for walking through the comb_vect and finding
17429         a match.
17430
17431 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17432
17433         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
17434         operand is an uns_arith_operand; use subtraction otherwise.
17435         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
17436         not just arith_operands.
17437
17438 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17439
17440         * config/mips/mips-protos.h (gen_int_relational): Delete.
17441         (mips_emit_scc): Declare.
17442         * config/mips/mips.c (internal_test): Delete.
17443         (sle_operand, sleu_operand): New functions.
17444         (map_test_to_internal_test, gen_int_relational): Delete.
17445         (mips_emit_binary, mips_relational_operand_ok_p)
17446         (mips_emit_int_relational, mips_zero_if_equal)
17447         (mips_emit_scc): New functions.
17448         (gen_conditional_branch): Rework to use mips_emit_int_relational.
17449         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
17450         sleu_operand.
17451         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
17452         (sltu, sleu): Use mips_emit_scc.
17453         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
17454         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
17455         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
17456
17457 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17458
17459         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
17460
17461 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17462
17463         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
17464         (*sne_[sd]i): Likewise sne_[sd]i_zero.
17465         (*sgt_[sd]i): ...and sgt_[sd]i.
17466         (*slt_[sd]i): ...and slt_[sd]i.
17467         (*sgtu_[sd]i): ...and sgtu_[sd]i.
17468         (*sltu_[sd]i): ...and sltu_[sd]i.
17469         (*sleu_[sd]i): ...and sleu_[sd]i_const.
17470         Name previously unnamed mips16 patterns.  Formatting fixes.
17471
17472 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17473
17474         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
17475         (branch_type): Delete.
17476         (gen_conditional_branch, gen_conditional_move)
17477         (mips_gen_conditional_trap): Update after name change.  Get the
17478         comparison mode from cmp_operands[0].
17479         * config/mips/mips.h (cmp_type, branch_type): Delete.
17480         (cmp_operands): Renamed from branch_cmp.
17481         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
17482         name change.  Don't set branch_type.
17483         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
17484         mode class of cmp_operands[0] rather than branch_type.  Update after
17485         name change.
17486
17487 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17488
17489         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
17490         of 0...255 to 0 when inside a SET.
17491
17492 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17493
17494         * config/mips/mips.md: Remove mips16 define_peepholes.
17495
17496 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
17497
17498         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
17499         (fini_pre): Remove fake edges.
17500
17501 2004-07-15  Richard Henderson  <rth@redhat.com>
17502
17503         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
17504         (get_indirect_ref_operands, get_call_expr_operands): ... these.
17505
17506 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
17507
17508         * vec.h (VEC_address): New function.
17509
17510 2004-07-14  Jason Merrill  <jason@redhat.com>
17511
17512         PR middle-end/15885
17513         * gimplify.c (gimplify_arg): New fn, split out from...
17514         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
17515
17516 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
17517
17518         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
17519         generate code which is generated by pushqi1 now
17520         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
17521
17522 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
17523
17524         * combine.c (simplify_set): match the mode of the constant 0 with
17525         the tested operand to match the compare behaviour and the
17526         simplify_relational_operation() expectation.
17527
17528 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
17529
17530         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
17531         ("bordered"): Same.
17532
17533 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
17534
17535         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
17536         unconditionally.
17537         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
17538
17539 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
17540
17541         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
17542         calls in mips16 code.
17543
17544 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
17545
17546         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
17547         the destination of the li as well as for the neg.
17548
17549 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
17550
17551         g++/15861
17552         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
17553         * cgraph.h: Update declaration.
17554         * c-decl.c (build_cdtor): Update call with default priority.
17555         * coverage.c (create_coverage): Ditto.
17556         * tree-mudflap.c (mf_init_fndecl): New tree.
17557         (mudflap_init): Set it.
17558         (mudflap_register_call): Arrange to call __mf_init before the first
17559         __mf_register call.
17560         (mudflap_finish_file): Mark the mudflap static initializer as extra
17561         high priority, to beat all C++ static constructors.
17562
17563 2004-07-15  Jeff Law  <law@redhat.com>
17564
17565         * loop.c (check_insn_for_givs): Restore check for code labels that was
17566         accidentally deleted by a recent checkin.
17567
17568 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
17569
17570         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
17571         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
17572
17573 2004-07-14  Richard Henderson  <rth@redhat.com>
17574
17575         * print-tree.c (print_node): Fix casts last change.
17576
17577 2004-07-15  Paul Brook  <paul@codesourcery.com>
17578
17579         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
17580         to TARGET_UNWIND_INFO.
17581         * except.c (output_function_exception_table): Ditto.
17582         * except.h: Ditto.
17583         * opts.c (decode_options): Ditto.
17584         * passes.c (rest_of_handle_final): Ditto.
17585         * final.c (final_start_function): Ditto.
17586         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
17587         target hook.
17588         * targhooks.h (default_unwind_emit): Declare.
17589         * targhooks.c (default_unwind_emit): New function.
17590         * target-def.h: Define and use TARGET_UNWIND_EMIT.
17591         * target.h (struct gcc_target): Add unwind_emit.
17592         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
17593         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
17594         Remove IA64_UNWIND_EMIT.
17595         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
17596
17597 2004-07-14  Richard Henderson  <rth@redhat.com>
17598
17599         * print-tree.c (print_node): Handle SSA_NAME.
17600
17601 2004-07-14  James E Wilson  <wilson@specifixinc.com>
17602
17603         PR target/16325
17604         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
17605         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
17606
17607 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
17608
17609         * expr.c (expand_assignment): Reenable bitfield += optimizations.
17610         Use alias set 0 for memory, do proper mode calculations and adjust
17611         address for memories.
17612
17613 2004-07-14  Per Bothner  <per@bothner.com>
17614
17615         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
17616         structure with extra column field.
17617         * tree.c (expand_location):  Also fill in column field.
17618         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
17619         gets confused by the two conditionally-compiled definitions.
17620
17621 2004-07-14  Eric Christopher  <echristo@redhat.com>
17622
17623         * calls.c (expand_call): Fix typo in comment.
17624
17625 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
17626
17627         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
17628         comparision of TFmode.
17629
17630 2004-07-14  Richard Henderson  <rth@redhat.com>
17631
17632         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
17633         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
17634         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
17635         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
17636         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
17637         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
17638         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
17639         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
17640         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
17641
17642 2004-07-14  Mike Stump  <mrs@apple.com>
17643
17644         * config/darwin.h (WINT_TYPE): Define to be int to match
17645         system header files.
17646
17647 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
17648
17649         * config/xtensa/xtensa.c (function_arg_advance): Check for args
17650         that must be passed in the stack.
17651         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
17652         arguments if the size is not a constant.
17653
17654 2004-07-14  Per Bothner  <per@bothner.com>
17655
17656         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
17657         instead of EXPR_LOCUS in a boolean context, which is always true
17658         if --enable-mapped-location.
17659         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
17660
17661 2004-07-14  Richard Henderson  <rth@redhat.com>
17662
17663         * dominance.c (struct dom_info): Add fake_exit_edge.
17664         (init_dom_info): Allocate it.
17665         (free_dom_info): Free it.
17666         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
17667         in two passes.
17668         (calc_idoms): Honor fake_exit_edge.
17669
17670 2004-07-13  Jason Merrill  <jason@redhat.com>
17671
17672         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
17673         (rhs_test_for): New fn.
17674         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
17675         * tree-gimple.h: Declare them.
17676         * gimplify.c (gimplify_modify_expr): Use the new fns.
17677
17678 2004-07-14  Richard Henderson  <rth@redhat.com>
17679
17680         * config/arm/arm-protos.h (arm_va_arg): Remove.
17681         * config/arm/arm.c (arm_va_arg): Remove.
17682         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
17683         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
17684
17685 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17686
17687         * pa.c (fix_range): New function to mark a range(s) of registers as
17688         fixed registers.
17689         (override_options): Call fix_range if the -mfixed-range option string
17690         is not empty.
17691         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
17692         * doc/invoke.texi (-mfixed-range): Document new option.
17693
17694 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
17695
17696         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
17697         for TARGET_64BIT.
17698         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
17699
17700 2004-07-14  Roger Sayle  <roger@eyesopen.com>
17701
17702         * expmed.c (expand_sdiv_pow2): New function to expand signed division
17703         by a positive power of two, split out from expand_divmod.  Provide
17704         an alternate implementation when shifts are expensive.  Lower the
17705         threshold for using a branchless implementation to BRANCH_COST >= 2.
17706         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
17707
17708 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
17709
17710         * tree-dfa.c (make_rename_temp): *Really* work just
17711         like create_tmp_var if called while outside SSA form.
17712
17713 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
17714
17715         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
17716         for division by zero.
17717         ("umodsi3"): Likewise.
17718
17719 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
17720
17721         * config/mips/mips.c (mips_output_move): When generating mips16 code,
17722         force loads of negative constants to be split.
17723         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
17724         Generalize SImode li/neg splitter to cope with other modes.
17725
17726 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
17727
17728         * expmed.c: Remove more references to QUEUED in the comments.
17729         * expr.c: Likewise.
17730
17731 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
17732
17733         Revert:
17734         2004-07-13  Richard Henderson  <rth@redhat.com>
17735         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
17736         correctly.
17737
17738 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
17739
17740         * tree-dfa.c (make_rename_temp): Work just like
17741         create_tmp_var if called while outside SSA form.
17742
17743 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
17744
17745         * expr.c (enqueue_insn, finish_expr_for_function,
17746         protect_from_queue, queued_subexp_p, mark_queue,
17747         emit_insns_enqueued_after_mark, emit_queue,
17748         expand_increment): Remove.
17749         (store_constructor): Expand increment as an assignment.
17750         (expand_expr_real_1 <case PREINCREMENT_EXPR,
17751         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
17752         case POSTDECREMENT_EXPR>): Abort.
17753         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
17754         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
17755         protect_from_queue, emit_queue, queued_subexp_p): Remove.
17756         * function.h (pending_chain, x_pending_chain): Remove.
17757         * rtl.def (QUEUED): Remove.
17758
17759         * emit-rtl.c (copy_insn_1, copy_most_rtx,
17760         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
17761         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
17762         encode_units_mask): Likewise.
17763         * local-alloc.c (equiv_init_varies_p): Likewise.
17764         * rtl.c (copy_rtx): Likewise.
17765         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
17766         * simplify-rtx.c (simplify_gen_subreg): Likewise.
17767         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
17768
17769         * builtins.c (expand_builtin, expand_builtin_apply,
17770         expand_builtin_mathfn, expand_builtin_mathfn_2,
17771         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
17772         Remove calls to emit_queue and protect_from_queue.
17773         * calls.c (expand_call, precompute_arguments,
17774         precompute_register_parameters, rtx_for_function_call,
17775         store_one_arg): Likewise.
17776         * dojump.c (do_compare_and_jump, do_jump): Likewise.
17777         * explow.c (memory_address): Likewise.
17778         * expmed.c (clear_by_pieces_1, clear_storage,
17779         clear_storage_via_libcall, emit_group_load,
17780         emit_group_store, emit_store_flag,
17781         expand_expr_real_1, store_by_pieces,
17782         store_constructor, store_expr, try_casesi,
17783         try_tablejump): Likewise.
17784         * function.c (expand_pending_sizes): Likewise.
17785         * optabs.c (emit_cmp_and_jump_insns,
17786         emit_conditional_add, emit_conditional_move,
17787         expand_fix, expand_float, prepare_cmp_insn): Likewise.
17788         * stmt.c (emit_case_bit_tests,
17789         expand_asm_expr, expand_computed_goto,
17790         expand_decl_init, expand_end_case_type,
17791         expand_end_stmt_expr, expand_expr_stmt_value,
17792         expand_return, expand_start_case,
17793         optimize_tail_recursion): Likewise.
17794         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
17795         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
17796
17797 2004-07-14  Ben Elliston  <bje@au.ibm.com>
17798
17799         * vec.h: Comment fix.
17800
17801 2004-07-13  Richard Henderson  <rth@redhat.com>
17802
17803         * target.h (struct gcc_target): Add calls.pass_by_reference.
17804         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
17805         * function.c (pass_by_reference): Use the hook.
17806         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
17807         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
17808         (hook_pass_by_reference_must_pass_in_stack): New.
17809         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
17810         (alpha_pass_by_reference): New.
17811         (TARGET_PASS_BY_REFERENCE): New.
17812         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17813         * config/arc/arc.c (arc_pass_by_reference): New.
17814         (TARGET_PASS_BY_REFERENCE): New.
17815         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17816         (FUNCTION_ARG_CALLEE_COPIES): True.
17817         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
17818         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
17819         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
17820         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17821         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17822         * config/cris/cris.c (cris_pass_by_reference): New.
17823         (TARGET_PASS_BY_REFERENCE): New.
17824         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
17825         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
17826         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17827         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
17828         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17829         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
17830         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
17831         (frv_function_arg_pass_by_reference): Remove.
17832         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17833         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
17834         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
17835         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
17836         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17837         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
17838         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
17839         (ia64_pass_by_reference): Rename from
17840         ia64_function_arg_pass_by_reference.
17841         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17842         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17843         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
17844         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
17845         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
17846         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17847         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
17848         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
17849         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
17850         (m32r_pass_by_reference): Adjust prototype.  Make static.
17851         Handle mode sizes correctly.
17852         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17853         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
17854         (m68hc11_function_arg_pass_by_reference): Remove.
17855         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17856         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
17857         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
17858         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17859         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
17860         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
17861         (mips_va_arg): Use pass_by_reference.
17862         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
17863         Handle mode sizes correctly.
17864         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17865         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
17866         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
17867         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
17868         (mmix_pass_by_reference): Rename from
17869         mmix_function_arg_pass_by_reference.
17870         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17871         (FUNCTION_ARG_CALLEE_COPIES): True.
17872         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
17873         (mn10300_pass_by_reference): New.
17874         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17875         (FUNCTION_ARG_CALLEE_COPIES): True.
17876         * config/pa/pa.c (pa_pass_by_reference): New.
17877         (TARGET_PASS_BY_REFERENCE): New.
17878         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17879         (FUNCTION_ARG_CALLEE_COPIES): True.
17880         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
17881         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
17882         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
17883         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17884         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
17885         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
17886         (s390_pass_by_reference): Rename from
17887         s390_function_arg_pass_by_reference.
17888         (s390_function_arg_advance): Don't query pass-by-ref.
17889         (s390_function_arg): Likewise.
17890         (s390_gimplify_va_arg): Use pass_by_reference.
17891         (s390_call_saved_register_used): Likewise.
17892         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17893         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
17894         (shcompact_byref, sh_pass_by_reference): New.
17895         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17896         (SHCOMPACT_BYREF): Remove.
17897         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
17898         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
17899         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
17900         (sparc_gimplify_va_arg): Use pass_by_reference.
17901         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17902         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17903         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
17904         (v850_pass_by_reference): New.
17905         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
17906         (FUNCTION_ARG_CALLEE_COPIES): True.
17907         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
17908         FUNCTION_ARG_PASS_BY_REFERENCE docs.
17909
17910 2004-07-14  Richard Henderson  <rth@redhat.com>
17911             Richard Sandiford  <rsandifo@redhat.com>
17912
17913         * config/mips/mips-protos.h (mips_va_arg): Delete.
17914         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
17915         * config/mips/mips.c: Include tree-gimple.h.
17916         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
17917         (mips_arg_info): Remove special handling of must_pass_in_stck args.
17918         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
17919         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
17920
17921 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
17922
17923         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
17924         arguments for COND_EXPR in big-endian adjustment code.
17925
17926 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17927
17928         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
17929         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
17930         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
17931         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
17932
17933 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
17934
17935         PR tree-optimization/16443
17936         * tree-ssa-alias.c: Add more description for
17937         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
17938         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
17939         clobbering of call-clobbered and addressable variables.  If
17940         there are any before aliases have been computed, add them.
17941
17942 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
17943
17944         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
17945         verification.
17946
17947 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
17948
17949         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
17950         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
17951         to the same type.
17952
17953 2004-07-13  Per Bothner  <per@bothner.com>
17954
17955         * collect2.c (main):  Handle --no-demangle and --demangle flags.
17956
17957 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
17958
17959         * Makefile.in (OBJS-common): Add tree-data-ref.o.
17960         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
17961         (tree-data-ref.o): New rule.
17962         * lambda.h: New file.
17963         * tree-data-ref.c: New file.
17964         * tree-data-ref.h: New file.
17965         * tree.c (int_cst_value, tree_fold_gcd): New functions.
17966         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
17967
17968 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
17969
17970         PR target/13926
17971         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
17972         * config/sparc/sparc.c (output_ubranch): New function.
17973         * config/sparc/sparc.md (jump pattern): Use it.
17974
17975 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
17976
17977         PR target/16494
17978         * config/sparc/sparc.c (output_cbranch): Properly guard
17979         the code handling far branches with TARGET_V9.
17980         * config/sparc/sparc.md (length attribute): Document the
17981         side-effect of having a length greater or equal to 3.
17982
17983 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
17984             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
17985
17986         PR target/15186
17987         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
17988         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
17989
17990 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
17991             Martin Sebor  <sebor@roguewave.com>
17992
17993         PR target/12602
17994         * doc/invoke.texi (SPARC options): Document -threads
17995         and -pthreads on Solaris.
17996
17997 2004-07-13  Richard Henderson  <rth@redhat.com>
17998
17999         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
18000         by reference.
18001         (ind_gimplify_va_arg_expr): Remove.
18002         * tree.h (ind_gimplify_va_arg_expr): Remove.
18003         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
18004         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
18005         argsp to be null.
18006
18007         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
18008         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
18009         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
18010         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
18011         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
18012
18013 2004-07-13  Richard Henderson  <rth@redhat.com>
18014
18015         * function.c (pass_by_reference): New.
18016         (assign_parm_find_data_types): Use it.
18017         * calls.c (initialize_argument_information): Likewise.
18018         (emit_library_call_value_1): Likewise.
18019         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18020         * function.h (pass_by_reference): Declare.
18021
18022 2004-07-13  Richard Henderson  <rth@redhat.com>
18023
18024         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
18025         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
18026         * expr.h (MUST_PASS_IN_STACK): Remove.
18027         * system.h (MUST_PASS_IN_STACK): Poison.
18028         * tree.h (must_pass_in_stack_var_size): Declare.
18029         (must_pass_in_stack_var_size_or_pad): Declare.
18030         * calls.c (must_pass_in_stack_var_size): New.
18031         (must_pass_in_stack_var_size_or_pad): Rename from
18032         default_must_pass_in_stack.
18033         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
18034         (TARGET_MUST_PASS_IN_STACK): New.
18035         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
18036         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
18037         (TARGET_MUST_PASS_IN_STACK): New.
18038         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
18039         * config/frv/frv.c (frv_must_pass_in_stack): New.
18040         (TARGET_MUST_PASS_IN_STACK): New.
18041         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
18042         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
18043         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
18044         (ix86_must_pass_in_stack): Make static.
18045         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
18046         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
18047         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
18048         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
18049         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
18050         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
18051         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
18052         (mcore_must_pass_on_stack): Remove.
18053         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
18054         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
18055         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
18056         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
18057         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
18058         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
18059         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
18060         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
18061         (TARGET_MUST_PASS_IN_STACK): New.
18062         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
18063         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
18064         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
18065         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
18066         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
18067         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
18068         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
18069         MUST_PASS_IN_STACK.
18070
18071         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
18072         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
18073         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
18074         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
18075         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
18076         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
18077         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
18078         config/xtensa/xtensa.c: Use target hook.
18079
18080 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
18081
18082         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
18083         * configure: Rebuilt.
18084
18085 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
18086
18087         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
18088         * config/mips/mips.h (mips_reg_names): Don't declare.
18089         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
18090         (TARGET_NAME_REGS): Delete.
18091         (TARGET_SWITCHES): Remove -mrnames.
18092         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
18093         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
18094         in REGISTER_NAMES.
18095         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
18096         (override_options): Remove handling of TARGET_NAME_REGS.
18097
18098 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
18099
18100         * config/mips/mips.h (TARGET_*): Boolify.
18101
18102 2004-07-12  Nick Clifton  <nickc@redhat.com>
18103
18104         * config.gcc: Add sh-*-symbianelf target.
18105         * config/sh/sh.c: Add new target macros:
18106         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
18107         TARGET_CXX_IMPORT_EXPORT_CLASS.
18108         (sh_file_start): Create a definition of the .directive section.
18109         (sh_attribute): Add dllimport and dllexport attributes.
18110         * config/sh/symbian-pre.h: New file.
18111         * config/sh/symbian-post.h: New file.
18112         * config/sh/symbian.c: New file. Contains Symbian specific
18113         functions.
18114         * config/sh/sh-protos.h: Add prototypes for new functions
18115         provided by symbian.c.
18116         * config/sh/t-symbian: New file.
18117         * doc/extend.texi: Document support for dllimport and dllexport
18118         attributes by the sh-symbianelf target.
18119
18120 2004-07-12  James E Wilson  <wilson@specifixinc.com>
18121
18122         * Makefile.in (AR): Use @AR@ not ar.
18123         (NM): New.
18124         (AR_FOR_TARGET): Use $(AR) not ar for native.
18125         (NM_FOR_TARGET): Use $(NM) not nm for native.
18126         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
18127         * configure: Regenerate.
18128
18129 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
18130
18131         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
18132         special case.
18133         (ashldi3_sp64): Likewise.
18134
18135 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18136
18137         PR target/16477
18138         * pa.c (function_arg): Update comment.
18139         * pa.h (BLOCK_REG_PADDING): Define.
18140
18141 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18142
18143         PR tree-optimization/16461
18144         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
18145         arguments of phi nodes.
18146
18147 2004-07-12  Devang Patel  <dpatel@apple.com>
18148
18149         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
18150
18151 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
18152
18153         * function.c (expand_function_start): Ensure r_save is in Pmode.
18154         * calls.c (prepare_call_address): Ensure static_chain_value is
18155         in Pmode.
18156         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
18157         r_save_area are in Pmode.
18158         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
18159         fnaddr, and static_chain are in Pmode.
18160
18161 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
18162
18163         PR target/16445
18164         * config/ia64/ia64.c (bundling): Don't count ignored insns.
18165
18166 2004-07-12  Richard Henderson  <rth@redhat.com>
18167
18168         * target.h (struct gcc_target): Move gimplify_va_arg_expr
18169         next to build_builtin_va_list.
18170         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
18171         * builtins.c (gimplify_va_arg_expr): Likewise.
18172         * gimplify.c (copy_if_shared_r): Likewise.
18173
18174 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
18175
18176         * passes.c (rest_of_decl_compilation): Don't defer call of
18177         assemble_variable if its DECL_RTL is already set.
18178
18179 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
18180
18181         * cfgloop.h (struct loop): Add nb_iterations field.
18182         (current_loops): Declare.
18183         * tree-chrec.c (chrec_not_analyzed_yet,
18184         chrec_dont_know, chrec_known, count_ev_in_wider_type,
18185         chrec_contains_symbols_defined_in_loop): Remove the temporary
18186         hooks.
18187         * tree-flow-inline.h (loop_containing_stmt): New function.
18188         * tree-scalar-evolution.c: Add implementation.
18189         * tree-scalar-evolution.h: Add declarations.
18190
18191 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
18192
18193         PR rtl-optimization/15921
18194         * Makefile.in (global.o): Add recog.h.
18195
18196         * global.c (recog.h): Add the include-clause.
18197         (bb_info): New member earlyclobber.
18198         (allocate_bb_info, free_bb_info): Initialize/finish the new
18199         member.
18200         (earlyclobber_regclass, earlyclobber_regclass_length): The new
18201         global variables.
18202         (check_earlyclobber, regclass_intersect,
18203         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
18204         New functions.
18205         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
18206         (make_accurate_live_analysis): Modify pavin.
18207
18208 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
18209
18210         * tree-cfg.c (find_taken_edge): Statically compute the truth
18211         value of a predicate comparing an SSA_NAME to itself.
18212
18213 2004-07-12  Roger Sayle  <roger@eyesopen.com>
18214
18215         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
18216         rs6000 doesn't have shift-and-add or shift-and-sub instructions
18217         by returning the cost of a multiplication plus an addition.
18218
18219 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
18220
18221         PR tree-optimization/14107
18222         * gimplify.c (gimplify_return_expr): Accept a
18223         RETURN_EXPR with an error argument.
18224         * tree-optimize.c (init_tree_optimization_passes):
18225         Run pass_warn_function_return at -O0.
18226
18227 2004-07-12  Roger Sayle  <roger@eyesopen.com>
18228
18229         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
18230         index entry.
18231
18232 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
18233
18234         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
18235         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18236         * config/mips/3000.md: Add copyright notice.  Remove automota and
18237         function units; use generic ones instead.  Only define reservations
18238         for things that are different from generic.md.  Extend each clause
18239         to include r3900.
18240         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
18241         * config/mips/mips.md: Include them. Remove define_function_units.
18242         (alu, imuldiv): New automata and units.
18243
18244 2004-07-12  Ben Elliston  <bje@au.ibm.com>
18245
18246         * doc/invoke.texi (Optimize Options): Document -frename-registers
18247         not being enabled by default at -O3.
18248
18249 2004-07-11  Roger Sayle  <roger@eyesopen.com>
18250
18251         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
18252         floating point additions, to keep real immediate constant positive.
18253         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
18254         into X + C, and leave positive real constants as X - C.
18255
18256 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18257
18258         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
18259
18260 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18261
18262         PR tree-optimization/15654
18263         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
18264
18265 2004-07-11  Roger Sayle  <roger@eyesopen.com>
18266
18267         * builtins.c (fold_builtin_fputs): Don't bother converting the
18268         return type to integer_type_node, as we've already checked that
18269         the result will be ignored.
18270
18271         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
18272         that signed addition, subtraction, multiplication, division,
18273         remainder, negation and absolute value may potentially trap.
18274
18275         * fold-const.c (fold_ignored_result): New function to strip
18276         non-side-effecting tree nodes from an expression whose result
18277         is ignored.
18278         (fold_convert): Call fold_ignored_result when casting a value
18279         to VOID_TYPE.
18280         (omit_one_operand):  Call fold_ignored_result on the "omitted"
18281         operand when building a COMPOUND_EXPR.
18282         (pedantic_omit_one_operand): Likewise.
18283         * tree.h (fold_ignored_result): Prototype here.
18284         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
18285         when we're going to ignore the result.
18286
18287 2004-07-11  Richard Henderson  <rth@redhat.com>
18288
18289         PR tree-opt/16383
18290         * tree-ssa-ccp.c (fold_stmt_r): Split out...
18291         * tree.c (fields_compatible_p, find_compatible_field): ... new.
18292         * tree.h (fields_compatible_p, find_compatible_field): Declare.
18293         * tree-sra.c (sra_hash_tree): Hash fields by offset.
18294         (sra_elt_eq): Use fields_compatible_p.
18295         (generate_one_element_ref): Use find_compatible_field.
18296
18297 2004-07-11  Richard Henderson  <rth@redhat.com>
18298
18299         PR tree-opt/16422
18300         * tree-sra.c (generate_one_element_init): New.
18301         (generate_element_init): Use it.
18302         (scalarize_init): Push/pop gimplify context around it.
18303         (find_new_referenced_vars_1, find_new_referenced_vars): New.
18304         * gimplify.c (gimplify_expr): Allow SSA_NAME.
18305
18306 2004-07-11  Roger Sayle  <roger@eyesopen.com>
18307
18308         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
18309         combine.c's combine_insn_cost.
18310         * rtl.h (insn_rtx_cost): Prototype here.
18311         * combine.c (combine_insn_cost): Delete function.
18312         (combine_validate_cost): Update callers of combine_insn_cost to
18313         call insn_rtx_cost instead.
18314         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
18315         requesting the rtx_cost of call and/or jump instructions.
18316
18317         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
18318         rtx_cost directly.  Don't request/use the cost of call or jump
18319         instructions.  Return -1 if the cost of any instruction can't be
18320         determined (or the BB contains a function call).
18321         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
18322         -1 (i.e. can't determine the cost of any instruction or the basic
18323         block contains a subroutine call).
18324         (find_if_case_2): Likewise.
18325
18326 2004-07-11  Roger Sayle  <roger@eyesopen.com>
18327
18328         * rs6000.c (struct processor_costs): Change semantics of fields to
18329         include the COST_N_INSNS scaling, and update all initializers.
18330         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
18331         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
18332         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
18333         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
18334
18335 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
18336
18337         * LANGUAGES: Remove obsolete information.
18338
18339 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
18340
18341         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
18342         SIGBUS signal frames, the PSW address points *to* the faulting
18343         instruction, not after it.
18344
18345 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
18346
18347         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
18348         added to TLS symbol addresses.
18349
18350 2004-07-11  Richard Henderson  <rth@redhat.com>
18351
18352         * expmed.c (init_expmed): Use stack-local structures for
18353         temporary rtl.  Don't recognize shifts.
18354
18355 2004-07-11  Richard Henderson  <rth@redhat.com>
18356
18357         * expr.c (store_expr): Don't fiddle subreg promotion for types
18358         with precision smaller than the mode.
18359
18360 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
18361
18362         * tree.h (all_types_permanent): Remove.
18363
18364 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
18365
18366         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
18367         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
18368         * langhooks.c (lhd_clear_binding_stack): Remove.
18369         * langhooks-def.h (lhd_clear_binding_stack,
18370         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
18371         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
18372         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
18373         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
18374         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
18375         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
18376         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
18377         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
18378         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
18379         * tree.h (poplevel): Don't declare.
18380         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
18381         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
18382         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
18383         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
18384         Remove.
18385
18386 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
18387
18388         PR tree-optimization/16437
18389         * c-common.c (shorten_compare): Don't mark result of conversion to
18390         narrower signed type as overflowing.
18391         * fold-const.c (decode_field_reference): Determine whether
18392         signedness comes from outer type using precision rather than size.
18393
18394 2004-07-11  Phil Edwards  <phil@codesourcery.com>
18395
18396         * configure.ac:  Alphabetize --enable-checking list, add
18397         missing valgrind entry.
18398         * configure:  Regenerate.
18399
18400 2004-07-11  Phil Edwards  <phil@codesourcery.com>
18401
18402         * doc/install.texi (Testing):  Fix syntax in "make check" example.
18403
18404 2004-07-10  James E Wilson  <wilson@specifixinc.com>
18405
18406         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
18407
18408 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18409
18410         PR rtl-optimization/16001
18411         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
18412         niter_expr.
18413
18414 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
18415
18416         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
18417
18418 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
18419             James Morrison  <phython@gcc.gnu.org>
18420
18421         * doc/contrib.texi (Contributors): Add gfortran contributors and
18422         fix a couple of typos.
18423
18424 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18425
18426         PR rtl-optimization/15387
18427         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
18428         to incoming args space correctly.
18429
18430 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18431
18432         * pa.c (output_indirect_call): Only use %r2 as the link register in
18433         indirect calls with the long PA 2.0 pc-relative branch.
18434
18435 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
18436
18437         * config/i386/i386.c (override_options): Pick a 64-bit CPU
18438         for the default tuning if TARGET_64BIT.
18439
18440 2004-07-10  Richard Henderson  <rth@redhat.com>
18441
18442         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
18443         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
18444
18445 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
18446
18447         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
18448         * expmed.c (store_bit_field, extract_bit_field): Remove last
18449         argument.
18450         * builtins.c (expand_builtin_signbit): Adjust callers.
18451         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
18452         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
18453         * ifcvt.c (noce_emit_move_insn): Likewise.
18454         * stmt.c (expand_return): Likewise.
18455         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
18456         store_field, expand_expr_real_1): Likewise.
18457
18458 2004-07-10  Richard Henderson  <rth@redhat.com>
18459
18460         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
18461
18462 2004-07-09  Mike Stump  <mrs@apple.com>
18463
18464         * config/darwin.c (no_dead_strip): Add.
18465         (HAVE_DEAD_STRIP): Add.
18466         (darwin_emit_unwind_label): Ensure that we don't dead code strip
18467         the .eh label.
18468
18469 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18470
18471         * tree-ssa-loop-im.c: New file.
18472         * Makefile.in (tree-ssa-loop-im.o): Add.
18473         * cfgloop.c (superloop_at_depth): New function.
18474         * cfgloop.h (superloop_at_depth): Declare.
18475         * common.opt (ftree-lim): New flag.
18476         * expr.c (array_ref_up_bound): New function.
18477         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
18478         * timevar.def (TV_LIM): New timevar.
18479         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
18480         computing immediate uses of a phi node.
18481         * tree-flow.h (struct tree_ann_common_d): Add aux field.
18482         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
18483         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
18484         * tree-pass.h (pass_lim): Declare.
18485         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
18486         functions.
18487         (pass_lim): New pass structure.
18488         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
18489         * tree.c (in_array_bounds_p): New function.
18490         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
18491         (in_array_bounds_p, array_ref_up_bound): Declare.
18492         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
18493         * doc/passes.texi (tree-ssa-loop-im.c): Document.
18494
18495 2004-07-09  Richard Henderson  <rth@redhat.com>
18496
18497         * builtins.c (expand_builtin_stpcpy): Don't modify len.
18498
18499         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
18500         with prejudice.
18501
18502 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
18503
18504         * flags.h: Delete redundant prototypes that are being generated
18505         in options.h from common.opt.
18506         * common.opt: Add in the expository comments formerly in flags.h.
18507
18508 2004-07-09  Jan Beulich  <jbeulich@novell.com>
18509
18510         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
18511         available for use only when TARGET_MMX/_SSE is set, and check for
18512         variable argument function if any register count is non-zero.
18513         (function_arg): Correctly suppress repeated warnings for passing SSE
18514         vectors are arguments without SSE enabled.
18515         (ix86_function_arg_boundary): Without SSE enabled, the use of what
18516         would be SSE register modes does no longer influence the alignment.
18517
18518 2004-07-09  Richard Henderson  <rth@redhat.com>
18519
18520         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
18521         Always align upward to arg boundary.  Use size_in_bytes/round_up.
18522         Maintain type-correctness of constants.
18523         * stor-layout.c (round_up, round_down): Special-case powers of 2.
18524
18525 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
18526
18527         * config/sparc/sparc.c (*_costs): Scale instruction costs
18528         by COSTS_N_INSNS.
18529         (sparc_rtx_costs): Adjust as appropriate.
18530
18531 2004-07-09  Jan Beulich  <jbeulich@novell.com>
18532
18533         * config/i386/mm3dnow.h: New.
18534         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
18535
18536 2004-07-09  Richard Henderson  <rth@redhat.com>
18537
18538         * simplify-rtx.c (simplify_const_relational_operation): Only
18539         look at bounds of scalar integers.
18540
18541 2004-07-09  Jan Beulich  <jbeulich@novell.com>
18542
18543         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
18544
18545 2004-07-09  Andrew Pinski  <apinski@apple.com>
18546
18547         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
18548         always referenced.
18549         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
18550         UOBJC_METACLASS_decl.
18551
18552 2004-07-09  James E Wilson  <wilson@specifixinc.com>
18553
18554         PR target/16364
18555         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
18556         do return a parallel if hfa_mode == XFmode and mode == TImode.
18557
18558 2004-07-09  Jan Beulich  <jbeulich@novell.com>
18559
18560         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
18561         permissible for unary plus.
18562
18563 2004-07-09  Jan Beulich  <jbeulich@novell.com>
18564
18565         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
18566         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
18567         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
18568         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
18569         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
18570         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
18571         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
18572         (BUILTIN_xxxIMAX): New.
18573         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
18574         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
18575         BUILT_IN_PARITYIMAX.
18576
18577 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
18578
18579         * config/sparc/sparc.h (processor_costs): Define.
18580         (sparc_costs): Declare.
18581         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
18582         hypersparc_costs, sparclet_costs, ultrasparc_costs,
18583         ultrasparc3_costs): New.
18584         (sparc_override_options): Set sparc_costs as appropriate.
18585         (sparc_rtx_costs): Use sparc_costs instead of messy
18586         conditionals.
18587
18588 2004-07-09  Steven Bosscher  <stevenb@suse.de>
18589
18590         * doc/md.texi (Processor pipeline description): Mention that
18591         the old pipeline description is deprecated.
18592
18593         * config/rs6000/7450.md (automaton ppc7450): Split up, move
18594         mciu_7450 function unit to...
18595         (automaton ppc7450mciu): ...new automaton.
18596
18597         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
18598         (schedule_block): Don't consider inserting bubbles.
18599         (sched_init): Don't initialize DFA bubbles.
18600         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
18601         TARGET_SCHED_DFA_BUBBLE): Remove.
18602         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
18603         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
18604         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
18605
18606         * stmt.c (conditional_context): Remove prototype.
18607         * tree.h (conditional_context): Remove.
18608         * tree-cfg.c (pre_insert_on_edge): Remove.
18609
18610         * c-common.h (c_expand_asm_operands): Remove prototype.
18611         * c-typeck.c (c_expand_asm_operands): Remove.
18612
18613 2004-07-09  Jan Beulich  <jbeulich@novell.com>
18614
18615         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
18616         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
18617         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
18618         and V8QI are class SSE. All sufficiently small remaining vector modes
18619         must be passed in one or two integer registers.
18620         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
18621         returned in memory.
18622         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
18623         __builtin_ia32_pmuludq128 have non-uniform argument and return types
18624         and must thus be handled explicitly.
18625         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
18626         MMX and XMM regs.
18627         (movv8qi_internal, movv4hi_internal, movv2si_internal,
18628         movv2sf_internal): Permit moving between MMX and XMM registers (since
18629         MMX areguments and return values are passed in XMM registers).
18630         (sse2_umulsidi3): Correct type and mode.
18631
18632 2004-07-09  Richard Henderson  <rth@redhat.com>
18633
18634         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
18635
18636 2004-07-09  Eric Christopher  <echristo@redhat.com>
18637
18638         * config/rs6000/40x.md: Split into two automatons.
18639
18640 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
18641             Andrew Pinski  <apinski@apple.com>
18642
18643         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
18644         on when we have more than one input file.
18645         (c_common_parse_file): Restore loop over all input files.
18646         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
18647
18648         * c-decl.c (set_type_context): New function.
18649         (pop_scope): Use it to set context of types.  When we
18650         encounter a TYPE_DECL, set the context of the attached type too.
18651         (pop_file_scope): Don't call cpp_undef_all here.
18652         (diagnose_mismatched_decls): Do not complain about a second
18653         definition of an 'extern inline' function if it's not in the
18654         same translation unit.  Do not complain about inline
18655         declaration after use if the use was in a different
18656         translation unit.
18657         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
18658         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
18659         the external scope.
18660         (pushdecl_top_level): Likewise.
18661         (grokdeclarator): Clarify what is going on with setting
18662         DECL_EXTERNAL on function types, a little.
18663         (c_write_global_declarations): Don't do anything if
18664         -fsyntax-only or errors have been encountered.
18665
18666 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
18667
18668         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
18669
18670 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18671
18672         PR target/16459
18673         * pa.c (output_indirect_call): Use %r2 as the link register when
18674         calling $$dyncall with a pc-relative branch.
18675
18676 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
18677
18678         * doc/install.texi (Binaries): Mention OpenPKG.
18679
18680 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
18681
18682         Fix PR tree-optimization/15555
18683         * tree-dfa.c (dump_variable): If the variable is a pointer
18684         SSA_NAME, also dump its points-to information.
18685         * tree-flow.h (struct ptr_info_def): Add field
18686         is_dereferenced.
18687         (dump_points_to_info_for): Declare.
18688         (debug_points_to_info_for): Declare.
18689         * tree-optimize.c (init_tree_optimization_passes): Add a
18690         second alias analysis pass after DOM2.
18691         Move pass_del_pta to a later spot.
18692         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
18693         create a name tags when we find a dereferenced pointer.  Just
18694         mark the pointer dereferenced.
18695         (collect_points_to_info_for): Move code to clear points-to
18696         information to create_name_tags.
18697         (create_name_tags): New function.
18698         (compute_flow_sensitive_aliasing): Call it.
18699         (setup_pointers_and_addressables): Mark type tags for renaming
18700         here instead of ...
18701         (create_memory_tag): ... here.
18702         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
18703         (dump_points_to_info_for): Declare extern.
18704         (debug_points_to_info_for): New function.
18705
18706 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
18707
18708         * config/arc/arc.md: Switch to DFA-based scheduler description.
18709         * config/arc/arc.c: Switch to DFA-based scheduler description.
18710
18711 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
18712
18713         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
18714         pointer.
18715
18716 2004-07-09  Richard Henderson  <rth@redhat.com>
18717
18718         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
18719         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
18720         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
18721         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
18722
18723         * config/v850/v850-protos.h (v850_va_arg): Remove.
18724         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
18725         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
18726         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
18727         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
18728         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
18729
18730 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
18731
18732         PR target/12133
18733         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
18734         and DImode to use +/-4k offset.
18735
18736 2004-07-09  Richard Henderson  <rth@redhat.com>
18737
18738         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
18739         Remove.
18740         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
18741         (xstormy16_gimplify_va_arg_expr): Rewrite from
18742         xstormy16_expand_builtin_va_arg.
18743         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
18744
18745         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
18746         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
18747
18748         * config/sh/sh-protos.h (sh_va_arg): Remove.
18749         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
18750         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
18751         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
18752
18753         * config/pa/pa-protos.h (hppa_va_arg): Remove.
18754         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
18755         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
18756         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
18757
18758         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
18759         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
18760         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
18761         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
18762
18763 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
18764
18765         * config/sparc/sparc.md (return): Rewrite length formula.
18766         * config/sparc/sparc.c (output_return): Pass 1 as 5th
18767         argument to final_scan_insn when in a delay slot.
18768         (output_sibcall): Likewise.
18769
18770 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
18771
18772         * arm.c (arm_cpp_interwork): New variable.
18773         (arm_override_options): Set it if TARGET_INTERWORK was on the command
18774         line.
18775         * arm.h (arm_cpp_interwork): Declare it.
18776         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
18777         __THUMB_INTERWORK__ in the preprocessor.
18778
18779 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
18780
18781         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
18782
18783 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
18784
18785         PR target/16416
18786         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
18787         Override default settings to account for -m32 and -m64.
18788
18789 2004-07-08  Randolph Chung  <tausq@debian.org>
18790
18791         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
18792
18793 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
18794
18795         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
18796         before comparing it as such.
18797
18798 2004-07-08  Richard Henderson  <rth@redhat.com>
18799
18800         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
18801         temporary.  Use bit arithmetic to align.
18802
18803 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
18804
18805         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
18806         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
18807         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
18808         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
18809         add_labels_and_missing_jumps, find_jump_block,
18810         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
18811         Likewise.
18812         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
18813         link_btr_uses, move_btr_def): Likewise.
18814         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
18815         expand_builtin_expect_jump): Likewise.
18816         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
18817         * calls.c (expand_call, emit_library_call_value_1): Likewise.
18818         * cfganal.c (forwarder_block_p): Likewise.
18819         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
18820         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
18821         find_bb_boundaries): Likewise.
18822         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
18823         merge_blocks_move_predecessor_nojumps,
18824         merge_blocks_move_successor_nojumps, insns_match_p,
18825         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
18826         try_optimize_cfg): Likewise.
18827         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
18828         * cfglayout.c (skip_insns_after_block, label_for_bb,
18829         record_effective_endpoints, insn_locators_initialize,
18830         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
18831         * cfgmainloop.c (create_loop_notes): Likewise.
18832         * cfgrtl.c (delete_insn, delete_insn_chain,
18833         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
18834         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
18835         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
18836         redirect_branch_edge, force_nonfallthru_and_redirect,
18837         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
18838         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
18839         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
18840         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
18841         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
18842         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
18843         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
18844         * combine.c (combine_instructions, can_combine_p, try_combine,
18845         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
18846         distribute_notes, distribute_links, insn_cuid): Likewise.
18847         * cse.c (fold_rtx, cse_insn, cse_around_loop,
18848         invalidate_skipped_block, cse_set_around_loop,
18849         cse_end_of_basic_block, cse_main, cse_basic_block,
18850         cse_condition_code_reg): Likewise.
18851         * cselib.c (cselib_process_insn): Likewise.
18852         * ddg.c (create_ddg): Likewise.
18853         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
18854         Likewise.
18855         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
18856         gen_label_die, dwarf2out_var_location): Likewise.
18857         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
18858         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
18859         last_call_insn, active_insn_p, next_label, prev_label,
18860         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
18861         add_insn_before, remove_insn, add_function_usage_to,
18862         reorder_insns, find_line_note, remove_unnecessary_notes,
18863         emit_insn_after_1, classify_insn): Likewise.
18864         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
18865         connect_post_landing_pads, sjlj_mark_call_sites,
18866         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
18867         can_throw_internal, can_throw_external, set_nothrow_function_flags,
18868         convert_to_eh_region_ranges): Likewise.
18869         * explow.c (optimize_save_area_alloca): Likewise.
18870         * expr.c (expand_expr_real): Likewise.
18871         * final.c (insn_current_reference_address, compute_alignments,
18872         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
18873         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
18874         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
18875         propagate_block_delete_insn, propagate_one_insn,
18876         init_propagate_block_info, propagate_block, libcall_dead_p,
18877         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
18878         Likewise.
18879         * function.c (instantiate_virtual_regs, reorder_blocks_1,
18880         expand_function_start, expand_function_end, contains,
18881         thread_prologue_and_epilogue_insns,
18882         reposition_prologue_and_epilogue_notes): Likewise.
18883         * gcse.c (constprop_register, bypass_conditional_jumps,
18884         insert_insn_end_bb, gcse_after_reload): Likewise.
18885         * genemit.c (gen_expand, gen_split): Likewise.
18886         * genpeep.c (gen_peephole, main): Likewise.
18887         * global.c (build_insn_chain): Likewise.
18888         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
18889         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
18890         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
18891         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
18892         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
18893         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
18894         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
18895         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
18896         dead_or_predicable): Likewise.
18897         * integrate.c (try_constants): Likewise.
18898         * jump.c (rebuild_jump_labels, cleanup_barriers,
18899         purge_line_number_notes, init_label_info, mark_all_labels,
18900         squeeze_notes, get_label_before, get_label_after,
18901         reversed_comparison_code_parts, simplejump_p, pc_set,
18902         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
18903         delete_barrier, delete_prior_computation, delete_computation,
18904         delete_related_insns, delete_for_peephole, redirect_jump):
18905         Likewise.
18906         * lcm.c (optimize_mode_switching): Likewise.
18907         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
18908         Likewise.
18909         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
18910         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
18911         * loop-iv.c (simplify_using_assignment): Likewise.
18912         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
18913         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
18914         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
18915         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
18916         check_insn_for_givs, check_final_value, update_giv_derive,
18917         basic_induction_var, product_cheap_p, check_dbra_loop,
18918         loop_insn_first_p, last_use_this_basic_block,
18919         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
18920         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
18921         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
18922         sms_schedule_by_order): Likewise.
18923         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
18924         * postreload.c (reload_cse_simplify_operands, reload_combine,
18925         reload_cse_move2add): Likewise.
18926         * predict.c (can_predict_insn_p, estimate_probability,
18927         expected_value_to_br_prob, process_note_predictions): Likewise.
18928         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
18929         * profile.c (branch_prob): Likewise.
18930         * ra-build.c (live_out_1, livethrough_conflicts_bb,
18931         detect_webs_set_in_cond_jump): Likewise.
18932         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
18933         ra_print_rtl_with_bb): Likewise.
18934         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
18935         * recog.c (next_insn_tests_no_inequality, find_single_use,
18936         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
18937         * reg-stack.c (next_flags_user, record_label_references,
18938         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
18939         compensate_edge, convert_regs_1): Likewise.
18940         * regclass.c (scan_one_insn): Likewise.
18941         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
18942         regmove_optimize, fixup_match_1, single_set_for_csa,
18943         combine_stack_adjustments_for_block): Likewise.
18944         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
18945         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
18946         find_equiv_reg): Likewise.
18947         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
18948         reload_as_needed, emit_input_reload_insns, do_output_reload,
18949         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
18950         Likewise.
18951         * reorg.c (find_end_label, emit_delay_sequence,
18952         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
18953         get_jump_flags, rare_destination, mostly_true_jump,
18954         try_merge_delay_insns, redundant_insn, own_thread_p,
18955         fill_simple_delay_slots, fill_slots_from_thread,
18956         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
18957         dbr_schedule): Likewise.
18958         * resource.c (find_basic_block, next_insn_no_annul,
18959         find_dead_or_set_registers, mark_target_live_regs): Likewise.
18960         * rtl.h (RTX_PREV): Likewise.
18961         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
18962         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
18963         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
18964         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
18965         tablejump_p, computed_jump_p, insns_safe_to_move_p,
18966         find_first_parameter_load, can_hoist_insn_p): Likewise.
18967         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
18968         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
18969         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
18970         schedule_ebbs): Likewise.
18971         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
18972         is_conditionally_protected, can_schedule_ready_p,
18973         add_branch_dependences, debug_dependencies): Likewise.
18974         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
18975         Likewise.
18976         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
18977         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
18978         set_dominates_use, ujump_to_loop_cont): Likewise.
18979         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
18980         * varasm.c (output_constant_pool_1): Likewise.
18981
18982 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18983
18984         * tree-scalar-evolution.c: New file.
18985         * tree-scalar-evolution.h: New file.
18986         * tree-ssa-loop-niter.c: New file.
18987         * Makefile.in (SCEV_H): New.
18988         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
18989         * cfgloop.h (struct loop): Add bounds field.
18990         * tree-flow.h (struct tree_niter_desc): New type.
18991         (number_of_iterations_cond, number_of_iterations_exit,
18992         loop_niter_by_eval, find_loop_niter_by_eval,
18993         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
18994         free_numbers_of_iterations_estimates): Declare.
18995         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
18996         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
18997         * doc/invoke.texi (max-iterations-to-track): Document.
18998
18999 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
19000
19001         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
19002         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
19003         (MODE_AFTER): Add cast appropriately.
19004         * config/sh/sh.md (movdi splitter): Likewise.
19005         (casesi_worker_2): Add const qualifier appropriately.
19006         (eh_return): Remove unused variable.
19007         (insv): Initialize v;
19008
19009 2004-07-08  Richard Henderson  <rth@redhat.com>
19010
19011         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
19012         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19013         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
19014         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
19015         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
19016
19017         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
19018         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19019         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
19020         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
19021
19022         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
19023         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19024         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
19025         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
19026
19027         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
19028         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19029         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
19030         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
19031
19032         * config/i860/i860-protos.h (i860_va_arg): Remove.
19033         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19034         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
19035         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
19036
19037 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
19038
19039         * system.h: Prototype getpagesize if missing.
19040         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
19041         * configure: Regenerate.
19042         * config.in: Regenerate.
19043
19044 2004-07-08  Richard Henderson  <rth@redhat.com>
19045
19046         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
19047         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19048         (fr30_gimplify_va_arg_expr): New.
19049         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
19050         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
19051
19052 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
19053
19054         PR target/16414
19055         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
19056         of asm_noperands result.
19057
19058 2004-07-08  Richard Henderson  <rth@redhat.com>
19059
19060         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
19061         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19062         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
19063         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
19064
19065 2004-07-08  Richard Henderson  <rth@redhat.com>
19066
19067         * builtins.c (ind_gimplify_va_arg_expr): New.
19068         * tree.h (ind_gimplify_va_arg_expr): Declare.
19069         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
19070
19071 2004-07-08  Jan Beulich  <jbeulich@novell.com>
19072
19073         * expmed.c (extract_bit_field): Correct condition to use vec_extract
19074         patterns also on vector elements other than the first one.
19075         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
19076         break statements.
19077
19078 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
19079
19080         * config/rs6000/darwin-ldouble.c: Correct reference
19081         to the Linnainmaa paper.
19082
19083 2004-07-08  Richard Henderson  <rth@redhat.com>
19084
19085         * config/arc/arc-protos.h (arc_va_arg): Remove.
19086         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19087         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
19088         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
19089
19090         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
19091         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19092         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
19093         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
19094
19095 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19096
19097         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
19098
19099 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
19100
19101         * c-decl.c (static_ctors, static_dtors): Make static.
19102         (pop_file_scope): Call c_common_write_pch and
19103         cgraph_finalize_compilation_unit here.
19104         (build_cdtor): Moved here from c-objc-common.c; simplify.
19105         (c_write_global_declarations_1): Clarify comment.
19106         (c_write_global_declarations): Close the external scope before
19107         doing anything else.  Call build_cdtor, cgraph_optimize, and
19108         mudflap_finish_file here.
19109         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
19110         Clarify comment.
19111         * c-objc-common.c: No need to include cgraph.h.
19112         (build_cdtor): Moved to c-decl.c.
19113         (c_objc_common_finish_file): Delete.
19114         * c-tree.h: Update to match.
19115         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
19116         (generate_static_references): Set TREE_USED before calling finish_decl.
19117         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
19118         on the static_instances_decl.
19119
19120 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
19121
19122         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
19123         decls when there is only one input translation unit.
19124         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
19125         change of 2004-07-05; do not treat declarations with
19126         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
19127         * opts.c (cur_in_fname): Delete.
19128         * opts.h: Likewise.
19129         * tree.c: Revert changes of 2004-07-05; no special treatment
19130         for TRANSLATION_UNIT_DECLs.
19131         * Makefile.in (tree.o): Update dependencies.
19132
19133 2004-07-08  Roger Sayle  <roger@eyesopen.com>
19134
19135         * builtins.c (fold_builtin_strcpy): Merge functionality from
19136         simplify_builtin_strcpy.  Add additional len argument.  No longer
19137         static.  Remove function prototype.
19138         (fold_builtin_strncpy): Likewise integrate functionality from
19139         simplify_builtin_strncpy.  Add additional slen argument.  No
19140         longer static.  Remove function prototype.
19141         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
19142         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
19143         types of "ignore" and "unlocked" parameters to bool.
19144         (fold_builtin_1):  Add additional ignore argument.  Call renamed
19145         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
19146         builtins.  Update arguments to fold_builtin_strncpy and
19147         fold_builtin_strcpy.  Add function prototype.
19148         (fold_builtin): Add additional Boolean ignore argument to pass
19149         to fold_builtin_1.
19150         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
19151         and fold_builtin_strncpy instead of simplify_builtin_fputs,
19152         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
19153
19154         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
19155         simplify_builtin_strncpy): Delete function prototypes.
19156         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
19157         fold_builtin_strncpy): Add function prototypes here.
19158         (fold_builtin): Update function prototype with new "bool ignore".
19159
19160         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
19161         (ccp_fold_builtin):  Update call to fold_builtin.  Call
19162         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
19163         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
19164         simplify_builtin_strncpy respectively.
19165         * fold-const.c (fold): Update call to fold_builtin.
19166
19167 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
19168
19169         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
19170         to strcpy.
19171
19172         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
19173         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
19174         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
19175         * calls.c: Remove ifdefs of macros above.
19176         * functions.c: Likewise.
19177         * expr.c: Likewise.
19178
19179 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
19180
19181         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
19182         (arch attribute): Delete.
19183         (current_function_calls_alloca attribute): Rename into calls_alloca.
19184         (calls_eh_return): New attribute.
19185         (leaf_function): Likewise.
19186         (length attribute): Fix formula for sibcalls.
19187         (return insn): Correctly compute the 'length' attribute.
19188         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
19189
19190 2004-07-08  Richard Henderson  <rth@redhat.com>
19191
19192         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
19193         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
19194         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
19195         * tree-eh.c (lower_eh_constructs_1): Likewise.
19196         * tree-sra.c (sra_walk_modify_expr): Likewise.
19197         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
19198         (eliminate_unnecessary_stmts): Likewise.
19199         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
19200         * tree-tailcall.c (optimize_tail_call): Likewise.
19201         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
19202
19203 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
19204             Jakub Jelinek  <jakub@redhat.com>
19205
19206         * config/i386/i386.c (override_options): Enable
19207         SSE prefetches with -mtune, as long as we are
19208         compiling for i686 or higher.  All i686 processors
19209         accept SSE prefetches as NOPS, some i586's don't.
19210
19211 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
19212
19213         PR target/10567
19214         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
19215
19216 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
19217
19218         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
19219         the handling of clobbering ASM_EXPRs.
19220
19221 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
19222
19223         PR target/16430
19224         * config/sparc/sparc.c (function_value): In 64-bit mode,
19225         return the aggregates larger than 16 bytes like unions.
19226
19227 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
19228
19229         PR target/16199
19230         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
19231         'temp' is zero, generate new pseudos as needed and emit the
19232         sequence of insns in single-assignment form.  Resync comments
19233         with code.
19234         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
19235         function before reload.
19236
19237 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
19238
19239         * vec.c (vec_assert_fail): Remove duplicate 'function'.
19240
19241         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
19242
19243         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
19244         Allocation is signed.
19245         (VEC_reserve): Return flag, allocation is signed.
19246
19247 2004-07-08  Richard Henderson  <rth@redhat.com>
19248
19249         * tree-ssa-ccp.c (fold_stmt): Get type directly from
19250         OBJ_TYPE_REF_OBJECT.
19251
19252 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
19253             Neil Booth  <neil@daikokuya.co.uk>
19254
19255         PR c/2511
19256         PR c/3325
19257         * c-decl.c (finish_struct): Ensure bit-fields are given the
19258         correct type.
19259         * c-common.c (c_common_signed_or_unsigned_type): For C, require
19260         the precision to match as well as the mode.
19261         * expr.c (reduce_to_bit_field_precision): New function.
19262         (expand_expr_real_1): Reduce expressions of bit-field type to
19263         proper precision.
19264         * langhooks.h (reduce_bit_field_operations): New hook.
19265         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
19266         Define.
19267         * c-lang.c, objc/objc-lang.c
19268         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
19269         * objc/objc-act.c (check_ivars): Convert types to bit-field types
19270         before checking.
19271         * tree.c (build_nonstandard_integer_type): New function.
19272         * tree.h (build_nonstandard_integer_type): New prototype.
19273         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
19274         conversions between integer and boolean types as useless.
19275
19276 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
19277
19278         * c-common.c (c_common_nodes_and_builtins): Do not
19279         create __builtin_ptrdiff_t and __builtin_size_t.
19280
19281 2004-07-08  Andrew Pinski  <apinski@apple.com>
19282
19283         * Makefile.in (libbackend.o): Add -combine to the gcc
19284         command line.
19285
19286 2004-07-08  Nick Clifton  <nickc@redhat.com>
19287
19288         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
19289         Set to -Os.
19290
19291 2004-07-08  Richard Henderson  <rth@redhat.com>
19292
19293         * except.c (expand_eh_region_start, expand_eh_region_end,
19294         expand_eh_handler, expand_eh_region_end_cleanup,
19295         expand_start_all_catch, expand_start_catch, expand_end_catch,
19296         expand_end_all_catch, expand_eh_region_end_allowed,
19297         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
19298         expand_eh_region_end_fixup): Remove.
19299         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
19300         cleanups, outer_cleanups, label_chain, exception_region.
19301         (struct goto_fixup): Remove stack_level, cleanup_list_list.
19302         (struct label_chain): Remove.
19303         (struct stmt_status): Remove x_stack_block_stack.
19304         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
19305         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
19306         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
19307         end_cleanup_deferral, last_cleanup_this_contour,
19308         containing_blocks_have_cleanups_or_stack_level,
19309         any_pending_cleanups): Remove.
19310         (expand_null_return_1): Take no arguments.
19311         (expand_label, expand_naked_return, expand_return,
19312         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
19313         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
19314         expand_end_case_type): Don't use any of them.
19315         * calls.c (expand_call): Likewise.
19316         * dojump.c (do_jump): Likewise.
19317         * function.c (expand_function_end): Likewise.
19318         * expr.c (store_expr, expand_expr_real_1): Likewise.
19319         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
19320         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
19321         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
19322         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
19323         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
19324         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
19325         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
19326         for WITH_CLEANUP_EXPR.
19327         (gimple_push_cleanup): Likewise.
19328         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
19329         * print-tree.c (print_node): Likewise.
19330         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
19331         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
19332         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
19333         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
19334         (GOTO_SUBROUTINE_EXPR): Remove.
19335         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
19336         (DECL_TOO_LATE): Remove.
19337         * except.h, tree.h: Update decls.
19338
19339 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
19340
19341         * explow.c (optimize_save_area_alloca): Do not accept parameters.
19342         * passes.c (rest_of_handle_final): Handle symout.
19343         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
19344         Push timevar here.
19345         (rest_of_handle_sched): Break out SMS.  Remove ifs for
19346         flag_schedule_insns and flag_modulo_sched.
19347         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
19348         collect at the end.
19349         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
19350         (rest_of_handle_partition_blocks, rest_of_handle_sms,
19351         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
19352         rest_of_handle_mode_switching, rest_of_handle_jump,
19353         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
19354         rest_of_handle_jump2, rest_of_handle_postreload,
19355         rest_of_handle_flow2, rest_of_clean_state,
19356         rest_of_handle_shorten_branches,
19357         rest_of_handle_prologue_epilogue,
19358         rest_of_handle_branch_target_load_optimize): New.
19359         (rest_of_compilation): Call the above.  Remove ggc_collect
19360         calls moved to rest_of_handle_*.
19361         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
19362
19363         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
19364         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
19365         * except.h (set_nothrow_function_flags): Update comment.
19366         * function.c (current_function_nothrow): Remove.
19367         * output.h (current_function_nothrow): Remove.
19368         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
19369         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
19370
19371 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
19372
19373         PR bootstrap/16326
19374         * reorg.c: Revert 2004-06-30 change.
19375         (find_end_label): If HAVE_epilogue and !HAVE_return,
19376         return 0 instead of creating a label at the end of the insn chain.
19377         (optimize_skip): Account for the failure mode of find_end_label.
19378         (fill_simple_delay_slots): Likewise.
19379         (fill_slots_from_thread): Likewise.
19380         (relax_delay_slots): Likewise.
19381
19382 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
19383
19384         * tree-flow.h (addressable_vars): Declare.
19385         * tree-ssa-alias.c (addressable_vars): Define.
19386         (setup_pointers_and_addressables): Add addressable variables
19387         to addressable_vars.
19388         * tree-ssa-operands.c (get_stmt_operands): Move
19389         handling of ASM_EXPRs ...
19390         (get_asm_expr_operands): ... here.
19391         When the ASM_EXPR clobbers memory, also clobber addressable
19392         variables.
19393         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
19394         (delete_tree_ssa): Reset addressable_vars.
19395
19396 2004-07-07  Jan Beulich  <jbeulich@novell.com>
19397             Richard Henderson  <rth@redhat.com>
19398
19399         * varasm.c (assemble_variable): Use assemble_zeros for
19400         zero-initialized variables.
19401         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
19402         for SECCAT_BSS and SECCAT_TBSS.
19403
19404 2004-07-07  Jan Beulich  <jbeulich@novell.com>
19405
19406         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
19407
19408         * expmed.c (emit_store_flag): Also special-case double-word
19409         (in-)equality comparison against -1.
19410
19411         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
19412         passing arguments the containers for which are registers.
19413
19414         * calls.c (emit_library_call_value_1): Use mode of function parameter
19415         rather than that of argument since constants have none.
19416
19417 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
19418
19419         Introduce H8SX support.
19420         * expr.c (expand_strcpy): Renamed and moved to...
19421         * builtins.c (expand_movstr): ... here.  Tweak.
19422         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
19423         computed or has side effects.
19424         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
19425         unused, or if mempcpy fails.  Adjust the return value in the
19426         latter case.  Use movstr if everything else fails.
19427         * doc/md.texi (movstr): Document.
19428         (movmemM, clrmemM): Fix explanation of memory block operands.
19429         * config/h8300/h8300.md (stpcpy): Renamed to...
19430         (movstr): ... this.  Adjust.
19431         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
19432         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
19433         movmem* and clrstr* to clrmem*.
19434         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
19435         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
19436         GENERAL_REGS, always.
19437         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
19438         getting the stack pointer as addr.
19439         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
19440         from general_operand_dst.
19441         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
19442         variant of...
19443         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
19444         instead of requiring it to match only before reload.
19445         (stpcpy_internal_normal): New, normal-mode variant of...
19446         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
19447         `D' instead of requiring it to match only before reload.
19448         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
19449         mode argument.
19450         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
19451         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
19452         h8300_get_index.
19453         * config/h8300/h8300.md (attr type): Add call.
19454         (attr can_delay): If type is call, set it no.
19455         (call, call_value): Set type to call.
19456         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
19457         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
19458         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
19459         * tree.c (get_narrower): Don't narrow integral types into
19460         non-integral types.
19461         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
19462         frame_size *before* the first use.
19463         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
19464         on input.
19465         (peephole2): Don't widen instructions that push SP.  Move
19466         decrement of SP to the end of all stm-generating peepholes.
19467         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
19468         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
19469         and OR to set it to all ones.
19470         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
19471         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
19472         (call, call_value): Set can_delay to "no".
19473         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
19474         * config/h8300/h8300.md (extzv): Make subreg check more robust.
19475         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
19476         * config/h8300/h8300.md (*brabit): Remove.
19477         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
19478         zero_extract.  Use bit_memory_operand as the predicate for
19479         operand 1 and 'WU' as the constraint.  Check the difference
19480         between the base length and the final one when deciding which
19481         type of branch to use.
19482         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
19483         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
19484         Use convert_move to extend the result for TARGET_H8300SX.  Check
19485         for QImode memory references.  Optimize the case where the
19486         destination is a paradoxical subreg.
19487         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
19488         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
19489         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
19490         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
19491         * config/h8300/h8300.md: Include mova.md
19492         (length_table): Add mova and mova_zero.
19493         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
19494         after all constant addresses for '%R', '%X', '%T' and '%S'.
19495         (h8300_mova_length): New function.
19496         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
19497         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
19498         dependencies for s-config, etc.
19499         * config/h8300/gemova.sh: New file.
19500         * config/h8300/mova.md: Generated.
19501         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
19502         * config/h8300/h8300.c (h8300_bitfield_length): New.
19503         (nibble_operand): Adjust.
19504         (h8300_binary_length): Handle conditional binary op.
19505         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
19506         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
19507         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
19508         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
19509         constraints.  WU is introduced as a variant of U that requires a
19510         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
19511         * config/h8300/h8300.md (attr type): Added bitbranch.
19512         (attr length_table): Added bitfield and bitbranch.
19513         (attr length): Compute bitbranch length.
19514         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
19515         least-significant bit of a byte.
19516         (brabit, brabc, brabs): New.
19517         (insv, extzv): Emit bfst and bfld on H8300SX.
19518         (bfld, bfst, seq, sne): New.
19519         (bstzhireg, cmpstz, bstz, bistz): New.
19520         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
19521         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
19522         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
19523         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
19524         (h8sx_unary_memory_operator): New function.
19525         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
19526         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
19527         * config/h8300/h8300.md: Add peepholes to combine reloads and
19528         arithmetic insns.
19529         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
19530         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
19531         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
19532         (and?i, ior?i, xor?i): Likewise.
19533         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
19534         * config/h8300/h8300.c: Move enums and prototypes to head of file.
19535         Various whitespace fixes.
19536         (h8300_constant_length): New function, split out from...
19537         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
19538         (h8300_classify_operand): Use IN_RANGE.
19539         (h8300_classify_operand): Use h8300_constant_length.
19540         (h8300_short_move_mem_p): Tighten size check.
19541         (h8sx_mergeable_memrefs_p): Tighten equality check.
19542         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
19543         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
19544         for -msx.
19545         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
19546         * config/h8300/crtn.asm: Likewise.
19547         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
19548         if __H8300SX__ is defined.
19549         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
19550         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
19551         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
19552         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
19553         addresses as mode-dependent.
19554         * config/h8300/h8300.c (print_operand_address): Update call to
19555         h8300_get_index.
19556         (h8300_get_index): Take a mode argument.  Rework to fix an
19557         earlier misunderstanding.
19558         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
19559         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
19560         into a register if TARGET_H8300SX.
19561         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
19562         TARGET_H8300SX.  Also disable related define_splits.
19563         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
19564         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
19565         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
19566         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
19567         * config/h8300/h8300.h (OK_FOR_Z): New macro.
19568         (EXTRA_CONSTRAINT_STR): Check it.
19569         * config/h8300/h8300.c (h8300_classify_operand): Accept null
19570         class arguments.
19571         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
19572         * config/h8300/h8300.md (length_table): Add mov_imm4.
19573         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
19574         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
19575         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
19576         be a label.
19577         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
19578         * config/h8300/h8300.c (h8300_reorg): New function.
19579         (TARGET_MACHINE_DEPENDENT_REORG): Define.
19580         * config/h8300/h8300.md (length): Subtract the length of the
19581         delay slot from (pc) when checking the range of forward branches.
19582         (delay_slot, can_delay): New attributes.
19583         (define_delay): Add bra/s handling.
19584         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
19585         (jump): Add delayed-branch handling.
19586         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
19587         * expr.c (expand_strcpy): New function.
19588         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
19589         (expand_builtin_stpcpy): Likewise.
19590         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
19591         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
19592         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
19593         handling to improve register allocation for -fno-omit-frame-pointer.
19594         (h8sx_split_movmd): Delete, moving er6 handling into...
19595         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
19596         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
19597         (movmd): Add calls to copy_rtx.
19598         (movmd_internal): In the second alternative, allow the initial and
19599         final destination registers to be different .  Update the splitter
19600         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
19601         instead of h8sx_split_movmd.
19602         (stpcpy, movsd): New expanders.
19603         (movsd_internal): New define_insn.
19604         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
19605         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
19606         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
19607         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
19608         and DESTINATION_REGS.
19609         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
19610         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
19611         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
19612         (h8300_move_ratio): Declare.
19613         (MOVE_RATIO): Use it.
19614         * config/h8300/h8300.c (h8300_move_ratio): New variable.
19615         (h8300_init_once): Initialize it.
19616         (h8300_reg_class_from_letter): New function.
19617         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
19618         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
19619         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
19620         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
19621         (movstrsi, movmd): New expanders.
19622         (movmd_internal): New insn.
19623         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
19624         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
19625         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
19626         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
19627         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
19628         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
19629         * config/h8300/h8300.c (nibble_operand): Fix warning.
19630         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
19631         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
19632         (movsf_h8300h): Disable for TARGET_H8300SX.
19633         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
19634         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
19635         h8300_stm_parallel and h8300_return_parallel.
19636         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
19637         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
19638         h8300_stm_parallel, h8300_return_parallel): New functions.
19639         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
19640         if TARGET_H8300SX.  Use h8300_push_pop.
19641         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
19642         and final pop when generating h8sx code.  Always emit some form
19643         of return insn.
19644         * config/h8300/h8300.md: Don't enforce register alignment in
19645         stm peepholes if TARGET_H8300SX.
19646         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
19647         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
19648         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
19649         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
19650         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
19651         (MULTILIB_DIRNAMES): Add a directory for it.
19652         (MULTILIB_MATCHES): Delete.
19653         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
19654         * final.c (walk_alter_subreg): Handle addresses with subregs
19655         inside a ZERO_EXTEND or AND.
19656         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
19657         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
19658         if TARGET_H8300SX.
19659         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
19660         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
19661         @(dd,Rn.w) and @(dd,ERn.L).
19662         (h8300_displacement_size): Take the whole address as argument.
19663         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
19664         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
19665         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
19666         (h8sx_mergeable_memrefs_p): Declare.
19667         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
19668         (HAVE_PRE_INCREMENT): Likewise.
19669         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
19670         addresses for TARGET_H8300SX,
19671         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
19672         and POST_DEC.
19673         (movb_length_table, movl_length_table): New tables.
19674         (movw_length_table): Define to movb_length_table.
19675         (h8300_displacement_size): New, split out from...
19676         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
19677         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
19678         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
19679         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
19680         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
19681         (compute_plussi_length, compute_plussi_cc): Update accordingly.
19682         (h8sx_unary_shift_operator): Get the mode from the operator.
19683         (binary_shift_operator): Likewise.
19684         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
19685         a memory reference, check whether the reference is offsettable.
19686         (length_table): Add movb, movw and movl.
19687         (movqi): Add new h8sx pattern.  Don't force one operand to be a
19688         register when generating h8sx code.
19689         (movhi, movsi, movsf): Likewise.
19690         (movstrictqi): Use the length_table attribute.
19691         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
19692         (addqi3): Split into a define_expand and define_insn.  Don't accept
19693         memory operands in the expander.  Use h8300_operands_match_p to
19694         check for matching operands in the define_insn.
19695         (subqi3, negqi2, one_cmplqi2): Likewise.
19696         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
19697         in any patterns that are unused in h8sx code.  In the h8sx patterns,
19698         use h8300_operands_match_p to check whether operands match.
19699         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
19700         one_cmpl[hs]i3): Likewise.
19701         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
19702         in the expander.
19703         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
19704         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
19705         (h8300_insn_length_from_table): Add a second parameter.
19706         (output_h8sx_shift): Declare.
19707         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
19708         (EXTRA_CONSTRAINT): Replace with...
19709         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
19710         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
19711         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
19712         and h8sx_binary_shift_operator.
19713         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
19714         for TARGET_H8300SX.
19715         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
19716         (bit_memory_operand, fix_bit_operand): Likewise.
19717         (h8300_length_table_for_insn): Remove.
19718         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
19719         instructions.
19720         (h8300_short_immediate_length, h8300_binary_length): New functions.
19721         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
19722         (output_plussi): Use sub to add negative constants.
19723         (compute_plussi_length): Adjust accordingly.
19724         (h8sx_single_shift_type): New enum.
19725         (h8sx_single_shift, h8sx_unary_shift_operator,
19726         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
19727         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
19728         single h8sx instruction.  Return false in this case.
19729         * config/h8300/h8300.md (length_table): Add short_immediate.
19730         (length): Pass the operand array to h8300_insn_length_from_table.
19731         (adjust_length): Assume "no" for insns with a length_table attribute.
19732         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
19733         (*addhi3_h8300hs): Don't use for h8sx.
19734         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
19735         and sub.w #xx:3.
19736         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
19737         1's predicate to nonimmediate_operand.  Only skip default expansion
19738         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
19739         for single h8sx shift instructions.
19740         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
19741         * config/h8300/h8300.c (nibble_operand): Split out of...
19742         (reg_or_nibble_operand): ... this.
19743         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
19744         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
19745         umulhisi3): Introduce expand, and introduce separate insns for
19746         sign- or zero-extended REG and already-extended CONST_INT.
19747         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
19748         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
19749         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
19750         (subhi3): Likewise.  Don't accept immediates for operand 1.
19751         Remove the early clobber from second alternative of the h8300s pattern.
19752         (subsi3): Generalize for h8sx.  Force operand 2 into a register
19753         on plain h8300 targets.
19754         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
19755         (subsi3_h8300h): Generalize for h8sx.
19756         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
19757         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
19758         * config/h8300/h8300.c (reg_or_nibble_operand): New.
19759         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
19760         (TARGET_H8300SXMUL): New.
19761         (CONST_OK_FOR_P): New.
19762         (CONST_OK_FOR_LETTER_P): Adjust.
19763         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
19764         umulhisi3): Accept 4-bit immediate on H8SX.
19765         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
19766         (udivsi3, divhi3, udivsi3, divsi3): New.
19767         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
19768         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
19769         * config/h8300/h8300.h (OK_FOR_Q): New macro.
19770         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
19771         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
19772         Add ADDRESSOF to the bit_operand entry.
19773         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
19774         (h8300_src_operand): Likewise.
19775         (bit_operand): Check nonimmediate_operand rather than general_operand.
19776         Accept any nonimmediate_operand in h8sx code.
19777         (h8300_and_costs): Initialize operands[1].
19778         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
19779         (h8300_operand_class): New enum.
19780         (h8300_length_table): New typedef.
19781         (addb_length_table, addw_length_table, addl_length_table,
19782         logicl_length_table): New tables.
19783         (logicb_length_table, logicw_length_table): New macros.
19784         (h8300_classify_operand, h8300_length_from_table,
19785         h8300_length_table_for_insn, h8300_unary_length,
19786         h8300_insn_length_from_table): New functions.
19787         (output_plussi): Only use adds and subs for register destinations.
19788         Disable redundant clause.
19789         (compute_plussi_cc): Likewise.
19790         (compute_plussi_length): Likewise.  Use h8300_length_from_table
19791         to work out the length of an insn.
19792         (output_logical_op): Only use narrower immediate instructions
19793         if the destination is a register.
19794         (compute_logical_op_cc): Likewise.
19795         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
19796         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
19797         * config/h8300/h8300.md (length_table): New attribute.
19798         (length): When an instruction has a length_table attribute, use
19799         h8300_insn_length_from_table to calculate its default length.
19800         (cmpqi): Use h8300_dst_operand for the first operand and
19801         h8300_src_operand for the second.
19802         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
19803         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
19804         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
19805         iorsi3, xorhi3, xorsi3): Likewise.
19806         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
19807         so that it allows any combination of operands for TARGET_H8300SX.
19808         (iorqi3, xorqi3): Likewise.
19809         (cmpqi): Use the length_table attribute.
19810         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
19811         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
19812         (cmpqi): Add 'Q' constraint.
19813         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
19814         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
19815         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
19816         * config/h8300/h8300.h (MASK_H8300SX): New macro.
19817         (TARGET_H8300S): True for both -ms and -msx.
19818         (TARGET_H8300SX): New macro.
19819         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
19820         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
19821         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
19822         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
19823         [Temporary change.]
19824         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
19825         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
19826         16-bit pointers and 32-bit ints.
19827         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
19828         CONST_DOUBLE with mode no wider than SImode.
19829         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
19830         output operand.
19831         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
19832         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
19833         or SUBREG thereof.
19834         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
19835         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
19836         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
19837
19838 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
19839
19840         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
19841
19842 2004-07-07  Per Bothner  <per@bothner.com>
19843
19844         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
19845
19846 2004-07-07  Mike Stump  <mrs@apple.com>
19847
19848         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
19849         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
19850         (machopic_finish): Likewise.
19851
19852 2004-07-07  Richard Henderson  <rth@redhat.com>
19853
19854         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
19855         through any value-preserving cast.
19856
19857 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
19858
19859         * function.c (assign_parm_find_data_types): Call
19860         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
19861
19862 2004-07-07  Steven Bosscher  <stevenb@suse.de>
19863
19864         * tree-cfg.c (group_case_labels): Remove case labels that have
19865         the same target as the default case.
19866
19867 2004-07-07  Steven Bosscher  <stevenb@suse.de>
19868
19869         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
19870         regardless of DECL_LANG_SPECIFIC being present or not.
19871         * tree.h (DECL_NUM_STMTS): Purge.
19872
19873 2004-07-07  Andrew Pinski  <apinski@apple.com>
19874
19875         * configure: Regenerate with the right autoconf.
19876
19877 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
19878
19879         * ifcvt.c (total_bb_rtx_cost): New function.
19880         (find_if_case_1): Compare rtx_cost of basic block to cost of
19881         BRANCH_COST insns.
19882         (find_if_case_2): Same.
19883
19884 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
19885
19886         PR target/10567
19887         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
19888         (output_return): Likewise.
19889         (output_sibcall): Abort if !flag_delayed_branch.
19890         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
19891         (emit_and_preserve): New function.
19892         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
19893         indirect jump to the thunked-to function if !flag_delayed_branch.
19894         * config/sparc/sparc.md (delayed_branch): New attribute.
19895         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
19896         attribute to compute the length of the insn.
19897         (goto_handler_and_restore): Likewise.
19898
19899 2004-07-07  Andrew Pinski  <apinski@apple.com>
19900
19901         PR tree-optimization/15777
19902         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
19903
19904         * expr.c (expand_expr_real_1): Fix formating.
19905         BUFFER_REF and IN_EXPR are dead.
19906         * fold-const.c (non_lvalue): BUFFER_REF is dead.
19907         * tree-inline.c (estimate_num_insns_1): Likewise.
19908         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
19909         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
19910         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
19911
19912 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
19913
19914         * collect2.c (dump_file): Don't call cplus_demangle if
19915         HAVE_LD_DEMANGLE is defined.
19916         (main): Pass "--demangle" to ld if no_demangle is not 0 and
19917         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
19918         if HAVE_LD_DEMANGLE is defined.
19919
19920         * configure.ac (--with-demangler-in-ld): Added
19921         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
19922         --with-demangler-in-ld is used.
19923         * config.in: Regenerated.
19924         * configure: Likewise.
19925
19926 2004-07-07  Roger Sayle  <roger@eyesopen.com>
19927
19928         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
19929         for simple floating point operations "fp", double precision
19930         multiplication "dmul", and single and double precision division
19931         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
19932         (ppc630_cost): New table split from ppc620_cost, to distinguish
19933         differences in floating point latencies.
19934         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
19935         (rs6000_rtx_costs): Add support for single and double precision
19936         floating point addition, subtraction, multiplication, division,
19937         fused-multiply-add, fused-multiply-sub, negation, absolute value
19938         and negative absolute value.  Tweak MEM case to use prefered idiom.
19939
19940 2004-07-07  Richard Henderson  <rth@redhat.com>
19941
19942         * tree-flow-inline.h (may_propagate_copy): Move...
19943         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
19944         attempt to copy between types requiring conversion.
19945         * tree-flow.h (may_propagate_copy): Update decl.
19946         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
19947
19948 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
19949
19950         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
19951         from -mtune= option.
19952
19953 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
19954
19955         * builtins.c: Rename movstr*, except for movstrict*, to
19956         movmem* and clrstr* to clrmem*.
19957         * expr.c: Likewise.
19958         * expr.h: Likewise.
19959         * genopinit.c: Likewise.
19960         * integrate.c: Likewise.
19961         * local-alloc.c: Likewise.
19962         * optabs.c: Likewise.
19963         * optabs.h: Likewise.
19964         * config/alpha/alpha.h: Likewise.
19965         * config/alpha/alpha.md: Likewise.
19966         * config/arm/arm-protos.h: Likewise.
19967         * config/arm/arm.c: Likewise.
19968         * config/arm/arm.md: Likewise.
19969         * config/avr/avr.md: Likewise.
19970         * config/c4x/c4x.c: Likewise.
19971         * config/c4x/c4x.md: Likewise.
19972         * config/frv/frv.md: Likewise.
19973         * config/i386/i386-protos.h: Likewise.
19974         * config/i386/i386.c: Likewise.
19975         * config/i386/i386.h: Likewise.
19976         * config/i386/i386.md: Likewise.
19977         * config/i860/i860.c: Likewise.
19978         * config/i860/i860.md: Likewise.
19979         * config/ip2k/ip2k.md: Likewise.
19980         * config/ip2k/libgcc.S: Likewise.
19981         * config/ip2k/t-ip2k: Likewise.
19982         * config/m32r/m32r.c: Likewise.
19983         * config/m32r/m32r.md: Likewise.
19984         * config/mcore/mcore.md: Likewise.
19985         * config/mips/mips.c: Likewise.
19986         * config/mips/mips.md: Likewise.
19987         * config/ns32k/ns32k.c: Likewise.
19988         * config/ns32k/ns32k.h: Likewise.
19989         * config/ns32k/ns32k.md: Likewise.
19990         * config/pa/pa.c: Likewise.
19991         * config/pa/pa.md: Likewise.
19992         * config/pdp11/pdp11.h: Likewise.
19993         * config/pdp11/pdp11.md: Likewise.
19994         * config/rs6000/rs6000.c: Likewise.
19995         * config/rs6000/rs6000.md: Likewise.
19996         * config/s390/s390-protos.h: Likewise.
19997         * config/s390/s390.c: Likewise.
19998         * config/s390/s390.md: Likewise.
19999         * config/sh/lib1funcs.asm: Likewise.
20000         * config/sh/sh.c: Likewise.
20001         * config/sh/sh.md: Likewise.
20002         * config/sh/t-sh: Likewise.
20003         * config/sparc/sparc.h: Likewise.
20004         * config/vax/vax.md: Likewise.
20005         * config/xtensa/xtensa.c: Likewise.
20006         * config/xtensa/xtensa.md: Likewise.
20007         * doc/invoke.texi: Likewise.
20008         * doc/md.texi: Likewise.
20009         * doc/rtl.texi: Likewise.
20010
20011 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
20012
20013         PR target/16407
20014         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
20015         * config/mips/mips.c (mips_declare_common_object): New function,
20016         mostly split out from...
20017         (mips_output_aligned_decl_common): ...here.
20018         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
20019         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
20020         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
20021         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
20022
20023 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20024
20025         PR c/16392
20026         * function.c (assign_parms): Fix typo from previous change.
20027
20028 2004-07-07  Jason Merrill  <jason@redhat.com>
20029
20030         PR c++/15815
20031         * doc/extend.texi (C++ Interface): Correct information and
20032         discourage use.
20033
20034 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
20035
20036         PR target/16130
20037         PR target/16142
20038         PR target/16143
20039         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
20040         insn.
20041
20042 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20043
20044         PR target/1679.
20045         * config/m32r/m32r.c (m32r_function_symbol): New function:
20046         Generate a symbol name RTX with the correct m32r specific flags
20047         set.
20048         (block_move_call): Use new function to generate correct symbol.
20049         * config/m32r/m32r-protos.h: Add prototype for new funcion.
20050         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
20051         function.
20052
20053 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
20054
20055         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
20056         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
20057         TYPE_BINFO_BASETYPE): Remove.
20058         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
20059         to ...
20060         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
20061         here.
20062         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
20063         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
20064         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
20065         (struct tree_binfo): Rename base_types to base_binfos.
20066         * alias.c (record_component_aliases): Adjust BINFO macros.
20067         * dbxout.c (dbxout_type): Likewise.
20068         * dwarf2out.c (gen_member_die): Likewise.
20069         * sdbout.c (sdbout_one_type): Likewise.
20070         * tree-dump.c (deque_and_dump): Likewise.
20071         * config/i386/i386.c (classify_argument,
20072         contains_128bit_aligned_vector_p): Likewise.
20073
20074 2004-07-07  Nick Clifton  <nickc@redhat.com>
20075
20076         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
20077         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
20078
20079 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
20080
20081         * vec.h: Fix the example use.
20082
20083 2004-07-06  Richard Henderson  <rth@redhat.com>
20084
20085         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
20086         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
20087         * tree-inline.c (copy_body_r, setup_one_parameter,
20088         initialize_inlined_parameters, expand_call_inline,
20089         declare_inline_vars): Don't check it.
20090         (expand_calls_inline): Remove old version, rename new version
20091         from gimple_expand_calls_inline.
20092         * tree-optimize.c (execute_gimple): Remove.
20093         (pass_gimple): Don't run anything.
20094
20095 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
20096
20097         * doc/sourcebuild.texi: Use semicolons instead of commas in
20098         section title.
20099
20100 2004-07-06  Richard Henderson  <rth@redhat.com>
20101
20102         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
20103         (sra_walk_modify_expr, scan_init): Likewise.
20104         (generate_element_zero): Check visited before scanning children.
20105         (generate_element_init): Set visited on error.
20106         (scalarize_init): Handle generate_element_init failure similar
20107         to use_block_copy.
20108
20109 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
20110
20111         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
20112         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
20113
20114 2004-07-06  Richard Henderson  <rth@redhat.com>
20115
20116         * config/i386/i386.c (legitimize_pic_address): Make static.
20117         (legitimize_address): Handle CONST with TLS operand.
20118         (ix86_expand_move): Don't call legitimize_pic_address directly.
20119         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
20120
20121 2004-07-06  Roger Sayle  <roger@eyesopen.com>
20122
20123         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
20124         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
20125         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
20126         is currently executed unconditionally, i.e. not in "else_bb".
20127
20128 2004-07-06  Steven Bosscher  <stevenb@suse.de>
20129
20130         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
20131         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20132         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
20133         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20134         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
20135         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20136         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
20137         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20138         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
20139         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20140         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
20141         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20142         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
20143         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20144         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
20145         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20146
20147 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
20148
20149         * dojump.c (do_jump): REFERENCE_EXPR is dead.
20150         * expr.c (expand_expr_real_1): Ditto.
20151         * tree-inline.c (estimate_num_insns_1): Ditto.
20152         * tree-pretty-print.c (dump_generic_node): Ditto.
20153         (op_symbol): Ditto.
20154         * tree.def: Ditto.
20155
20156 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
20157
20158         * tree-ssa-pre.c (reference_node_pool): New pool.
20159         (find_or_generate_expression): Class 'r' is okay too.
20160         (create_value_expr_from): Ditto.
20161         (add_to_sets): LHS should not include vuses.
20162         (eliminate): Ditto.
20163         (compute_avail): Reverse ordering of tests.
20164         Valuize INDIRECT_REF as well.
20165
20166 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
20167
20168         PR rtl-optimization/16380
20169         * loop.c (check_dbra_loop): Sink comparison instructions if they
20170         do something other than set cc0.
20171
20172 2004-07-06  James E Wilson  <wilson@specifixinc.com>
20173
20174         * doc/interface.texi (longjmp and automatic variables): Delete
20175         paragraph recommending taking the address of a variable.
20176
20177 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
20178
20179         * vec.h (VEC_embedded_alloc): Remove.
20180         (VEC_embedded_size, VEC_embedded_init): New.
20181         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
20182         MEM_STAT_INFO.
20183         (VEC_truncate): New.
20184         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
20185         (vec_embedded_alloc): Remove.
20186         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
20187         (vec_embedded_alloc): Remove.
20188
20189 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
20190
20191         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
20192         (gt-langhooks.h): Remove.
20193
20194 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
20195
20196         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
20197
20198 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
20199
20200         * config/sparc/sparc.c (get_pc_symbol): Rename into
20201         add_pc_to_pic_symbol.
20202         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
20203         (load_pic_register): Account for previous changes.
20204         Use reg_names.  Don't create the label twice.
20205         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
20206         UNSPEC_LOAD_PCREL_SYM.
20207         (get_pc): Rename into load_pcrel_sym.  Add predicate to
20208         operands.  Remove condition.
20209
20210 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
20211
20212         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
20213         RECORD, UNION & QUAL_UNION is actually a binfo.
20214
20215         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
20216         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
20217         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
20218         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
20219         * dwarf2out.c (add_data_member_location_attribute): Likewise.
20220         (gen_inheritance_die): Likewise.
20221         * tree-dump.c (deque_and_dump): Likewise.
20222         * doc/c-tree.texi (Binfos): Add under reconstruction note.
20223
20224 2004-07-06  Steven Bosscher  <stevenb@suse.de>
20225
20226         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
20227         Define.
20228         * config/mcore/mcore.md: Model memory latency with a simple DFA
20229         pipeline description instead of a define_function_unit.
20230
20231 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20232
20233         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
20234         * langhooks.h (var_mod_type_p): Likewise.
20235         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
20236         * expr.c (count_type_elements): Properly handle return from
20237         array_type_nelts and properly test for overflow.
20238         * gimplify.c (gimplify_init_constructor): Properly handle return
20239         from array_type_nelts.
20240         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
20241         * integrate.c (copy_decl_for_inlining): Correct comments.
20242         * tree-inline.c (remap_decl): Update comments, remove dead code,
20243         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
20244         (remap_type): Only remap if variably modified by vars in function
20245         being inlined.
20246         (copy_body_r): Use compatible_type langhooks to see when can fold.
20247         (setup_one_parameter): Don't remap type.
20248         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
20249         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
20250         compute TREE_INVARIANT for decl case.
20251         (find_var_from_fn): New function.
20252         (variably_modified_type_p): Add arg and call new function.
20253         * tree.h (variably_modified_type_p): Add extra arg.
20254
20255 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
20256
20257         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
20258         (goto_handler_and_restore_v9): Delete disabled insn.
20259         (goto_handler_and_restore_v9_sp64): Likewise.
20260
20261 2004-07-05  Roger Sayle  <roger@eyesopen.com>
20262
20263         * calls.c (load_register_parameters): Call expand_shift instead
20264         of expand_binop with ashl_optab (or other shift optab) directly.
20265         * expr.c (emit_group_load, emit_group_store): Likewise.
20266         * function.c (assign_parm_setup_block): Likewise.
20267         * stmt.c (shift_return_value): Likewise.
20268
20269 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
20270
20271         * expr.c (expand_assignment): Disable the bitfield += optimizations.
20272
20273 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
20274
20275         * doc/sourcebuild.texi: Revert previous patch.
20276
20277 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
20278
20279         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
20280         TARGET_MEM_FUNCTIONS.
20281         * system.h: Poison TARGET_MEM_FUNCTIONS.
20282         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
20283         bcmp_libfunc, bzero_libfunc): Remove.
20284         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
20285         bzero_libfunc.
20286         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
20287         * doc/standards.texi: Don't mention calling BSD string functions.
20288         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
20289         * config/vax/t-memfuncs: New.
20290         * config/memcmp.c, config/memcpy.c, config/memmove.c,
20291         config/memset.c: New.
20292         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
20293         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
20294         vax/t-memfuncs.
20295         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
20296         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
20297         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
20298         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
20299         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
20300         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
20301         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
20302         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
20303         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
20304         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
20305
20306 2004-07-05  Richard Henderson  <rth@redhat.com>
20307
20308         * function.c (assign_parm_setup_reg): Properly rename variables in
20309         FUNCTION_ARG_CALLEE_COPIES section.
20310
20311 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
20312
20313         * tree-mudflap.c: Include cgraph.h.
20314         (mf_init_extern_trees): Rename to mudflap_init.  Export.
20315         Rewrite to create synthetic declarations instead of looking
20316         up declarations from mf-runtime.h.
20317         (mf_make_builtin, mf_make_cache_struct_type): New functions.
20318         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
20319         Correct commentary.
20320         (execute_mudflap_function_decls, mudflap_register_call):
20321         Don't call mf_init_extern_trees.
20322         (mudflap_finish_file): Use cgraph_build_static_cdtor.
20323
20324         * tree-mudflap.h: Update prototypes.
20325         * c-mudflap.c: Delete file.
20326         * c-common.c: Include tree-mudflap.h.
20327         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
20328         * Makefile.in: Remove all references to c-mudflap.o.
20329         Update dependencies.
20330
20331 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20332
20333         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
20334         displacements with the spatial-locality cache-control completer.
20335
20336 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
20337
20338         * langhooks.c: Don't include gt-langhooks.h.
20339         (var_labelno): Delete.
20340         (lhd_set_decl_assembler_name): Do not append a distinguishing
20341         number to file-scope internal-linkage declarations for the first
20342         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
20343         the declaration itself (if at block scope), or its containing
20344         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
20345         number.
20346
20347         * opts.c (cur_in_fname): New global.
20348         * opts.h: Declare it.
20349         * tree.c: Include opts.h.
20350         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
20351         DECL_UID equal to cur_in_fname.
20352         (copy_node_stat): Do not change DECL_UID when copying a
20353         TRANSLATION_UNIT_DECL.
20354         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
20355         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
20356
20357         * c-decl.c (c_static_assembler_name): Delete.
20358         * c-tree.h (c_static_assembler_name): Delete prototype.
20359         * c-lang.c, objc/objc-lang.c: Don't override
20360         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
20361
20362         * Makefile.in (tree.o): Update dependencies.
20363         (GTFILES): Remove langhooks.c.
20364
20365 2004-07-05  Roger Sayle  <roger@eyesopen.com>
20366
20367         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
20368         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
20369         Normalize "X % C" as "X % -C" for signed modulus and negative C.
20370         Optimize "X % -Y" as "X % Y" for signed modulus.
20371         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
20372         into "((unsigned) X % Y) == 0".
20373
20374 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
20375
20376         * sourcebuild.texi (Config Fragments): Use @comma{} in
20377         cross-reference to section title.
20378
20379 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20380
20381         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
20382         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
20383         (gimplify_target_expr, gimplify_expr): Likewise.
20384         (copy_if_shared_r): No longer need special case for BIND_EXPR.
20385         (unshare_body, unvisit_body): Only look at nested if BODY_P is
20386         whole function.
20387         (gimplify_compound_lval): See if we can strip any useless conversion.
20388         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
20389         from RHS, not LHS.
20390         (gimplify_modify_expr_to_memset): Likewise.
20391         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
20392         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
20393         (declare_inline_vars): Likewise.
20394         (walk_type_fields): New function.
20395         (walk_tree): Use it.
20396         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
20397
20398         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
20399         (sra_walk_modify_expr): Allow init function to fail.
20400         (scan_init): Now returns bool.
20401         (generate_element_init): If can't understand INIT, return false.
20402         (scalarize_init): Return false if generate_element_init does.
20403
20404         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
20405         print bounds.
20406
20407         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
20408         bounds if bounds aren't constant.
20409
20410         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
20411
20412         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
20413         to type hooks; remove bogus PARAMS.
20414
20415 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20416
20417         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
20418         * dwarf2out.c (add_data_member_location_attribute): Check for
20419         TREE_BINFO.
20420         * tree.c (tree_node_kinds): Add "binfos".
20421         (binfo_lang_slots): New.
20422         (make_node_stat): Add TREE_BINFO.
20423         (make_tree_binfo_stat): New.
20424         (tree_node_structure): Add TREE_BINFO.
20425         * tree.def (TREE_BINFO): New.
20426         * tree.h (REC_OR_UNION_CHECK): Rename to ...
20427         (RECORD_OR_UNION_CHECK): ... here.
20428         (NOT_RECORD_OR_UNION_CHECK): New.
20429         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
20430         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
20431         RECORD_OR_UNION_CHECK.
20432         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
20433         (TYPE_LANG_SLOT_1): New.
20434         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
20435         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
20436         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
20437         (BINFO_ELTS): Remove.
20438         (BINFO_LANG_SLOT): New.
20439         (struct tree_binfo): New.
20440         (binfo_lang_slots): Declare.
20441         (enum tree_node_structure_enum): Add TS_BINFO.
20442         (union tree_node): Add binfo.
20443         (make_tree_binfo_stat): Declare.
20444         (make_tree_binfo): New.
20445         (enum tree_node_kind): Add binfo_kind.
20446
20447         * objc/objc-act.c (start_class, objc_declare_protocols,
20448         start_protocols): Use TYPE_LANG_SLOT_1.
20449         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
20450         to ...
20451         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
20452         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
20453         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
20454         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
20455
20456 2004-07-05  Steven Bosscher  <stevenb@suse.de>
20457
20458         * rtl.h (struct rtx_def): Remove the integrated flag.
20459         Use the return_val flag for MEM_SCALAR_P.
20460         Reshuffle and update flags in CLEAR_RTX_FLAGS.
20461
20462 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
20463
20464         PR target/16357
20465         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
20466         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
20467         move_by_pieces.
20468
20469 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
20470
20471         * var-tracking.c: Fix some comments.
20472         (frame_stack_adjust): New.
20473         (vt_stack_adjustments): Init stack_adjust of entry block to
20474         minus stack adjustment of function prologue.
20475         (adjust_stack_reference): Do not adjust if adjustment == 0.
20476         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
20477         (emit_notes_in_bb): Likewise.
20478         (vt_add_function_parameters): Do not adjust locations of
20479         function arguments.
20480         (vt_initialize): Compute the stack adjustment of function
20481         prologue and offset the initial "location" of frame_base_decl
20482         from the stack pointer after prologue.
20483
20484 2004-07-04  Richard Henderson  <rth@redhat.com>
20485
20486         * function.c (struct assign_parm_data_all): New.
20487         (struct assign_parm_data_one): New.
20488         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
20489         assign_parm_find_data_types, assign_parms_setup_varargs,
20490         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
20491         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
20492         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
20493         assign_parm_setup_block, assign_parm_setup_reg,
20494         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
20495         (assign_parms): ... here.
20496
20497 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
20498
20499         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
20500         now are bitmap_set_t's.
20501         (bitmap_insert_into_set): No point in inserting the value if
20502         it's invariant.
20503         (bitmap_set_contains): New function.
20504         (bitmap_set_replace_value): Add comment on why we do it
20505         this way.
20506         (set_contains): Removed.
20507         (bitmap_set_subtract_from_value_set): New name of
20508         set_subtract now that it's arguments are two different
20509         types of sets.
20510         Update callers.
20511         (bitmap_find_leader): Change algorithm used.
20512         (find_or_generate_expression): Update use of functions for new
20513         bitmap sets.
20514         (create_expression_by_pieces): Ditto.
20515         (insert_aux): Ditto.
20516         (insert): Ditto.
20517         (add_to_sets): Ditto.
20518         (init_pre): Ditto.
20519         (execute_pre): Ditto.
20520         (compute_avail): Ditto.
20521         Also ignore virtual phis.
20522
20523 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
20524
20525         * combine.c (simplify_comparison): Fix comment typo.
20526
20527 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
20528
20529         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
20530         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
20531         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
20532         (output_restore): Change parameter from 'insn' to 'pat'.
20533         (output_return): Adjust call to output_restore.
20534         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
20535         Adjust call to output_restore.
20536
20537 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
20538
20539         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
20540         and assert system is bsd.
20541
20542 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
20543
20544         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
20545         (TARGET_SWITCHES): Remove -mdebugc.
20546         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
20547         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
20548         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
20549         (sle_[sd]i_reg): Delete.
20550
20551 2004-07-04  Steven Bosscher  <stevenb@suse.de>
20552
20553         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
20554         Define.
20555         * config/iq2000/iq2000.md: Translate old pipeline description to an
20556         equivalent new one.
20557
20558 2004-07-04  Roger Sayle  <roger@eyesopen.com>
20559
20560         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
20561         Ensure the replacement rhs is valid gimple before performing
20562         the substitution.  Return false if these sanity checks fail.
20563         (fold_stmt): Only set changed to true, if set_rhs returns true.
20564         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
20565         succeeds.
20566
20567 2004-07-04  Richard Henderson  <rth@redhat.com>
20568
20569         PR c/16348
20570         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
20571
20572 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
20573
20574         * configure.ac (ranlib_flags): New variable.
20575         * Makefile.in (RANLIB_FLAGS): New variable.
20576         (libbackend.a): Use it.
20577         * configure: Regenerated.
20578
20579 2004-07-04  Roger Sayle  <roger@eyesopen.com>
20580
20581         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
20582         a "sign mask" instead of using ashr_optab directly.
20583
20584 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
20585
20586         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
20587         * doc/cppopts.texi: Clarify processing of command-line defines.
20588
20589 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
20590
20591         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
20592
20593 2004-07-04  Richard Henderson  <rth@redhat.com>
20594
20595         * rtl.def (ADDRESSOF): Remove.
20596         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
20597         (find_base_term, memrefs_conflict_p): Likewise.
20598         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
20599         (fold_rtx, cse_insn, set_live_p): Likewise.
20600         * dwarf2out.c (mem_loc_descriptor): Likewise.
20601         (add_location_or_const_value_attribute): Likewise.
20602         * emit-rtl.c (copy_insn_1): Likewise.
20603         * explow.c (memory_address): Likewise.
20604         * expmed.c (store_split_bit_field): Likewise.
20605         * expr.c (expand_expr_real_1): Likewise.
20606         * function.c (instantiate_decl
20607         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
20608         * genrecog.c (preds, validate_pattern): Likewise.
20609         * integrate.c (copy_rtx_and_substitute): Likewise.
20610         * recog.c (general_operand, register_operand): Likewise.
20611         (memory_address_p): Likwise.
20612         * reload1.c (eliminate_regs, elimination_effects): Likewise.
20613         * rtl.c (copy_rtx): Likewise.
20614         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
20615         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
20616         * rtlhooks.c (gen_lowpart_general): Likewise.
20617         * stmt.c (expand_asm_operands): Likewise.
20618         * web.c (entry_register, replace_ref, web_main): Likewise.
20619         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
20620         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
20621         * config/arm/arm.c (thumb_rtx_costs): Likewise.
20622         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
20623         * config/frv/frv.c (move_destination_operand, move_source_operand,
20624         condexec_dest_operand, condexec_source_operand,
20625         condexec_memory_operand): Likewise.
20626         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
20627         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
20628         (destination_xfmode_operand): Likewise.
20629         * config/mips/mips.h (PREDICATE_CODES): Likewise.
20630         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
20631         * config/s390/s390.c (general_s_operand): Likewise.
20632         * config/s390/s390.md (mov*): Likewise.
20633         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
20634
20635         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
20636         * expr.c (expand_expr_real_1): Likewise.
20637         * stmt.c (expand_decl): Likewise.
20638         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
20639
20640         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
20641         postponed_insns, put_var_into_stack, put_reg_into_stack,
20642         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
20643         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
20644         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
20645         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
20646         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
20647         purge_bitfield_addressof_replacements, purge_addressof_replacements,
20648         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
20649         struct insns_for_mem_walk_info, insns_for_mem_walk,
20650         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
20651         setjmp_protect_args): Remove.
20652         (push_function_context_to): Don't handle var_refs_queue.
20653         (pop_function_context_from, free_after_compilation): Likewise.
20654         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
20655         (assign_parms, allocate_struct_function): Likewise.
20656         (use_register_for_decl): New.
20657         (expand_function_end): Don't setjmp_protect.
20658         * function.h (struct emit_status): Update commentary.
20659         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
20660         (max_parm_reg, parm_reg_stack_loc): Remove.
20661         * passes.c (DFI_addressof): Remove.
20662         (dump_file_info): Remove addressof.
20663         (rest_of_handle_addressof): Remove.
20664         (rest_of_compilation): Don't call it.
20665         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
20666         * stmt.c (expand_decl): Use use_register_for_decl.
20667         * tree.h: Update decls.
20668         * web.c (mark_addressof): Remove.
20669         * doc/invoke.texi (-dF): Remove.
20670
20671 2004-07-03  Richard Henderson  <rth@redhat.com>
20672
20673         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
20674         instead of gen_mem_addressof.
20675         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
20676         TImode output register.
20677
20678 2004-07-03  Richard Henderson  <rth@redhat.com>
20679
20680         PR tree-optimization/16341
20681         * tree-sra.c (sra_walk_function): Increment to next stmt before
20682         processing the current stmt.
20683         (sra_insert_after): Always use BSI_SAME_STMT.
20684
20685 2004-07-03  Richard Henderson  <rth@redhat.com>
20686
20687         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
20688         fp plus with minus.
20689
20690 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
20691
20692         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
20693         with tree_int_cst_equal.
20694
20695 2004-07-03  Andreas Schwab  <schwab@suse.de>
20696
20697         * config/ia64/ia64.md: Define new attribute "empty".
20698         (prologue_use, nop_x, insn_group_barrier): Set it.
20699
20700         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
20701         skip over "empty" insns.
20702
20703 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20704
20705         * tree-inline.c (initialize_inlined_parameters): Pass proper function
20706         context to gimplify_body.
20707         (walk_tree): Don't walk into types twice.
20708         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
20709
20710         * tree-sra.c (generate_element_init): Remove any useless conversions.
20711
20712         * gimplify.c (gimplify_conversion): Remove stripping useless
20713         conversions from here.
20714         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
20715         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
20716         Unshare before substituting PLACEHOLDER_EXPR.
20717         (gimplify_modify_expr_to_memset): Likewise.
20718         Pass address of TO to memset, not TO itself.
20719         (gimplify_init_constructor): Make copy of OBJECT so we have it each
20720         time we make an expression (to match a PLACEHOLDER_EXPR).
20721
20722         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
20723         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
20724         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
20725         * tree-ssa-dom.c (local_fold): Likewise.
20726
20727         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
20728         * langhooks.h (strct lang_hooks): New field type_max_size.
20729         * function.c (assign_temp): Call it.
20730
20731 2004-07-03  Steven Bosscher  <stevenb@suse.de>
20732
20733         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
20734         * config/sh/sh.md: Convert the SH1 pipeline description to
20735         a DFA model.
20736
20737 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
20738
20739         * c-decl.c (struct c_binding): Remove contour field; add
20740         depth, invisible, nested fields.
20741         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
20742         (B_IN_EXTERNAL_SCOPE): New convenience macros.
20743         (bind): Add invisible and nested arguments. Initialize
20744         new fields of struct c_binding; adjust loop scanning for
20745         insertion point.
20746         (free_binding_and_advance): Clear structure with memset.
20747         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
20748         in file scope, even if it's in external scope too.
20749         (pushdecl): Adjust to match.  Create invisible file-scope
20750         declarations for block-scope forward declarations of static functions.
20751         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
20752         (undeclared_variable, lookup_label, declare_label, define_label)
20753         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
20754         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
20755         (store_parm_decls_oldstyle): Adjust to match.
20756         (diagnose_mismatched_decls): Correct handling of linkage clashes.
20757         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
20758
20759         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
20760         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
20761
20762 2004-07-02  Richard Henderson  <rth@redhat.com>
20763
20764         * c-decl.c (grokdeclarator): Don't frob current_function_decl
20765         around variable_size.
20766         (set_decl_nonlocal): Remove.
20767         (store_parm_decls): Add stmts for pending sizes.
20768         * calls.c (calls_function, calls_function_1): Remove.
20769         (precompute_arguments): Don't call it.
20770         * cfgexpand.c (set_save_expr_context): Remove.
20771         (tree_expand_cfg): Don't call it.
20772         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
20773         (dwarf2out_finish): Likewise.
20774         * expr.c (emit_block_move): Adjust addresses to BLKmode.
20775         (store_constructor): Don't pre-evaluate SAVE_EXPR.
20776         (safe_from_p): Don't queue SAVE_EXPRs.
20777         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
20778         or build plain VAR_DECLs.
20779         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
20780         (fold): Likewise.
20781         (fold_checksum_tree): Don't special-case SAVE_EXPR.
20782         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
20783         (put_var_into_stack): Don't handle SAVE_EXPR.
20784         (gen_mem_addressof): Likewise.
20785         * function.h (struct function): Remove x_save_expr_regs.
20786         (save_expr_regs): Remove.
20787         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
20788         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
20789         * stor-layout.c (variable_size): Don't set it.
20790         (force_type_save_exprs, force_type_save_exprs_1): Remove.
20791         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
20792         all callers.  Don't set SAVE_EXPR_CONTEXT.
20793         * tree-inline.h (remap_save_expr): Update decl.
20794         * tree.c (save_expr): Update build size.
20795         (first_rtl_op): Don't handle SAVE_EXPR.
20796         (unsave_expr_1, contains_placeholder_p): Likewise.
20797         (decl_function_context): Likewise.
20798         * tree.def (SAVE_EXPR): Remove args 1 and 2.
20799         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
20800         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
20801
20802 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
20803
20804         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
20805         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
20806         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
20807         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
20808         some first-person references and patronizing comments.  Based on
20809         printed manual.
20810         * doc/invoke.texi: Don't reference fortran@gnu.org.
20811         * doc/trouble.texi (Warning when a non-void function value is
20812         ignored): Rewrite.  From Russ Allbery and Chris Devers.
20813
20814 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
20815
20816         * tree-ssa-pre.c (bitmap_set_t): New.
20817         (bb_value_sets): avail_out is now a bitmap_set_t.
20818         (bitmap_find_leader): New function.
20819         (bitmap_value_insert_into_set): Ditto.
20820         (bitmap_set_copy): Ditto.
20821         (bitmap_value_replace_in_set): Ditto.
20822         (bitmap_set_contains_value): Ditto.
20823         (bitmap_set_new): Ditto.
20824         (bitmap_set_pool): New pool.
20825         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
20826         (insert_aux): Ditto.
20827         (add_to_sets): Ditto.
20828         (compute_avail): Ditto
20829         (eliminate): Ditto.
20830         (init_pre): Ditto.
20831         (fini_pre): Ditto.
20832         (execute_pre): Ditto.
20833
20834 2004-07-02  Roger Sayle  <roger@eyesopen.com>
20835
20836         * config/rs6000/rs6000.c (struct processor_costs): New structure
20837         used to hold instruction latencies/sizes for processor types.
20838         (rs6000_cost): New global variable pointing to current CPU's costs.
20839         (rs6000_override_options): Initialize rs6000_cost to point to the
20840         appropriate cost table based upon rs6000_cpu and optimize_size.
20841         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
20842         timings inline.
20843
20844 2004-07-02  Richard Henderson  <rth@redhat.com>
20845
20846         * expmed.c (make_tree): Don't use SET_DECL_RTL.
20847
20848 2004-07-02  Steven Bosscher  <stevenb@suse.de>
20849
20850         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
20851
20852 2004-07-01  Richard Henderson  <rth@redhat.com>
20853
20854         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
20855         (alpha_gp_save_rtx): Use assign_stack_local instead of
20856         gen_mem_addressof.
20857
20858 2004-07-01  Richard Henderson  <rth@redhat.com>
20859
20860         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
20861         (alpha_rtx_cost_data): Update to match.
20862         (alpha_rtx_cost_size): New.
20863         (alpha_rtx_costs): Honor optimize_size.
20864
20865 2004-07-01  Richard Henderson  <rth@redhat.com>
20866
20867         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
20868         * cfgexpand.c (tree_expand_cfg): Do it here.
20869         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
20870         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
20871         * config/mips/mips.c (mips_output_mi_thunk): And here.
20872         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
20873         * config/sh/sh.c (sh_output_mi_thunk): And here.
20874         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
20875
20876 2004-07-01  Richard Henderson  <rth@redhat.com>
20877
20878         * tree.def (RTL_EXPR): Remove.
20879         * c-typeck.c (lvalue_p): Don't handle it.
20880         * expr.c (safe_from_p): Likewise.
20881         (expand_expr_real_1): Likewise.
20882         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
20883         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
20884         * gengtype.c (adjust_field_tree_exp): Likewise.
20885         * stmt.c (warn_if_unused_value): Likewise.
20886         * tree-gimple.c (recalculate_side_effects): Likewise.
20887         * tree-pretty-print.c (dump_generic_node): Likewise.
20888         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
20889         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
20890         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
20891
20892         * stmt.c (struct stmt_status): Remove x_last_expr_type,
20893         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
20894         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
20895         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
20896         all the bits that tracked last_expr.
20897         (expand_end_bindings): Don't track last_expr.
20898         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
20899         (clear_last_expr): Remove.
20900         (expand_asm): Don't call it.
20901         (expand_asm_operands, expand_end_cond): Likewise.
20902         (expand_naked_return, expand_null_return_1): Likewise.
20903         * c-typeck.c (c_begin_compound_stmt): Likewise.
20904         * cfgexpand.c (expand_block): Use expand_expr_stmt.
20905         * expr.c (expand_expr_real_1): Likewise.
20906         * tree.h: Update prototypes.
20907
20908         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
20909         (struct emit_status): Remove sequence_rtl_expr.
20910         (struct function): Remove x_rtl_expr_chain.
20911         (seq_rtl_expr, rtl_expr_chain): Remove.
20912         * function.c (struct temp_slot): Remove rtl_expr.
20913         (assign_stack_temp_for_type): Don't set it.
20914         (free_temp_slots, pop_temp_slots): Don't check it.
20915         (free_after_compilation): Don't clear x_rtl_expr_chain.
20916         (fixup_var_refs): Don't search it.
20917         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
20918         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
20919         or seq_rtl_expr.
20920         (push_topmost_sequence): Likewise.
20921         (end_sequence, init_emit): Likewise.
20922         (start_sequence_for_rtl_expr): Remove.
20923         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
20924         * rtl.h (preserve_rtl_expr_result): Remove.
20925
20926 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
20927
20928         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
20929         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
20930         typos.
20931
20932 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
20933
20934         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
20935         (STANDARD_STARTFILE_PREFIX_2): Define.
20936         (standard_startfile_prefix_1): Initialize to
20937         STANDARD_STARTFILE_PREFIX_1.
20938         (standard_startfile_prefix_2): Initialize to
20939         STANDARD_STARTFILE_PREFIX_2.
20940         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
20941         (STANDARD_STARTFILE_PREFIX_1): Define.
20942         (STANDARD_STARTFILE_PREFIX_2): Define.
20943         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
20944         (STANDARD_STARTFILE_PREFIX_2): Document.
20945
20946 2004-07-01  Richard Henderson  <rth@redhat.com>
20947
20948         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
20949         in order to disable scalarization.  Instead set a flag and wait
20950         for a candidate decl.
20951
20952 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
20953
20954         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
20955         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
20956         Use terminology "testsuite" and "enumerated".
20957
20958 2004-07-01  Richard Henderson  <rth@redhat.com>
20959
20960         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
20961         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
20962         (initial_return_save): Likewise.
20963         (flush_queued_reg_saves): Remap register numbers.
20964         (dwarf2out_return_reg): Likewise.
20965
20966 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20967
20968         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
20969
20970         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
20971         access functions for lower bound and element size and only output
20972         if lower bound nonzero or element size not same as that of type.
20973         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
20974
20975 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
20976
20977         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
20978
20979 2004-07-01  Per Bothner  <per@bothner.com>
20980
20981         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
20982
20983 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
20984
20985         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
20986         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
20987         first operand.  Don't optimize if the bitfield is volatile.
20988
20989 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
20990
20991         * c-pretty-print.c (pp_c_postfix_expression): Handle
20992         floating-point comparison operators.
20993         (pp_c_expression): Pass floating-point comparison
20994         operators to pp_c_postfix_expression.
20995
20996 2004-07-01  Roger Sayle  <roger@eyesopen.com>
20997
20998         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
20999         rtx_cost instead of "had_mult" to determine whether the transformed
21000         expression is cheaper than the original.
21001
21002 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
21003
21004         * alias.c (get_alias_set, canon_rtx, get_addr,
21005         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
21006         Use MEM_P.
21007         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
21008         expand_builtin): Likewise.
21009         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
21010         Likewise.
21011         * combine.c (can_combine_p, combinable_i3pat, try_combine,
21012         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
21013         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
21014         record_dead_and_set_regs_1, get_last_value_validate,
21015         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
21016         * cse.c (check_dependence, canon_hash, equiv_constant,
21017         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
21018         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
21019         count_reg_usage): Likewise.
21020         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
21021         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
21022         cselib_record_sets): Likewise.
21023         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
21024         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
21025         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
21026         * df.c (df_uses_record): Likewise.
21027         * dojump (do_jump): Likewise.
21028         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
21029         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
21030         decl_start_label): Likewise.
21031         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
21032         operand_subword, change_address_1, make_safe_from): Likewise.
21033         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
21034         stabilize, force_not_mem): Likewise.
21035         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
21036         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
21037         * expr.c (convert_move, convert_modes, emit_block_move,
21038         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
21039         emit_move_insn_1, expand_assignment, store_expr,
21040         store_constructor_field, store_constructor, store_field,
21041         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
21042         Likewise.
21043         * final.c (cleanup_subreg_operands, alter_subreg,
21044         get_mem_expr_from_op): Likewise.
21045         * flow.c (notice_stack_pointer_modification_1,
21046         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
21047         Likewise.
21048         * function.c (mark_temp_addr_taken, preserve_temp_slots,
21049         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
21050         optimize_bit_field, flush_addressof, purge_addressof_1,
21051         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
21052         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
21053         keep_stack_depressed): Likewise.
21054         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
21055         noce_process_if_block, find_memory): Likewise.
21056         * integrate.c (subst_constants, allocate_initial_values): Likewise.
21057         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
21058         update_equiv_regs): Likewise.
21059         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
21060         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
21061         * optabs.c (expand_abs, emit_unop_insn): Likewise.
21062         * passes.c (rest_of_handle_final): Likewise.
21063         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
21064         move2add_note_store): Likewise.
21065         * ra-build.c (detect_remat_webs): Likewise.
21066         * ra-debug.c (dump_static_insn_cost): Likewise.
21067         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
21068         * recog.c (validate_change, apply_change_group, cancel_changes,
21069         validate_replace_rtx_1, general_operand, register_operand,
21070         nonmemory_operand, push_operand, pop_operand, memory_operand,
21071         indirect_operand, asm_operand_ok, offsettable_memref_p,
21072         offsettable_nonstrict_memref_p, constrain_operands,
21073         store_data_bypass_p): Likewise.
21074         * reg-stack.c (subst_stack_regs_pat): Likewise.
21075         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
21076         copy_cost, reg_scan_mark_refs): Likewise.
21077         * regmove.c (optimize_reg_copy_3, stack_memref_p,
21078         combine_stack_adjustments_for_block): Likewise.
21079         * regrename.c (copyprop_hardreg_forward_1): Likewise.
21080         * reload.c (can_reload_into, push_reload, decompose, immune_p,
21081         find_reloads, find_reloads_address, find_reloads_address_1,
21082         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
21083         find_equiv_reg): Likewise.
21084         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
21085         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
21086         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
21087         delete_address_reloads): Likewise.
21088         * resource.c (mark_referenced_resources): Likewise.
21089         * rtlanal.c (get_jump_table_offset, count_occurrences,
21090         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
21091         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
21092         num_sign_bit_copies1): Likewise.
21093         * rtlhooks.c (gen_lowpart_general): Likewise.
21094         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
21095         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
21096         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
21097         sdbout_global_decl): Likewise.
21098         * simplify-rtx.c (simplify_subreg): Likewise.
21099         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
21100         expand_anon_union_decl, expand_end_case_type): Likewise.
21101         * unroll.c (calculate_giv_inc): Likewise.
21102         * var-tracking.c (stack_adjust_offset_pre_post,
21103         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
21104         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
21105         vt_add_function_parameters): Likewise.
21106         * varasm.c (make_var_volatile, notice_global_symbol,
21107         assemble_external, decode_addr_const, mark_weak,
21108         default_encode_section_info): Likewise.
21109
21110 2004-07-01  Steven Bosscher  <stevenb@suse.de>
21111
21112         * stmt.c (check_seenlabel): Remove.
21113         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
21114
21115 2004-07-01  Richard Henderson  <rth@redhat.com>
21116
21117         * function.h (struct function): Remove x_function_call_count.
21118         (function_call_count): Remove.
21119         * calls.c (expand_call): Don't set it.
21120         * integrate.c (copy_rtx_and_substitute): Likewise.
21121
21122         * function.h (struct function): Remove x_cleanup_label.
21123         (cleanup_label): Remove.
21124         * stmt.c (expand_value_return): Don't use it.
21125         * function.c (free_after_compilation): Don't set it.
21126         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
21127         * cfgexpand.c (tree_expand_cfg): Update call.
21128         * tree.h (expand_function_start): Update decl.
21129
21130 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
21131
21132         PR c/1027
21133         * c-lang.c (c_initialize_diagnostics): Move from here ...
21134         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
21135         (c_tree_printer): Use pretty-printer to format %T.
21136         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
21137         before '*' if not C++.
21138         (pp_c_direct_abstract_declarator): Don't try to print array upper
21139         bound for flexible array members.
21140         * c-tree.h: Include "diagnostic.h".
21141         (c_initialize_diagnostics): Declare.
21142         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
21143         * c-format.c (format_type_warning): New function.  Improve
21144         diagnostics for incorrect format argument types.
21145         (check_format_types): Use it.  Add two parameters.  Use the
21146         TYPE_MAIN_VARIANT of wanted_type.
21147         (check_format_info_main): Pass new parameters to
21148         check_format_types.
21149         (struct format_wanted_type): Update comment.
21150
21151 2004-07-01  Nick Clifton  <nickc@redhat.com>
21152
21153         * target.h (struct gcc_target): Add new field to struct cxx:
21154         import_export_class.
21155         * target-def.h (TARGET_CXX): Initialise the new field.
21156         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
21157         the new field.
21158         * doc/tm.texi: Document the new target hook.
21159
21160 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
21161
21162         * builtins.c (fold_builtin_classify): Fix typo.
21163
21164 2004-07-01  Richard Henderson  <rth@redhat.com>
21165
21166         * function.c (identify_blocks, identify_blocks_1): Remove.
21167         * function.h (identify_blocks): Remove.
21168         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
21169
21170 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
21171
21172         * builtins.c (fold_builtin_classify): New.
21173         (fold_builtin_unordered_cmp): Fix commentary.
21174         (fold_builtin): Use it.
21175         * builtins.def: Define builtins for isnan,
21176         isnanf, isnanl, finite, finitef, finitel,
21177         isinf, isinff, isinfl.
21178
21179 2004-07-01  Richard Henderson  <rth@redhat.com>
21180
21181         * function.h (struct function): Remove dont_emit_block_notes.
21182         * gimple-low.c (lower_function_body): Don't set it.
21183         * cfgexpand.c (expand_block): Don't check it.
21184         * cfglayout.c (insn_locators_initialize): Likewise.
21185         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
21186         * passes.c (rest_of_compilation): Likewise.
21187         * stmt.c (expand_start_bindings_and_block): Likewise.
21188         (expand_end_bindings): Likewise.
21189
21190 2004-07-01  Richard Henderson  <rth@redhat.com>
21191
21192         * cgraph.h (cgraph_build_static_cdtor): Declare.
21193         * cgraphunit.c (cgraph_build_static_cdtor): New.
21194         * c-objc-common.c (build_cdtor): Use it.
21195         * coverage.c (create_coverage): Likewise.
21196         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
21197         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
21198
21199 See ChangeLog.11 for earlier changes.