OSDN Git Service

* Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-05-24  Jeff Law  <law@redhat.com>
2
3         * Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
4         * tree-cfg.c: Include tree-ssa-propagate.h.
5         (replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
6         needed.
7
8 2005-05-24  Nick Clifton  <nickc@redhat.com>
9
10         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11         __NO_FPRS__ when 'f' class registers will not be available. 
12
13 2005-05-24  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
14
15         * config/m32r/m32r.c (m32r_expand_block_move):  Return 0 if
16         nothing was done.
17         * config/m32r/m32r.md (movmemsi):  If m32r_expand_block_move did
18         nothing then FAIL.
19         * config/m32r/m32r/m32r-protos.h  (m32r_expand_block_move): Update
20         prototype.
21
22 2005-05-23  Jeff Law  <law@redhat.com>
23
24         * tree-ssa-dom.c (cprop_into_stmt): Do not call
25         recompute_tree_invariant_for_addr_expr here.
26         (optimize_stmt): Call it here instead and do so if anything
27         at all has changed in the statement and the RHS is an ADDR_EXPR.
28         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
29         needed, call recompute_tree_invariant_for_addr_expr.
30         * tree-ssa-propagate.c (substitute_and_fold): Call
31         recompute_tree_invariant_for_addr_expr as needed.
32
33 2005-05-23  Andreas Krebbel  <krebbel1@de.ibm.com>
34
35         * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
36         saving less registers than the replacement.
37
38 2005-05-23  Jan Hubicka  <jh@suse.cz>
39
40         * tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
41
42 2005-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
43
44         * config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
45         * config/sparc/sparc.c (sparc_expand_move): New function.
46         (sparc_emit_set_const64): Rewrite assert condition on entry.
47         (legitimate_constant_p) <CONST_VECTOR>: New case.
48         (legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
49         * config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
50         movV64, movtf): Use nonimmediate_operand for the first operand.
51         Rewrite.  Only invoke sparc_expand_move.
52         * config/sparc/predicates.md (input_operand): Reorder tests.
53
54 2005-05-23  Jan Beulich  <jbeulich@novell.com>
55
56         * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
57         missing return statement.
58
59 2005-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
60
61         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
62         emit_move_insn for moves to TFmode stack slots.
63
64 2005-05-21  Richard Guenther  <rguenth@gcc.gnu.org>
65
66         * tree-stdarg.c (execute_optimize_stdarg): Handle references
67         to va_list of the form &va[0].
68
69 2005-05-20  Jan Hubicka  <jh@suse.cz>
70
71         * Makefile.in (insn-emit.o): Add basic-block.h dependency.
72         * genemit.c (main): Make insn-emit to include basic-block.h too.
73
74 2005-05-20  Jan Hubicka  <jh@suse.cz>
75
76         * cgraphunit.c (cgraph_expand_function): Force function being lowered.
77
78 2005-05-19  Richard Henderson  <rth@redhat.com>
79
80         * config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
81         emit_store_conditional): Split out from ...
82         (alpha_split_atomic_op): ... here.
83         (alpha_split_compare_and_swap): New; extract from .md file.
84         (alpha_split_lock_test_and_set): Likewise.
85         * config/alpha/alpha-protos.h: Update.
86         * config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
87         split code into alpha.c.
88         (sync_lock_test_and_set<I48MODE>): Likewise.
89
90 2005-05-19  Richard Henderson  <rth@redhat.com>
91
92         * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
93
94 2005-05-19  Richard Henderson  <rth@redhat.com>
95
96         * config/i386/sse.md (mulv4si3): Use all register inputs.
97         (mulv2di3): Likewise.
98
99 2005-05-19  Richard Guenther  <rguenth@gcc.gnu.org>
100
101         * tree-ssa-loop-ivopts.c (determine_base_object): Use
102         build_fold_addr_expr to generate trees of correct type.
103         Use fold_buildN if possible.
104
105 2005-05-19  Jan Hubicka  <jh@suse.cz>
106
107         * basic-block.h (REG_BR_PROB_BASE): Define.
108         * cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
109         (dump_cgraph_node): Dump count.
110         (cgraph_clone_edge): Rescale counts.
111         (cgraph_clone_node): Likewise.
112         * cgraph.h: Include basic-block.h
113         (cgraph_node): Add count.
114         (cgraph_edge): Add count and loop_nest.
115         (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
116         Update prototypes.
117         * cgraphunit.c: Kill now redundant inlining comment.
118         (cgraph_create_edges): Make static, maintain current basic block;
119         fix pasto.
120         (record_call_1): Fill in new fields.
121         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
122         cgraph_clone_node.
123         (cgraph_decide_recursive_inlining): Likewise.
124         * rtl.h (REG_BR_PROB_BASE): Kill.
125         * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
126         (expand_call_inline): Update call of cgraph_create_edge.
127         * tree-optimize.c (tree_rest_of_compilation): Likewise.
128
129 2005-05-19  Nick Clifton  <nickc@redhat.com>
130
131         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
132         new rs6000_explicit_options structure.
133
134 2005-05-19  Richard Henderson  <rth@redhat.com>
135
136         PR target/21390
137         * config/alpha/alpha.c (alpha_emit_conditional_branch): Move 
138         TFmode code swapping ...
139         (alpha_emit_xfloating_compare): ... here.
140         (alpha_emit_setcc): Update to match.
141         (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
142
143 2005-05-19  Richard Henderson  <rth@redhat.com>
144
145         PR target/21657
146         * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
147         memory indirection in local-dynamic case.
148
149 2005-05-18  Jie Zhang  <jie.zhang@analog.com>
150             Bernd Schmidt  <bernd.schmidt@analog.com>
151
152         * config/bfin/bfin.c (branch_dest): Add comment why it's
153         necessary.
154         * config/bfin/bfin.md (attr "length" default): Change the offset of
155         forward conditional branch of length 4 from 4096 to 4092.
156
157 2005-05-19  Jan Beulich  <jbeulich@novell.com>
158
159         * unwind-compat.c: Include tconfig.h and tsystem.h.
160         * unwind-dw2-fde-compat.c: Likewise.
161
162 2005-05-18  Richard Henderson  <rth@redhat.com>
163
164         PR 21541
165         * ifcvt.c (noce_process_if_block): Avoid conversion when the
166         memory destination is readonly.
167
168 2005-05-18  Richard Henderson  <rth@redhat.com>
169
170         PR 21541
171         * tree-ssa-operands.c (opf_non_specific): New.
172         (get_asm_expr_operands): Set it.
173         (add_call_clobber_ops, add_call_read_ops): Likewise.
174         (add_stmt_operand): Test it instead of opf_kill_def when
175         considering unmodifiable variables.
176
177         * tree-ssa-operands.c (get_expr_operands): Fix exact test.
178
179 2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>
180
181         * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
182         tree-ssa-forwprop.c: Fix comment typos.
183         * doc/invoke.texi: Fix a typo.
184
185 2005-05-18  Richard Henderson  <rth@redhat.com>
186
187         * config.gcc (powerpc-*-linux*): Include linux64.opt when
188         including linux64.h.
189
190 2005-05-18  Richard Henderson  <rth@redhat.com>
191
192         * tree-cfg.c (pass_remove_useless): Revert last change.
193         * tree-optimize.c (init_tree_optimization_passes): Initialize
194         all_lowering_passes with PROP_gimple_any.
195
196 2005-05-18  Devang Patel  <dpatel@apple.com>
197
198         * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
199         the mask end.
200         
201 2005-05-18  Richard Henderson  <rth@redhat.com>
202
203         * tree-ssa-forwprop.c (cfg_changed): New.
204         (tidy_after_forward_propagate_addr): New.
205         (forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
206         (forward_propagate_addr_into_variable_array_index): Likewise.
207         (tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
208         edges were removed.
209
210 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
211
212         * dummy-checksum.c: New.
213         * genchecksum.c: New.
214         * c.opt (print_pch_checksum): New flag.
215         * c-pch.c (struct c_pch_validity): Make much shorter.
216         (no_checksum): New.
217         (host_machine): Remove.
218         (target_machine): Remove.
219         (get_ident): Change PCH version number.
220         (pch_init): When -fverbose-asm, print out the compiler fingerprint.
221         Don't put triplets or version string in PCH validity data.
222         Do put the compiler checksum in the validity data.
223         (c_common_valid_pch): Don't check triplets or version string.  Do
224         check checksum.
225         (c_common_print_pch_checksum): New.
226         * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
227         Print fingerprint with -v.
228         * c-common.h (c_common_print_pch_checksum): New.
229         (executable_checksum): New.
230         * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
231         (cc1-dummy): New rule.
232         (cc1-checksum.c): New rule.
233         (cc1-checksum.o): New rule.
234         (cc1): Add checksum support.
235         (build/genchecksum): New.
236         (build/genchecksum.o): New.
237         (dummy-checksum.o): New.
238         (genobjnames): Add genchecksum.o.
239         (mostlyclean): Remove *-checksum.c.
240         (gnucompare): Add libgcc to list of directories checked.
241         Make comparison problems in libgcc/ and with checksum files only
242         be warnings.
243         * doc/invoke.texi (Precompiled Headers): Remove caution.
244         Document that it must be the exact same binary.  Add a few
245         known-safe flags to the list.
246
247         * rs6000/predicates.md (fix_trunc_dest_operand): New.
248         * rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
249         Check that a memory operand is valid before trying to use it.
250         
251         * tree-cfg.c (pass_remove_useless): This pass works on trees.
252
253 2005-05-18  Richard Guenther  <rguenth@gcc.gnu.org>
254
255         * tree.c (build1_stat): Don't try to handle two-operand
256         tree codes.
257
258 2005-05-18  Richard Sandiford  <rsandifo@redhat.com>
259
260         * config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
261         * config/sh/sh.h: Update mask names throughout.
262         (target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
263         (SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
264         (SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
265         (HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
266         (LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
267         (HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
268         (INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
269         (TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
270         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
271         (TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
272         (TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
273         (TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
274         (TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
275         (TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
276         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
277         (TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
278         (TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
279         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
280         (TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
281         (TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
282         (TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
283         (TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
284         (TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
285         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
286         (TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
287         (SUBTARGET_SWITCHES): Delete.
288         (TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
289         (TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
290         (TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
291         (TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
292         (TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
293         (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
294         (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
295         (SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
296         (SUPPORT_SH3): Likewise SUPPORT_SH2.
297         (SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
298         (SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
299         SUPPORT_SH4_NOFPU.
300         (SUPPORT_SH3E): Likewise SUPPORT_SH2E.
301         (SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
302         (SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
303         (SUPPORT_SH4A): Likewise SUPPORT_SH4.
304         (SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
305         (SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
306         (SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
307         (SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
308         (SUPPORT_ANY_SH5): New macros.
309         (TARGET_NONE): Replace with...
310         (MASK_ARCH): ...this new macro.
311         * config/sh/elf.h: Update mask names
312         * config/sh/linux.h: Likewise.
313         * config/sh/little.h: Likewise.
314         * config/sh/netbsd-elf.h: Likewise.
315         * config/sh/symbian-pre.h: Likewise.
316         * config/sh/sh.c (sh_handle_option): New function.
317         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
318         (calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
319         (sh_target_switches, target_switches): Delete.
320         (sh_pch_valid_p): Check for specific differences in the target_flags
321         settings.
322         (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
323         * config/sh/sh.opt: New file.
324
325 2005-05-18  Richard Henderson  <rth@redhat.com>
326
327         PR target/21632
328         * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
329         small_addr_symbolic_operand.
330
331 2005-05-18  Jeff Law  <law@redhat.com>
332
333         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
334         propagate an ADDR_EXPR if the definition and use sites are
335         in different EH regions.
336
337 2005-05-18  Ian Lance Taylor  <ian@airs.com>
338
339         * read-rtl.c (mode_attr_index): Use obstack_grow0, not
340         obstack_grow.
341
342 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
343
344         * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
345
346 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
347         
348         Fix PR tree-optimization/21407
349
350         * tree-ssa-operands.c (note_addressable): Change
351         COMPONENT_REF handling in response to aliasing
352         discussion.
353
354 2005-05-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
355
356         * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
357         * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
358         * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
359         * doc/invoke.texi (SPARC options): Document that -mapp-regs is
360         the default on Solaris too.
361
362 2005-05-17  Daniel Berlin  <dberlin@dberlin.org>
363
364         * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
365         is okay too.
366
367 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
368
369         * timevar.def (TV_SCEV_CONST): New timevar.
370         * tree-optimize.c (init_tree_optimization_passes): Add
371         pass_scev_cprop.
372         * tree-pass.h (pass_scev_cprop): Declare.
373         * tree-scalar-evolution.c (scev_const_prop): New function.
374         * tree-scalar-evolution.h (scev_const_prop): Declare.
375         * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
376         New.
377         * tree-cfg.c (replace_uses_by): Export.
378         * tree-flow.h (replace_uses_by): Declare.
379
380 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
381             Mike Stump  <mrs@apple.com>
382
383         Yet more Objective-C++...
384
385         * c-common.h (objc_finish_try_stmt): Add.
386         (objc_build_synchronized): Add.
387         (objc_generate_write_barrier): Add.
388         * stub-objc.c (objc_build_synchronized): Add return value.
389         (objc_finish_try_stmt): Likewise.
390         (objc_generate_write_barrier): Add.
391
392         * c-common.h (objc_rewrite_function_call): Add.
393         * c-typeck.c (build_function_call): Allow objc to rewrite
394         FUNCTION_DECLs.
395         (build_modify_expr): Allow objc to generate write barriers.
396         * c.opt (Wassign-intercept): Add.
397         (Wstrict-selector-match): Add.
398         (fobjc-call-cxx-cdtors): Add.
399         (fobjc-direct-dispatch): Add.
400         (fobjc-gc): Add.
401         * dbxout.c (get_lang_number): Add Objective-C++ support.
402         * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
403         (-Wstrict-selector-match): Likewise.
404         (-fobjc-direct-dispatch): Likewise.
405         (-Wassign-intercept): Likewise.
406         (Overall Options): Likewise.
407         * gengtype.c (get_output_file_with_visibility): Likewise.
408         * stub-objc.c (objc_rewrite_function_call): Add.
409         * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
410
411         * c-common.c (flag_objc_exceptions): Remove.
412         (flag_objc_sjlj_exceptions): Remove.
413         * c-decl.c (objc_mark_locals_volatile): Don't change decls
414         that are already ok.
415         * c-opts.c (c_common_handle_option, case
416         OPT_fobjc_exceptions): Remove.
417         (case OPT_fobjc_sjlj_exceptions): Remove
418         * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
419         (fobjc-exceptions): Likewise.
420         (fobjc-sjlj-exceptions): Likewise.
421         * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
422         (OFFS_ASSIGNIVAR_FAST): Add.
423         
424 2005-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
425
426         * config/sparc/sparc.md (movhi): Do not test constness
427         of operand #1 twice.
428         (movsi): Likewise.
429         (movdi): Unconditionally accept zero as second operand
430         when the first is memory.
431         (movdi_insn_sp32): Handle above case.
432         (DImode splitter): Use predicates.
433         (DImode splitter): Use const_zero_operand predicate.
434         (movsf_insn): Swap 2 alternatives.
435
436 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
437
438         * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
439         expand_simple_operations to bases of the ivs.
440         (tree_int_cst_sign_bit): Export.
441         * tree-flow.h (expand_simple_operations): Declare.
442         * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
443         tree_int_cst_sign_bit.
444         (expand_simple_operations): Export.
445         * tree.h (tree_int_cst_sign_bit): Declare.
446
447 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
448
449         * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
450         merged block.
451         (replace_uses_by): New function.
452         (tree_merge_blocks): Eliminate the phi nodes in the merged block.
453         * tree-flow.h (fold_stmt_inplace): Declare.
454         * tree-ssa-ccp.c (fold_stmt_inplace): New function.
455         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
456         info after cfg cleanup.
457
458 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
459
460         * cfgloop.h (just_once_each_iteration_p): Declaration changed.
461         * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
462         const.
463
464 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
465
466         * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
467         * ggc-zone.c (ggc_alloc_zone_1): Ditto.
468         * timevar.c (timevar_ggc_mem_total): New variable.
469         (GGC_MEM_BOUND): New constant.
470         (get_time): Record ggc memory status.
471         (timevar_accumulate): Accumulate amount of ggc memory.
472         (timevar_print): Print consumption of ggc memory.
473         * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
474         TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
475         TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
476         * timevar.h (struct timevar_time_def): Add ggc_mem field.
477         (timevar_ggc_mem_total): Declare.
478
479 2005-05-17  Kazu Hirata  <kazu@cs.umass.edu>
480
481         * tree-into-ssa.c (update_ssa): Clean up by shortening the
482         live range of DFS.
483
484 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
485
486         * config/cris/cris.md (ncond, ocode, rcond): Remove separate
487         define_code_attr.
488         ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
489         ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
490         ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
491         ("s<ocond:code>"): Rename from respectively "b<ncond>",
492         "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
493         "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
494         "s<rcond>" and "s<ocond>".
495         ("b<ocond:code>", "*b<ocond:code>_reversed")
496         ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
497         output statement section.
498
499 2005-05-17  Roger Sayle  <roger@eyesopen.com>
500
501         * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
502
503 2005-05-17  Steven Bosscher  <stevenb@suse.de>
504             Stuart Hastings <stuart@apple.com>
505             Jan Hubicka  <jh@suse.cz>
506             Dale Johannesen  <dalej@apple.com>
507
508         * cgraph.h (cgraph_node): Add 'lowered' state.
509         (cgraph_lower_function): Declare.
510         * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
511         (cgraph_lower_function): New function.
512         (cgraph_create_edges): Deal with lowered function bodies.
513         (verify_cgraph_node): Likewise.
514         (cgraph_analyze_function): Do lowering job.
515         (cgraph_build_static_cdtor): Likewise.
516         * function.h (struct function): Add saved_eh and saved_cfg.
517         * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
518         * tree-cfg.c (fold_cond_expr_cond): Export.
519         * tree-flow.h (fold_cond_expr_cond): Declare.
520         * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
521         pointer-set.
522         (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
523         in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
524         callee_cfun, block, eh_region, eh_region_offset.
525         (inlining_p): New predicate.
526         (remap_decl): Update for new inline_data; declare newly created inline
527         vars in low gimple way.
528         (copy_body_r): Update for new datastructure, simplify some of handling
529         when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
530         deal with RESX_EXPRs.
531         (copy_bb): New.
532         (copy_edges_for_bb): Likewise.
533         (remap_decl_1): New.
534         (copy_cfg_body): New.
535         (copy_generic_body): Rewrite to work on low gimple.
536         (copy_body): Turn into simple wrapper around copy_cfg_body.
537         (setup_one_parameter): Insert new statements into given basic block.
538         (initialize_initialized_parameters): Likewise, reorganize way things are
539         gimplified.
540         (declare_return_variable): Update for new inline data datastructure.
541         (inline_forbidden_p): Work on low gimple.
542         (estimate_num_insns): Likewise.
543         (expand_call_inline): Work on CFG.
544         (push_cfun, pop_cfun): New functions.
545         (cfun_stack): New stack.
546         (add_lexical_block): New function.
547         (gimple_expand_calls_inline): Work on basic block.
548         (optimize_inline_calls): Likewise.
549         (clone_body, save_body, unsave_ewpr_now): Update for new
550         datastructures.
551         (declare_inline_vars): Work on block instead of bind_expr.
552         (inlining_p): New predicate.
553         * tree-inline.h (push_cfun, pop_cfun): Declare.
554         * tree-optimize.c: Include except.h
555         (all_lowering_passes): New variable.
556         (execute_fixup_cfg, pass_fixup_cfg): New pass.
557         (init_tree_optimization_passes): Move some to all_lowering_passes.
558         (tree_lowering_passes): New function.
559         (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
560         * tree-pass.h (tree_lowering_passes): Declare
561
562 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
563
564         * unwind-dw2-fde-darwin.c: Include tsystem.h.
565
566 2005-05-17  Jeff Law  <law@redhat.com>
567
568         * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
569         * tree-ssa-forwprop.c: Include langhooks.h.
570         (forward_propagate_addr_expr_into_variable_array_index): New.
571         (forward_propagate_addr_expr): New.
572         (tree_ssa_forward_propagate_single_use_vars): Loop over all
573         the statements in the block instead of just the last statement.
574         Call forward_propagate_addr_expr as needed.
575         (pass_forwprop): Update the SSA graph after forward propagation is
576         complete.
577
578 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
579
580         * unwind-dw2-fde-glibc.c (base_from_cb_data,
581         _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
582         appropriate.
583         * unwind-dw2-fde.c (__deregister_frame_info_bases,
584         base_from_object, fde_split, end_fde_sort): Likewise.
585         * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op, 
586         execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
587         uw_init_context_1): Likewise.
588         * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
589         _Unwind_Resume_or_Rethrow): Likewise.
590         * unwind-pe.h (__gxx_abort): Do not define.
591         (size_of_encoded_value, base_of_encoded_value,
592         read_encoded_value_with_base): Use gcc_unreachable.
593         * unwind.h (_Unwind_GetTextRelBase): Likewise.
594
595 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
596
597         * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
598         (cfi_end): New macros.
599         (RETLDM): Use cfi_pop.  Expect an eight byte stack frame.
600         (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros.  Create
601         an eight byte stack frame.
602         (__NR_tkill): Define.
603         (__div0): Use gettid tkill on GNU/Linux.
604         (_arm_return): Add CFI.
605         (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
606
607 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
608
609         * configure.ac: Remove spaces around assignment to
610         gcc_cv_ld_sysroot.
611         * configure: Regenerated.
612
613 2005-05-17  David Edelsohn  <edelsohn@gnu.org>
614
615         * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
616         * config/rs6000/rs6000.c (rs6000_explicit_options): Add
617         aix_struct_ret.
618         (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
619         Modify aix_struct_return variable, not target_flags.
620         (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
621         (rs6000_return_in_memory): Test aix_struct_return.
622         * config/rs6000/rs6000.opt (maix-struct-return): Convert to
623         independent variable.  Report mxl-compat.
624
625 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
626
627         * config/bfin/bfin.md (eh_return): Add missing DONE.
628
629 2005-05-17  Ian Lance Taylor  <ian@airs.com>
630
631         * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
632         field.
633         (mode_attr_index): Remove check for defined attribute.  Remove
634         infile parameter.  Change all callers.
635         (apply_mode_maps): Add unknown parameter.  Change caller.  Always
636         return after finding attribute.
637         (apply_macro_to_rtx): Add unknown_mode_attr parameter.  Change
638         callers.
639         (apply_macro_traverse): Set mtd->unknown_mode_attr.
640         (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
641         attribute used for a mode.
642
643 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
644
645         * tree-ssa-math-opts.c: New file.
646
647 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
648
649         * Makefile.in: Add tree-ssa-math-opts.c.
650         * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
651         * fold-const.c (distribute_real_division): New.
652         (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
653         * tree-pass.h (pass_cse_reciprocals): New.
654         * tree-optimize.c (init_tree_optimization_passes): Run it.
655         * doc/passes.texi: Document the new pass.
656
657 2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>
658
659         PR middle-end/21595
660         * builtins.c (fold_builtin_constant_p): Handle
661         &"string cst"[0] as constant.
662
663 2005-05-17  Richard Henderson  <rth@redhat.com>
664
665         * config/i386/sse.md (mulv16qi3, mulv2di3): New.
666
667 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
668
669         PR middle-end/21492
670         * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
671         src2 if src2 has been split.
672
673         PR tree-optimization/21610
674         * c-typeck.c (decl_constant_value_for_broken_optimization): If not
675         returning DECL, call unshare_expr.
676
677 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
678
679         * config/cris/cris.md: Unquote preparation and output statements.
680         (BWD, WD, BW): New, mode-macros.
681         (S, s, m, mm, nbitsm1): New, mode-attrs.
682         (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
683         (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
684         code-attrs.
685         ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
686         ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
687         ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
688         "*cmp_swapexthi".
689         ("cmp<mode>"): Replace "cmphi" and "cmpqi".
690         ("movdi"): Move misplaced head comment regarding necessity of
691         movdi from movsi to here.
692         ("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
693         "*mov_sidehi_biap".
694         ("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
695         ("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
696         "*mov_sideqi_biap_mem".
697         ("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
698         "*mov_sidehi_mem".
699         ("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
700         "*clear_sidehi_biap" and "*clear_sideqi_biap".
701         ("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
702         and "*clear_sideqi".
703         ("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
704         "*ext_sidehisi_biap".
705         ("*ext_side<mode>si"): Replace "*ext_sideqisi" and
706         "*ext_sidehisi".
707         ("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
708         ("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
709         ("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
710         ("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
711         ("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
712         "zero_extendqisi2".
713         ("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
714         "*op_sidehi_biap" and "*op_sidesi_biap".
715         ("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
716         "*op_sidesi".
717         ("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
718         "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
719         ("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
720         "*op_swap_sidehi" and "*op_swap_sidesi".
721         ("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
722         in the N alternative of "subqi3".
723         ("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
724         "*extophisi_side_biap".
725         ("*extop<mode>si_side"): Replace "*extopqisi_side" and
726         "*extophisi_side".
727         ("*extop<mode>si_swap_side_biap"): Replace
728         "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
729         ("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
730         "*extophisi_swap_side".
731         ("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
732         ("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
733         "*extophisi_swap".
734         ("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
735         "mulqihi3", "mulhisi3" and "mulhisi3".
736         ("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
737         ("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
738         "umulsi3_highpart".
739         ("xor<mode>3"): Replace "xorhi3" and "xorqi3".
740         ("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
741         ("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
742         ("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
743         ("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
744         ("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
745         "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
746         ("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
747         "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
748         ("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
749         ("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
750         ("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
751         "*ashlhi_lowpart".
752         ("abs<mode>2"): Replace "abshi2" and "absqi2".
753         ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
754         "bleu".
755         ("b<ocond>"): Replace "bgt" and "ble".
756         ("b<rcond>"): Replace "blt" and "bge".
757         ("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
758         "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
759         "*bleu_reversed".
760         ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
761         "*ble_reversed".
762         ("*b<rcond>_reversed"): Replace "*blt_reversed" and
763         "*blt_reversed".
764         ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
765         "sne".
766         ("s<rcond>"): Replace "sge" and "slt".
767         ("s<ocond>"): Replace "sgt" and "sle".
768         ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
769         [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
770         ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
771         clear.w [rx=rx+i] and clear.b [rx=rx+i].
772
773 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
774
775         * varasm.c (struct constant_descriptor_tree): Add hash field.
776         (const_desc_hash): Just return hash field.
777         (const_desc_eq): If hash values are different, return 0 immediately.
778         (output_constant_def): Compute hash field of temporary key, use
779         htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
780         newly built constant descriptor.
781         (lookup_constant_def): Compute hash field of temporary key, use
782         htab_find_with_hash instead of htab_find.
783
784 2005-05-16  Richard Henderson  <rth@redhat.com>
785
786         * config/i386/sse.md (mulv4si3): New.
787
788 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
789
790         * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
791         tests for noncanonical versions of reg+constant and
792         reg+reg*{1,2,4}.
793
794 2005-05-16  Richard Henderson  <rth@redhat.com>
795             Steven Bosscher <stevenb@suse.de>
796
797         PR tree-opt/21399
798         * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from 
799         maybe_clean_eh_stmt; take old stmt parameter.  Update EH
800         region data structure to match replacement.
801         * tree-flow.h: Update to match.
802         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
803         * tree-ssa-dom.c (optimize_stmt): Likewise.
804         * tree-ssa-pre.c (eliminate): Likewise.
805         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
806
807 2005-05-16  Caroline Tice  <ctice@apple.com>
808
809         * bb-reorder.c (verify_hot_cold_block_grouping):  Replace
810         internal_error with gcc_assert.
811         * dwarf2out.c (dwarf2out_switch_text_section):  Likewise.
812         * function.h (struct function): Remove space between "*" and
813         struct field names.
814         * varasm.c (initialize_cold_section_name):   Add gcc_assert;
815         modify to use alloca.
816         (unlikely_text_section): Add check for flag_function_sections.
817         (assemble_start_function):  Move call to resolve_section, so it
818         comes before first call to unlikely_text_section.
819         (assemble_end_function):  Add test and call to function_section
820         if appropriate.
821         
822 2005-05-16  Roger Sayle  <roger@eyesopen.com>
823
824         * c-common.c (c_common_truthvalue_conversion): Use fold_build2
825         instead of build_binary_op when performing code transformations
826         to avoid error messages about constructs not it the user's code.
827
828 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
829
830         * tree-ssa-pre.c: Fix a comment typo.
831
832 2005-05-16  Richard Henderson  <rth@redhat.com>
833
834         PR target/21556
835         * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
836         load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
837         add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
838         load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
839         add_tprel22): Remove mode from symbolic operand.
840
841 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
842
843         * optc-gen.awk: Include intl.h after the externally-provided files.
844
845 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
846
847         * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
848         folding a COND_EXPR_COND in a nondestructive manner.
849
850 2005-05-16  Fariborz Jahanian <fjahanian@apple.com>
851
852         * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh, 
853         altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
854         New values for vec_select definitions and bitmask for element
855         selection.
856          
857 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
858
859         * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
860         Change the type to VEC(rtx,gc)*.
861         (mem_loc_descriptor, add_const_value_attributes,
862         dwarf2out_init): Adjust uses of used_rtx_varray.
863
864         * tree-data-ref.c (compute_all_dependences): Change the type
865         of dependence_relations to VEC(ddr_p,heap)**.
866         (compute_data_dependences_for_loop): Change the type of
867         allrelations to VEC(ddr_p,heap)*.
868
869 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
870
871         * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
872         system.h, coretypes.h and tm.h.
873         (options.o): Update dependencies accordingly.
874         * optc-gen.awk: Allow header_name to be a list of filenames.
875         Handle the "Condition" flag.
876         * opts.h (CL_DISABLED): New flag.
877         * opts.c (handle_option): Print an error for CL_DISABLED options.
878         * doc/options.texi: Document the "Condition" option flag.
879
880 2005-05-16  Paolo Bonzini  <bonzini@gnu.org>
881
882         * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
883
884 2005-05-15  Roger Sayle  <roger@eyesopen.com>
885
886         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
887         check for TREE_OVERFLOW on INTEGER_CST trees.
888         * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
889         CONSTANT_CLASS_P tree nodes.
890
891 2005-05-15  H.J. Lu  <hongjiu.lu@intel.com>
892
893         PR target/21551
894         * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
895
896 2005-05-15  Daniel Berlin  <dberlin@dberlin.org>
897             
898         Fix PR tree-optimization/21576
899         
900         * tree-ssa-pre.c (expression_node_pool): New pool.
901         (comparison_node_pool): Ditto.
902         (list_node_pool): Ditto.
903         (pool_copy_list): New function.
904         (phi_translate): Handle CALL_EXPR.
905         (valid_in_set): Ditto.
906         (create_expression_by_pieces): Ditto.
907         (insert_into_preds_of_block): Ditto.
908         (insert_aux): Ditto.
909         (compute_avail): Ditto.
910         (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
911         (can_value_number_call): New function.
912         (find_leader): Update comment.
913         (init_pre): Create new pools.
914         (fini_pre): Free new pools.
915         (pass_pre): Add TODO_update_ssa for the future when we are going
916         to need vops.
917         * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
918         (set_value_handle): Ditto.
919         (get_value_handle): Ditto.
920
921 2005-05-15  Richard Earnshaw  <richard.earnshaw@arm.com>
922
923         * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
924
925 2005-05-15  Andreas Jaeger  <aj@suse.de>
926
927         * gcc.c (pfatal_pexecute): Remove unused local function.
928
929 2005-05-15  Richard Sandiford  <rsandifo@redhat.com>
930
931         * optc-gen.awk: Remove excess indentation.
932         * opth-gen.awk: Likewise.
933
934 2005-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
935
936         * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
937         of basic_block_info.  Call init_flow and find_basic_blocks
938         before dbr_schedule if needed.
939
940 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
941
942         * tree-optimize.c (init_tree_optimization_passes): Move
943         pass_cd_dce in place of the last pass_dce.
944
945         PR tree-optimization/21563
946         * tree-vrp.c (compare_value): Return boolean_false_node when
947         SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
948         strictly larger than CST.
949
950 2005-05-14  Nathan Sidwell  <nathan@codesourcery.com>
951             Jan-Benedict Glaw  <jbglaw@lug-owl.de>
952
953         * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
954         gcc_assert().
955         (rev_cond_name) Likewise.
956         (vax_float_literal) Likewise.
957         * config/vax/vax.md: Likewise.
958
959 2005-05-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
960
961         * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
962         registers and use them (specifically the stack pointer).
963         * config/vax/vax.h: Use above defines right here.
964
965         * config/vax/vax.c: (override_options) Remove 'register' keyword.
966         (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
967         (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
968         whitespace.
969         * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
970         mostly removal of trailing spaces...
971         * config/vax/vax-modes.def: Remove trailing whitespace.
972
973         * config/vax/elf.h: Update whitespace.
974
975 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
976
977         Revert
978         2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
979         * fold-const.c (fold_indirect_ref_1): Avoid removing
980         NOP_EXPRs with type qualifiers like const.
981
982 2005-05-14  Jan Hubicka  <jh@suse.cz>
983
984         Patch by Richard Henderson:
985         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
986         Handle RESX expressions properly.
987
988         * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
989         (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
990         (remove_stmt_from_eh_region_fn): Likewise.
991
992         * tree-cfg.c (execute_warn_function_return): Break out noreturn
993         warning too..
994         (execute_warn_function_noreturn): ... here.
995         (pass_warn_function_noreturn): New pass.
996         * tree-pass.h (pass_warn_function_noreturn): Declare
997         * tree-optimize.c (init_tree_optimization_passes): Move return
998         warnings early and add noreturn warnings at place of previous
999         return warnings.
1000
1001 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1002
1003         * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
1004         root_var_init, type_var_init): Use VEC instead of VARRAY.
1005         * tree-ssa-live.h (tree_partition_associator_d): Change the
1006         type of trees to VEC(tree,heap)*.
1007         (tpa_tree): Use VEC instead of VARRAY.
1008
1009 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
1010
1011         * fold-const.c (div_if_zero_remainder): New function.
1012         (try_move_mult_to_index): Use it.
1013
1014 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1015
1016         * tree-eh.c (leh_tf_state): Change the type of dest_array to
1017         VEC(tree,heap)*.
1018         (maybe_record_in_goto_queue, lower_try_finally_onedest,
1019         lower_try_finally_copy, lower_try_finally_switch,
1020         lower_try_finally): Use VEC instead of VARRAY.
1021
1022 2005-05-14  Hans-Peter Nilsson  <hp@axis.com>
1023
1024         * config/cris/cris.h (Node: Register Classes): Remove obsoleted
1025         comment regarding defined register classes.
1026         (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
1027
1028 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1029
1030         * tree-optimize.c (init_tree_optimization_passes): Move
1031         pass_merge_phi before the first pass_dominator.
1032
1033 2005-05-13  Richard Earnshaw  <richard.earnshaw@arm.com>
1034
1035         * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
1036         unconditional.
1037
1038 2005-05-13  Josh Conner  <jconner@apple.com>
1039
1040         * config/arm/arm.c (arm_size_return_regs): New.
1041         (thumb_unexpanded_epilogue): replace in-line calculation
1042         of return registers with call to arm_size_return_regs.
1043         (use_return_insn): Include test of which registers are
1044         being used to hold return values, to accommodate
1045         vector return values.
1046
1047 2005-05-11  Aldy Hernandez  <aldyh@redhat.com>
1048
1049         * config/rs6000/sysv4.opt (mlittle): Handle.
1050
1051         * config/rs6000/rs6000.c (rs6000_handle_option): Set
1052         target_flags_explicit when appropriate.
1053
1054 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1055
1056         PR middle-end/20714:
1057         * optabs.c (no_conflict_data): New struct.
1058         (no_conflict_move_test): New function.
1059         (emit_no_conflict_block): Use it.
1060
1061 2005-05-13  Adam Nemet  <anemet@lnxw.com>
1062
1063         * doc/invoke.texi (Debugging Options): Option
1064         -fdump-translation-unit only works with C++ now.
1065
1066 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
1067
1068         Replace calls to abort in CRIS port.
1069         * config/cris/cris.h (CRIS_ASSERT): New macro.
1070         * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
1071         internal_error instead of abort.
1072         ("movsi"): Ditto.  Unquote preparation statement section.
1073         ("call", "call_value"): Ditto, but use gcc_assert where
1074         appropriate.  Tweak comments.
1075         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
1076         CRIS_ASSERT.
1077         (cris_op_str): Call internal_error, not abort.
1078         (cris_print_operand): Tweak "abort" reference to "die" in comment.
1079         (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
1080         (cris_notice_update_cc): Call internal_error, not abort.
1081         (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
1082         (cris_emit_movem_store, cris_asm_output_symbol_ref)
1083         (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
1084         (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
1085         ENABLE_CHECKING-guarded abort call.
1086         (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
1087         Use internal_error at end of test-chain.
1088
1089 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1090
1091         PR rtl-optimization/20769:
1092         * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
1093         pattern emitted by expand_nl_goto_receiver.
1094
1095         PR middle-end/20793:
1096         * integrate.c (allocate_initial_values): Update register liveness
1097         information.
1098
1099 2005-05-13  Josh Conner  <jconner@apple.com>
1100
1101         * arm.c (arm_return_in_memory): Add handling for vector return types.
1102
1103 2005-05-13  David Ung  <davidu@mips.com>
1104
1105         * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
1106         name.
1107         * config/mips/mips.c: Add 4km alias.
1108         * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
1109         * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
1110         description.
1111
1112 2005-05-13  Jan Hubicka  <jh@suse.cz>
1113
1114         * c-decl.c (finish_function): Suppress "control reaches end of
1115         non-void function" when "no return statement in function
1116         returning non-void" is issued.
1117
1118         * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
1119         * tree-optimize.c (pass_gimple): Kill.
1120         (init_tree_optimization_passes): Kill pass_gimple.
1121         * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
1122         * tree-dump.c (dump_files): Rename .generic to .gimple.*
1123
1124 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1125
1126         PR rtl-optimization/20756:
1127         * basic-block.h (PROP_DEAD_INSN): Define.
1128         * flow.c (propagate_one_insn): Set during mark_set_regs call
1129         for a dead insn.
1130         (mark_set_1): Emit a clobber when we are about to delete a dead insn
1131         that kills a live register.
1132
1133 2005-05-13  Adrian Straetling  <straetling@de.ibm.com>
1134
1135         * config/s390/s390.md: ("DBL"): New mode attribute.
1136         ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
1137         ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
1138         ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
1139
1140 2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
1141
1142         * c-format.c (check_format_arg): Handle string literals of
1143         the form &"string"[offset].
1144
1145         * g++.dg/warn/format4.C: New testcase.
1146
1147 2005-05-13  Kazu Hirata  <kazu@cs.umass.edu>
1148
1149         * config/mips/3000.md, config/mips/4000.md,
1150         config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
1151         config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
1152         config/mips/generic.md, config/pdp11/pdp11.md,
1153         config/sh/crt1.asm, config/sh/lib1funcs.asm,
1154         config/sh/sh-modes.def, config/sh/sh-protos.h,
1155         config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
1156
1157 2005-05-13  Richard Henderson  <rth@redhat.com>
1158
1159         * function.c (instantiate_virtual_regs_in_insn): Do not simplify
1160         addition to move unless dest is a register.  Do not skip
1161         instantiation in dest on addition simplification.
1162
1163 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
1164
1165         * config/cris/cris.c (cris_print_operand) <case 'H'; case
1166         CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
1167         output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
1168
1169 2005-05-13  Jan Hubicka  <jh@suse.cz>
1170
1171         * basic-block.h (FOR_ALL_BB_FN): New macro.
1172         (init_flow): Initialize cfg structure.
1173         * function.c (allocate_struct_function): Do not initialize cfg structure.
1174         * tree-cfg.c (init_empty_tree_cfg): Break out from ...
1175         (build_tree_cfg): ... here.
1176         * tree-flow.h (init_empty_tree_cfg): Declare.
1177
1178 2005-05-12  Steven Bosscher <stevenb@suse.de>
1179
1180         Fix PR tree-optimization/21520
1181         * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
1182         to attempt to fold constants.
1183
1184 2005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1185
1186         * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
1187         only when TARGET_ADJUST_UNROLL_MAX is defined.
1188         (general_movsrc_operand): Use the C style comment.
1189         (ua_offset): Use prototype.
1190
1191 2005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>
1192
1193         * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
1194         (struct hmr_data, hoist_memory_reference, memref_del,
1195         struct fmrv_data): Removed.
1196         (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
1197         (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
1198         list.
1199         (find_more_ref_vops): Traverse the list of memory references.
1200         (determine_lsm_loop): Work with the list of memory references instead
1201         of traversing the hashtable.
1202
1203 2005-05-12  Steven Bosscher  <stevenb@suse.de>
1204             Stuart Hastings <stuart@apple.com>
1205             Jan Hubicka  <jh@suse.cz>
1206
1207         * except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
1208         duplicate_eh_regions): New functions, based on old
1209         implementation removed with RTL inliner.
1210         (reachable_next_level): Modify behaviour pre-inline.
1211         * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
1212         Declare.
1213         * function.h (struct function): Add after_inlining flag.
1214         * tree-optimize.c (tree_rest_of_compilation): Set it.
1215         * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
1216         when needed.
1217         * tree-cfg.c (label_to_block_fn): Deal with cases where
1218         label was never insterted into code.
1219
1220 2005-05-12  Zack Weinberg  <zack@codesourcery.com>
1221
1222         * doc/cpp.texi: Document that #sccs is a synonym for #ident.
1223
1224 2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
1225
1226         Fix PR tree-optimization/21532
1227         * tree-ssa-pre.c (create_expression_by_pieces): stmt
1228         needs to go onto the inserted_exprs list.
1229
1230 2005-05-12  Ian Lance Taylor  <ian@airs.com>
1231
1232         * c-common.h (statement_code_p): Don't declare.
1233         (STATEMENT_CODE_P): Don't define.
1234         (INIT_STATEMENT_CODES): Don't define.
1235         * c-common.c (statement_code_p): Don't define.
1236
1237 2005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1238
1239         * config/sparc/sparc.h: Remove dead code.
1240         * config/sparc/sparc.c (sparc_compute_frame_size): Use
1241         FIRST_PARM_OFFSET for the size of the register window area.
1242         (emit_save_regs): Rename into emit_save_or_restore_regs.
1243         Add 'action' parameter.  Use 4095 as upper bound for the offset.
1244         Pass 'action' to save_or_restore_regs.
1245         (emit_restore_regs): Delete.
1246         (sparc_expand_prologue): Call emit_save_or_restore_regs.
1247         (sparc_expand_epilogue): Likewise.
1248         * config/sparc/sparc.md (mode macro P): Move.
1249         (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
1250         (mov<V32:mode> expander): Move to the top of the V32 section.
1251         (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
1252         (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
1253         (sibcall_epilogue): Move.
1254
1255 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1256
1257         PR target/21501
1258         * arm.c (arm_gen_constant): Sign-extend intermediate values when
1259         synthesizing a constant of the difference of two immediates.
1260
1261 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1262
1263         * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
1264         (negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
1265         the alternatives using integer registers into the appropriate
1266         primitives.
1267
1268 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1269
1270         * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
1271         bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
1272         * bitmap.h: Fixed comments.
1273
1274 2005-05-11  Richard Henderson  <rth@redhat.com>
1275
1276         PR target/21412
1277         * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
1278         (ia64_cannot_force_const_mem): New.
1279         (tls_symbolic_operand_type): New.
1280         (ia64_legitimate_constant_p): New.
1281         (ia64_expand_load_address): Return true on success.  Improve
1282         checks for when we should not split.
1283         (ia64_expand_tls_address): New addend operand.  Distribute it
1284         as appropriate to the tls_kind.  Delay referencing gp.
1285         (ia64_expand_move): Split symbolic addend as necessary.  Handle
1286         tls symbols with addends.
1287         * config/ia64/ia64-protos.h: Update.
1288         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
1289         p0, f0, f1, and r13.
1290         (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
1291         * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
1292         (symbolic_operand splitter): Pass everything through
1293         ia64_expand_load_address and FAIL or DONE as appropriate.
1294         (load_fptr): Only accept after reload.
1295         (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
1296         load_symptr_low, load_ltoff_dtpmod,
1297         (load_dtpmod): New.
1298         (load_dtprel): Only accept tls symbols.
1299         (load_dtprel64, load_dtprel22): Likewise.
1300         (load_tprel, load_tprel64, load_tprel22): Likewise.
1301         (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
1302         (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
1303         (add_dtprel14, add_dtprel22): Likewise.
1304         (add_tprel, add_tprel14, add_tprel22): Likewise.
1305         * config/ia64/predicates.md (small_addr_symbolic_operand): New.
1306         (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
1307         (got_symbolic_operand): Check CONST offsets.
1308         (tls_symbolic_operand, ld_tls_symbolic_operand): New.
1309         (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
1310         (move_operand): Don't handle tls here.  Check CONST offsets.
1311
1312 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1313
1314         * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
1315         Remove hilo_operand check.
1316         (rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
1317         * config/mips/predicates.md (hilo_operand): Delete.
1318
1319 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1320
1321         * config/mips/sr71k.md, config/mips/7000.md: Reformat.
1322
1323 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
1324
1325         PR tree-optimizer/18472
1326         * tree-if-conv.c (tree_if_convert_stmt,
1327         if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
1328
1329 2005-05-11  Jan Hubicka  <jh@suse.cz>
1330
1331         * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
1332         (GTFILES): add except.h.
1333         * except.c (eh_status): Add throw_stmt_table.
1334         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
1335         * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
1336         lookup_stmt_eh_region_fn): Declare.
1337         (throw_stmt_node): New structure.
1338         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
1339         * gengtype.c (open_base_files): Add except.h to inlines.
1340         * tree-eh.c (throw_stmt_node): Kill.
1341         (record_stmt_eh_region): Update.
1342         (add_stmt_to_eh_region_fn): Break out from ...
1343         (add_stmt_to_eh_region): ... here.
1344         (remove_stmt_from_eh_region_fn): Break out from ...
1345         (remove_stmt_from_eh_region): ... here.
1346         (lookup_stmt_eh_region_fn): Break out from ...
1347         (lookup_stmt_eh_region): ... here.
1348         (honor_protect_cleanup_actions): Use build_resx.
1349         (lower_try_finally_onedest): Likewise.
1350         (lower_try_finally_copy): Likewise.
1351         (lower_try_finally_switch): Likewise.
1352         (lower_eh_constructs): Update eh table construction.
1353         * tree.c (build_resx): New.
1354         * tree.h (build_resx): Declare.
1355
1356 2005-05-11  H.J. Lu  <hongjiu.lu@intel.com>
1357
1358         * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
1359         is needed.
1360
1361 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
1362
1363         * fold-const.c, libgcov.c: Fix comment typos.
1364
1365         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
1366         redundant code.
1367
1368 2005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>
1369
1370         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1371         * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
1372         default definition.
1373         (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
1374
1375 2005-05-11  Nathan Sidwell  <nathan@codesourcery.com>
1376
1377         PR bootstrap/21481
1378         * crtstuff.c: Include auto-host.h again, for now.
1379
1380 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1381
1382         * config/mips/24k.md: Remove trailing whitespace.
1383
1384 2005-05-11  David Ung  <davidu@mips.com>
1385
1386         * config/mips/mips.md (type): Add imul3.
1387         (length, hazard, may_clobber_hilo): Check for imul3.
1388         (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
1389         (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
1390         * config/mips/24k.md (r24k_int_mul3): Enable this reservation
1391         for a 3 operand mul and its bypasses.
1392         * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
1393         * config/mips/4000.md (r4k_imul): Likewise.
1394         * config/mips/4100.md (r4100_imul_si, r4100_imul_di):  Likewise.
1395         * config/mips/4130.md (vr4130_class, vr4130_mulsi)
1396         (vr4130_muldi): Likewise.
1397         * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
1398         * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
1399         * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
1400         * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
1401         (ir_vr54_imadd_si): Likewise.
1402         * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di):  Likewise.
1403         * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
1404         (rm7_impy_di): Likewise.
1405         * config/mips/9000.md (rm9k_mulsi, rm9k_muldi):  Likewise.
1406         * config/mips/generic.md (generic_imul): Likewise.
1407         * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
1408         * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di):  Likewise.
1409
1410 2005-05-11  J"orn Rennecke <joern.rennecke@st.com>
1411
1412         PR middle-end/20371:
1413         * tree.h (record_layout_info_s): New member prev_packed.
1414         * stor-layout.c (update_alignment_for_field): Fix comment about
1415         KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
1416         we start it properly aligned.
1417         (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
1418         to update_alignment_for_field, and recompute it afterwards using
1419         the alignment of the record.
1420         When a packed bitfield precedes an MS bitfield, don't add padding
1421         at the end of the packed bitfield on behalf of the base type of
1422         the packed bit field.
1423         Don't adjust rli->bitpos at the end
1424         of an MS bitfield run if we already adjusted bitpos/offset for an
1425         alignment as large or larger than the bitfield type size.
1426         Take possible record alignment > BIGGEST_ALIGNMENT into account
1427         when calculating actual_align.
1428         Only put packed buit fields into rli->prev_field if they end up
1429         suitably aligned.
1430         Also set rli->remaining_in_alignment when we re-set rli->prev_field.
1431         Update rli->remaining_in_alignment when we have already started a
1432         run of bit fields and we process a packed bit field.
1433
1434 2005-05-11  Sebastian Pop  <pop@cri.ensmp.fr>
1435
1436         * tree-data-ref.c (find_data_references_in_loop): Give up when
1437         the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
1438         may embed arbitrary side effects.
1439         Remove the assumption that GIMPLE form contains a single array
1440         access per statement.
1441         When the statement contains virtual operands, fail if it is not
1442         a MODIFY_EXPR or a CALL_EXPR.
1443         Return after the dont know node is inserted.
1444
1445 2005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>
1446
1447         * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
1448
1449 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1450
1451         PR middle-end/19807
1452         PR tree-optimization/19639
1453         * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
1454         and generic summands for char* as s * delta, too, folding &a[i]
1455         CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
1456         for comparison of steps.  Convert types for index addition.
1457         (fold_binary): Adjust the callers to always dispatch to
1458         try_move_mult_to_index.
1459         * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
1460         expr with non-gimple ARRAY_REF offset.
1461
1462 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1463
1464         * fold-const.c (fold_indirect_ref_1): Avoid removing
1465         NOP_EXPRs with type qualifiers like const.
1466
1467 2005-05-11  Richard Henderson  <rth@redhat.com>
1468
1469         PR c/21502
1470         * c-decl.c (finish_decl): Propagate the completed array type of
1471         a global variable into the binding.
1472
1473 2005-05-10  Matt Kraai  <kraai@ftbfs.org>
1474
1475         * Makefile.in (gtype-desc.o, build/genautomata.o)
1476         (build/varray.o): Depend on $(VARRAY_H).
1477
1478 2005-05-10  Diego Novillo  <dnovillo@redhat.com>
1479
1480         * tree-optimize.c (init_tree_optimization_passes): Re-organize
1481         optimization passes to do an initial batch of scalar cleanups.
1482
1483 2005-05-10  Ian Lance Taylor  <ian@airs.com>
1484
1485         * read-rtl.c (struct macro_traverse_data): Define.
1486         (map_attr_string): New static function, broken out of
1487         apply_macro_to_string.
1488         (mode_attr_index, apply_mode_maps): New static functions.
1489         (apply_macro_to_string): Call map_attr_string.
1490         (apply_macro_to_rtx): Add mode_maps and infile parameters.  Change
1491         all callers.
1492         (apply_macro_traverse): Expect data to point to a struct
1493         macro_traverse_data.
1494         (read_rtx): Add mode_maps local variable.  Use mode_traverse_data
1495         to pass data through htab_traverse.
1496         (read_rtx_1): Add mode_maps parameter.  Change all callers.
1497         Handle mode names which are attribute strings.
1498         * doc/md.texi (Substitutions): Rename from String Substitutions.
1499         Change references.  Document using attributes as modes.
1500
1501 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
1502
1503         * tree-cfg.c (tree_duplicate_sese_region): Update profile.
1504         * tree-optimize.c (init_tree_optimization_passes) Swap
1505         pass_ch and pass_profile.
1506         * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
1507         here.  Remove rewrite_into_loop_closed_ssa call.
1508
1509 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1510
1511         * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
1512         function.
1513         (legitimate_reload_constant_p): Add check for const double zero.
1514         * config/s390/s390.md: Add comment for constraint letter 'G'.
1515         ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
1516         attributes for new case.
1517         * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
1518         s390_const_double_ok_for_constraint_p.
1519         * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
1520         Add prototype.
1521
1522 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1523
1524         PR tree-optimization/21170
1525         * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
1526         rewrite_ssa_into_ssa in comments with update_ssa.
1527
1528 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
1529
1530         * tree-ssa-loop-im.c: Include hashtab.h.
1531         (struct mem_ref_loc): New.
1532         (struct mem_ref): Describe the set of references with the same
1533         shape.
1534         (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
1535         maybe_queue_var, fem_single_reachable_address,
1536         for_each_memref, single_reachable_address,
1537         is_call_clobbered_ref, determine_lsm_reg): Removed.
1538         (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
1539         hoist_memory_reference, memref_hash, memref_eq, memref_del,
1540         gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
1541         New functions.
1542         (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
1543         (determine_lsm_loop): Rewritten.
1544         (determine_lsm): Do not set stmt uids.
1545
1546 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1547
1548         * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
1549         letters.
1550
1551 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1552
1553         * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
1554         ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
1555         ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
1556
1557 2005-05-10  Jeff Law  <law@redhat.com>
1558
1559         * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
1560         thread_across_edge for any abnormal edges.
1561
1562 2005-05-10  Richard Henderson  <rth@redhat.com>
1563
1564         * config/ia64/ia64.c (ia64_expand_atomic_op): New.
1565         * config/ia64/ia64-protos.h: Declare it.
1566         * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
1567         (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
1568         (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
1569         (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
1570         (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
1571         (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>.  Zero
1572         extend result; use release semantics.
1573         (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
1574         (sync_val_compare_and_swap_<IMODE>): Update to match.
1575
1576 2005-05-10  Richard Henderson  <rth@redhat.com>
1577
1578         * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
1579         before comparing it for success.
1580
1581 2005-05-10  Richard Henderson  <rth@redhat.com>
1582
1583         * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
1584         no return value pattern.
1585
1586 2005-05-10  Grigory Zagorodnev  <grigory.zagorodnev@intel.com>
1587             H.J. Lu  <hongjiu.lu@intel.com>
1588
1589         * libgcov.c (create_file_directory): New function. Create
1590         directory for the given file name.
1591         (gcov_max_filename): New static var. Keeps size of the longest
1592         file name.
1593         (gcov_exit): Always try to create directory for output
1594         file. Relocate each filename basing on environment vars.
1595         (__gcov_init): Remember the longest file name.
1596         * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
1597         * doc/gcov.texi (Cross-profiling): New node documenting
1598         cross-profiling management.
1599         * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
1600
1601 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1602
1603         * config/sparc/sparc.c (mem_min_alignment): Do not rely
1604         on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
1605
1606 2005-05-10  Bob Wilson  <bob.wilson@acm.org>
1607
1608         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
1609         case code to avoid one move instruction.
1610         (__umodsi3, __modsi3): Merge duplicated code sequences.
1611
1612 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1613
1614         * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
1615         config/sh/sh.md, config/sh/superh.h: Fix comment typos.
1616         * doc/invoke.texi: Fix typos.
1617
1618         * tree-data-ref.c (analyze_array_indexes, analyze_array,
1619         init_data_ref, access_functions_are_affine_or_constant_p,
1620         free_data_refs): Use VEC instead of VARRAY.
1621         * tree-data-ref.h (data_reference): Change the type of
1622         access_fns to VEC(tree,gc)*.
1623         (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
1624
1625 2005-05-10  Gabor Loki <loki@gcc.gnu.org>
1626
1627         PR c/17913
1628         * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
1629         * fold-const.c (fold): Expand the condition of reducing cond_expr.
1630         (contains_label_1, contains_label_p): New functions for checking
1631         labels in a sub-tree.
1632
1633 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
1634
1635         PR c/21342
1636         * c-decl.c (pushdecl): When there is a declaration in the current
1637         scope and the declarations are external linkage, check for
1638         compatibility with the type in the external scope and update the
1639         type in the external scope with the composite type information.
1640         Do not form a composite type of the new type and the visible type
1641         if they are incompatible.
1642
1643 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
1644
1645         * crtstuff.c: Revert part of 2005-05-08 Change.
1646         (IN_LIBGCC2): Define.
1647
1648 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1649
1650         * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
1651         remove redundant test.
1652         (fp_mov_p): Accept 0.
1653         (fp_high_losum_p): Remove redundant test.
1654         * config/sparc/predicates.md (const_high_operand): Explicitly test
1655         (not small_int_operand).
1656         (fp_const_high_losum_operand): New.
1657         * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
1658         (movdi_insn_sp32_v9): Use canonical predicates.
1659         (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
1660         (movdi_insn_sp64_novis): Delete.
1661         (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
1662         (movsf_insn_novis): Delete.
1663         (movsf_insn_vis): Rename into movsf_insn.
1664         (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
1665         (movsf_lo_sum): Use fp_const_high_losum_operand.
1666         (movsf_high): Likewise.
1667         (movsf_high_losum splitter): Likewise.
1668         (mov<V32:mode> expander): Use register_or_zero_operand.
1669         (mov<V64:mode> expander): Likewise.
1670         (movdf_insn_sp32): Use register_or_zero_operand.
1671         (movdf_no_e_insn_sp32): Use register_or_zero_operand.
1672         Rename into movdf_insn_sp32_no_fpu.
1673         (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
1674         Rename into movdf_insn_sp32_v9_no_fpu.
1675         (movdf_insn_v9only_novis): Delete.
1676         (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
1677         (movdf_insn_sp64_novis): Delete.
1678         (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
1679         (movdf_no_e_insn_sp64): Use register_or_zero_operand.
1680         Rename into movdf_insn_sp64_no_fpu.
1681         (movtf expander): Use register_or_zero_operand.
1682         (movtf_insn_sp32): Delete.
1683         (movtf_insn_vis_sp32): Use register_or_zero_operand.
1684         Rename into movtf_insn_sp32.
1685         (movtf_no_e_insn_sp32): Use register_or_zero_operand.
1686         Rename into movtf_insn_sp32_no_fpu.
1687         (movtf_insn_hq_sp64): Delete.
1688         (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
1689         Rename into movtf_insn_sp64_hq.
1690         (movtf_insn_sp64): Delete.
1691         (movtf_insn_vis_sp64): Use register_or_zero_operand.
1692         Rename into movtf_insn_sp64.
1693         (movtf_no_e_insn_sp64): Use register_or_zero_operand.
1694         Rename into movtf_insn_sp64_no_fpu.
1695
1696 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
1697
1698         * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
1699         gcc_assert and gcc_unreachable as appropriate.
1700         (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
1701         xstormy16_output_cbranch_si, xstormy16_split_move,
1702         xstormy16_initial_elimination_offset,
1703         xstormy16_encode_section_info, xstormy16_print_operand_address,
1704         xstormy16_expand_call, xstormy16_expand_arith,
1705         xstormy16_output_shift, xstormy16_init_builtins): Likewise.
1706
1707 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1708
1709         * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
1710         const_copies to VEC(tree,heap)*.
1711         (new_elim_graph, delete_elim_graph, elim_graph_size,
1712         elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
1713         instead of VARRAY.
1714
1715 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
1716
1717         PR other/21052
1718         * doc/extend.texi (Type Attributes): Correct example syntax.
1719
1720 2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
1721
1722         PR c/21160
1723         * doc/invoke.texi (-Wuninitialized): Update documentation.
1724
1725 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
1726
1727         * arm.c (const_ok_for_arm): Use a faster algorithm.
1728
1729 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
1730
1731         PR target/21477
1732         * config/rs6000/rs6000.md (add_op2): New.
1733         (add<mode>3): Use it.
1734
1735 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
1736
1737         * arm.c (arm_gen_constant): Add new heuristic for generating
1738         constant integers that can be expressed as the difference of two
1739         valid immediates.
1740
1741 2005-05-09  Roger Sayle  <roger@eyesopen.com>
1742
1743         * c-tree.h (parser_build_unary_op): New prototype.
1744         * c-typeck.c (parser_build_unary_op): New function to construct
1745         a unary operation in the C parser.
1746         * c-parser.c (c_parser_unary_expression):  Use the new function
1747         parser_build_unary_op when appropriate.
1748
1749 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
1750
1751         PR 18655
1752         * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
1753         before outputting DWARF_FRAME_RETURN_COLUMN.
1754
1755 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1756
1757         * config/s390/s390.c: (s390_branch_condition_mask,
1758         s390_branch_condition_mnemonic, s390_extra_constraint_str,
1759         s390_const_ok_for_constraint_p, s390_expand_plus_operand,
1760         legitimize_pic_address, s390_emit_tls_call_insn,
1761         legitimize_tls_address, legitimize_tls_address,
1762         s390_expand_addcc, print_shift_count_operand, print_operand,
1763         addr_generation_dependency_p, annotate_constant_pool_refs,
1764         s390_split_branches, find_constant_pool_ref,
1765         replace_constant_pool_ref, s390_add_constant, s390_find_constant,
1766         s390_find_execute, s390_mainpool_start, s390_chunkify_start,
1767         s390_output_pool_entry, s390_function_value,
1768         s390_call_saved_register_used, s390_emit_call): Replace
1769         conditional aborts by gcc_assert and unconditional by gcc_unreachable.
1770         (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
1771         s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
1772         get_some_local_dynamic_name, s390_function_arg_size,
1773         s390_function_arg_advance, s390_function_arg,
1774         s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
1775         default case by gcc_unreachable.
1776         * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
1777         conditional abort by gcc_assert.
1778         ("doloop_si31"): Replace abort in last else by gcc_unreachable.
1779         ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
1780
1781 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1782
1783         * config/s390/s390.c: (s390_decompose_address,
1784         tls_symbolic_operand, legitimate_pic_operand_p,
1785         legitimate_constant_p, legitimate_reload_constant_p,
1786         s390_expand_plus_operand, legitimate_address_p,
1787         legitimate_la_operand_p, ): Remove 'register' from signature.
1788         (symbolic_reference_mentioned_p,
1789         tls_symbolic_reference_mentioned_p): Remove 'register' from local
1790         variable declarations.
1791         (legitimize_address): Remove 'register' from
1792         signature and local variable declarations.
1793
1794 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1795
1796         * config/s390/s390-protos.h: (s390_match_ccmode,
1797         s390_match_ccmode_set, reg_used_in_mem_p,
1798         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1799         legitimate_la_operand_p, preferred_la_operand_p,
1800         s390_short_displacement, addr_generation_dependency_p,
1801         legitimate_reload_constant_p, legitimate_address_p): Change return type
1802         into 'bool'.
1803         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1804         * config/s390/s390.c: (s390_match_ccmode,
1805         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1806         legitimate_reload_constant_p): Change return type into 'bool'.
1807         (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
1808         Likewise.  Additionally adapted comment.
1809         (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
1810         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1811         (s390_decompose_address): Change the type of the internal flags
1812         "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
1813         (struct s390_address): Change type of "pointer" into bool.
1814         * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
1815         Adapt calls for 's390_tm_ccmode' to the new signature.
1816
1817 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1818
1819         * config/s390/s390.c: (s390_match_ccmode_set,
1820         s390_branch_condition_mnemonic, s390_short_displacement,
1821         s390_decompose_address, get_thread_pointer, legitimize_tls_address,
1822         print_shift_count_operand, get_some_local_dynamic_name,
1823         get_some_local_dynamic_name_1, reg_used_in_mem_p,
1824         addr_generation_dependency_p, s390_split_branches,
1825         annotate_constant_pool_refs, find_constant_pool_ref,
1826         replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
1827         s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
1828         s390_register_info, s390_frame_info, s390_init_frame_layout,
1829         s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
1830         restore_gprs, s390_function_arg_size, s390_function_arg_float,
1831         s390_init_machine_status, s390_assemble_integer, s390_handle_option,
1832         s390_encode_section_info, s390_cannot_force_const_mem,
1833         s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
1834         s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
1835         s390_adjust_priority, s390_issue_rate,
1836         s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
1837         s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
1838         s390_build_builtin_va_list, s390_gimplify_va_arg,
1839         s390_function_ok_for_sibcall, s390_call_saved_register_used,
1840         s390_pass_by_reference, s390_fixed_condition_code_regs,
1841         s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
1842         s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
1843         s390_chunkify_cancel, s390_start_pool, s390_end_pool,
1844         s390_add_pool_insn, s390_find_pool, s390_add_constant,
1845         s390_find_constant, s390_add_execute, s390_find_execute,
1846         s390_execute_label, s390_execute_target, s390_dump_pool,
1847         s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
1848         Move target macro definitions to the end of the file.  Move several
1849         functions within the file to assure correct compiling.
1850
1851 2005-05-09  Steven Bosscher  <stevenb@suse.de>
1852
1853         * calls.c (purge_reg_equiv_notes): Remove, fold into...
1854         (fixup_tail_calls): ...here.  Only look at insns between the
1855         start of the function and the FUNCTION_BEG insn note.
1856
1857         * gcse.c (one_cprop_pass): Fix typos in dumps.
1858
1859         * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
1860
1861 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1862
1863         * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
1864         * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
1865         "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
1866         Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
1867         CC_REGNUM)'.
1868         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
1869         '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
1870         ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
1871         REG_SC)'.
1872
1873 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1874
1875         * config/s390/s390.md: ("gf") New mode attribute.
1876         ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
1877         "fixuns_truncsfsi2"): Merge.
1878         ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
1879         ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
1880         "fix_truncsfsi2_ieee"): Merge.
1881
1882 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1883
1884         * config/s390/s390.md: ("FPR") New mode macro.
1885         ("de", "dee"): New mode attributes.
1886         ("cmpdf", "cmpsf"): Merge.
1887         ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
1888         ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
1889         ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
1890         ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
1891         ("floatdidf2", "floatdisf2"): Merge.
1892         ("adddf3", "addsf3"): Merge.
1893         ("*adddf3", "*addsf3"): Merge.
1894         ("*adddf3_cc", "*addsf3_cc"): Merge.
1895         ("*adddf3_cconly", "*addsf3_cconly"): Merge.
1896         ("*adddf3_ibm", "*addsf3_ibm"): Merge.
1897         ("subdf3", "subsf3"): Merge.
1898         ("*subdf3", "*subsf3"): Merge.
1899         ("*subdf3_cc", "*subsf3_cc"): Merge.
1900         ("*subdf3_cconly", "*subsf3_cconly"): Merge.
1901         ("*subdf3_ibm", "*subsf3_ibm"): Merge.
1902         ("muldf3", "mulsf3"): Merge.
1903         ("*muldf3", "*mulsf3" "): Merge.
1904         ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
1905         ("*fmadddf", "*fmaddsf"): Merge.
1906         ("*fmsubdf", "*fmsubsf"): Merge.
1907         ("divdf3", "divsf3"): Merge.
1908         ("*divdf3", "*divsf3"): Merge.
1909         ("*divdf3_ibm", "*divsf3_ibm"): Merge.
1910         ("negdf2", "negsf2"): Merge.
1911         ("*negdf2_cc", "*negsf2_cc"): Merge.
1912         ("*negdf2_cconly", "*negsf2_cconly"): Merge.
1913         ("*negdf2", "*negsf2"): Merge.
1914         ("*negdf2_ibm", "*negsf2_ibm"): Merge.
1915         ("absdf2", "abssf2"): Merge.
1916         ("*absdf2_cc", "*abssf2_cc"): Merge.
1917         ("*absdf2_cconly", "*abssf2_cconly"): Merge.
1918         ("*absdf2", "*abssf2"): Merge.
1919         ("*absdf2_ibm", "*abssf2_ibm"): Merge.
1920         ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
1921         ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
1922         ("*negabsdf2", "*negabssf2"): Merge.
1923         ("sqrtdf2", "sqrtsf2"): Merge.
1924
1925 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1926
1927         * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
1928         attribute names.
1929         * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
1930         "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
1931         ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
1932         "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
1933         attribute names.
1934         * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
1935         fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
1936         "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
1937         fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
1938         ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
1939         "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
1940         "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
1941         "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
1942         "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
1943         "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
1944         "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
1945         "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
1946         "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
1947         "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
1948         "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
1949         "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
1950         'type' value.
1951         ("*divsf3"): Additionally rename second pattern to
1952         "*divsf3_ibm".
1953         ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
1954         "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
1955         "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
1956         "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
1957         "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
1958         'type values' and rename 'type' value.
1959         ("*addsf3"): Additionally rename second pattern to
1960         "*addsf3_ibm".
1961
1962 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1963
1964         * config/s390/s390.md: ("SHIFT"): New mode macro.
1965         ("lr", "shift"): New mode attributes.
1966         ("ashldi3", "lshrdi3"): Merge.
1967         ("*ashldi3_31", "*lshrdi3"_31): Merge.
1968         ("*ashldi3_64", "*lshrdi3"_64): Merge.
1969         ("ashlsi3", "lshrsi3"): Merge.
1970
1971 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1972
1973         * config/s390/s390.md: ("DSI", "SCOND"): New mode
1974         macros.
1975         ("E", "g"): New mode attributes.
1976         ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
1977         ("*adddi3_alc", "*addsi3_alc"): Merge.
1978         ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
1979         ("*subdi3_slb", "*subsi3_slb"): Merge.
1980         ("adddicc", "addsicc"): Merge.
1981         ("*sconddi", "*scondsi"): Merge.
1982         ("*sconddi_neg", "*scondsi_neg"): Merge.
1983         ("sltu", "sgtu", "sleu", "sgeu"): Merge.
1984         ("negdi2", "negsi2"): Extract expander pattern from
1985         "negsi2" and merge with "negdi2".
1986         ("*negdi2"): Merge with instruction pattern of "negsi2".
1987         ("*negdi2_cc", "*negsi2_cc"): Merge.
1988         ("*negdi2_cconly", "*negsi2_cconly"): Merge.
1989         ("rotldi3", "rotlsi3"): Merge.
1990
1991 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1992
1993         * config/s390/s390.md: ("hc"): New mode attribute.
1994         ("extendhidi2", "extendqidi2"): Merge.
1995         ("*extendhidi2", "*extendqidi2"): Merge.
1996         ("extendhisi2", "extendqisi2"): Merge.
1997         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
1998         ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
1999         Merged 2 define_split.
2000         ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
2001         ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
2002
2003 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2004
2005         * config/s390/s390.md: ("COMPARE"): New mode macro.
2006         ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
2007         "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
2008         "bungt", "bunle", "bunge", "bltgt"): Merge.
2009
2010 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2011
2012         * config/s390/s390.md: ("INT"): New mode macro.
2013         ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
2014         Merge.
2015
2016 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2017
2018         * config/s390/s390.md: ("GPR", "P"): New mode macros.
2019         ("cmpdi", "cmpsi"): Merge.
2020         ("strlendi", "strlensi"): Merge.
2021         ("*strlendi", "*strlensi"): Merge.
2022         ("movmemdi", "movmemsi"): Merge.
2023         ("clrmemdi", "clrmemsi"): Merge.
2024
2025 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2026
2027         * config/s390/s390.md: ("HQI"): New mode macro.
2028         ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
2029         ("*tmhi_full", "*tmqi_full"): Merge.
2030         ("*tsthiCCT", "*tstqiCCT"): Merge.
2031         ("*tsthi", "*tstqi"): Merge.
2032         ("*tsthi_cconly", "tstqi_cconly"): Merge.
2033         ("*sethighhisi", "*sethighqisi"): Merge.
2034
2035 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2036
2037         * crtstuff.c, integrate.h, tree-scalar-evolution.h,
2038         config/alpha/unicosmk.h, config/arc/arc.md,
2039         config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
2040         config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
2041         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
2042         config/arm/semi.h, config/arm/uclinux-elf.h,
2043         config/arm/wince-pe.h, config/fr30/fr30.c,
2044         config/rs6000/altivec.h: Update copyright.
2045
2046 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2047
2048         * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
2049         gcc_assert and gcc_unreachable as appropriate.
2050         (pdp11_output_function_epilogue, output_move_double,
2051         output_move_quad, print_operand_address, output_jump,
2052         output_addr_const_pdp11): Likewise.
2053         * config/pdp11/pdp11.h (FUNCTION_PROFILER,
2054         ASM_OUTPUT_ALIGN): Likewise.
2055         * config/pdp11/pdp11.md: Likewise.
2056         (extendhisi2, subhi3, subqi3): Likewise.
2057
2058 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
2059
2060         PR middle-end/21237
2061         * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
2062         to NE_EXPR case.
2063
2064 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2065
2066         * config/ia64/ia64.c: Fix a comment typo.
2067
2068 2005-05-09  Richard Earnshaw  <rearnsha@arm.com>
2069
2070         PR target/21397
2071         * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
2072         (arm_override_options): Use them instead of manifest constants.  Don't
2073         allow -march to override the -mtune setting.
2074
2075 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2076
2077         * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
2078         (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
2079         (function_arg_advance, function_arg, save_restore_insns,
2080         iq2000_expand_prologue, iq2000_output_conditional_branch,
2081         expand_one_builtin, print_operand):
2082         * config/iq2000/iq2000.md (tablejump): Likewise.
2083
2084 2005-05-09  David Ung  <davidu@mips.com>
2085
2086         * config/mips/mips.h (processor_type): Add names for the 24K.
2087         * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
2088         processor family.
2089         * config/mips/mips.md (cnv_mode): New attribute for recording the
2090         conversion types of float convert insns.
2091         (cpu): Add 24k and 24kx.
2092         (include): Include 24k.md file.
2093         (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
2094         (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
2095         (floatdisf2): Setup cnv_mode.
2096         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
2097         setup cnv_mode.
2098         * config/mips/24k.md: New file, contains 24k DFA pipeline
2099         description.
2100
2101 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2102
2103         * config/sh/sh.c (print_operand_address): Use gcc_assert and
2104         gcc_unreachable as appropriate.
2105         (print_operand, prepare_move_operands, prepare_scc_operands,
2106         output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
2107         gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
2108         fixup_mova, gen_far_branch, sh_reorg, split_branches,
2109         final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
2110         sh_set_return_address, sh_setup_incoming_varargs,
2111         initial_elimination_offset, sh_pch_valid_p, get_free_reg,
2112         sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
2113         check_use_sfunc_addr): Likewise.
2114         * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
2115         * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2116         * config/sh/symbian.c (sh_symbian_mark_dllexport,
2117         sh_symbian_mark_dllimport): Likewise.
2118         * config/sh/sh.md: Likewise.
2119         (movdicc, call_pop, call_value_pop, casesi_worker_1,
2120         casesi_worker_2, casesi_shift_media, casesi_load_media,
2121         return_media): Likewise.
2122
2123 2005-05-08  Roger Sayle  <roger@eyesopen.com>
2124
2125         PR inline-asm/8788
2126         * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
2127         operands.
2128
2129 2005-05-08  Richard Henderson  <rth@redhat.com>
2130
2131         * config/alpha/alpha.c (adjust_address): Fix typo last change.
2132
2133 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2134
2135         * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
2136         and -1 can happen in reg_renumber when no hard register is assigned.
2137
2138 2005-05-08  Steven Bosscher  <stevenb@suse.de>
2139             Kazu Hirata  <kazu@cs.umass.edu>
2140
2141         PR tree-optimization/14841, tree-optimization/15838
2142         * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
2143         (evaluate_stmt): Call it.
2144
2145 2005-05-08  Jakub Jelinek  <jakub@redhat.com>
2146
2147         * config/ia64/ia64.c (ia64_override_options): Don't set
2148         ia64_flag_var_tracking and clear flag_var_tracking here...
2149         (ia64_file_start): ... but here.
2150
2151 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2152
2153         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
2154         and gcc_unreachable as appropriate.
2155         (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
2156         m68hc11_gen_highpart, print_operand, print_operand_address,
2157         m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
2158         m68hc11_gen_movhi): Likewise.
2159         * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
2160         * config/m68hc11/m68hc11.md: Reword comment.
2161
2162 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2163
2164         PR target/21281
2165         * config/m68hc11/predicates.md (splitable_operand): An immediate is
2166         allowed.
2167
2168 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2169
2170         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
2171         the 68HC12 address indirect addressing mode as it is not supported by
2172         bset and bclr.
2173         * config/m68hc11/m68hc11-protos.h
2174         (m68hc11_valid_addressing_p): Declare.
2175         (m68hc11_add_mode): Declare.
2176         * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
2177         register_indirect_p and export it.
2178         (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
2179         instruction so that it is part of the good BB.
2180         (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
2181         addressing with movw.
2182         (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
2183         68HC12.
2184         * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
2185         ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
2186         * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
2187         for 68HC11.
2188         ("*movhi_68hc12"): Handle movhi_const0.
2189         ("*subhi3", "subqi3"): Use general_operand for operand 1.
2190         ("*subhi3_zext"): Likewise.
2191
2192 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2193
2194         PR target/19051
2195         * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
2196         operand 1 and fix constraints.
2197         ("mulqihi3"): Use general_operand for operand 2.
2198
2199 2005-05-08  Julian Brown  <julian@codesourcery.com>
2200             H.J. Lu  <hongjiu.lu@intel.com>
2201             Paul Brook  <paul@codesourcery.com>
2202
2203         * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
2204         GNU linker. Support linker version x.x.x.x.x. Require GNU linker
2205         20050308/2.16.0 or newer for comdat group.
2206         * configure: Regenerated.
2207         * config.in: Regenerated.
2208         * varasm.c (default_function_rodata_section): Put .rodata section in
2209         COMDAT group when necessary.
2210         (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
2211         HAVE_COMDAT_GROUP.
2212         (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
2213         available.
2214
2215 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2216
2217         * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
2218         instead of VARRAY.
2219         * tree-flow.h (num_referenced_var, referenced_var): Likewise.
2220         * tree-into-ssa.c (mark_def_site_blocks): Likewise.
2221         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
2222         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2223
2224 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2225
2226         PR target/16925
2227         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
2228         64-bit constants on 64-bit hosts.
2229         (m68hc11_split_logical): Simplify.
2230         (m68hc11_split_move): Likewise.
2231
2232 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2233             Paolo Bonzini  <bonzini@gnu.org>
2234
2235         * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
2236         * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
2237         * configure.ac (enable_checking): Fix typos in runtime_checking.
2238         (ENABLE_RUNTIME_CHECKING): Mark as target template.
2239         (xm_file): Prepend auto-host.h
2240         (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
2241         * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
2242         tconfig.h.
2243         * crtstuff.c: Do not include auto-host.h.
2244         (IN_LIBGCC2): Do not define.
2245         * gcov-io.h: Include tconfig.h, not auto-host.h.
2246         * libgcc2.c: Do not include auto-host.h.
2247         (abort): Do not undefine.
2248         * libgcov.c: Remove unneeded comment about config.h.
2249         * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
2250         * config.in, configure: Regenerated.
2251
2252 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2253             Falk Hueffner  <falk@debian.org>
2254
2255         * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
2256         and gcc_unreachable as appropriate.
2257         (get_aligned_mem, get_unaligned_address,
2258         alpha_emit_set_long_const, alpha_emit_conditional_branch,
2259         alpha_emit_setcc, alpha_emit_conditional_move,
2260         alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
2261         alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
2262         alpha_expand_unaligned_load, alpha_expand_block_move,
2263         alpha_expand_zap_mask, get_trap_mode_suffix,
2264         get_round_mode_suffix, get_some_local_dynamic_name,
2265         print_operand_address, function_arg, alpha_return_in_memory,
2266         function_value, alpha_expand_builtin,
2267         alpha_initial_elimination_offset, alpha_expand_epilogue,
2268         summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
2269         alphaev5_next_group, alpha_align_insns,
2270         unicosmk_initial_elimination_offset, unicosmk_unique_section,
2271         unicosmk_ssib_name): Likewise.
2272         * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2273         * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
2274         ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
2275         * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
2276         ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2277         * config/alpha/alpha.md (*divmodsi_internal_er,
2278         *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
2279         call_nt, call_umk, call_vms, call_value, sibcall_value,
2280         call_value_osf, call_value_nt, call_value_vms, call_value_umk,
2281         *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
2282         * config/alpha/predicates.md (input_operand): Likewise.
2283
2284 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2285
2286         * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
2287         gcc_unreachable, as appropriate.
2288         (frv_function_prologue, frv_alloc_temp_reg,
2289         frv_initial_elimination_offset, frv_expand_block_move,
2290         frv_expand_block_clear, frv_print_operand_jump_hint,
2291         frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
2292         frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
2293         frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
2294         frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
2295         frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
2296         frv_in_small_data_p, frv_asm_out_constructor,
2297         frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
2298         * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
2299         *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
2300         *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
2301         sibcall_value, casesi): Likewise.
2302
2303         * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
2304         gcc_unreachable as appropriate.
2305         (print_operand_address, mn10300_print_reg_list, expand_prologue,
2306         expand_epilogue, notice_update_cc, initial_offset,
2307         mn10300_address_cost_1): Likewise.
2308         * config/mn10300/mn10300.md: Likewise.
2309         (absdf2, abssf2, negdf2, negsf2): Likewise.
2310
2311 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
2312
2313         PR target/21416
2314         * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
2315         comparisons.
2316         * config/mips/mips.md (swapped_fcond): New code macro and attribute.
2317         (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
2318         including sunge_<mode> and sungt_<mode>.
2319
2320 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
2321
2322         * integrate.h (get_hard_reg_initial_val): Change type of register
2323         parameter from int to unsigned int.
2324         (has_hard_reg_initial_val): Likewise.
2325         * integrate.c (get_hard_reg_initial_val): Likewise.
2326         (has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.
2327
2328 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2329
2330         * except.c (eh_status): Change the type of ttype_data to
2331         VEC(tree,gc)*.
2332         (add_ttypes_entry, assign_filter_values,
2333         output_function_exception_table): Use VEC instead of VARRAY.
2334
2335 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
2336
2337         * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
2338
2339 2005-05-07  Paul Brook  <paul@codesourcery.com>
2340
2341         * Makefile.in: Fix dependencies.
2342         (GCOV_IO_H, VARRAY_H): Set.
2343
2344 2005-05-07  Anthony Green  <green@redhat.com>
2345
2346         PR bootstrap/21403
2347         * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
2348         x$STMP_FIXPROTO test.
2349         * configure: Rebuilt.
2350
2351 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
2352
2353         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
2354         inappropriate feature test macros if flag_iso.
2355
2356 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
2357
2358         * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
2359
2360 2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
2361
2362         PR target/21441
2363         * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
2364         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
2365         Handle moved operand being in special register.
2366         ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
2367         presumed working insn.
2368         (mover2side): Add FIXME.
2369
2370 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2371
2372         * integrate.c (get_func_hard_reg_initial_val): Delete.
2373         (has_func_hard_reg_initial_val): Delete.
2374         (get_hard_reg_initial_val): Inline the old implementation of
2375         get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
2376         instead of has_func_hard_reg_initial_val to test for an existing
2377         pseudo.  Only create an rtx if a new initial value entry is needed.
2378         (has_hard_reg_initial_val): Scan the initial value list directly.
2379         Don't create an rtx.
2380
2381 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
2382
2383         * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
2384         from extra_options.
2385         * config.in (HAVE_AS_POPCNTB): New.
2386         * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
2387         (HAVE_AS_POPCNTB): New.
2388         * configure: Regenerated.
2389         * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
2390         * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
2391         MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
2392         and rs6000_sched_costly_dep.
2393         * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
2394         (TARGET_XL_COMPAT): Delete.
2395         * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
2396         (popcount<mode>2): New.
2397         (popcntb<mode>2): New.
2398         * config/rs6000/rs6000.opt (mpopcntb): New.
2399
2400         * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
2401         if variable name exists.
2402
2403 2005-05-07  Matt Kraai  <kraai@ftbfs.org>
2404
2405         * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
2406
2407 2005-05-07  Richard Henderson  <rth@redhat.com>
2408
2409         PR target/21412
2410         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
2411         with constant offsets.
2412
2413 2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
2414
2415         * config/v850/v850.c (print_operand): Use gcc_assert and
2416         gcc_unreachable, as appropriate.
2417         (print_operand_address, v850_handle_data_area_attribute,
2418         v850_encode_data_area, construct_restore_jr, construct_save_jarl,
2419         v850_insert_attributes, construct_prepare_instruction): Likewise.
2420         * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2421         * config/v850/v850.md (movsicc, *sasf_1): Likewise.
2422
2423 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
2424
2425         * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
2426         config/rs6000/rs6000.h: Fix comment typos.
2427
2428 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2429
2430         * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
2431         * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
2432         (mips_scalar_mode_supported_p): Delete.
2433
2434 2005-05-06  Eric Christopher  <echristo@redhat.com>
2435
2436         * config/mips/mips.opt: Remove -mint64 option.
2437         * config/mips/mips.c (override_options): Remove -mint64
2438         handling.
2439         * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
2440         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
2441         64-bit integer handling.
2442         * doc/invoke.texi (Option Summary): Remove -mint64 for
2443         mips.
2444
2445 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
2446
2447         PR tree-optimization/19401
2448         * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
2449         * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
2450         (estimated_unrolled_size): New function.
2451         (try_unroll_loop_completely, canonicalize_loop_induction_variables,
2452         tree_unroll_loops_completely): Always unroll loops if the code size
2453         does not increase.
2454         * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
2455         loops should be unrolled completely.
2456         (gate_tree_complete_unroll): Run complete unrolling unconditionally.
2457
2458 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
2459
2460         PR rtl-optimization/21254
2461         * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
2462         assumptions for loops that otherwise do not roll.
2463         (find_simple_exit): Prefer # of iterations that is guaranteed
2464         not to be infinite.
2465         * loop-unroll.c (decide_peel_once_rolling,
2466         decide_peel_completely): Check whether the loop is infinite.
2467
2468 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
2469
2470         * config/rs6000/sysv4.opt: Fix typo.
2471
2472 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
2473             Jakub Jelinek  <jakub@redhat.com>
2474
2475         PR target/21329
2476         * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
2477         for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
2478         Don't use rep; movs{l,q} if the repetition count is really small,
2479         instead use a sequence of movs{l,q} instructions.
2480
2481 2005-05-06  Jeff Law  <law@redhat.com>
2482
2483         PR tree-optimization/21380
2484         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2485         thread through a block with no preds.
2486
2487 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
2488
2489         * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
2490         ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
2491         add_call_read_ops): Use VEC instead of VARRAY.
2492
2493 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
2494
2495         * config/mcore/mcore.c (mcore_print_operand_address): Use
2496         gcc_assert and gcc_unreachable as appropriate.
2497         (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
2498         mcore_output_andn, output_inline_const, mcore_output_move,
2499         mcore_output_movedouble, mcore_expand_block_move,
2500         layout_mcore_frame, mcore_initial_elimination_offset,
2501         mcore_expand_prolog, mcore_mark_dllexport,
2502         mcore_mark_dllimport): Likewise.
2503         * config/mcore/mcore.h (switch_to_section): Likewise.
2504         * config/mcore/mcore.md: Likewise.
2505
2506 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
2507
2508         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
2509         TARGET_PROFILE_KERNEL.
2510
2511         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
2512         TARGET_PROFILE_KERNEL use.
2513
2514 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
2515
2516         * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
2517         and gcc_unreachable, as appropriate.
2518         (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
2519         m32r_expand_prologue, m32r_output_function_epilogue,
2520         m32r_legitimize_pic_address, m32r_print_operand_address,
2521         emit_cond_move, m32r_function_symbol,
2522         m32r_output_block_move): Likewise.
2523         * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2524         * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
2525         *rev_zero_branch_insn): Likewise.
2526
2527 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
2528
2529         PR c++/20961
2530         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
2531         if both NEWDECL and OLDDECL are already weak.
2532
2533 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
2534
2535         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2536
2537 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
2538             Kaz Kojima  <kkojima@gcc.gnu.org>
2539
2540         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
2541         and plus_constant.
2542
2543 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
2544             David Edelsohn  <edelsohn@gnu.org>
2545
2546         * config.gcc: Add .opt magic for the rs6000 ports.
2547
2548         * doc/invoke.texi: Document -mabi= option properly.  Document
2549         -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
2550         -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
2551         -misel=.
2552
2553         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
2554         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
2555         TARGET_XL_COMPAT.
2556
2557         * config/rs6000/aix.opt: New.
2558         * config/rs6000/aix41.opt: New.
2559         * config/rs6000/aix64.opt: New.
2560         * config/rs6000/darwin.opt: New.
2561         * config/rs6000/linux64.opt: New.
2562         * config/rs6000/rs6000.opt: New.
2563         * config/rs6000/sysv4.opt: New.
2564
2565         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
2566         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
2567         SUBTARGET_SWITCHES.
2568         Define TARGET_USES_SYSV4_OPT.
2569         * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
2570         * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
2571         TARGET_USES_AIX64_OPT.
2572         * config/rs6000/aix51.h: Same.
2573         * config/rs6000/aix52.h: Same.
2574         * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
2575         MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
2576         Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
2577         Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
2578         * config/rs6000/linux64.h: Use
2579         rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
2580
2581         * config/rs6000/rs6000.c: Remove definitions of
2582         rs6000_sched_restricted_insns_priority,
2583         rs6000_long_double_size_string, rs6000_altivec_vrsave,
2584         rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
2585         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2586         rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
2587         rs6000_alignment_string.  Define rs6000_explicit_options.
2588         (rs6000_parse_abi_options): Remove.
2589         (rs6000_parse_alignment_option): Remove.
2590         (rs6000_parse_float_gprs_option): Remove.
2591         (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
2592         TARGET_DEFAULT_TARGET_FLAGS.
2593         (rs6000_override_options): Revamp to use new .opt machinery.
2594
2595         * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
2596         of new .opt machinery.  Remove target_flags.  Redefine
2597         TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
2598         SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
2599         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2600         rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
2601         rs6000_longcall_switch, rs6000_default_long_calls,
2602         rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
2603         rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
2604         TARGET_ALTIVEC_VRSAVE.
2605
2606 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
2607
2608         * config.gcc (hppa1.1-*-rtems*): Remove.
2609         * config/pa/rtems.h: Remove.
2610
2611 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
2612
2613         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
2614         Exclude roe/603e multilib variants.
2615
2616 2005-05-04  Denis Chertykov  <denisc@overta.ru>
2617
2618         PR target/21284
2619         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
2620         for output.
2621
2622 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
2623
2624         * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
2625         arm/pe.opt to $extra_options.
2626         * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
2627         (target_float_abi_name, target_float_switch, target_abi_name)
2628         (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
2629         (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
2630         (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
2631         (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
2632         (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
2633         (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
2634         (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
2635         (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
2636         (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
2637         (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
2638         (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
2639         (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
2640         (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
2641         (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
2642         (arm_pic_register_string): Delete.
2643         (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
2644         TARGET_TPCS_FRAME.
2645         (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
2646         * config/arm/coff.h (TARGET_DEFAULT): Likewise.
2647         * config/arm/elf.h (TARGET_DEFAULT): Likewise.
2648         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
2649         * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
2650         * config/arm/semi.h (TARGET_DEFAULT): Likewise.
2651         * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
2652         * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
2653         * config/arm/pe.h (TARGET_DEFAULT): Likewise.
2654         (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
2655         (SUBTARGET_SWITCHES): Delete.
2656         * config/arm/arm.c (target_float_switch): Delete.
2657         (arm_cpu_select): Moved from config/arm/arm.h.
2658         (target_fpu_name, target_fpe_name, target_float_abi_name)
2659         (target_abi_name, structure_size_string, arm_pic_register_string)
2660         (arm_select): Make static.
2661         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2662         (arm_handle_option): New function.
2663         (arm_override_options): Update target_flags checks for new mask names.
2664         Remove target_float_switch code.
2665         (arm_expand_prologue, thumb_expand_prologue): Check
2666         !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
2667         * config/arm/arm.opt, config/arm/pe.opt: New files.
2668
2669 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
2670
2671         * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
2672         gcc_unreachable as appropriate.
2673         (arc_double_limm_p, arc_setup_incoming_varargs,
2674         arc_compute_function_type, arc_output_function_prologue,
2675         arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
2676         output_shift, arc_print_operand, arc_print_operand_address,
2677         arc_final_prescan_insn): Likewise.
2678         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2679
2680 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
2681
2682         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
2683         comparing Pmode.
2684         (SDI): New.
2685         (cmp): Delete.
2686         (wd): New.
2687         (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
2688         add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
2689         clz<mode>2, ctz<mode>2, ffs<mode>2): New.
2690         (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
2691         (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
2692         (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
2693         (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
2694         (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
2695
2696 2005-05-05  Paul Brook  <paul@codesourcery.com>
2697
2698         * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
2699         cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
2700         regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
2701         and tree-data-ref.h with *_H variables.
2702
2703 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
2704
2705         * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
2706
2707 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
2708
2709         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
2710
2711 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
2712
2713         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
2714
2715 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
2716
2717         * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
2718         setting of vrsave register for current function after
2719         call to save_world is emitted.
2720
2721 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
2722
2723         * config/mmix/predicates.md: New file.
2724         * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
2725         (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
2726         (mmix_foldable_comparison_operator, mmix_comparison_operator)
2727         (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
2728         * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
2729         Don't define.
2730         * config/mmix/mmix.md: Include predicates.md.
2731         ("call", "call_value"): Force address to register if it isn't a
2732         mmix_symbolic_or_address_operand.
2733
2734 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
2735
2736         * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
2737         the flags are of appropriate types.
2738         (num_ssa_operands): Generalize using the generic interface.
2739         * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
2740         iterator.
2741
2742 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
2743
2744         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
2745         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
2746
2747 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2748
2749         * tree-outof-ssa.c (edge_leader, stmt_list,
2750         analyze_edges_for_bb): Use VEC instead of VARRAY.
2751         (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
2752         (perform_edge_inserts): Call init_analayze_edges_for_bb and
2753         fini_analayze_edges_for_bb.
2754
2755 2005-05-04  James E Wilson  <wilson@specifixinc.com>
2756
2757         PR driver/21112
2758         * gcc.c (process_command): In the second argv scan loop, ignore
2759         Xassembler and Xpreprocessor, along with their argument.
2760
2761 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2762
2763         * tree-flow-inline.h, tree-ssa-operands.c,
2764         tree-ssa-operands.h, tree-ssa-opfinalize.h:
2765         Likewise. tree-vn.c: Fix comment typos.
2766         * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
2767
2768 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
2769
2770         * doc/tm.texi (Target Hooks): Document
2771         TARGET_RESOLVE_OVERLOADED_BUILTIN.
2772
2773 2005-05-04  Paul Brook  <paul@codesourcery.com>
2774
2775         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
2776
2777 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2778
2779         * dwarf2out.c (incomplete_types, retry_incomplete_types,
2780         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
2781         of VARRAY.
2782
2783         * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
2784         get_expansion, expand_var_during_unrolling,
2785         insert_var_expansion_initialization,
2786         combine_var_copies_in_loop_exit, release_var_copies): Use VEC
2787         instead of VARRAY.
2788
2789         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
2790         update_stmt.
2791
2792 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
2793
2794         PR middle-end/15618
2795         * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
2796         the same as INTEGER_TYPE.
2797         (fold_binary): Fold "bool_var != 0" to bool_var.
2798         Fold "bool_var == 1" to bool_var.
2799
2800 2004-05-03  Richard Henderson  <rth@redhat.com>
2801
2802         PR middle-end/21318
2803         * function.c (instantiate_virtual_regs_in_insn): Use the mode
2804         from recog_data instead of insn_data.
2805
2806 2005-05-03  DJ Delorie  <dj@redhat.com>
2807
2808         * common.opt (fdiagnostics-show-option): No variable is needed.
2809         * diagnostic.h (diagnostic_context): Add show_option_requested flag.
2810         * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
2811         (diagnostic_report_diagnostic): Test for enabled diagnostics here.
2812         Save and restore original message format.  Use flag in context
2813         instead of global.
2814         (warning): Don't test for enabled warnings here.
2815         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
2816         here.
2817
2818 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
2819
2820         * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
2821         * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
2822         * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
2823         * aclocal.m4: Don't include accross.m4.
2824         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2825         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2826         * configure, config.in: Regenerate.
2827
2828 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
2829
2830         PR middle-end/21265
2831         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
2832         (clear_storage): Add argument.
2833         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
2834         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
2835         tailcall.
2836         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
2837         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
2838         (store_expr, store_constructor): Adjust callers.
2839         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
2840         to emit_block_move if CALL_EXPR_TAILCALL (exp).
2841         (expand_builtin_memmove): Add ORIG_EXP argument, copy
2842         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
2843         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
2844         with EXP.  Pass EXP to expand_builtin_memmove.
2845         (expand_builtin_memset): Add ORIG_EXP argument, pass
2846         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
2847         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
2848         Pass EXP to expand_builtin_memset.
2849         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
2850         the new CALL_EXPR.
2851         (expand_builtin_strncmp): Likewise.
2852         (expand_builtin_printf): Replace ARGLIST argument with EXP.
2853         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
2854         (expand_builtin_fprintf): Likewise.
2855         (expand_builtin): Adjust calls to
2856         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
2857
2858         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
2859         item in V4SF mode.
2860
2861         PR rtl-optimization/21239
2862         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
2863
2864 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2865
2866         * tree-flow.h (tree_ann_common_d): Move aux to ...
2867         (stmt_ann_d): ... here.
2868         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2869         move_computations_stmt, schedule_sm): Update references to
2870         aux.
2871         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2872
2873         * tree-cfg.c (remove_bb): Remove a redundant call to
2874         set_bb_for_stmt.
2875         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
2876         Likewise.
2877
2878 2005-05-03  Richard Henderson  <rth@redhat.com>
2879
2880         * config/rs6000/rs6000.c: Remove conflict markers.
2881
2882         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
2883
2884 2005-05-03  James E Wilson  <wilson@specifixinc.com>
2885
2886         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
2887
2888 2005-05-03  DJ Delorie  <dj@redhat.com>
2889
2890         * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
2891         decide if the warning will be printed.
2892         * calls.c (expand_call): Likewise.
2893         * function.c (init-function_start): Likewise.
2894
2895         * common.opt (-fdiagnostics-show-option): New.
2896         * opts.c (option_enabled): Accept the option index instead of a
2897         pointer to the option descriptor.
2898         * opts.h (option_enabled): Likewise.
2899         * toplev.c (print_switch_values): Pass option index, not option
2900         descriptor.
2901         * diagnostic.h (diagnostic_info): Add option_index.
2902         * diagnostic.c: Include opts.h.
2903         (diagnostic_set_info): Initialize option_index.
2904         (diagnostic_report_diagnostic): Amend option name if appropriate.
2905         (warning): Check to see if the specified warning is enabled.
2906         Store option index.
2907         * doc/invoke.texi (-fdiagnostics-show-options): Document.
2908
2909 2005-05-03  Richard Henderson  <rth@redhat.com>
2910
2911         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
2912         SPEC_OR_GEN_REGS definitions.
2913
2914 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
2915
2916         PR target/16888
2917         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
2918         for unavailable registers.
2919
2920 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2921
2922         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
2923
2924         * cfglayout.c (block_locators_blocks,
2925         insn_locators_initialize, insn_scope): Use VEC instead of
2926         VARRAY.
2927
2928         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
2929         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
2930         VARRAY.
2931
2932 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2933
2934         * config/sparc/predicates.md (const_compl_high_operand): New.
2935         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
2936         gen_safe_HIGH64.
2937         (sparc_emit_set_const64_quick1): Adjust for above change.
2938         (sparc_emit_set_const64_quick2): Likewise.
2939         (sparc_emit_set_const64_longway): Likewise.
2940         (sparc_emit_set_const64): Likewise.
2941         * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
2942         movdi_const64_special): Delete.
2943         (logical constant splitters): Use const_compl_high_operand.
2944
2945 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
2946
2947         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
2948         rather than STRIP_NOPS.
2949
2950 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
2951
2952         PR rtl-optimization/21330
2953         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
2954         returning non-NULL.
2955         (unswitch_single_loop): Clear cinsn when retrying.
2956
2957         PR target/21297
2958         * config/i386/i386.c (legitimize_address): When canonicalizing
2959         ASHIFT into MULT, multiply by 1 << shift_count instead of
2960         1 << log2 (shift_count).
2961
2962 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
2963
2964         * lambda-code.c (gcc_loop_to_lambda_loop,
2965         lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
2966         stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
2967         generic operand interface.
2968         * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
2969         * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
2970         generic operand interface.
2971         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
2972         link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
2973         next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
2974         num_imm_uses): Use ssa_use_operand_t.
2975         (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
2976         get_v_must_def_ops): Delete.
2977         (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
2978         (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
2979         get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
2980         get_v_must_def_kill_ptr): Delete.
2981         (delink_stmt_imm_use): Move and use new operand interface.
2982         (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
2983         op_iter_next_tree): Use new operand implementation.
2984         (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
2985         (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
2986         type check.
2987         (op_iter_next_mustdef, op_iter_next_maydef,
2988         op_iter_next_must_and_may_def): Delete. Replace with...
2989         (op_iter_next_maymustdef): New.  Combine must and may next operations.
2990         (op_iter_init_maydef, op_iter_init_mustdef,
2991         op_iter_init_must_and_may_def): Use new interface.
2992         (single_ssa_tree_operand ): New.  Process single operands only as trees.
2993         (single_ssa_use_operand): New.  Process single operands only as uses.
2994         (single_ssa_def_operand): New.  Process single operands only as defs.
2995         (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
2996         specified types.
2997         (num_ssa_operands): New.  Count the number of specified operands.
2998         (compare_ssa_operands_equal): New.  Compare two statements' operands.
2999         (single_phi_def): New.  Return true if PHI has one def of the specified
3000         operand type.
3001         (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
3002         (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
3003         * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
3004         (struct stmt_ann_d): Operands field no longer require GTY().
3005         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
3006         * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
3007         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
3008         dump_replaceable_exprs, rewrite_trees): Use generic interface.
3009         * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
3010         Use use_operand_p instead of ssa_imm_use_t *.
3011         * tree-pretty-print.c (dump_vops): check if operands are active before
3012         dumping virtual operands.
3013         * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
3014         * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
3015         (ccp_fold): Use new interface.
3016         (ccp_visit_stmt): Remove unused variables and code.
3017         (convert_to_gimple_builtin): Insert statements before calling
3018         mark_new_vars_to_rename.
3019         * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
3020         (copy_prop_visit_cond_stmt): Use generic interface.
3021         * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
3022         annotation in table.
3023         (thread_across_edge): Use generic interface.
3024         (initialize_hash_element): Initialzie with stmt, not annotation.
3025         (eliminate_redundant_computations): Use generic interface.
3026         (record_equivalences_from_stmt): Pass stmt, not annotation.
3027         (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
3028         interface.
3029         * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
3030         * tree-ssa-loop-ivopts.c (find_invariants_stmt,
3031         find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
3032         generic operand interface.
3033         * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
3034         interface.
3035         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
3036         Interface.
3037         * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
3038         (build_defs, build_uses, build_v_may_defs, build_vuses,
3039         build_v_must_defs): Change type to struct opbuild_list_d.
3040         (ops_active): New.  Operands active boolean.
3041         (operand_memory, operand_memory_index): New.  Operand memory managers.
3042         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
3043         allocate_vuse_optype, allocate_v_must_def_optype): Delete.
3044         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
3045         Change from functions to static variable list heads.
3046         (opbuild_initialize_virtual): New.  Initialize a virtual build list.
3047         (opbuild_initialize_real): New.  Initialize a virtual build list.
3048         (opbuild_free): New.  Free a build list.
3049         (opbuild_num_elems): New.  Number of items in a list.
3050         (opbuild_append_real): New.  Add a real (tree *) operand.
3051         (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
3052         (opbuild_first): New.  Return first element index in a list.
3053         (opbuild_next): New.  Return next element in a list.
3054         (opbuild_elem_real): New.  Return real element.
3055         (opbuild_elem_virtual): New.  Return virtual element.
3056         (opbuild_elem_uid): New.  Return UID of virtual element.
3057         (opbuild_clear): New.  Reset an operand list.
3058         (opbuild_remove_elem): New.  Remove an element form a list.
3059         (ssa_operands_active): New.  Return true if operand cache is active.
3060         (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
3061         (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
3062         (correct_use_link): Use use_operand_p.
3063         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
3064         finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
3065         (cleanup_v_may_defs): Use new implmentation.
3066         (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
3067         implementation.
3068         (append_def, append_use, append_v_may_def, append_vuse,
3069         append_v_must_def): Call opbuild_append routine instead of using varray.
3070         (build_ssa_operands): Simplify to simply use stmt, don't maintain a
3071         global parse_old_ops variable.
3072         (free_ssa_operands): New implementation.
3073         (update_stmt_operands): Move.  Change argument to build_ssa_operands.
3074         (copy_virtual_operands): Move. New generic implementation.
3075         (create_ssa_artficial_load_stmt): Move. New implementation.
3076         (swap_tree_operands): Update for new implementation.
3077         (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
3078         (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
3079         rather than a varray.
3080         (verify_imm_links): Use use_operand_p.
3081         (dump_immediate_uses_for): If the immediate use variable is a virtual
3082         variable, show the virtual ops in the stmt.
3083         * tree-ssa-operands.h (def_operand_p): No longer a structure.
3084         (NULL_DEF_OPERAND_P): Now a #define.
3085         (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
3086         vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
3087         (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
3088         mustdef_optype_d): New.  Use Linked list representation.
3089         (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
3090         (struct ssa_operand_memory_d): New.  Allocated Chunk node.
3091         (struct stmt_operands_d): Change to new pointers that are not GTY.
3092         (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
3093         STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
3094         SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
3095         STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
3096         SET_V_MUST_DEF_KILL): Delete.
3097         (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
3098         V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
3099         (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
3100         V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
3101         (enum ssa_op_iter_type): Operand iterator typechecking values.
3102         (struct ssa_operand_iterator_d): Use linked lists of operands.
3103         (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
3104         (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
3105         FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
3106         (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
3107         (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
3108         (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
3109         (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
3110         SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
3111         * tree-ssa-opfinalize.h: New.  Function templates for expansion.
3112         (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
3113         alloc_vuse, and alloc_mustdef.
3114         (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
3115         finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
3116         and finalize_ssa_v_must_def_ops.
3117         * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
3118         (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
3119         stmt around.
3120         (compute_avail): Use generic iterator interface.
3121         * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
3122         (stmt_makes_single_load, stmt_makes_single_store): Use
3123         ZERO_SSA_OPERANDS.
3124         * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
3125         (statement_sink_location): Use generic interface.
3126         * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
3127         (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
3128         reset the immediate use link nodes.
3129         (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
3130         * tree-ssanames.c (make_ssa_name): Use use_operand_p.
3131         * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
3132         (eliminate_tail_call): Use generic operand interface.
3133         * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
3134         (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
3135         interface.
3136         * tree-vect-transform.c (update_vuses_to_preheader): Use generic
3137         interface.
3138         * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
3139         * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
3140         vuse_optype.
3141         (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
3142         Use statement pointer instead of vuse_optype.  Use generic interface.
3143         * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
3144         (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
3145         * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
3146         (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
3147         * doc/tree-ssa.texi: Update documentation for operand interface.
3148
3149 2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
3150
3151         * config/darwin.c (machopic_define_symbol): Use gcc_assert or
3152         gcc_unreachable as appropriate.
3153         (machopic_function_base_name, machopic_indirect_data_reference,
3154         machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
3155         * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
3156         * config/rs6000/altivec.md (*mov<mode>_internal,
3157         build_vector_mask_for_load): Likewise.
3158         * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
3159         *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
3160         *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
3161         * config/rs6000/predicates.md (easy_fp_constant,
3162         logical_operand): Likewise.
3163         * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
3164         compute_save_world_info, rs6000_emit_prologue,
3165         rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
3166         * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
3167         directly.
3168
3169 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
3170
3171         PR middle-end/21282
3172         * convert.c (convert_to_integer): Convert ceil and floor in
3173         c99 mode only.
3174
3175 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
3176
3177         PR target/20813
3178         * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
3179         define_insn_and_split.  Split only when memory operand is
3180         offsettable.  Use adjust_address rather than plus_constant.
3181         (floatunssidf2_internal): Likewise.
3182         (fix_truncdfsi2_internal): Split only when memory operand is
3183         offsettable.  Use adjust_address rather than plus_constant.
3184         (fix_trunctfsi2_internal): Likewise.
3185         (floatsidf2_internal): Likewise.
3186
3187 2005-05-02  Diego Novillo  <dnovillo@redhat.com>
3188
3189         * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
3190         (set_value_range_to_null): Likewise.
3191         (set_value_range_to_varying): New function.  Use it in all
3192         call sites that used to call set_value_range (vr, VR_VARYING, ...).
3193         (extract_range_from_assert): If the integral type has a
3194         super-type, and LIMIT is not within MIN and MAX values of that
3195         type, set the resulting range to VR_VARYING.
3196
3197 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
3198
3199         * config/mmix/mmix.opt: New file.
3200         * config/mmix/mmix.h: Move options-related comments to mmix.opt.
3201         (mmix_cc1_ignored_option): Don't declare.
3202         (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
3203         (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
3204         (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
3205         (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
3206         (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
3207         (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
3208         (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
3209         (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
3210         Don't define.
3211         (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
3212         * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
3213         (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3214
3215 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
3216
3217         PR c/15698
3218         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
3219         * c-decl.c (current_function_prototype_built_in,
3220         current_function_prototype_arg_types): New.
3221         (merge_decls): Keep source location of prototype followed by
3222         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
3223         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
3224         (start_function): Always set current_function_prototype_locus,
3225         current_function_prototype_built_in and
3226         current_function_prototype_arg_types.  Check for external
3227         prototype whether or not visible for external function and set
3228         current_function_prototype_arg_types accordingly.
3229         (store_parm_decls_oldstyle): Use
3230         current_function_prototype_arg_types for checking old-style
3231         definition against prototype.  Give warnings only if
3232         current_function_prototype_built_in).
3233
3234 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
3235
3236         * ggc.h (ggc_alloc_zone_pass_stat): New macro.
3237         (ggc_alloc_zone_stat): Don't define.
3238         * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
3239         ggc_alloc_zone_pass_stat.
3240         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
3241         * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
3242         (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
3243
3244 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
3245
3246         * calls.c (expand_call): Handle current_function_pretend_args_size
3247         when checking for sibcalls.
3248
3249 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3250
3251         PR tree-optimization/21294
3252         * tree-vrp.c (vrp_expr_computes_nonzero): New.
3253         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
3254
3255 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
3256
3257         PR 19985
3258         * gcov-io.h: Declare gcov external functions hidden.
3259
3260 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3261
3262         * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
3263         record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
3264         Use VEC instead of VARRAY.
3265         (equiv_free): New.
3266
3267         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
3268         out common code.
3269
3270 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
3271
3272         * c-common.c (resolve_overloaded_builtin): Forward to target
3273         hook for BUILT_IN_MD built-ins.
3274         * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
3275         for all types of built-in.
3276         * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
3277         in the definition of the target hooks struct.
3278         * target.h (struct gcc_target): Add resolve_overloaded_builtin.
3279         * config/rs6000/altivec.h: Rewritten.
3280         * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
3281         altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
3282         rs6000_builtin_type, rs6000_builtin_type_compatible,
3283         altivec_overloaded_builtins, rs6000_builtin_type,
3284         rs6000_builtin_type_compatible): New.
3285         * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
3286         New.
3287         (def_builtin): Turn into a function.  Check for duplicates and store
3288         the builtin into rs6000_builtin_decls.
3289         (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
3290         bdesc_1arg): Add overloaded builtins.
3291         (altivec_expand_builtin): Check for unresolved overloaded builtins,
3292         do not support ALTIVEC_COMPILETIME_ERROR.
3293         (rs6000_init_builtins): Add opaque 128-bit vector, and internal
3294         nodes to represent front-end types.
3295         (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
3296         with opaque arguments and/or return values.
3297         * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
3298         ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
3299         (rs6000_builtin_type_index): New.
3300         (is_ev64_opaque_type): Rename to...
3301         (rs6000_is_opaque_type): ... this.
3302         (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
3303         target hook.
3304
3305 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3306
3307         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
3308         instead of VARRAY.
3309
3310 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
3311             Bernd Schmidt  <bernd.schmidt@analog.com>
3312
3313         * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
3314         print_address_operand, print_operand, legitimize_pic_address,
3315         asm_conditional_branch, bfin_gen_compare, output_push_multiple,
3316         output_pop_multiple): Use gcc_assert or gcc_unreachable as
3317         appropriate.
3318         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
3319
3320 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
3321
3322         * doc/passes.texi: Document vectorization pass.
3323
3324 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3325
3326         * tree-scalar-evolution.c (get_exit_conditions_rec,
3327         select_loops_exit_conditions,
3328         number_of_iterations_for_all_loops,
3329         analyze_scalar_evolution_for_all_loop_phi_nodes,
3330         scev_analysis): Use VEC instead of VARRAY.
3331
3332 2005-05-02  Michael Matz  <matz@suse.de>
3333
3334         PR c++/19542
3335         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
3336         (warn_strict_null_sentinel): Define.
3337         (check_function_sentinel): Check for null_node as valid sentinel too.
3338         * c-common.h (c_tree_index): Added CTI_NULL.
3339         (null_node) Define global_tree[CTI_NULL].
3340         (warn_strict_null_sentinel): Declare.
3341         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
3342         * c.opt: (Wstrict-null-sentinel): New C++ option.
3343         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
3344
3345 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3346
3347         * gimplify.c (gimplify_compound_lval): Use VEC instead of
3348         VARRAY.
3349
3350         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
3351
3352         * dwarf2out.c (decl_scope_table, push_decl_scope,
3353         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
3354         instead of VARRAY.
3355
3356 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
3357
3358         PR C++/14391
3359         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
3360         if !flag_weak.
3361         * doc/cpp.texi (__DEPRECATED): Document.
3362         (__EXCEPTIONS): Likewise.
3363         (__GXX_WEAK__): Likewise.
3364
3365         * function.c (INVOKE__main): Do not define.
3366         (expand_main_function): Check HAS_INIT_SECTION when determining
3367         whether or not to call __main.
3368
3369 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3370
3371         * tree-ssa-loop-ivopts.c: Fix a comment typo.
3372
3373 2005-01-05  Paul Brook  <paul@codesourcery.com>
3374
3375         * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
3376         (INITIALIZE_TRAMPOLINE): Use it.
3377         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
3378         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
3379         * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
3380
3381 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>