OSDN Git Service

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