OSDN Git Service

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