OSDN Git Service

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