OSDN Git Service

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