OSDN Git Service

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