OSDN Git Service

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