1 2005-05-20 Jan Hubicka <jh@suse.cz>
3 * Makefile.in (insn-emit.o): Add basic-block.h dependency.
4 * genemit.c (main): Make insn-emit to include basic-block.h too.
6 2005-05-20 Jan Hubicka <jh@suse.cz>
8 * cgraphunit.c (cgraph_expand_function): Force function being lowered.
10 2005-05-19 Richard Henderson <rth@redhat.com>
12 * config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
13 emit_store_conditional): Split out from ...
14 (alpha_split_atomic_op): ... here.
15 (alpha_split_compare_and_swap): New; extract from .md file.
16 (alpha_split_lock_test_and_set): Likewise.
17 * config/alpha/alpha-protos.h: Update.
18 * config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
19 split code into alpha.c.
20 (sync_lock_test_and_set<I48MODE>): Likewise.
22 2005-05-19 Richard Henderson <rth@redhat.com>
24 * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
26 2005-05-19 Richard Henderson <rth@redhat.com>
28 * config/i386/sse.md (mulv4si3): Use all register inputs.
31 2005-05-19 Richard Guenther <rguenth@gcc.gnu.org>
33 * tree-ssa-loop-ivopts.c (determine_base_object): Use
34 build_fold_addr_expr to generate trees of correct type.
35 Use fold_buildN if possible.
37 2005-05-19 Jan Hubicka <jh@suse.cz>
39 * basic-block.h (REG_BR_PROB_BASE): Define.
40 * cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
41 (dump_cgraph_node): Dump count.
42 (cgraph_clone_edge): Rescale counts.
43 (cgraph_clone_node): Likewise.
44 * cgraph.h: Include basic-block.h
45 (cgraph_node): Add count.
46 (cgraph_edge): Add count and loop_nest.
47 (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
49 * cgraphunit.c: Kill now redundant inlining comment.
50 (cgraph_create_edges): Make static, maintain current basic block;
52 (record_call_1): Fill in new fields.
53 * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
55 (cgraph_decide_recursive_inlining): Likewise.
56 * rtl.h (REG_BR_PROB_BASE): Kill.
57 * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
58 (expand_call_inline): Update call of cgraph_create_edge.
59 * tree-optimize.c (tree_rest_of_compilation): Likewise.
61 2005-05-19 Nick Clifton <nickc@redhat.com>
63 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
64 new rs6000_explicit_options structure.
66 2005-05-19 Richard Henderson <rth@redhat.com>
69 * config/alpha/alpha.c (alpha_emit_conditional_branch): Move
70 TFmode code swapping ...
71 (alpha_emit_xfloating_compare): ... here.
72 (alpha_emit_setcc): Update to match.
73 (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
75 2005-05-19 Richard Henderson <rth@redhat.com>
78 * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
79 memory indirection in local-dynamic case.
81 2005-05-18 Jie Zhang <jie.zhang@analog.com>
82 Bernd Schmidt <bernd.schmidt@analog.com>
84 * config/bfin/bfin.c (branch_dest): Add comment why it's
86 * config/bfin/bfin.md (attr "length" default): Change the offset of
87 forward conditional branch of length 4 from 4096 to 4092.
89 2005-05-19 Jan Beulich <jbeulich@novell.com>
91 * unwind-compat.c: Include tconfig.h and tsystem.h.
92 * unwind-dw2-fde-compat.c: Likewise.
94 2005-05-18 Richard Henderson <rth@redhat.com>
97 * ifcvt.c (noce_process_if_block): Avoid conversion when the
98 memory destination is readonly.
100 2005-05-18 Richard Henderson <rth@redhat.com>
103 * tree-ssa-operands.c (opf_non_specific): New.
104 (get_asm_expr_operands): Set it.
105 (add_call_clobber_ops, add_call_read_ops): Likewise.
106 (add_stmt_operand): Test it instead of opf_kill_def when
107 considering unmodifiable variables.
109 * tree-ssa-operands.c (get_expr_operands): Fix exact test.
111 2005-05-19 Kazu Hirata <kazu@cs.umass.edu>
113 * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
114 tree-ssa-forwprop.c: Fix comment typos.
115 * doc/invoke.texi: Fix a typo.
117 2005-05-18 Richard Henderson <rth@redhat.com>
119 * config.gcc (powerpc-*-linux*): Include linux64.opt when
122 2005-05-18 Richard Henderson <rth@redhat.com>
124 * tree-cfg.c (pass_remove_useless): Revert last change.
125 * tree-optimize.c (init_tree_optimization_passes): Initialize
126 all_lowering_passes with PROP_gimple_any.
128 2005-05-18 Devang Patel <dpatel@apple.com>
130 * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
133 2005-05-18 Richard Henderson <rth@redhat.com>
135 * tree-ssa-forwprop.c (cfg_changed): New.
136 (tidy_after_forward_propagate_addr): New.
137 (forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
138 (forward_propagate_addr_into_variable_array_index): Likewise.
139 (tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
142 2005-05-18 Geoffrey Keating <geoffk@apple.com>
144 * dummy-checksum.c: New.
145 * genchecksum.c: New.
146 * c.opt (print_pch_checksum): New flag.
147 * c-pch.c (struct c_pch_validity): Make much shorter.
149 (host_machine): Remove.
150 (target_machine): Remove.
151 (get_ident): Change PCH version number.
152 (pch_init): When -fverbose-asm, print out the compiler fingerprint.
153 Don't put triplets or version string in PCH validity data.
154 Do put the compiler checksum in the validity data.
155 (c_common_valid_pch): Don't check triplets or version string. Do
157 (c_common_print_pch_checksum): New.
158 * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
159 Print fingerprint with -v.
160 * c-common.h (c_common_print_pch_checksum): New.
161 (executable_checksum): New.
162 * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
163 (cc1-dummy): New rule.
164 (cc1-checksum.c): New rule.
165 (cc1-checksum.o): New rule.
166 (cc1): Add checksum support.
167 (build/genchecksum): New.
168 (build/genchecksum.o): New.
169 (dummy-checksum.o): New.
170 (genobjnames): Add genchecksum.o.
171 (mostlyclean): Remove *-checksum.c.
172 (gnucompare): Add libgcc to list of directories checked.
173 Make comparison problems in libgcc/ and with checksum files only
175 * doc/invoke.texi (Precompiled Headers): Remove caution.
176 Document that it must be the exact same binary. Add a few
177 known-safe flags to the list.
179 * rs6000/predicates.md (fix_trunc_dest_operand): New.
180 * rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
181 Check that a memory operand is valid before trying to use it.
183 * tree-cfg.c (pass_remove_useless): This pass works on trees.
185 2005-05-18 Richard Guenther <rguenth@gcc.gnu.org>
187 * tree.c (build1_stat): Don't try to handle two-operand
190 2005-05-18 Richard Sandiford <rsandifo@redhat.com>
192 * config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
193 * config/sh/sh.h: Update mask names throughout.
194 (target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
195 (SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
196 (SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
197 (HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
198 (LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
199 (HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
200 (INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
201 (TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
202 (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
203 (TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
204 (TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
205 (TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
206 (TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
207 (TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
208 (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
209 (TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
210 (TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
211 (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
212 (TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
213 (TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
214 (TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
215 (TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
216 (TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
217 (TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
218 (TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
219 (SUBTARGET_SWITCHES): Delete.
220 (TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
221 (TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
222 (TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
223 (TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
224 (TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
225 (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
226 (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
227 (SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
228 (SUPPORT_SH3): Likewise SUPPORT_SH2.
229 (SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
230 (SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
232 (SUPPORT_SH3E): Likewise SUPPORT_SH2E.
233 (SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
234 (SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
235 (SUPPORT_SH4A): Likewise SUPPORT_SH4.
236 (SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
237 (SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
238 (SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
239 (SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
240 (SUPPORT_ANY_SH5): New macros.
241 (TARGET_NONE): Replace with...
242 (MASK_ARCH): ...this new macro.
243 * config/sh/elf.h: Update mask names
244 * config/sh/linux.h: Likewise.
245 * config/sh/little.h: Likewise.
246 * config/sh/netbsd-elf.h: Likewise.
247 * config/sh/symbian-pre.h: Likewise.
248 * config/sh/sh.c (sh_handle_option): New function.
249 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
250 (calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
251 (sh_target_switches, target_switches): Delete.
252 (sh_pch_valid_p): Check for specific differences in the target_flags
254 (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
255 * config/sh/sh.opt: New file.
257 2005-05-18 Richard Henderson <rth@redhat.com>
260 * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
261 small_addr_symbolic_operand.
263 2005-05-18 Jeff Law <law@redhat.com>
265 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
266 propagate an ADDR_EXPR if the definition and use sites are
267 in different EH regions.
269 2005-05-18 Ian Lance Taylor <ian@airs.com>
271 * read-rtl.c (mode_attr_index): Use obstack_grow0, not
274 2005-05-18 Daniel Berlin <dberlin@dberlin.org>
276 * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
278 2005-05-18 Daniel Berlin <dberlin@dberlin.org>
280 Fix PR tree-optimization/21407
282 * tree-ssa-operands.c (note_addressable): Change
283 COMPONENT_REF handling in response to aliasing
286 2005-05-18 Eric Botcazou <ebotcazou@libertysurf.fr>
288 * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
289 * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
290 * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
291 * doc/invoke.texi (SPARC options): Document that -mapp-regs is
292 the default on Solaris too.
294 2005-05-17 Daniel Berlin <dberlin@dberlin.org>
296 * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
299 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
301 * timevar.def (TV_SCEV_CONST): New timevar.
302 * tree-optimize.c (init_tree_optimization_passes): Add
304 * tree-pass.h (pass_scev_cprop): Declare.
305 * tree-scalar-evolution.c (scev_const_prop): New function.
306 * tree-scalar-evolution.h (scev_const_prop): Declare.
307 * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
309 * tree-cfg.c (replace_uses_by): Export.
310 * tree-flow.h (replace_uses_by): Declare.
312 2005-05-17 Mike Stump <mrs@apple.com>
314 Yet more Objective-C++...
316 * c-common.h (objc_finish_try_stmt): Add.
317 (objc_build_synchronized): Add.
318 (objc_generate_write_barrier): Add.
319 * stub-objc.c (objc_build_synchronized): Add return value.
320 (objc_finish_try_stmt): Likewise.
321 (objc_generate_write_barrier): Add.
323 * c-common.h (objc_rewrite_function_call): Add.
324 * c-typeck.c (build_function_call): Allow objc to rewrite
326 (build_modify_expr): Allow objc to generate write barriers.
327 * c.opt (Wassign-intercept): Add.
328 (Wstrict-selector-match): Add.
329 (fobjc-call-cxx-cdtors): Add.
330 (fobjc-direct-dispatch): Add.
332 * dbxout.c (get_lang_number): Add Objective-C++ support.
333 * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
334 (-Wstrict-selector-match): Likewise.
335 (-fobjc-direct-dispatch): Likewise.
336 (-Wassign-intercept): Likewise.
337 (Overall Options): Likewise.
338 * gengtype.c (get_output_file_with_visibility): Likewise.
339 * stub-objc.c (objc_rewrite_function_call): Add.
340 * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
342 * c-common.c (flag_objc_exceptions): Remove.
343 (flag_objc_sjlj_exceptions): Remove.
344 * c-decl.c (objc_mark_locals_volatile): Don't change decls
346 * c-opts.c (c_common_handle_option, case
347 OPT_fobjc_exceptions): Remove.
348 (case OPT_fobjc_sjlj_exceptions): Remove
349 * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
350 (fobjc-exceptions): Likewise.
351 (fobjc-sjlj-exceptions): Likewise.
352 * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
353 (OFFS_ASSIGNIVAR_FAST): Add.
355 2005-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
357 * config/sparc/sparc.md (movhi): Do not test constness
360 (movdi): Unconditionally accept zero as second operand
361 when the first is memory.
362 (movdi_insn_sp32): Handle above case.
363 (DImode splitter): Use predicates.
364 (DImode splitter): Use const_zero_operand predicate.
365 (movsf_insn): Swap 2 alternatives.
367 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
369 * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
370 expand_simple_operations to bases of the ivs.
371 (tree_int_cst_sign_bit): Export.
372 * tree-flow.h (expand_simple_operations): Declare.
373 * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
374 tree_int_cst_sign_bit.
375 (expand_simple_operations): Export.
376 * tree.h (tree_int_cst_sign_bit): Declare.
378 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
380 * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
382 (replace_uses_by): New function.
383 (tree_merge_blocks): Eliminate the phi nodes in the merged block.
384 * tree-flow.h (fold_stmt_inplace): Declare.
385 * tree-ssa-ccp.c (fold_stmt_inplace): New function.
386 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
387 info after cfg cleanup.
389 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
391 * cfgloop.h (just_once_each_iteration_p): Declaration changed.
392 * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
395 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
397 * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
398 * ggc-zone.c (ggc_alloc_zone_1): Ditto.
399 * timevar.c (timevar_ggc_mem_total): New variable.
400 (GGC_MEM_BOUND): New constant.
401 (get_time): Record ggc memory status.
402 (timevar_accumulate): Accumulate amount of ggc memory.
403 (timevar_print): Print consumption of ggc memory.
404 * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
405 TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
406 TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
407 * timevar.h (struct timevar_time_def): Add ggc_mem field.
408 (timevar_ggc_mem_total): Declare.
410 2005-05-17 Kazu Hirata <kazu@cs.umass.edu>
412 * tree-into-ssa.c (update_ssa): Clean up by shortening the
415 2005-05-17 Hans-Peter Nilsson <hp@axis.com>
417 * config/cris/cris.md (ncond, ocode, rcond): Remove separate
419 ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
420 ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
421 ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
422 ("s<ocond:code>"): Rename from respectively "b<ncond>",
423 "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
424 "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
425 "s<rcond>" and "s<ocond>".
426 ("b<ocond:code>", "*b<ocond:code>_reversed")
427 ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
428 output statement section.
430 2005-05-17 Roger Sayle <roger@eyesopen.com>
432 * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
434 2005-05-17 Steven Bosscher <stevenb@suse.de>
435 Stuart Hastings <stuart@apple.com>
436 Jan Hubicka <jh@suse.cz>
437 Dale Johannesen <dalej@apple.com>
439 * cgraph.h (cgraph_node): Add 'lowered' state.
440 (cgraph_lower_function): Declare.
441 * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
442 (cgraph_lower_function): New function.
443 (cgraph_create_edges): Deal with lowered function bodies.
444 (verify_cgraph_node): Likewise.
445 (cgraph_analyze_function): Do lowering job.
446 (cgraph_build_static_cdtor): Likewise.
447 * function.h (struct function): Add saved_eh and saved_cfg.
448 * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
449 * tree-cfg.c (fold_cond_expr_cond): Export.
450 * tree-flow.h (fold_cond_expr_cond): Declare.
451 * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
453 (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
454 in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
455 callee_cfun, block, eh_region, eh_region_offset.
456 (inlining_p): New predicate.
457 (remap_decl): Update for new inline_data; declare newly created inline
458 vars in low gimple way.
459 (copy_body_r): Update for new datastructure, simplify some of handling
460 when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
461 deal with RESX_EXPRs.
463 (copy_edges_for_bb): Likewise.
465 (copy_cfg_body): New.
466 (copy_generic_body): Rewrite to work on low gimple.
467 (copy_body): Turn into simple wrapper around copy_cfg_body.
468 (setup_one_parameter): Insert new statements into given basic block.
469 (initialize_initialized_parameters): Likewise, reorganize way things are
471 (declare_return_variable): Update for new inline data datastructure.
472 (inline_forbidden_p): Work on low gimple.
473 (estimate_num_insns): Likewise.
474 (expand_call_inline): Work on CFG.
475 (push_cfun, pop_cfun): New functions.
476 (cfun_stack): New stack.
477 (add_lexical_block): New function.
478 (gimple_expand_calls_inline): Work on basic block.
479 (optimize_inline_calls): Likewise.
480 (clone_body, save_body, unsave_ewpr_now): Update for new
482 (declare_inline_vars): Work on block instead of bind_expr.
483 (inlining_p): New predicate.
484 * tree-inline.h (push_cfun, pop_cfun): Declare.
485 * tree-optimize.c: Include except.h
486 (all_lowering_passes): New variable.
487 (execute_fixup_cfg, pass_fixup_cfg): New pass.
488 (init_tree_optimization_passes): Move some to all_lowering_passes.
489 (tree_lowering_passes): New function.
490 (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
491 * tree-pass.h (tree_lowering_passes): Declare
493 2005-05-17 Nathan Sidwell <nathan@codesourcery.com>
495 * unwind-dw2-fde-darwin.c: Include tsystem.h.
497 2005-05-17 Jeff Law <law@redhat.com>
499 * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
500 * tree-ssa-forwprop.c: Include langhooks.h.
501 (forward_propagate_addr_expr_into_variable_array_index): New.
502 (forward_propagate_addr_expr): New.
503 (tree_ssa_forward_propagate_single_use_vars): Loop over all
504 the statements in the block instead of just the last statement.
505 Call forward_propagate_addr_expr as needed.
506 (pass_forwprop): Update the SSA graph after forward propagation is
509 2005-05-17 Nathan Sidwell <nathan@codesourcery.com>
511 * unwind-dw2-fde-glibc.c (base_from_cb_data,
512 _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
514 * unwind-dw2-fde.c (__deregister_frame_info_bases,
515 base_from_object, fde_split, end_fde_sort): Likewise.
516 * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op,
517 execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
518 uw_init_context_1): Likewise.
519 * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
520 _Unwind_Resume_or_Rethrow): Likewise.
521 * unwind-pe.h (__gxx_abort): Do not define.
522 (size_of_encoded_value, base_of_encoded_value,
523 read_encoded_value_with_base): Use gcc_unreachable.
524 * unwind.h (_Unwind_GetTextRelBase): Likewise.
526 2005-05-17 Daniel Jacobowitz <dan@codesourcery.com>
528 * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
529 (cfi_end): New macros.
530 (RETLDM): Use cfi_pop. Expect an eight byte stack frame.
531 (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros. Create
532 an eight byte stack frame.
533 (__NR_tkill): Define.
534 (__div0): Use gettid tkill on GNU/Linux.
535 (_arm_return): Add CFI.
536 (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
538 2005-05-17 Daniel Jacobowitz <dan@codesourcery.com>
540 * configure.ac: Remove spaces around assignment to
542 * configure: Regenerated.
544 2005-05-17 David Edelsohn <edelsohn@gnu.org>
546 * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
547 * config/rs6000/rs6000.c (rs6000_explicit_options): Add
549 (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
550 Modify aix_struct_return variable, not target_flags.
551 (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
552 (rs6000_return_in_memory): Test aix_struct_return.
553 * config/rs6000/rs6000.opt (maix-struct-return): Convert to
554 independent variable. Report mxl-compat.
556 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
558 * config/bfin/bfin.md (eh_return): Add missing DONE.
560 2005-05-17 Ian Lance Taylor <ian@airs.com>
562 * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
564 (mode_attr_index): Remove check for defined attribute. Remove
565 infile parameter. Change all callers.
566 (apply_mode_maps): Add unknown parameter. Change caller. Always
567 return after finding attribute.
568 (apply_macro_to_rtx): Add unknown_mode_attr parameter. Change
570 (apply_macro_traverse): Set mtd->unknown_mode_attr.
571 (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
572 attribute used for a mode.
574 2005-05-17 Paolo Bonzini <bonzini@gnu.org>
576 * tree-ssa-math-opts.c: New file.
578 2005-05-17 Paolo Bonzini <bonzini@gnu.org>
580 * Makefile.in: Add tree-ssa-math-opts.c.
581 * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
582 * fold-const.c (distribute_real_division): New.
583 (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
584 * tree-pass.h (pass_cse_reciprocals): New.
585 * tree-optimize.c (init_tree_optimization_passes): Run it.
586 * doc/passes.texi: Document the new pass.
588 2005-05-17 Richard Guenther <rguenth@gcc.gnu.org>
591 * builtins.c (fold_builtin_constant_p): Handle
592 &"string cst"[0] as constant.
594 2005-05-17 Richard Henderson <rth@redhat.com>
596 * config/i386/sse.md (mulv16qi3, mulv2di3): New.
598 2005-05-17 Jakub Jelinek <jakub@redhat.com>
601 * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
602 src2 if src2 has been split.
604 PR tree-optimization/21610
605 * c-typeck.c (decl_constant_value_for_broken_optimization): If not
606 returning DECL, call unshare_expr.
608 2005-05-17 Hans-Peter Nilsson <hp@axis.com>
610 * config/cris/cris.md: Unquote preparation and output statements.
611 (BWD, WD, BW): New, mode-macros.
612 (S, s, m, mm, nbitsm1): New, mode-attrs.
613 (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
614 (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
616 ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
617 ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
618 ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
620 ("cmp<mode>"): Replace "cmphi" and "cmpqi".
621 ("movdi"): Move misplaced head comment regarding necessity of
622 movdi from movsi to here.
623 ("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
625 ("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
626 ("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
627 "*mov_sideqi_biap_mem".
628 ("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
630 ("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
631 "*clear_sidehi_biap" and "*clear_sideqi_biap".
632 ("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
634 ("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
635 "*ext_sidehisi_biap".
636 ("*ext_side<mode>si"): Replace "*ext_sideqisi" and
638 ("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
639 ("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
640 ("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
641 ("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
642 ("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
644 ("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
645 "*op_sidehi_biap" and "*op_sidesi_biap".
646 ("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
648 ("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
649 "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
650 ("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
651 "*op_swap_sidehi" and "*op_swap_sidesi".
652 ("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
653 in the N alternative of "subqi3".
654 ("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
655 "*extophisi_side_biap".
656 ("*extop<mode>si_side"): Replace "*extopqisi_side" and
658 ("*extop<mode>si_swap_side_biap"): Replace
659 "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
660 ("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
661 "*extophisi_swap_side".
662 ("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
663 ("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
665 ("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
666 "mulqihi3", "mulhisi3" and "mulhisi3".
667 ("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
668 ("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
670 ("xor<mode>3"): Replace "xorhi3" and "xorqi3".
671 ("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
672 ("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
673 ("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
674 ("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
675 ("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
676 "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
677 ("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
678 "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
679 ("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
680 ("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
681 ("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
683 ("abs<mode>2"): Replace "abshi2" and "absqi2".
684 ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
686 ("b<ocond>"): Replace "bgt" and "ble".
687 ("b<rcond>"): Replace "blt" and "bge".
688 ("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
689 "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
691 ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
693 ("*b<rcond>_reversed"): Replace "*blt_reversed" and
695 ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
697 ("s<rcond>"): Replace "sge" and "slt".
698 ("s<ocond>"): Replace "sgt" and "sle".
699 ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
700 [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
701 ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
702 clear.w [rx=rx+i] and clear.b [rx=rx+i].
704 2005-05-17 Jakub Jelinek <jakub@redhat.com>
706 * varasm.c (struct constant_descriptor_tree): Add hash field.
707 (const_desc_hash): Just return hash field.
708 (const_desc_eq): If hash values are different, return 0 immediately.
709 (output_constant_def): Compute hash field of temporary key, use
710 htab_find_slot_with_hash instead of htab_find_slot. Set hash in
711 newly built constant descriptor.
712 (lookup_constant_def): Compute hash field of temporary key, use
713 htab_find_with_hash instead of htab_find.
715 2005-05-16 Richard Henderson <rth@redhat.com>
717 * config/i386/sse.md (mulv4si3): New.
719 2005-05-17 Hans-Peter Nilsson <hp@axis.com>
721 * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
722 tests for noncanonical versions of reg+constant and
725 2005-05-16 Richard Henderson <rth@redhat.com>
726 Steven Bosscher <stevenb@suse.de>
729 * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from
730 maybe_clean_eh_stmt; take old stmt parameter. Update EH
731 region data structure to match replacement.
732 * tree-flow.h: Update to match.
733 * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
734 * tree-ssa-dom.c (optimize_stmt): Likewise.
735 * tree-ssa-pre.c (eliminate): Likewise.
736 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
738 2005-05-16 Caroline Tice <ctice@apple.com>
740 * bb-reorder.c (verify_hot_cold_block_grouping): Replace
741 internal_error with gcc_assert.
742 * dwarf2out.c (dwarf2out_switch_text_section): Likewise.
743 * function.h (struct function): Remove space between "*" and
745 * varasm.c (initialize_cold_section_name): Add gcc_assert;
746 modify to use alloca.
747 (unlikely_text_section): Add check for flag_function_sections.
748 (assemble_start_function): Move call to resolve_section, so it
749 comes before first call to unlikely_text_section.
750 (assemble_end_function): Add test and call to function_section
753 2005-05-16 Roger Sayle <roger@eyesopen.com>
755 * c-common.c (c_common_truthvalue_conversion): Use fold_build2
756 instead of build_binary_op when performing code transformations
757 to avoid error messages about constructs not it the user's code.
759 2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
761 * tree-ssa-pre.c: Fix a comment typo.
763 2005-05-16 Richard Henderson <rth@redhat.com>
766 * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
767 load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
768 add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
769 load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
770 add_tprel22): Remove mode from symbolic operand.
772 2005-05-16 Richard Sandiford <rsandifo@redhat.com>
774 * optc-gen.awk: Include intl.h after the externally-provided files.
776 2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
778 * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
779 folding a COND_EXPR_COND in a nondestructive manner.
781 2005-05-16 Fariborz Jahanian <fjahanian@apple.com>
783 * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh,
784 altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
785 New values for vec_select definitions and bitmask for element
788 2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
790 * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
791 Change the type to VEC(rtx,gc)*.
792 (mem_loc_descriptor, add_const_value_attributes,
793 dwarf2out_init): Adjust uses of used_rtx_varray.
795 * tree-data-ref.c (compute_all_dependences): Change the type
796 of dependence_relations to VEC(ddr_p,heap)**.
797 (compute_data_dependences_for_loop): Change the type of
798 allrelations to VEC(ddr_p,heap)*.
800 2005-05-16 Richard Sandiford <rsandifo@redhat.com>
802 * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
803 system.h, coretypes.h and tm.h.
804 (options.o): Update dependencies accordingly.
805 * optc-gen.awk: Allow header_name to be a list of filenames.
806 Handle the "Condition" flag.
807 * opts.h (CL_DISABLED): New flag.
808 * opts.c (handle_option): Print an error for CL_DISABLED options.
809 * doc/options.texi: Document the "Condition" option flag.
811 2005-05-16 Paolo Bonzini <bonzini@gnu.org>
813 * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
815 2005-05-15 Roger Sayle <roger@eyesopen.com>
817 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
818 check for TREE_OVERFLOW on INTEGER_CST trees.
819 * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
820 CONSTANT_CLASS_P tree nodes.
822 2005-05-15 H.J. Lu <hongjiu.lu@intel.com>
825 * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
827 2005-05-15 Daniel Berlin <dberlin@dberlin.org>
829 Fix PR tree-optimization/21576
831 * tree-ssa-pre.c (expression_node_pool): New pool.
832 (comparison_node_pool): Ditto.
833 (list_node_pool): Ditto.
834 (pool_copy_list): New function.
835 (phi_translate): Handle CALL_EXPR.
836 (valid_in_set): Ditto.
837 (create_expression_by_pieces): Ditto.
838 (insert_into_preds_of_block): Ditto.
840 (compute_avail): Ditto.
841 (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
842 (can_value_number_call): New function.
843 (find_leader): Update comment.
844 (init_pre): Create new pools.
845 (fini_pre): Free new pools.
846 (pass_pre): Add TODO_update_ssa for the future when we are going
848 * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
849 (set_value_handle): Ditto.
850 (get_value_handle): Ditto.
852 2005-05-15 Richard Earnshaw <richard.earnshaw@arm.com>
854 * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
856 2005-05-15 Andreas Jaeger <aj@suse.de>
858 * gcc.c (pfatal_pexecute): Remove unused local function.
860 2005-05-15 Richard Sandiford <rsandifo@redhat.com>
862 * optc-gen.awk: Remove excess indentation.
863 * opth-gen.awk: Likewise.
865 2005-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
867 * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
868 of basic_block_info. Call init_flow and find_basic_blocks
869 before dbr_schedule if needed.
871 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
873 * tree-optimize.c (init_tree_optimization_passes): Move
874 pass_cd_dce in place of the last pass_dce.
876 PR tree-optimization/21563
877 * tree-vrp.c (compare_value): Return boolean_false_node when
878 SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
879 strictly larger than CST.
881 2005-05-14 Nathan Sidwell <nathan@codesourcery.com>
882 Jan-Benedict Glaw <jbglaw@lug-owl.de>
884 * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
886 (rev_cond_name) Likewise.
887 (vax_float_literal) Likewise.
888 * config/vax/vax.md: Likewise.
890 2005-05-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
892 * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
893 registers and use them (specifically the stack pointer).
894 * config/vax/vax.h: Use above defines right here.
896 * config/vax/vax.c: (override_options) Remove 'register' keyword.
897 (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
898 (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
900 * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
901 mostly removal of trailing spaces...
902 * config/vax/vax-modes.def: Remove trailing whitespace.
904 * config/vax/elf.h: Update whitespace.
906 2005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
909 2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
910 * fold-const.c (fold_indirect_ref_1): Avoid removing
911 NOP_EXPRs with type qualifiers like const.
913 2005-05-14 Jan Hubicka <jh@suse.cz>
915 Patch by Richard Henderson:
916 * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
917 Handle RESX expressions properly.
919 * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
920 (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
921 (remove_stmt_from_eh_region_fn): Likewise.
923 * tree-cfg.c (execute_warn_function_return): Break out noreturn
925 (execute_warn_function_noreturn): ... here.
926 (pass_warn_function_noreturn): New pass.
927 * tree-pass.h (pass_warn_function_noreturn): Declare
928 * tree-optimize.c (init_tree_optimization_passes): Move return
929 warnings early and add noreturn warnings at place of previous
932 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
934 * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
935 root_var_init, type_var_init): Use VEC instead of VARRAY.
936 * tree-ssa-live.h (tree_partition_associator_d): Change the
937 type of trees to VEC(tree,heap)*.
938 (tpa_tree): Use VEC instead of VARRAY.
940 2005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
942 * fold-const.c (div_if_zero_remainder): New function.
943 (try_move_mult_to_index): Use it.
945 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
947 * tree-eh.c (leh_tf_state): Change the type of dest_array to
949 (maybe_record_in_goto_queue, lower_try_finally_onedest,
950 lower_try_finally_copy, lower_try_finally_switch,
951 lower_try_finally): Use VEC instead of VARRAY.
953 2005-05-14 Hans-Peter Nilsson <hp@axis.com>
955 * config/cris/cris.h (Node: Register Classes): Remove obsoleted
956 comment regarding defined register classes.
957 (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
959 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
961 * tree-optimize.c (init_tree_optimization_passes): Move
962 pass_merge_phi before the first pass_dominator.
964 2005-05-13 Richard Earnshaw <richard.earnshaw@arm.com>
966 * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
969 2005-05-13 Josh Conner <jconner@apple.com>
971 * config/arm/arm.c (arm_size_return_regs): New.
972 (thumb_unexpanded_epilogue): replace in-line calculation
973 of return registers with call to arm_size_return_regs.
974 (use_return_insn): Include test of which registers are
975 being used to hold return values, to accommodate
976 vector return values.
978 2005-05-11 Aldy Hernandez <aldyh@redhat.com>
980 * config/rs6000/sysv4.opt (mlittle): Handle.
982 * config/rs6000/rs6000.c (rs6000_handle_option): Set
983 target_flags_explicit when appropriate.
985 2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
988 * optabs.c (no_conflict_data): New struct.
989 (no_conflict_move_test): New function.
990 (emit_no_conflict_block): Use it.
992 2005-05-13 Adam Nemet <anemet@lnxw.com>
994 * doc/invoke.texi (Debugging Options): Option
995 -fdump-translation-unit only works with C++ now.
997 2005-05-13 Hans-Peter Nilsson <hp@axis.com>
999 Replace calls to abort in CRIS port.
1000 * config/cris/cris.h (CRIS_ASSERT): New macro.
1001 * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
1002 internal_error instead of abort.
1003 ("movsi"): Ditto. Unquote preparation statement section.
1004 ("call", "call_value"): Ditto, but use gcc_assert where
1005 appropriate. Tweak comments.
1006 * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
1008 (cris_op_str): Call internal_error, not abort.
1009 (cris_print_operand): Tweak "abort" reference to "die" in comment.
1010 (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
1011 (cris_notice_update_cc): Call internal_error, not abort.
1012 (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
1013 (cris_emit_movem_store, cris_asm_output_symbol_ref)
1014 (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
1015 (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
1016 ENABLE_CHECKING-guarded abort call.
1017 (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
1018 Use internal_error at end of test-chain.
1020 2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
1022 PR rtl-optimization/20769:
1023 * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
1024 pattern emitted by expand_nl_goto_receiver.
1026 PR middle-end/20793:
1027 * integrate.c (allocate_initial_values): Update register liveness
1030 2005-05-13 Josh Conner <jconner@apple.com>
1032 * arm.c (arm_return_in_memory): Add handling for vector return types.
1034 2005-05-13 David Ung <davidu@mips.com>
1036 * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
1038 * config/mips/mips.c: Add 4km alias.
1039 * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
1040 * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
1043 2005-05-13 Jan Hubicka <jh@suse.cz>
1045 * c-decl.c (finish_function): Suppress "control reaches end of
1046 non-void function" when "no return statement in function
1047 returning non-void" is issued.
1049 * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
1050 * tree-optimize.c (pass_gimple): Kill.
1051 (init_tree_optimization_passes): Kill pass_gimple.
1052 * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
1053 * tree-dump.c (dump_files): Rename .generic to .gimple.*
1055 2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
1057 PR rtl-optimization/20756:
1058 * basic-block.h (PROP_DEAD_INSN): Define.
1059 * flow.c (propagate_one_insn): Set during mark_set_regs call
1061 (mark_set_1): Emit a clobber when we are about to delete a dead insn
1062 that kills a live register.
1064 2005-05-13 Adrian Straetling <straetling@de.ibm.com>
1066 * config/s390/s390.md: ("DBL"): New mode attribute.
1067 ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
1068 ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
1069 ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
1071 2005-05-13 Richard Guenther <rguenth@gcc.gnu.org>
1073 * c-format.c (check_format_arg): Handle string literals of
1074 the form &"string"[offset].
1076 * g++.dg/warn/format4.C: New testcase.
1078 2005-05-13 Kazu Hirata <kazu@cs.umass.edu>
1080 * config/mips/3000.md, config/mips/4000.md,
1081 config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
1082 config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
1083 config/mips/generic.md, config/pdp11/pdp11.md,
1084 config/sh/crt1.asm, config/sh/lib1funcs.asm,
1085 config/sh/sh-modes.def, config/sh/sh-protos.h,
1086 config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
1088 2005-05-13 Richard Henderson <rth@redhat.com>
1090 * function.c (instantiate_virtual_regs_in_insn): Do not simplify
1091 addition to move unless dest is a register. Do not skip
1092 instantiation in dest on addition simplification.
1094 2005-05-13 Hans-Peter Nilsson <hp@axis.com>
1096 * config/cris/cris.c (cris_print_operand) <case 'H'; case
1097 CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
1098 output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
1100 2005-05-13 Jan Hubicka <jh@suse.cz>
1102 * basic-block.h (FOR_ALL_BB_FN): New macro.
1103 (init_flow): Initialize cfg structure.
1104 * function.c (allocate_struct_function): Do not initialize cfg structure.
1105 * tree-cfg.c (init_empty_tree_cfg): Break out from ...
1106 (build_tree_cfg): ... here.
1107 * tree-flow.h (init_empty_tree_cfg): Declare.
1109 2005-05-12 Steven Bosscher <stevenb@suse.de>
1111 Fix PR tree-optimization/21520
1112 * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
1113 to attempt to fold constants.
1115 2005-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1117 * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
1118 only when TARGET_ADJUST_UNROLL_MAX is defined.
1119 (general_movsrc_operand): Use the C style comment.
1120 (ua_offset): Use prototype.
1122 2005-05-12 Zdenek Dvorak <dvorakz@suse.cz>
1124 * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
1125 (struct hmr_data, hoist_memory_reference, memref_del,
1126 struct fmrv_data): Removed.
1127 (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
1128 (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
1130 (find_more_ref_vops): Traverse the list of memory references.
1131 (determine_lsm_loop): Work with the list of memory references instead
1132 of traversing the hashtable.
1134 2005-05-12 Steven Bosscher <stevenb@suse.de>
1135 Stuart Hastings <stuart@apple.com>
1136 Jan Hubicka <jh@suse.cz>
1138 * except.c (duplicate_eh_region_1, duplicate_eh_region_2,
1139 duplicate_eh_regions): New functions, based on old
1140 implementation removed with RTL inliner.
1141 (reachable_next_level): Modify behaviour pre-inline.
1142 * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
1144 * function.h (struct function): Add after_inlining flag.
1145 * tree-optimize.c (tree_rest_of_compilation): Set it.
1146 * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
1148 * tree-cfg.c (label_to_block_fn): Deal with cases where
1149 label was never insterted into code.
1151 2005-05-12 Zack Weinberg <zack@codesourcery.com>
1153 * doc/cpp.texi: Document that #sccs is a synonym for #ident.
1155 2005-05-12 Daniel Berlin <dberlin@dberlin.org>
1157 Fix PR tree-optimization/21532
1158 * tree-ssa-pre.c (create_expression_by_pieces): stmt
1159 needs to go onto the inserted_exprs list.
1161 2005-05-12 Ian Lance Taylor <ian@airs.com>
1163 * c-common.h (statement_code_p): Don't declare.
1164 (STATEMENT_CODE_P): Don't define.
1165 (INIT_STATEMENT_CODES): Don't define.
1166 * c-common.c (statement_code_p): Don't define.
1168 2005-05-12 Eric Botcazou <ebotcazou@libertysurf.fr>
1170 * config/sparc/sparc.h: Remove dead code.
1171 * config/sparc/sparc.c (sparc_compute_frame_size): Use
1172 FIRST_PARM_OFFSET for the size of the register window area.
1173 (emit_save_regs): Rename into emit_save_or_restore_regs.
1174 Add 'action' parameter. Use 4095 as upper bound for the offset.
1175 Pass 'action' to save_or_restore_regs.
1176 (emit_restore_regs): Delete.
1177 (sparc_expand_prologue): Call emit_save_or_restore_regs.
1178 (sparc_expand_epilogue): Likewise.
1179 * config/sparc/sparc.md (mode macro P): Move.
1180 (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
1181 (mov<V32:mode> expander): Move to the top of the V32 section.
1182 (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
1183 (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
1184 (sibcall_epilogue): Move.
1186 2005-05-12 Richard Earnshaw <richard.earnshaw@arm.com>
1189 * arm.c (arm_gen_constant): Sign-extend intermediate values when
1190 synthesizing a constant of the difference of two immediates.
1192 2005-05-12 Richard Earnshaw <richard.earnshaw@arm.com>
1194 * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
1195 (negdf2_vfp): Likewise. Convert to define_insn_and_split and split
1196 the alternatives using integer registers into the appropriate
1199 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1201 * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
1202 bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
1203 * bitmap.h: Fixed comments.
1205 2005-05-11 Richard Henderson <rth@redhat.com>
1208 * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
1209 (ia64_cannot_force_const_mem): New.
1210 (tls_symbolic_operand_type): New.
1211 (ia64_legitimate_constant_p): New.
1212 (ia64_expand_load_address): Return true on success. Improve
1213 checks for when we should not split.
1214 (ia64_expand_tls_address): New addend operand. Distribute it
1215 as appropriate to the tls_kind. Delay referencing gp.
1216 (ia64_expand_move): Split symbolic addend as necessary. Handle
1217 tls symbols with addends.
1218 * config/ia64/ia64-protos.h: Update.
1219 * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
1220 p0, f0, f1, and r13.
1221 (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
1222 * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
1223 (symbolic_operand splitter): Pass everything through
1224 ia64_expand_load_address and FAIL or DONE as appropriate.
1225 (load_fptr): Only accept after reload.
1226 (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
1227 load_symptr_low, load_ltoff_dtpmod,
1229 (load_dtprel): Only accept tls symbols.
1230 (load_dtprel64, load_dtprel22): Likewise.
1231 (load_tprel, load_tprel64, load_tprel22): Likewise.
1232 (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
1233 (add_dtprel): Only accept tls symbols. Canonicalize PLUS.
1234 (add_dtprel14, add_dtprel22): Likewise.
1235 (add_tprel, add_tprel14, add_tprel22): Likewise.
1236 * config/ia64/predicates.md (small_addr_symbolic_operand): New.
1237 (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
1238 (got_symbolic_operand): Check CONST offsets.
1239 (tls_symbolic_operand, ld_tls_symbolic_operand): New.
1240 (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
1241 (move_operand): Don't handle tls here. Check CONST offsets.
1243 2005-05-11 Richard Sandiford <rsandifo@redhat.com>
1245 * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
1246 Remove hilo_operand check.
1247 (rm7_impy_si_mul): Just match imul3. Remove hilo_operand check.
1248 * config/mips/predicates.md (hilo_operand): Delete.
1250 2005-05-11 Richard Sandiford <rsandifo@redhat.com>
1252 * config/mips/sr71k.md, config/mips/7000.md: Reformat.
1254 2005-05-11 Kazu Hirata <kazu@cs.umass.edu>
1256 PR tree-optimizer/18472
1257 * tree-if-conv.c (tree_if_convert_stmt,
1258 if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
1260 2005-05-11 Jan Hubicka <jh@suse.cz>
1262 * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
1263 (GTFILES): add except.h.
1264 * except.c (eh_status): Add throw_stmt_table.
1265 (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
1266 * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
1267 lookup_stmt_eh_region_fn): Declare.
1268 (throw_stmt_node): New structure.
1269 (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
1270 * gengtype.c (open_base_files): Add except.h to inlines.
1271 * tree-eh.c (throw_stmt_node): Kill.
1272 (record_stmt_eh_region): Update.
1273 (add_stmt_to_eh_region_fn): Break out from ...
1274 (add_stmt_to_eh_region): ... here.
1275 (remove_stmt_from_eh_region_fn): Break out from ...
1276 (remove_stmt_from_eh_region): ... here.
1277 (lookup_stmt_eh_region_fn): Break out from ...
1278 (lookup_stmt_eh_region): ... here.
1279 (honor_protect_cleanup_actions): Use build_resx.
1280 (lower_try_finally_onedest): Likewise.
1281 (lower_try_finally_copy): Likewise.
1282 (lower_try_finally_switch): Likewise.
1283 (lower_eh_constructs): Update eh table construction.
1284 * tree.c (build_resx): New.
1285 * tree.h (build_resx): Declare.
1287 2005-05-11 H.J. Lu <hongjiu.lu@intel.com>
1289 * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
1292 2005-05-11 Kazu Hirata <kazu@cs.umass.edu>
1294 * fold-const.c, libgcov.c: Fix comment typos.
1296 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
1299 2005-05-11 Daniel Jacobowitz <dan@codesourcery.com>
1301 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1302 * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
1304 (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
1306 2005-05-11 Nathan Sidwell <nathan@codesourcery.com>
1309 * crtstuff.c: Include auto-host.h again, for now.
1311 2005-05-11 Richard Sandiford <rsandifo@redhat.com>
1313 * config/mips/24k.md: Remove trailing whitespace.
1315 2005-05-11 David Ung <davidu@mips.com>
1317 * config/mips/mips.md (type): Add imul3.
1318 (length, hazard, may_clobber_hilo): Check for imul3.
1319 (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
1320 (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
1321 * config/mips/24k.md (r24k_int_mul3): Enable this reservation
1322 for a 3 operand mul and its bypasses.
1323 * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
1324 * config/mips/4000.md (r4k_imul): Likewise.
1325 * config/mips/4100.md (r4100_imul_si, r4100_imul_di): Likewise.
1326 * config/mips/4130.md (vr4130_class, vr4130_mulsi)
1327 (vr4130_muldi): Likewise.
1328 * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
1329 * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
1330 * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
1331 * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
1332 (ir_vr54_imadd_si): Likewise.
1333 * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di): Likewise.
1334 * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
1335 (rm7_impy_di): Likewise.
1336 * config/mips/9000.md (rm9k_mulsi, rm9k_muldi): Likewise.
1337 * config/mips/generic.md (generic_imul): Likewise.
1338 * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
1339 * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di): Likewise.
1341 2005-05-11 J"orn Rennecke <joern.rennecke@st.com>
1343 PR middle-end/20371:
1344 * tree.h (record_layout_info_s): New member prev_packed.
1345 * stor-layout.c (update_alignment_for_field): Fix comment about
1346 KNOWN_ALIGN. For MS bitfields, if we start a new run, make sure
1347 we start it properly aligned.
1348 (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
1349 to update_alignment_for_field, and recompute it afterwards using
1350 the alignment of the record.
1351 When a packed bitfield precedes an MS bitfield, don't add padding
1352 at the end of the packed bitfield on behalf of the base type of
1353 the packed bit field.
1354 Don't adjust rli->bitpos at the end
1355 of an MS bitfield run if we already adjusted bitpos/offset for an
1356 alignment as large or larger than the bitfield type size.
1357 Take possible record alignment > BIGGEST_ALIGNMENT into account
1358 when calculating actual_align.
1359 Only put packed buit fields into rli->prev_field if they end up
1361 Also set rli->remaining_in_alignment when we re-set rli->prev_field.
1362 Update rli->remaining_in_alignment when we have already started a
1363 run of bit fields and we process a packed bit field.
1365 2005-05-11 Sebastian Pop <pop@cri.ensmp.fr>
1367 * tree-data-ref.c (find_data_references_in_loop): Give up when
1368 the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
1369 may embed arbitrary side effects.
1370 Remove the assumption that GIMPLE form contains a single array
1371 access per statement.
1372 When the statement contains virtual operands, fail if it is not
1373 a MODIFY_EXPR or a CALL_EXPR.
1374 Return after the dont know node is inserted.
1376 2005-05-11 Richard Earnshaw <richard.earnshaw@arm.com>
1378 * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
1380 2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
1383 PR tree-optimization/19639
1384 * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
1385 and generic summands for char* as s * delta, too, folding &a[i]
1386 CODE x to &a[i CODE x/s]. Use tree_int_cst_equal
1387 for comparison of steps. Convert types for index addition.
1388 (fold_binary): Adjust the callers to always dispatch to
1389 try_move_mult_to_index.
1390 * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
1391 expr with non-gimple ARRAY_REF offset.
1393 2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
1395 * fold-const.c (fold_indirect_ref_1): Avoid removing
1396 NOP_EXPRs with type qualifiers like const.
1398 2005-05-11 Richard Henderson <rth@redhat.com>
1401 * c-decl.c (finish_decl): Propagate the completed array type of
1402 a global variable into the binding.
1404 2005-05-10 Matt Kraai <kraai@ftbfs.org>
1406 * Makefile.in (gtype-desc.o, build/genautomata.o)
1407 (build/varray.o): Depend on $(VARRAY_H).
1409 2005-05-10 Diego Novillo <dnovillo@redhat.com>
1411 * tree-optimize.c (init_tree_optimization_passes): Re-organize
1412 optimization passes to do an initial batch of scalar cleanups.
1414 2005-05-10 Ian Lance Taylor <ian@airs.com>
1416 * read-rtl.c (struct macro_traverse_data): Define.
1417 (map_attr_string): New static function, broken out of
1418 apply_macro_to_string.
1419 (mode_attr_index, apply_mode_maps): New static functions.
1420 (apply_macro_to_string): Call map_attr_string.
1421 (apply_macro_to_rtx): Add mode_maps and infile parameters. Change
1423 (apply_macro_traverse): Expect data to point to a struct
1424 macro_traverse_data.
1425 (read_rtx): Add mode_maps local variable. Use mode_traverse_data
1426 to pass data through htab_traverse.
1427 (read_rtx_1): Add mode_maps parameter. Change all callers.
1428 Handle mode names which are attribute strings.
1429 * doc/md.texi (Substitutions): Rename from String Substitutions.
1430 Change references. Document using attributes as modes.
1432 2005-05-10 Zdenek Dvorak <dvorakz@suse.cz>
1434 * tree-cfg.c (tree_duplicate_sese_region): Update profile.
1435 * tree-optimize.c (init_tree_optimization_passes) Swap
1436 pass_ch and pass_profile.
1437 * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
1438 here. Remove rewrite_into_loop_closed_ssa call.
1440 2005-05-10 Adrian Straetling <straetling@de.ibm.com>
1442 * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
1444 (legitimate_reload_constant_p): Add check for const double zero.
1445 * config/s390/s390.md: Add comment for constraint letter 'G'.
1446 ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
1447 attributes for new case.
1448 * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
1449 s390_const_double_ok_for_constraint_p.
1450 * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
1453 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
1455 PR tree-optimization/21170
1456 * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
1457 rewrite_ssa_into_ssa in comments with update_ssa.
1459 2005-05-10 Zdenek Dvorak <dvorakz@suse.cz>
1461 * tree-ssa-loop-im.c: Include hashtab.h.
1462 (struct mem_ref_loc): New.
1463 (struct mem_ref): Describe the set of references with the same
1465 (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
1466 maybe_queue_var, fem_single_reachable_address,
1467 for_each_memref, single_reachable_address,
1468 is_call_clobbered_ref, determine_lsm_reg): Removed.
1469 (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
1470 hoist_memory_reference, memref_hash, memref_eq, memref_del,
1471 gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
1473 (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
1474 (determine_lsm_loop): Rewritten.
1475 (determine_lsm): Do not set stmt uids.
1477 2005-05-10 Adrian Straetling <straetling@de.ibm.com>
1479 * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
1482 2005-05-10 Adrian Straetling <straetling@de.ibm.com>
1484 * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
1485 ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
1486 ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
1488 2005-05-10 Jeff Law <law@redhat.com>
1490 * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
1491 thread_across_edge for any abnormal edges.
1493 2005-05-10 Richard Henderson <rth@redhat.com>
1495 * config/ia64/ia64.c (ia64_expand_atomic_op): New.
1496 * config/ia64/ia64-protos.h: Declare it.
1497 * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
1498 (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
1499 (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
1500 (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
1501 (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
1502 (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>. Zero
1503 extend result; use release semantics.
1504 (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
1505 (sync_val_compare_and_swap_<IMODE>): Update to match.
1507 2005-05-10 Richard Henderson <rth@redhat.com>
1509 * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
1510 before comparing it for success.
1512 2005-05-10 Richard Henderson <rth@redhat.com>
1514 * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
1515 no return value pattern.
1517 2005-05-10 Grigory Zagorodnev <grigory.zagorodnev@intel.com>
1518 H.J. Lu <hongjiu.lu@intel.com>
1520 * libgcov.c (create_file_directory): New function. Create
1521 directory for the given file name.
1522 (gcov_max_filename): New static var. Keeps size of the longest
1524 (gcov_exit): Always try to create directory for output
1525 file. Relocate each filename basing on environment vars.
1526 (__gcov_init): Remember the longest file name.
1527 * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
1528 * doc/gcov.texi (Cross-profiling): New node documenting
1529 cross-profiling management.
1530 * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
1532 2005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1534 * config/sparc/sparc.c (mem_min_alignment): Do not rely
1535 on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
1537 2005-05-10 Bob Wilson <bob.wilson@acm.org>
1539 * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
1540 case code to avoid one move instruction.
1541 (__umodsi3, __modsi3): Merge duplicated code sequences.
1543 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
1545 * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
1546 config/sh/sh.md, config/sh/superh.h: Fix comment typos.
1547 * doc/invoke.texi: Fix typos.
1549 * tree-data-ref.c (analyze_array_indexes, analyze_array,
1550 init_data_ref, access_functions_are_affine_or_constant_p,
1551 free_data_refs): Use VEC instead of VARRAY.
1552 * tree-data-ref.h (data_reference): Change the type of
1553 access_fns to VEC(tree,gc)*.
1554 (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
1556 2005-05-10 Gabor Loki <loki@gcc.gnu.org>
1559 * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
1560 * fold-const.c (fold): Expand the condition of reducing cond_expr.
1561 (contains_label_1, contains_label_p): New functions for checking
1562 labels in a sub-tree.
1564 2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
1567 * c-decl.c (pushdecl): When there is a declaration in the current
1568 scope and the declarations are external linkage, check for
1569 compatibility with the type in the external scope and update the
1570 type in the external scope with the composite type information.
1571 Do not form a composite type of the new type and the visible type
1572 if they are incompatible.
1574 2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
1576 * crtstuff.c: Revert part of 2005-05-08 Change.
1577 (IN_LIBGCC2): Define.
1579 2005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1581 * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
1582 remove redundant test.
1583 (fp_mov_p): Accept 0.
1584 (fp_high_losum_p): Remove redundant test.
1585 * config/sparc/predicates.md (const_high_operand): Explicitly test
1586 (not small_int_operand).
1587 (fp_const_high_losum_operand): New.
1588 * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'. Reorder.
1589 (movdi_insn_sp32_v9): Use canonical predicates.
1590 (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
1591 (movdi_insn_sp64_novis): Delete.
1592 (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
1593 (movsf_insn_novis): Delete.
1594 (movsf_insn_vis): Rename into movsf_insn.
1595 (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
1596 (movsf_lo_sum): Use fp_const_high_losum_operand.
1597 (movsf_high): Likewise.
1598 (movsf_high_losum splitter): Likewise.
1599 (mov<V32:mode> expander): Use register_or_zero_operand.
1600 (mov<V64:mode> expander): Likewise.
1601 (movdf_insn_sp32): Use register_or_zero_operand.
1602 (movdf_no_e_insn_sp32): Use register_or_zero_operand.
1603 Rename into movdf_insn_sp32_no_fpu.
1604 (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
1605 Rename into movdf_insn_sp32_v9_no_fpu.
1606 (movdf_insn_v9only_novis): Delete.
1607 (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
1608 (movdf_insn_sp64_novis): Delete.
1609 (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
1610 (movdf_no_e_insn_sp64): Use register_or_zero_operand.
1611 Rename into movdf_insn_sp64_no_fpu.
1612 (movtf expander): Use register_or_zero_operand.
1613 (movtf_insn_sp32): Delete.
1614 (movtf_insn_vis_sp32): Use register_or_zero_operand.
1615 Rename into movtf_insn_sp32.
1616 (movtf_no_e_insn_sp32): Use register_or_zero_operand.
1617 Rename into movtf_insn_sp32_no_fpu.
1618 (movtf_insn_hq_sp64): Delete.
1619 (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
1620 Rename into movtf_insn_sp64_hq.
1621 (movtf_insn_sp64): Delete.
1622 (movtf_insn_vis_sp64): Use register_or_zero_operand.
1623 Rename into movtf_insn_sp64.
1624 (movtf_no_e_insn_sp64): Use register_or_zero_operand.
1625 Rename into movtf_insn_sp64_no_fpu.
1627 2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
1629 * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
1630 gcc_assert and gcc_unreachable as appropriate.
1631 (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
1632 xstormy16_output_cbranch_si, xstormy16_split_move,
1633 xstormy16_initial_elimination_offset,
1634 xstormy16_encode_section_info, xstormy16_print_operand_address,
1635 xstormy16_expand_call, xstormy16_expand_arith,
1636 xstormy16_output_shift, xstormy16_init_builtins): Likewise.
1638 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
1640 * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
1641 const_copies to VEC(tree,heap)*.
1642 (new_elim_graph, delete_elim_graph, elim_graph_size,
1643 elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
1646 2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
1649 * doc/extend.texi (Type Attributes): Correct example syntax.
1651 2005-05-09 Joseph S. Myers <joseph@codesourcery.com>
1654 * doc/invoke.texi (-Wuninitialized): Update documentation.
1656 2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
1658 * arm.c (const_ok_for_arm): Use a faster algorithm.
1660 2005-05-09 David Edelsohn <edelsohn@gnu.org>
1663 * config/rs6000/rs6000.md (add_op2): New.
1664 (add<mode>3): Use it.
1666 2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
1668 * arm.c (arm_gen_constant): Add new heuristic for generating
1669 constant integers that can be expressed as the difference of two
1672 2005-05-09 Roger Sayle <roger@eyesopen.com>
1674 * c-tree.h (parser_build_unary_op): New prototype.
1675 * c-typeck.c (parser_build_unary_op): New function to construct
1676 a unary operation in the C parser.
1677 * c-parser.c (c_parser_unary_expression): Use the new function
1678 parser_build_unary_op when appropriate.
1680 2005-05-09 Mark Mitchell <mark@codesourcery.com>
1683 * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
1684 before outputting DWARF_FRAME_RETURN_COLUMN.
1686 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1688 * config/s390/s390.c: (s390_branch_condition_mask,
1689 s390_branch_condition_mnemonic, s390_extra_constraint_str,
1690 s390_const_ok_for_constraint_p, s390_expand_plus_operand,
1691 legitimize_pic_address, s390_emit_tls_call_insn,
1692 legitimize_tls_address, legitimize_tls_address,
1693 s390_expand_addcc, print_shift_count_operand, print_operand,
1694 addr_generation_dependency_p, annotate_constant_pool_refs,
1695 s390_split_branches, find_constant_pool_ref,
1696 replace_constant_pool_ref, s390_add_constant, s390_find_constant,
1697 s390_find_execute, s390_mainpool_start, s390_chunkify_start,
1698 s390_output_pool_entry, s390_function_value,
1699 s390_call_saved_register_used, s390_emit_call): Replace
1700 conditional aborts by gcc_assert and unconditional by gcc_unreachable.
1701 (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
1702 s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
1703 get_some_local_dynamic_name, s390_function_arg_size,
1704 s390_function_arg_advance, s390_function_arg,
1705 s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
1706 default case by gcc_unreachable.
1707 * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
1708 conditional abort by gcc_assert.
1709 ("doloop_si31"): Replace abort in last else by gcc_unreachable.
1710 ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
1712 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1714 * config/s390/s390.c: (s390_decompose_address,
1715 tls_symbolic_operand, legitimate_pic_operand_p,
1716 legitimate_constant_p, legitimate_reload_constant_p,
1717 s390_expand_plus_operand, legitimate_address_p,
1718 legitimate_la_operand_p, ): Remove 'register' from signature.
1719 (symbolic_reference_mentioned_p,
1720 tls_symbolic_reference_mentioned_p): Remove 'register' from local
1721 variable declarations.
1722 (legitimize_address): Remove 'register' from
1723 signature and local variable declarations.
1725 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1727 * config/s390/s390-protos.h: (s390_match_ccmode,
1728 s390_match_ccmode_set, reg_used_in_mem_p,
1729 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1730 legitimate_la_operand_p, preferred_la_operand_p,
1731 s390_short_displacement, addr_generation_dependency_p,
1732 legitimate_reload_constant_p, legitimate_address_p): Change return type
1734 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1735 * config/s390/s390.c: (s390_match_ccmode,
1736 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1737 legitimate_reload_constant_p): Change return type into 'bool'.
1738 (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
1739 Likewise. Additionally adapted comment.
1740 (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
1741 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1742 (s390_decompose_address): Change the type of the internal flags
1743 "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
1744 (struct s390_address): Change type of "pointer" into bool.
1745 * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
1746 Adapt calls for 's390_tm_ccmode' to the new signature.
1748 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1750 * config/s390/s390.c: (s390_match_ccmode_set,
1751 s390_branch_condition_mnemonic, s390_short_displacement,
1752 s390_decompose_address, get_thread_pointer, legitimize_tls_address,
1753 print_shift_count_operand, get_some_local_dynamic_name,
1754 get_some_local_dynamic_name_1, reg_used_in_mem_p,
1755 addr_generation_dependency_p, s390_split_branches,
1756 annotate_constant_pool_refs, find_constant_pool_ref,
1757 replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
1758 s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
1759 s390_register_info, s390_frame_info, s390_init_frame_layout,
1760 s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
1761 restore_gprs, s390_function_arg_size, s390_function_arg_float,
1762 s390_init_machine_status, s390_assemble_integer, s390_handle_option,
1763 s390_encode_section_info, s390_cannot_force_const_mem,
1764 s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
1765 s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
1766 s390_adjust_priority, s390_issue_rate,
1767 s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
1768 s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
1769 s390_build_builtin_va_list, s390_gimplify_va_arg,
1770 s390_function_ok_for_sibcall, s390_call_saved_register_used,
1771 s390_pass_by_reference, s390_fixed_condition_code_regs,
1772 s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
1773 s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
1774 s390_chunkify_cancel, s390_start_pool, s390_end_pool,
1775 s390_add_pool_insn, s390_find_pool, s390_add_constant,
1776 s390_find_constant, s390_add_execute, s390_find_execute,
1777 s390_execute_label, s390_execute_target, s390_dump_pool,
1778 s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
1779 Move target macro definitions to the end of the file. Move several
1780 functions within the file to assure correct compiling.
1782 2005-05-09 Steven Bosscher <stevenb@suse.de>
1784 * calls.c (purge_reg_equiv_notes): Remove, fold into...
1785 (fixup_tail_calls): ...here. Only look at insns between the
1786 start of the function and the FUNCTION_BEG insn note.
1788 * gcse.c (one_cprop_pass): Fix typos in dumps.
1790 * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
1792 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1794 * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
1795 * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
1796 "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
1797 Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
1799 ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
1800 '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
1801 ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
1804 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1806 * config/s390/s390.md: ("gf") New mode attribute.
1807 ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
1808 "fixuns_truncsfsi2"): Merge.
1809 ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
1810 ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
1811 "fix_truncsfsi2_ieee"): Merge.
1813 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1815 * config/s390/s390.md: ("FPR") New mode macro.
1816 ("de", "dee"): New mode attributes.
1817 ("cmpdf", "cmpsf"): Merge.
1818 ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
1819 ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
1820 ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
1821 ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
1822 ("floatdidf2", "floatdisf2"): Merge.
1823 ("adddf3", "addsf3"): Merge.
1824 ("*adddf3", "*addsf3"): Merge.
1825 ("*adddf3_cc", "*addsf3_cc"): Merge.
1826 ("*adddf3_cconly", "*addsf3_cconly"): Merge.
1827 ("*adddf3_ibm", "*addsf3_ibm"): Merge.
1828 ("subdf3", "subsf3"): Merge.
1829 ("*subdf3", "*subsf3"): Merge.
1830 ("*subdf3_cc", "*subsf3_cc"): Merge.
1831 ("*subdf3_cconly", "*subsf3_cconly"): Merge.
1832 ("*subdf3_ibm", "*subsf3_ibm"): Merge.
1833 ("muldf3", "mulsf3"): Merge.
1834 ("*muldf3", "*mulsf3" "): Merge.
1835 ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
1836 ("*fmadddf", "*fmaddsf"): Merge.
1837 ("*fmsubdf", "*fmsubsf"): Merge.
1838 ("divdf3", "divsf3"): Merge.
1839 ("*divdf3", "*divsf3"): Merge.
1840 ("*divdf3_ibm", "*divsf3_ibm"): Merge.
1841 ("negdf2", "negsf2"): Merge.
1842 ("*negdf2_cc", "*negsf2_cc"): Merge.
1843 ("*negdf2_cconly", "*negsf2_cconly"): Merge.
1844 ("*negdf2", "*negsf2"): Merge.
1845 ("*negdf2_ibm", "*negsf2_ibm"): Merge.
1846 ("absdf2", "abssf2"): Merge.
1847 ("*absdf2_cc", "*abssf2_cc"): Merge.
1848 ("*absdf2_cconly", "*abssf2_cconly"): Merge.
1849 ("*absdf2", "*abssf2"): Merge.
1850 ("*absdf2_ibm", "*abssf2_ibm"): Merge.
1851 ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
1852 ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
1853 ("*negabsdf2", "*negabssf2"): Merge.
1854 ("sqrtdf2", "sqrtsf2"): Merge.
1856 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1858 * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
1860 * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
1861 "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
1862 ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
1863 "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
1865 * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
1866 fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
1867 "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
1868 fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
1869 ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
1870 "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
1871 "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
1872 "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
1873 "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
1874 "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
1875 "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
1876 "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
1877 "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
1878 "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
1879 "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
1880 "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
1882 ("*divsf3"): Additionally rename second pattern to
1884 ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
1885 "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
1886 "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
1887 "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
1888 "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
1889 'type values' and rename 'type' value.
1890 ("*addsf3"): Additionally rename second pattern to
1893 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1895 * config/s390/s390.md: ("SHIFT"): New mode macro.
1896 ("lr", "shift"): New mode attributes.
1897 ("ashldi3", "lshrdi3"): Merge.
1898 ("*ashldi3_31", "*lshrdi3"_31): Merge.
1899 ("*ashldi3_64", "*lshrdi3"_64): Merge.
1900 ("ashlsi3", "lshrsi3"): Merge.
1902 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1904 * config/s390/s390.md: ("DSI", "SCOND"): New mode
1906 ("E", "g"): New mode attributes.
1907 ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
1908 ("*adddi3_alc", "*addsi3_alc"): Merge.
1909 ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
1910 ("*subdi3_slb", "*subsi3_slb"): Merge.
1911 ("adddicc", "addsicc"): Merge.
1912 ("*sconddi", "*scondsi"): Merge.
1913 ("*sconddi_neg", "*scondsi_neg"): Merge.
1914 ("sltu", "sgtu", "sleu", "sgeu"): Merge.
1915 ("negdi2", "negsi2"): Extract expander pattern from
1916 "negsi2" and merge with "negdi2".
1917 ("*negdi2"): Merge with instruction pattern of "negsi2".
1918 ("*negdi2_cc", "*negsi2_cc"): Merge.
1919 ("*negdi2_cconly", "*negsi2_cconly"): Merge.
1920 ("rotldi3", "rotlsi3"): Merge.
1922 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1924 * config/s390/s390.md: ("hc"): New mode attribute.
1925 ("extendhidi2", "extendqidi2"): Merge.
1926 ("*extendhidi2", "*extendqidi2"): Merge.
1927 ("extendhisi2", "extendqisi2"): Merge.
1928 ("zero_extendhidi2", "zero_extendqidi2"): Merge.
1929 ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
1930 Merged 2 define_split.
1931 ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
1932 ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
1934 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1936 * config/s390/s390.md: ("COMPARE"): New mode macro.
1937 ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
1938 "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
1939 "bungt", "bunle", "bunge", "bltgt"): Merge.
1941 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1943 * config/s390/s390.md: ("INT"): New mode macro.
1944 ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
1947 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1949 * config/s390/s390.md: ("GPR", "P"): New mode macros.
1950 ("cmpdi", "cmpsi"): Merge.
1951 ("strlendi", "strlensi"): Merge.
1952 ("*strlendi", "*strlensi"): Merge.
1953 ("movmemdi", "movmemsi"): Merge.
1954 ("clrmemdi", "clrmemsi"): Merge.
1956 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1958 * config/s390/s390.md: ("HQI"): New mode macro.
1959 ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
1960 ("*tmhi_full", "*tmqi_full"): Merge.
1961 ("*tsthiCCT", "*tstqiCCT"): Merge.
1962 ("*tsthi", "*tstqi"): Merge.
1963 ("*tsthi_cconly", "tstqi_cconly"): Merge.
1964 ("*sethighhisi", "*sethighqisi"): Merge.
1966 2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
1968 * crtstuff.c, integrate.h, tree-scalar-evolution.h,
1969 config/alpha/unicosmk.h, config/arc/arc.md,
1970 config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
1971 config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
1972 config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
1973 config/arm/semi.h, config/arm/uclinux-elf.h,
1974 config/arm/wince-pe.h, config/fr30/fr30.c,
1975 config/rs6000/altivec.h: Update copyright.
1977 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
1979 * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
1980 gcc_assert and gcc_unreachable as appropriate.
1981 (pdp11_output_function_epilogue, output_move_double,
1982 output_move_quad, print_operand_address, output_jump,
1983 output_addr_const_pdp11): Likewise.
1984 * config/pdp11/pdp11.h (FUNCTION_PROFILER,
1985 ASM_OUTPUT_ALIGN): Likewise.
1986 * config/pdp11/pdp11.md: Likewise.
1987 (extendhisi2, subhi3, subqi3): Likewise.
1989 2005-05-09 David Edelsohn <edelsohn@gnu.org>
1992 * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
1995 2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
1997 * config/ia64/ia64.c: Fix a comment typo.
1999 2005-05-09 Richard Earnshaw <rearnsha@arm.com>
2002 * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
2003 (arm_override_options): Use them instead of manifest constants. Don't
2004 allow -march to override the -mtune setting.
2006 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
2008 * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
2009 (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
2010 (function_arg_advance, function_arg, save_restore_insns,
2011 iq2000_expand_prologue, iq2000_output_conditional_branch,
2012 expand_one_builtin, print_operand):
2013 * config/iq2000/iq2000.md (tablejump): Likewise.
2015 2005-05-09 David Ung <davidu@mips.com>
2017 * config/mips/mips.h (processor_type): Add names for the 24K.
2018 * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
2020 * config/mips/mips.md (cnv_mode): New attribute for recording the
2021 conversion types of float convert insns.
2022 (cpu): Add 24k and 24kx.
2023 (include): Include 24k.md file.
2024 (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
2025 (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
2026 (floatdisf2): Setup cnv_mode.
2027 (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
2029 * config/mips/24k.md: New file, contains 24k DFA pipeline
2032 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
2034 * config/sh/sh.c (print_operand_address): Use gcc_assert and
2035 gcc_unreachable as appropriate.
2036 (print_operand, prepare_move_operands, prepare_scc_operands,
2037 output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
2038 gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
2039 fixup_mova, gen_far_branch, sh_reorg, split_branches,
2040 final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
2041 sh_set_return_address, sh_setup_incoming_varargs,
2042 initial_elimination_offset, sh_pch_valid_p, get_free_reg,
2043 sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
2044 check_use_sfunc_addr): Likewise.
2045 * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
2046 * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2047 * config/sh/symbian.c (sh_symbian_mark_dllexport,
2048 sh_symbian_mark_dllimport): Likewise.
2049 * config/sh/sh.md: Likewise.
2050 (movdicc, call_pop, call_value_pop, casesi_worker_1,
2051 casesi_worker_2, casesi_shift_media, casesi_load_media,
2052 return_media): Likewise.
2054 2005-05-08 Roger Sayle <roger@eyesopen.com>
2057 * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
2060 2005-05-08 Richard Henderson <rth@redhat.com>
2062 * config/alpha/alpha.c (adjust_address): Fix typo last change.
2064 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2066 * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
2067 and -1 can happen in reg_renumber when no hard register is assigned.
2069 2005-05-08 Steven Bosscher <stevenb@suse.de>
2070 Kazu Hirata <kazu@cs.umass.edu>
2072 PR tree-optimization/14841, tree-optimization/15838
2073 * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
2074 (evaluate_stmt): Call it.
2076 2005-05-08 Jakub Jelinek <jakub@redhat.com>
2078 * config/ia64/ia64.c (ia64_override_options): Don't set
2079 ia64_flag_var_tracking and clear flag_var_tracking here...
2080 (ia64_file_start): ... but here.
2082 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
2084 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
2085 and gcc_unreachable as appropriate.
2086 (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
2087 m68hc11_gen_highpart, print_operand, print_operand_address,
2088 m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
2089 m68hc11_gen_movhi): Likewise.
2090 * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
2091 * config/m68hc11/m68hc11.md: Reword comment.
2093 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2096 * config/m68hc11/predicates.md (splitable_operand): An immediate is
2099 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2101 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
2102 the 68HC12 address indirect addressing mode as it is not supported by
2104 * config/m68hc11/m68hc11-protos.h
2105 (m68hc11_valid_addressing_p): Declare.
2106 (m68hc11_add_mode): Declare.
2107 * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
2108 register_indirect_p and export it.
2109 (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
2110 instruction so that it is part of the good BB.
2111 (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
2112 addressing with movw.
2113 (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
2115 * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
2116 ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
2117 * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
2119 ("*movhi_68hc12"): Handle movhi_const0.
2120 ("*subhi3", "subqi3"): Use general_operand for operand 1.
2121 ("*subhi3_zext"): Likewise.
2123 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2126 * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
2127 operand 1 and fix constraints.
2128 ("mulqihi3"): Use general_operand for operand 2.
2130 2005-05-08 Julian Brown <julian@codesourcery.com>
2131 H.J. Lu <hongjiu.lu@intel.com>
2132 Paul Brook <paul@codesourcery.com>
2134 * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
2135 GNU linker. Support linker version x.x.x.x.x. Require GNU linker
2136 20050308/2.16.0 or newer for comdat group.
2137 * configure: Regenerated.
2138 * config.in: Regenerated.
2139 * varasm.c (default_function_rodata_section): Put .rodata section in
2140 COMDAT group when necessary.
2141 (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
2143 (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
2146 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
2148 * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
2150 * tree-flow.h (num_referenced_var, referenced_var): Likewise.
2151 * tree-into-ssa.c (mark_def_site_blocks): Likewise.
2152 * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
2153 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2155 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2158 * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
2159 64-bit constants on 64-bit hosts.
2160 (m68hc11_split_logical): Simplify.
2161 (m68hc11_split_move): Likewise.
2163 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
2164 Paolo Bonzini <bonzini@gnu.org>
2166 * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
2167 * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
2168 * configure.ac (enable_checking): Fix typos in runtime_checking.
2169 (ENABLE_RUNTIME_CHECKING): Mark as target template.
2170 (xm_file): Prepend auto-host.h
2171 (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
2172 * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
2174 * crtstuff.c: Do not include auto-host.h.
2175 (IN_LIBGCC2): Do not define.
2176 * gcov-io.h: Include tconfig.h, not auto-host.h.
2177 * libgcc2.c: Do not include auto-host.h.
2178 (abort): Do not undefine.
2179 * libgcov.c: Remove unneeded comment about config.h.
2180 * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
2181 * config.in, configure: Regenerated.
2183 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
2184 Falk Hueffner <falk@debian.org>
2186 * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
2187 and gcc_unreachable as appropriate.
2188 (get_aligned_mem, get_unaligned_address,
2189 alpha_emit_set_long_const, alpha_emit_conditional_branch,
2190 alpha_emit_setcc, alpha_emit_conditional_move,
2191 alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
2192 alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
2193 alpha_expand_unaligned_load, alpha_expand_block_move,
2194 alpha_expand_zap_mask, get_trap_mode_suffix,
2195 get_round_mode_suffix, get_some_local_dynamic_name,
2196 print_operand_address, function_arg, alpha_return_in_memory,
2197 function_value, alpha_expand_builtin,
2198 alpha_initial_elimination_offset, alpha_expand_epilogue,
2199 summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
2200 alphaev5_next_group, alpha_align_insns,
2201 unicosmk_initial_elimination_offset, unicosmk_unique_section,
2202 unicosmk_ssib_name): Likewise.
2203 * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2204 * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
2205 ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
2206 * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
2207 ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2208 * config/alpha/alpha.md (*divmodsi_internal_er,
2209 *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
2210 call_nt, call_umk, call_vms, call_value, sibcall_value,
2211 call_value_osf, call_value_nt, call_value_vms, call_value_umk,
2212 *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
2213 * config/alpha/predicates.md (input_operand): Likewise.
2215 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
2217 * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
2218 gcc_unreachable, as appropriate.
2219 (frv_function_prologue, frv_alloc_temp_reg,
2220 frv_initial_elimination_offset, frv_expand_block_move,
2221 frv_expand_block_clear, frv_print_operand_jump_hint,
2222 frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
2223 frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
2224 frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
2225 frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
2226 frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
2227 frv_in_small_data_p, frv_asm_out_constructor,
2228 frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
2229 * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
2230 *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
2231 *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
2232 sibcall_value, casesi): Likewise.
2234 * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
2235 gcc_unreachable as appropriate.
2236 (print_operand_address, mn10300_print_reg_list, expand_prologue,
2237 expand_epilogue, notice_update_cc, initial_offset,
2238 mn10300_address_cost_1): Likewise.
2239 * config/mn10300/mn10300.md: Likewise.
2240 (absdf2, abssf2, negdf2, negsf2): Likewise.
2242 2005-05-08 Richard Sandiford <rsandifo@redhat.com>
2245 * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
2247 * config/mips/mips.md (swapped_fcond): New code macro and attribute.
2248 (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
2249 including sunge_<mode> and sungt_<mode>.
2251 2005-05-08 Richard Sandiford <rsandifo@redhat.com>
2253 * integrate.h (get_hard_reg_initial_val): Change type of register
2254 parameter from int to unsigned int.
2255 (has_hard_reg_initial_val): Likewise.
2256 * integrate.c (get_hard_reg_initial_val): Likewise.
2257 (has_hard_reg_initial_val): Likewise. Remove cast to unsigned int.
2259 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
2261 * except.c (eh_status): Change the type of ttype_data to
2263 (add_ttypes_entry, assign_filter_values,
2264 output_function_exception_table): Use VEC instead of VARRAY.
2266 2005-05-07 David Edelsohn <edelsohn@gnu.org>
2268 * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
2270 2005-05-07 Paul Brook <paul@codesourcery.com>
2272 * Makefile.in: Fix dependencies.
2273 (GCOV_IO_H, VARRAY_H): Set.
2275 2005-05-07 Anthony Green <green@redhat.com>
2278 * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
2279 x$STMP_FIXPROTO test.
2280 * configure: Rebuilt.
2282 2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
2284 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
2285 inappropriate feature test macros if flag_iso.
2287 2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
2289 * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
2291 2005-05-07 Hans-Peter Nilsson <hp@axis.com>
2294 * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
2295 ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
2296 Handle moved operand being in special register.
2297 ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
2298 presumed working insn.
2299 (mover2side): Add FIXME.
2301 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
2303 * integrate.c (get_func_hard_reg_initial_val): Delete.
2304 (has_func_hard_reg_initial_val): Delete.
2305 (get_hard_reg_initial_val): Inline the old implementation of
2306 get_func_hard_reg_initial_val. Use has_hard_reg_initial_val
2307 instead of has_func_hard_reg_initial_val to test for an existing
2308 pseudo. Only create an rtx if a new initial value entry is needed.
2309 (has_hard_reg_initial_val): Scan the initial value list directly.
2310 Don't create an rtx.
2312 2005-05-07 David Edelsohn <edelsohn@gnu.org>
2314 * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
2316 * config.in (HAVE_AS_POPCNTB): New.
2317 * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
2318 (HAVE_AS_POPCNTB): New.
2319 * configure: Regenerated.
2320 * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
2321 * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
2322 MASK_POPCNTB. Uncomment rs6000_sched_restricted_insns_priority
2323 and rs6000_sched_costly_dep.
2324 * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
2325 (TARGET_XL_COMPAT): Delete.
2326 * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
2327 (popcount<mode>2): New.
2328 (popcntb<mode>2): New.
2329 * config/rs6000/rs6000.opt (mpopcntb): New.
2331 * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
2332 if variable name exists.
2334 2005-05-07 Matt Kraai <kraai@ftbfs.org>
2336 * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
2338 2005-05-07 Richard Henderson <rth@redhat.com>
2341 * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
2342 with constant offsets.
2344 2005-05-07 Nathan Sidwell <nathan@codesourcery.com>
2346 * config/v850/v850.c (print_operand): Use gcc_assert and
2347 gcc_unreachable, as appropriate.
2348 (print_operand_address, v850_handle_data_area_attribute,
2349 v850_encode_data_area, construct_restore_jr, construct_save_jarl,
2350 v850_insert_attributes, construct_prepare_instruction): Likewise.
2351 * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2352 * config/v850/v850.md (movsicc, *sasf_1): Likewise.
2354 2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
2356 * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
2357 config/rs6000/rs6000.h: Fix comment typos.
2359 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
2361 * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
2362 * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
2363 (mips_scalar_mode_supported_p): Delete.
2365 2005-05-06 Eric Christopher <echristo@redhat.com>
2367 * config/mips/mips.opt: Remove -mint64 option.
2368 * config/mips/mips.c (override_options): Remove -mint64
2370 * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
2371 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
2372 64-bit integer handling.
2373 * doc/invoke.texi (Option Summary): Remove -mint64 for
2376 2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
2378 PR tree-optimization/19401
2379 * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
2380 * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
2381 (estimated_unrolled_size): New function.
2382 (try_unroll_loop_completely, canonicalize_loop_induction_variables,
2383 tree_unroll_loops_completely): Always unroll loops if the code size
2385 * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
2386 loops should be unrolled completely.
2387 (gate_tree_complete_unroll): Run complete unrolling unconditionally.
2389 2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
2391 PR rtl-optimization/21254
2392 * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
2393 assumptions for loops that otherwise do not roll.
2394 (find_simple_exit): Prefer # of iterations that is guaranteed
2396 * loop-unroll.c (decide_peel_once_rolling,
2397 decide_peel_completely): Check whether the loop is infinite.
2399 2005-05-06 Pat Haugen <pthaugen@us.ibm.com>
2401 * config/rs6000/sysv4.opt: Fix typo.
2403 2005-05-06 Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua>
2404 Jakub Jelinek <jakub@redhat.com>
2407 * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
2408 for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
2409 Don't use rep; movs{l,q} if the repetition count is really small,
2410 instead use a sequence of movs{l,q} instructions.
2412 2005-05-06 Jeff Law <law@redhat.com>
2414 PR tree-optimization/21380
2415 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2416 thread through a block with no preds.
2418 2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
2420 * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
2421 ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
2422 add_call_read_ops): Use VEC instead of VARRAY.
2424 2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
2426 * config/mcore/mcore.c (mcore_print_operand_address): Use
2427 gcc_assert and gcc_unreachable as appropriate.
2428 (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
2429 mcore_output_andn, output_inline_const, mcore_output_move,
2430 mcore_output_movedouble, mcore_expand_block_move,
2431 layout_mcore_frame, mcore_initial_elimination_offset,
2432 mcore_expand_prolog, mcore_mark_dllexport,
2433 mcore_mark_dllimport): Likewise.
2434 * config/mcore/mcore.h (switch_to_section): Likewise.
2435 * config/mcore/mcore.md: Likewise.
2437 2005-05-06 Aldy Hernandez <aldyh@redhat.com>
2439 * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
2440 TARGET_PROFILE_KERNEL.
2442 * config/rs6000/rs6000.c (output_profile_hook): Add comment to
2443 TARGET_PROFILE_KERNEL use.
2445 2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
2447 * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
2448 and gcc_unreachable, as appropriate.
2449 (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
2450 m32r_expand_prologue, m32r_output_function_epilogue,
2451 m32r_legitimize_pic_address, m32r_print_operand_address,
2452 emit_cond_move, m32r_function_symbol,
2453 m32r_output_block_move): Likewise.
2454 * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2455 * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
2456 *rev_zero_branch_insn): Likewise.
2458 2005-05-06 Jakub Jelinek <jakub@redhat.com>
2461 * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
2462 if both NEWDECL and OLDDECL are already weak.
2464 2005-05-06 Richard Sandiford <rsandifo@redhat.com>
2466 * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2468 2005-05-05 J"orn Rennecke <joern.rennecke@st.com>
2469 Kaz Kojima <kkojima@gcc.gnu.org>
2471 * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
2474 2005-05-05 Aldy Hernandez <aldyh@redhat.com>
2475 David Edelsohn <edelsohn@gnu.org>
2477 * config.gcc: Add .opt magic for the rs6000 ports.
2479 * doc/invoke.texi: Document -mabi= option properly. Document
2480 -misel and -mno-sel. Document -mspe and -mno-spe. Document
2481 -mvrsave and -mno-vrsave. Document deprecation of -mspe= and
2484 * config/rs6000/aix.h: Remove XL_COMPAT stuff. Remove
2485 SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES. Define
2488 * config/rs6000/aix.opt: New.
2489 * config/rs6000/aix41.opt: New.
2490 * config/rs6000/aix64.opt: New.
2491 * config/rs6000/darwin.opt: New.
2492 * config/rs6000/linux64.opt: New.
2493 * config/rs6000/rs6000.opt: New.
2494 * config/rs6000/sysv4.opt: New.
2496 * config/rs6000/sysv4.h: Delete definitions of MASK_* and
2497 associated TARGET_*. Remove SUBTARGET_OPTIONS,
2499 Define TARGET_USES_SYSV4_OPT.
2500 * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
2501 * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES. Define
2502 TARGET_USES_AIX64_OPT.
2503 * config/rs6000/aix51.h: Same.
2504 * config/rs6000/aix52.h: Same.
2505 * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
2506 MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
2507 Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
2508 Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
2509 * config/rs6000/linux64.h: Use
2510 rs6000_explicit_options. Remove EXTRA_SUBTARGET_SWITCHES.
2512 * config/rs6000/rs6000.c: Remove definitions of
2513 rs6000_sched_restricted_insns_priority,
2514 rs6000_long_double_size_string, rs6000_altivec_vrsave,
2515 rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
2516 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2517 rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
2518 rs6000_alignment_string. Define rs6000_explicit_options.
2519 (rs6000_parse_abi_options): Remove.
2520 (rs6000_parse_alignment_option): Remove.
2521 (rs6000_parse_float_gprs_option): Remove.
2522 (rs6000_handle_option): New. Define TARGET_HANDLE_OPTION. Define
2523 TARGET_DEFAULT_TARGET_FLAGS.
2524 (rs6000_override_options): Revamp to use new .opt machinery.
2526 * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
2527 of new .opt machinery. Remove target_flags. Redefine
2528 TARGET_MFCRF and TARGET_POWERPC64. Remove TARGET_SWITCHES,
2529 SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
2530 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2531 rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
2532 rs6000_longcall_switch, rs6000_default_long_calls,
2533 rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
2534 rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
2535 TARGET_ALTIVEC_VRSAVE.
2537 2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
2539 * config.gcc (hppa1.1-*-rtems*): Remove.
2540 * config/pa/rtems.h: Remove.
2542 2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
2544 * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
2545 Exclude roe/603e multilib variants.
2547 2005-05-04 Denis Chertykov <denisc@overta.ru>
2550 * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
2553 2005-05-05 Richard Sandiford <rsandifo@redhat.com>
2555 * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
2556 arm/pe.opt to $extra_options.
2557 * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
2558 (target_float_abi_name, target_float_switch, target_abi_name)
2559 (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
2560 (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
2561 (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
2562 (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
2563 (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
2564 (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
2565 (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
2566 (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
2567 (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
2568 (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
2569 (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
2570 (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
2571 (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
2572 (TARGET_OPTIONS, arm_cpu_select, arm_select, structure_size_string)
2573 (arm_pic_register_string): Delete.
2574 (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
2576 (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
2577 * config/arm/coff.h (TARGET_DEFAULT): Likewise.
2578 * config/arm/elf.h (TARGET_DEFAULT): Likewise.
2579 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
2580 * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
2581 * config/arm/semi.h (TARGET_DEFAULT): Likewise.
2582 * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
2583 * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
2584 * config/arm/pe.h (TARGET_DEFAULT): Likewise.
2585 (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
2586 (SUBTARGET_SWITCHES): Delete.
2587 * config/arm/arm.c (target_float_switch): Delete.
2588 (arm_cpu_select): Moved from config/arm/arm.h.
2589 (target_fpu_name, target_fpe_name, target_float_abi_name)
2590 (target_abi_name, structure_size_string, arm_pic_register_string)
2591 (arm_select): Make static.
2592 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2593 (arm_handle_option): New function.
2594 (arm_override_options): Update target_flags checks for new mask names.
2595 Remove target_float_switch code.
2596 (arm_expand_prologue, thumb_expand_prologue): Check
2597 !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
2598 * config/arm/arm.opt, config/arm/pe.opt: New files.
2600 2005-05-05 Nathan Sidwell <nathan@codesourcery.com>
2602 * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
2603 gcc_unreachable as appropriate.
2604 (arc_double_limm_p, arc_setup_incoming_varargs,
2605 arc_compute_function_type, arc_output_function_prologue,
2606 arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
2607 output_shift, arc_print_operand, arc_print_operand_address,
2608 arc_final_prescan_insn): Likewise.
2609 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2611 2005-05-04 Geoffrey Keating <geoffk@apple.com>
2613 * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
2618 (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
2619 add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
2620 clz<mode>2, ctz<mode>2, ffs<mode>2): New.
2621 (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
2622 (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
2623 (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
2624 (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
2625 (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
2627 2005-05-05 Paul Brook <paul@codesourcery.com>
2629 * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
2630 cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
2631 regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
2632 and tree-data-ref.h with *_H variables.
2634 2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
2636 * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
2638 2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
2640 * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
2642 2005-05-04 Gerald Pfeifer <gerald@pfeifer.com>
2644 * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
2646 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
2648 * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
2649 setting of vrsave register for current function after
2650 call to save_world is emitted.
2652 2005-05-05 Hans-Peter Nilsson <hp@bitrange.com>
2654 * config/mmix/predicates.md: New file.
2655 * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
2656 (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
2657 (mmix_foldable_comparison_operator, mmix_comparison_operator)
2658 (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
2659 * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
2661 * config/mmix/mmix.md: Include predicates.md.
2662 ("call", "call_value"): Force address to register if it isn't a
2663 mmix_symbolic_or_address_operand.
2665 2005-05-04 Andrew MacLeod <amacleod@redhat.com>
2667 * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
2668 the flags are of appropriate types.
2669 (num_ssa_operands): Generalize using the generic interface.
2670 * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
2673 2005-05-04 Richard Sandiford <rsandifo@redhat.com>
2675 * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
2676 (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
2678 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
2680 * tree-outof-ssa.c (edge_leader, stmt_list,
2681 analyze_edges_for_bb): Use VEC instead of VARRAY.
2682 (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
2683 (perform_edge_inserts): Call init_analayze_edges_for_bb and
2684 fini_analayze_edges_for_bb.
2686 2005-05-04 James E Wilson <wilson@specifixinc.com>
2689 * gcc.c (process_command): In the second argv scan loop, ignore
2690 Xassembler and Xpreprocessor, along with their argument.
2692 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
2694 * tree-flow-inline.h, tree-ssa-operands.c,
2695 tree-ssa-operands.h, tree-ssa-opfinalize.h:
2696 Likewise. tree-vn.c: Fix comment typos.
2697 * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
2699 2005-05-04 Paolo Bonzini <bonzini@gnu.org>
2701 * doc/tm.texi (Target Hooks): Document
2702 TARGET_RESOLVE_OVERLOADED_BUILTIN.
2704 2005-05-04 Paul Brook <paul@codesourcery.com>
2706 * Makefile.in: Change dependencies on target.h to $(TARGET_H).
2708 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
2710 * dwarf2out.c (incomplete_types, retry_incomplete_types,
2711 gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
2714 * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
2715 get_expansion, expand_var_during_unrolling,
2716 insert_var_expansion_initialization,
2717 combine_var_copies_in_loop_exit, release_var_copies): Use VEC
2720 * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
2723 2004-05-03 Andrew Pinski <pinskia@physics.uc.edu>
2726 * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
2727 the same as INTEGER_TYPE.
2728 (fold_binary): Fold "bool_var != 0" to bool_var.
2729 Fold "bool_var == 1" to bool_var.
2731 2004-05-03 Richard Henderson <rth@redhat.com>
2734 * function.c (instantiate_virtual_regs_in_insn): Use the mode
2735 from recog_data instead of insn_data.
2737 2005-05-03 DJ Delorie <dj@redhat.com>
2739 * common.opt (fdiagnostics-show-option): No variable is needed.
2740 * diagnostic.h (diagnostic_context): Add show_option_requested flag.
2741 * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
2742 (diagnostic_report_diagnostic): Test for enabled diagnostics here.
2743 Save and restore original message format. Use flag in context
2745 (warning): Don't test for enabled warnings here.
2746 * opts.c (common_handle_option): Handle -fdiagnostics-show-option
2749 2005-05-04 Kelley Cook <kcook@gcc.gnu.org>
2751 * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
2752 * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
2753 * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
2754 * aclocal.m4: Don't include accross.m4.
2755 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2756 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2757 * configure, config.in: Regenerate.
2759 2005-05-04 Jakub Jelinek <jakub@redhat.com>
2762 * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
2763 (clear_storage): Add argument.
2764 * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
2765 Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
2767 (emit_block_move): Handle BLOCK_OP_TAILCALL method.
2768 (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
2769 (store_expr, store_constructor): Adjust callers.
2770 * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
2771 to emit_block_move if CALL_EXPR_TAILCALL (exp).
2772 (expand_builtin_memmove): Add ORIG_EXP argument, copy
2773 CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
2774 (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
2775 with EXP. Pass EXP to expand_builtin_memmove.
2776 (expand_builtin_memset): Add ORIG_EXP argument, pass
2777 BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
2778 (expand_builtin_bzero): Replace ARGLIST argument with EXP.
2779 Pass EXP to expand_builtin_memset.
2780 (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
2782 (expand_builtin_strncmp): Likewise.
2783 (expand_builtin_printf): Replace ARGLIST argument with EXP.
2784 Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
2785 (expand_builtin_fprintf): Likewise.
2786 (expand_builtin): Adjust calls to
2787 expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
2789 * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
2792 PR rtl-optimization/21239
2793 * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
2795 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
2797 * tree-flow.h (tree_ann_common_d): Move aux to ...
2798 (stmt_ann_d): ... here.
2799 * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2800 move_computations_stmt, schedule_sm): Update references to
2802 * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2804 * tree-cfg.c (remove_bb): Remove a redundant call to
2806 * tree-if-conv.c (replace_phi_with_cond_modify_expr):
2809 2005-05-03 Richard Henderson <rth@redhat.com>
2811 * config/rs6000/rs6000.c: Remove conflict markers.
2813 * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
2815 2005-05-03 James E Wilson <wilson@specifixinc.com>
2817 * dwarf2out.c (lookup_filename): Call maybe_emit_file.
2819 2005-05-03 DJ Delorie <dj@redhat.com>
2821 * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
2822 decide if the warning will be printed.
2823 * calls.c (expand_call): Likewise.
2824 * function.c (init-function_start): Likewise.
2826 * common.opt (-fdiagnostics-show-option): New.
2827 * opts.c (option_enabled): Accept the option index instead of a
2828 pointer to the option descriptor.
2829 * opts.h (option_enabled): Likewise.
2830 * toplev.c (print_switch_values): Pass option index, not option
2832 * diagnostic.h (diagnostic_info): Add option_index.
2833 * diagnostic.c: Include opts.h.
2834 (diagnostic_set_info): Initialize option_index.
2835 (diagnostic_report_diagnostic): Amend option name if appropriate.
2836 (warning): Check to see if the specified warning is enabled.
2838 * doc/invoke.texi (-fdiagnostics-show-options): Document.
2840 2005-05-03 Richard Henderson <rth@redhat.com>
2842 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
2843 SPEC_OR_GEN_REGS definitions.
2845 2005-05-03 Alexandre Oliva <aoliva@redhat.com>
2848 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
2849 for unavailable registers.
2851 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
2853 * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
2855 * cfglayout.c (block_locators_blocks,
2856 insn_locators_initialize, insn_scope): Use VEC instead of
2859 * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
2860 mudflap_finish_file, mudflap_finish_file): Use VEC instead of
2863 2005-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
2865 * config/sparc/predicates.md (const_compl_high_operand): New.
2866 * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
2868 (sparc_emit_set_const64_quick1): Adjust for above change.
2869 (sparc_emit_set_const64_quick2): Likewise.
2870 (sparc_emit_set_const64_longway): Likewise.
2871 (sparc_emit_set_const64): Likewise.
2872 * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
2873 movdi_const64_special): Delete.
2874 (logical constant splitters): Use const_compl_high_operand.
2876 2005-05-03 Richard Guenther <rguenth@gcc.gnu.org>
2878 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
2879 rather than STRIP_NOPS.
2881 2005-05-03 Jakub Jelinek <jakub@redhat.com>
2883 PR rtl-optimization/21330
2884 * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
2886 (unswitch_single_loop): Clear cinsn when retrying.
2889 * config/i386/i386.c (legitimize_address): When canonicalizing
2890 ASHIFT into MULT, multiply by 1 << shift_count instead of
2891 1 << log2 (shift_count).
2893 2005-05-03 Andrew MacLeod <amacleod@redhat.com>
2895 * lambda-code.c (gcc_loop_to_lambda_loop,
2896 lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
2897 stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
2898 generic operand interface.
2899 * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
2900 * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
2901 generic operand interface.
2902 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
2903 link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
2904 next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
2905 num_imm_uses): Use ssa_use_operand_t.
2906 (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
2907 get_v_must_def_ops): Delete.
2908 (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
2909 (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
2910 get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
2911 get_v_must_def_kill_ptr): Delete.
2912 (delink_stmt_imm_use): Move and use new operand interface.
2913 (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
2914 op_iter_next_tree): Use new operand implementation.
2915 (clear_and_done_ssa_iter): New. Initialize a blank operand iterator.
2916 (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
2918 (op_iter_next_mustdef, op_iter_next_maydef,
2919 op_iter_next_must_and_may_def): Delete. Replace with...
2920 (op_iter_next_maymustdef): New. Combine must and may next operations.
2921 (op_iter_init_maydef, op_iter_init_mustdef,
2922 op_iter_init_must_and_may_def): Use new interface.
2923 (single_ssa_tree_operand ): New. Process single operands only as trees.
2924 (single_ssa_use_operand): New. Process single operands only as uses.
2925 (single_ssa_def_operand): New. Process single operands only as defs.
2926 (zero_ssa_operands): New. Return TRUE if there are zero operands of the
2928 (num_ssa_operands): New. Count the number of specified operands.
2929 (compare_ssa_operands_equal): New. Compare two statements' operands.
2930 (single_phi_def): New. Return true if PHI has one def of the specified
2932 (op_iter_init_phiuse): New. Initialize the iterator for PHI arguments.
2933 (op_iter_init_phidef): New. Initialize the iterator for the PHI def.
2934 * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
2935 (struct stmt_ann_d): Operands field no longer require GTY().
2936 (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
2937 * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
2938 * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
2939 dump_replaceable_exprs, rewrite_trees): Use generic interface.
2940 * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
2941 Use use_operand_p instead of ssa_imm_use_t *.
2942 * tree-pretty-print.c (dump_vops): check if operands are active before
2943 dumping virtual operands.
2944 * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
2945 * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
2946 (ccp_fold): Use new interface.
2947 (ccp_visit_stmt): Remove unused variables and code.
2948 (convert_to_gimple_builtin): Insert statements before calling
2949 mark_new_vars_to_rename.
2950 * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
2951 (copy_prop_visit_cond_stmt): Use generic interface.
2952 * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
2953 annotation in table.
2954 (thread_across_edge): Use generic interface.
2955 (initialize_hash_element): Initialzie with stmt, not annotation.
2956 (eliminate_redundant_computations): Use generic interface.
2957 (record_equivalences_from_stmt): Pass stmt, not annotation.
2958 (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
2960 * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
2961 * tree-ssa-loop-ivopts.c (find_invariants_stmt,
2962 find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
2963 generic operand interface.
2964 * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
2966 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
2968 * tree-ssa-operands.c (struct opbuild_list_d): New. Operand build type.
2969 (build_defs, build_uses, build_v_may_defs, build_vuses,
2970 build_v_must_defs): Change type to struct opbuild_list_d.
2971 (ops_active): New. Operands active boolean.
2972 (operand_memory, operand_memory_index): New. Operand memory managers.
2973 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
2974 allocate_vuse_optype, allocate_v_must_def_optype): Delete.
2975 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
2976 Change from functions to static variable list heads.
2977 (opbuild_initialize_virtual): New. Initialize a virtual build list.
2978 (opbuild_initialize_real): New. Initialize a virtual build list.
2979 (opbuild_free): New. Free a build list.
2980 (opbuild_num_elems): New. Number of items in a list.
2981 (opbuild_append_real): New. Add a real (tree *) operand.
2982 (opbuild_append_virtual): New. Add and sort a virtual (tree) operand.
2983 (opbuild_first): New. Return first element index in a list.
2984 (opbuild_next): New. Return next element in a list.
2985 (opbuild_elem_real): New. Return real element.
2986 (opbuild_elem_virtual): New. Return virtual element.
2987 (opbuild_elem_uid): New. Return UID of virtual element.
2988 (opbuild_clear): New. Reset an operand list.
2989 (opbuild_remove_elem): New. Remove an element form a list.
2990 (ssa_operands_active): New. Return true if operand cache is active.
2991 (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
2992 (ssa_operand_alloc): New. Allocate memory from an operand chunk.
2993 (correct_use_link): Use use_operand_p.
2994 (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
2995 finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
2996 (cleanup_v_may_defs): Use new implmentation.
2997 (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
2999 (append_def, append_use, append_v_may_def, append_vuse,
3000 append_v_must_def): Call opbuild_append routine instead of using varray.
3001 (build_ssa_operands): Simplify to simply use stmt, don't maintain a
3002 global parse_old_ops variable.
3003 (free_ssa_operands): New implementation.
3004 (update_stmt_operands): Move. Change argument to build_ssa_operands.
3005 (copy_virtual_operands): Move. New generic implementation.
3006 (create_ssa_artficial_load_stmt): Move. New implementation.
3007 (swap_tree_operands): Update for new implementation.
3008 (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
3009 (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
3010 rather than a varray.
3011 (verify_imm_links): Use use_operand_p.
3012 (dump_immediate_uses_for): If the immediate use variable is a virtual
3013 variable, show the virtual ops in the stmt.
3014 * tree-ssa-operands.h (def_operand_p): No longer a structure.
3015 (NULL_DEF_OPERAND_P): Now a #define.
3016 (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
3017 vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
3018 (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
3019 mustdef_optype_d): New. Use Linked list representation.
3020 (SSA_OPERAND_MEMORY_SIZE): New. Size of operand memory chunk.
3021 (struct ssa_operand_memory_d): New. Allocated Chunk node.
3022 (struct stmt_operands_d): Change to new pointers that are not GTY.
3023 (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
3024 STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
3025 SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
3026 STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
3027 SET_V_MUST_DEF_KILL): Delete.
3028 (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
3029 V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
3030 (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
3031 V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
3032 (enum ssa_op_iter_type): Operand iterator typechecking values.
3033 (struct ssa_operand_iterator_d): Use linked lists of operands.
3034 (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
3035 (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
3036 FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
3037 (FOR_EACH_PHI_ARG): New. Iterate over PHI arguments.
3038 (FOR_EACH_PHI_OR_STMT_USE): New. Iterate over PHI or stmt uses.
3039 (FOR_EACH_PHI_OR_STMT_DEF): New. Iterate over PHI or stmt defs.
3040 (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
3041 SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
3042 * tree-ssa-opfinalize.h: New. Function templates for expansion.
3043 (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
3044 alloc_vuse, and alloc_mustdef.
3045 (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
3046 finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
3047 and finalize_ssa_v_must_def_ops.
3048 * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
3049 (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
3051 (compute_avail): Use generic iterator interface.
3052 * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
3053 (stmt_makes_single_load, stmt_makes_single_store): Use
3055 * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
3056 (statement_sink_location): Use generic interface.
3057 * tree-ssa.c (verify_ssa): Use %p in fprintf. Use generic interface.
3058 (delete_tree_ssa): Don't call release_defs. Call release_ssa_name and
3059 reset the immediate use link nodes.
3060 (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
3061 * tree-ssanames.c (make_ssa_name): Use use_operand_p.
3062 * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
3063 (eliminate_tail_call): Use generic operand interface.
3064 * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
3065 (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
3067 * tree-vect-transform.c (update_vuses_to_preheader): Use generic
3069 * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
3070 * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
3072 (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
3073 Use statement pointer instead of vuse_optype. Use generic interface.
3074 * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
3075 (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
3076 * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
3077 (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
3078 * doc/tree-ssa.texi: Update documentation for operand interface.
3080 2005-05-03 Nathan Sidwell <nathan@codesourcery.com>
3082 * config/darwin.c (machopic_define_symbol): Use gcc_assert or
3083 gcc_unreachable as appropriate.
3084 (machopic_function_base_name, machopic_indirect_data_reference,
3085 machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
3086 * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
3087 * config/rs6000/altivec.md (*mov<mode>_internal,
3088 build_vector_mask_for_load): Likewise.
3089 * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
3090 *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
3091 *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
3092 * config/rs6000/predicates.md (easy_fp_constant,
3093 logical_operand): Likewise.
3094 * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
3095 compute_save_world_info, rs6000_emit_prologue,
3096 rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
3097 * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
3100 2005-05-03 Uros Bizjak <uros@kss-loka.si>
3103 * convert.c (convert_to_integer): Convert ceil and floor in
3106 2005-04-29 Geoffrey Keating <geoffk@apple.com>
3109 * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
3110 define_insn_and_split. Split only when memory operand is
3111 offsettable. Use adjust_address rather than plus_constant.
3112 (floatunssidf2_internal): Likewise.
3113 (fix_truncdfsi2_internal): Split only when memory operand is
3114 offsettable. Use adjust_address rather than plus_constant.
3115 (fix_trunctfsi2_internal): Likewise.
3116 (floatsidf2_internal): Likewise.
3118 2005-05-02 Diego Novillo <dnovillo@redhat.com>
3120 * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
3121 (set_value_range_to_null): Likewise.
3122 (set_value_range_to_varying): New function. Use it in all
3123 call sites that used to call set_value_range (vr, VR_VARYING, ...).
3124 (extract_range_from_assert): If the integral type has a
3125 super-type, and LIMIT is not within MIN and MAX values of that
3126 type, set the resulting range to VR_VARYING.
3128 2005-05-02 Hans-Peter Nilsson <hp@bitrange.com>
3130 * config/mmix/mmix.opt: New file.
3131 * config/mmix/mmix.h: Move options-related comments to mmix.opt.
3132 (mmix_cc1_ignored_option): Don't declare.
3133 (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
3134 (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
3135 (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
3136 (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
3137 (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
3138 (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
3139 (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
3140 (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
3142 (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
3143 * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
3144 (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3146 2005-05-02 Joseph S. Myers <joseph@codesourcery.com>
3149 * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
3150 * c-decl.c (current_function_prototype_built_in,
3151 current_function_prototype_arg_types): New.
3152 (merge_decls): Keep source location of prototype followed by
3153 nonprototype declaration. Update C_DECL_BUILTIN_PROTOTYPE.
3154 (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
3155 (start_function): Always set current_function_prototype_locus,
3156 current_function_prototype_built_in and
3157 current_function_prototype_arg_types. Check for external
3158 prototype whether or not visible for external function and set
3159 current_function_prototype_arg_types accordingly.
3160 (store_parm_decls_oldstyle): Use
3161 current_function_prototype_arg_types for checking old-style
3162 definition against prototype. Give warnings only if
3163 current_function_prototype_built_in).
3165 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
3167 * ggc.h (ggc_alloc_zone_pass_stat): New macro.
3168 (ggc_alloc_zone_stat): Don't define.
3169 * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
3170 ggc_alloc_zone_pass_stat.
3171 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
3172 * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
3173 (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
3175 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
3177 * calls.c (expand_call): Handle current_function_pretend_args_size
3178 when checking for sibcalls.
3180 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
3182 PR tree-optimization/21294
3183 * tree-vrp.c (vrp_expr_computes_nonzero): New.
3184 (extract_range_from_expr): Call vrp_expr_computes_nonzero.
3186 2005-05-02 Janis Johnson <janis187@us.ibm.com>
3189 * gcov-io.h: Declare gcov external functions hidden.
3191 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
3193 * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
3194 record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
3195 Use VEC instead of VARRAY.
3198 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
3201 2005-05-02 Paolo Bonzini <bonzini@gnu.org>
3203 * c-common.c (resolve_overloaded_builtin): Forward to target
3204 hook for BUILT_IN_MD built-ins.
3205 * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
3206 for all types of built-in.
3207 * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New. Use it
3208 in the definition of the target hooks struct.
3209 * target.h (struct gcc_target): Add resolve_overloaded_builtin.
3210 * config/rs6000/altivec.h: Rewritten.
3211 * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
3212 altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
3213 rs6000_builtin_type, rs6000_builtin_type_compatible,
3214 altivec_overloaded_builtins, rs6000_builtin_type,
3215 rs6000_builtin_type_compatible): New.
3216 * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
3218 (def_builtin): Turn into a function. Check for duplicates and store
3219 the builtin into rs6000_builtin_decls.
3220 (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
3221 bdesc_1arg): Add overloaded builtins.
3222 (altivec_expand_builtin): Check for unresolved overloaded builtins,
3223 do not support ALTIVEC_COMPILETIME_ERROR.
3224 (rs6000_init_builtins): Add opaque 128-bit vector, and internal
3225 nodes to represent front-end types.
3226 (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
3227 with opaque arguments and/or return values.
3228 * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
3229 ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
3230 (rs6000_builtin_type_index): New.
3231 (is_ev64_opaque_type): Rename to...
3232 (rs6000_is_opaque_type): ... this.
3233 (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
3236 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
3238 * function.c (reorder_blocks, reorder_blocks_1): Use VEC
3241 2005-05-02 Nathan Sidwell <nathan@codesourcery.com>
3242 Bernd Schmidt <bernd.schmidt@analog.com>
3244 * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
3245 print_address_operand, print_operand, legitimize_pic_address,
3246 asm_conditional_branch, bfin_gen_compare, output_push_multiple,
3247 output_pop_multiple): Use gcc_assert or gcc_unreachable as
3249 * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
3251 2005-05-02 Dorit Naishlos <dorit@il.ibm.com>
3253 * doc/passes.texi: Document vectorization pass.
3255 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
3257 * tree-scalar-evolution.c (get_exit_conditions_rec,
3258 select_loops_exit_conditions,
3259 number_of_iterations_for_all_loops,
3260 analyze_scalar_evolution_for_all_loop_phi_nodes,
3261 scev_analysis): Use VEC instead of VARRAY.
3263 2005-05-02 Michael Matz <matz@suse.de>
3266 * c-common.c (c_common_nodes_and_builtins): Create global null_node.
3267 (warn_strict_null_sentinel): Define.
3268 (check_function_sentinel): Check for null_node as valid sentinel too.
3269 * c-common.h (c_tree_index): Added CTI_NULL.
3270 (null_node) Define global_tree[CTI_NULL].
3271 (warn_strict_null_sentinel): Declare.
3272 * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
3273 * c.opt: (Wstrict-null-sentinel): New C++ option.
3274 * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
3276 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
3278 * gimplify.c (gimplify_compound_lval): Use VEC instead of
3281 * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
3283 * dwarf2out.c (decl_scope_table, push_decl_scope,
3284 pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
3287 2005-05-01 Mark Mitchell <mark@codesourcery.com>
3290 * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
3292 * doc/cpp.texi (__DEPRECATED): Document.
3293 (__EXCEPTIONS): Likewise.
3294 (__GXX_WEAK__): Likewise.
3296 * function.c (INVOKE__main): Do not define.
3297 (expand_main_function): Check HAS_INIT_SECTION when determining
3298 whether or not to call __main.
3300 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
3302 * tree-ssa-loop-ivopts.c: Fix a comment typo.
3304 2005-01-05 Paul Brook <paul@codesourcery.com>
3306 * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
3307 (INITIALIZE_TRAMPOLINE): Use it.
3308 * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
3309 * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
3310 * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
3312 2005-05-01 Gerald Pfeifer <gerald@pfeifer.com>
3314 * doc/install.texi (Specific): Omit dots in the @anchors names
3315 for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
3316 Omit underscores for x86_64-*-* and the "all ELF targets" entry.
3318 2005-05-01 Zdenek Dvorak <dvorakz@suse.cz>
3320 PR tree-optimization/18316
3321 PR tree-optimization/19126
3322 * tree.c (build_int_cst_type): Avoid shift by size of type.
3323 * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
3325 * tree-scalar-evolution.h (simple_iv): Declaration changed.
3326 * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
3328 (dump_cand): Dump depends_on information.
3329 (determine_biv_step): Add argument to simple_iv call.
3330 (contains_abnormal_ssa_name_p): Handle case expr == NULL.
3331 (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
3333 (add_candidate_1): Record depends_on for candidates.
3334 (tree_int_cst_sign_bit, constant_multiple_of): New functions.
3335 (get_computation_at, get_computation_cost_at, may_eliminate_iv):
3336 Handle ivs with nonconstant step.
3337 (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
3338 (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
3339 (create_new_iv): Unshare the step before passing it to create_iv.
3340 (free_loop_data): Free cand->depends_on.
3341 (build_addr_strip_iref): New function.
3342 (find_interesting_uses_address): Use build_addr_strip_iref.
3343 (strip_offset_1): Split the recursive part from strip_offset.
3344 Strip constant offset component_refs and array_refs.
3345 (strip_offset): Split the recursive part to strip_offset_1.
3346 (add_address_candidates): Removed.
3347 (add_derived_ivs_candidates): Do not use add_address_candidates.
3348 (add_iv_value_candidates): Add candidates with stripped constant
3349 offset. Consider all candidates with initial value 0 important.
3350 (struct affine_tree_combination): New.
3351 (aff_combination_const, aff_combination_elt, aff_combination_scale,
3352 aff_combination_add_elt, aff_combination_add,
3353 tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
3354 fold_affine_sum): New functions.
3355 (get_computation_at): Use fold_affine_sum.
3356 * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
3357 * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
3360 2005-04-30 Michael Matz <matz@suse.de>
3362 * config/i386/i386.md (movmemsi): Also active when
3363 TARGET_INLINE_ALL_STRINGOPS.
3365 2005-04-30 Eric Botcazou <ebotcazou@libertysurf.fr>
3368 * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
3370 2005-04-30 Paul Brook <paul@codesourcery.com>
3372 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
3374 * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
3375 * config/arm/ieee754-sf.S: Ditto.
3376 * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
3377 (FUNC_ALIAS): Use .thumb_set for thumb routines.
3379 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
3381 * tree-ssanames.c: Fix a comment typo.
3382 * doc/options.texi: Fix a typo.
3384 2005-04-30 Nathan Sidwell <nathan@codesourcery.com>
3386 * config/h8300/h8300.c (byte_reg): Use gcc_assert and
3387 gcc_unreachable as appropriate.
3388 (split_adds_subs, cond_string, print_operand,
3389 h8300_initial_elimination_offset, h8300_classify_operand,
3390 h8300_unary_length, h8300_short_immediate_length,
3391 h8300_bitfield_length, h8300_binary_length,
3392 h8300_insn_length_from_table, compute_mov_length, output_plussi,
3393 compute_plussi_length, compute_plussi_cc, output_logical_op,
3394 compute_logical_op_length, compute_logical_op_cc,
3395 output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
3396 output_a_shift, compute_a_shift_length, compute_a_shift_cc,
3397 output_a_rotate, compute_a_rotate_length, fix_bit_operand,
3398 h8300_regs_ok_for_stm): Likewise.
3399 * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
3400 monitor_prologue): Likewise.
3402 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
3404 * loop-invariant.c (invariants, create_new_invariant,
3405 get_inv_cost, best_gain_for_invariant,
3406 find_invariants_to_move, move_invariants,
3407 init_inv_motion_data, free_inv_motion_data): Use VEC instead
3410 2005-04-29 Richard Henderson <rth@redhat.com>
3412 * function.c (instantiate_decls): Remove valid_only argument.
3413 (instantiate_decls_1, instantiate_decl): Likewise.
3414 (instantiate_virtual_regs_1): Delete.
3415 (instantiate_virtual_regs_lossage): Delete.
3416 (instantiate_virtual_regs_in_rtx): New.
3417 (safe_insn_predicate): New.
3418 (instantiate_virtual_regs_in_insn): New.
3419 (instantiate_virtual_regs): Update to match all that. Only run
3420 instantiate_decls once.
3422 2005-04-29 Richard Henderson <rth@redhat.com>
3423 Daniel Jacobowitz <dan@codesourcery.com>
3425 * gengtype.c (write_func_for_structure): Split out ...
3426 (output_type_enum): ... new function. Fix thinko accessing
3427 TYPE_PARAM_STRUCT data.
3429 2005-04-29 Tom Tromey <tromey@redhat.com>
3431 * tree.c (build_block): Removed unused 'tags' argument.
3432 * tree.h (build_block): Removed argument.
3434 2005-04-29 Michael Matz <matz@suse.de>
3436 PR rtl-optimization/21144
3437 * postreload.c (reload_cse_move2add): Check for VOIDmode.
3439 2005-04-29 Bob Wilson <bob.wilson@acm.org>
3441 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
3442 flag_reorder_blocks.
3444 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
3446 PR tree-optimization/21030
3447 * tree-vrp.c (adjust_range_with_scev): Do not create invalid
3448 ranges where VR->MAX is smaller than VR->MIN.
3450 2005-04-29 Devang Patel <dpatel@apple.com>
3452 PR tree-optimization/21272
3453 PR tree-optimization/21266
3454 * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
3456 2005-04-29 Kazu Hirata <kazu@cs.umass.edu>
3458 * tree-flow-inline.h: Fix a comment typo.
3459 * doc/tree-ssa.texi: Fix a typo.
3461 * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
3463 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
3465 * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
3466 gcc_unreachable as appropriate.
3467 (fr30_expand_epilogue, fr30_setup_incoming_varargs,
3468 fr30_print_operand, fr30_move_double): Likewise.
3469 * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
3471 2005-04-29 Mark Mitchell <mark@codesourcery.com>
3473 * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
3474 definition has already been provided.
3475 (ARM_EABI_DTORS_SECTION_OP): Likewise.
3476 * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
3477 (ARM_EABI_DTORS_SECTION_OP): Likewise.
3479 2005-04-29 Jim Tison <jtison@us.ibm.com>
3481 * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
3482 trace hooks calls to improve performance.
3484 2005-04-29 Julian Brown <julian@codesourcery.com>
3485 Mark Mitchell <mark@codesourcery.com>
3486 Paul Brook <paul@codesourcery.com>
3488 * crtstuff.c: Handle targets that use .init_array.
3489 * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
3490 that INVOKE__main is set correctly.
3491 (expand_main_function): Test INVOKE__main.
3492 * libgcc2.c: Do not define __main when using .init_array.
3493 * config/arm/arm.c (arm_elf_asm_constructor): New function.
3494 * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
3496 (DTORS_SECTION_ASM_OP): Likewise.
3497 (CTOR_LIST_BEGIN): Define specially when in libgcc.
3498 (CTOR_LIST_END): Likewise.
3499 (DTOR_LIST_BEGIN): Likewise.
3500 (DTOR_LIST_END): Likewise.
3501 * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
3502 (FINI_SECTION_ASM_OP): Likewise.
3503 (INIT_ARRAY_SECTION_ASM_OP): Define.
3504 (FINI_ARRAY_SECTION_ASM_OP): Likewise.
3505 * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
3506 (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
3507 * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
3508 (FINI_ARRAY_SECTION_ASM_OP): Likewise.
3510 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
3512 * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
3513 gcc_assert and gcc_unreachable as appropriate.
3514 (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
3515 const_int_cost, output_move_const_into_data_reg,
3516 output_move_qimode, output_move_double, find_addr_reg,
3517 print_operand, print_operand_address): Likewise.
3518 * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
3519 absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
3520 sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
3521 bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
3522 *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
3523 conditional_trap): Likewise.
3524 * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
3526 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
3528 * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
3529 gcc_unreachable as appropriate.
3530 (gen_conditional_move, xtensa_split_operand_pair,
3531 xtensa_split_operand_pair, xtensa_copy_incoming_a7,
3532 xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
3533 xtensa_copy_incoming_a7, xtensa_output_literal,
3534 xtensa_output_literal, xtensa_output_literal): Likewise.
3535 * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
3536 * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
3537 *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
3538 movsicc_internal1, movsfcc_internal0,
3539 movsfcc_internal1): Likewise.
3541 2005-04-28 James E Wilson <wilson@specifixinc.com>
3543 * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
3544 (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
3546 2005-04-28 DJ Delorie <dj@redhat.com>
3548 * opt-functions.awk (var_set): Emit proper initializer for
3549 non-target bitfields.
3551 2005-04-28 Devang Patel <dpatel@apple.com>
3553 * dbxout.c (have_used_extensions): Remove.
3554 (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
3555 have_used_extensions.
3557 2005-04-28 James E Wilson <wilson@specifixinc.com>
3559 * doc/install.texi: Update -enable-languages info. Correct path to
3562 2005-04-28 DJ Delorie <dj@redhat.com>
3564 * optc-gen.awk (END): Make sure no variable is defined more
3566 * opth-gen.awk (END): Allocate bits on a per-variable basis.
3567 Allow for bitfield variables other than target_flags.
3568 * doc/options.text (Mask): Document that you may specify a
3569 variable other than target_flags.
3571 2005-04-28 Martin Koegler <mkoegler@auto.tuwien.ac.at>
3573 PR rtl-optimization/18877
3574 * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
3575 number in val.start.
3577 2005-04-28 David Edelsohn <edelsohn@gnu.org>
3580 * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
3582 * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
3583 * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
3584 * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
3586 2005-04-28 Richard Earnshaw <richard.earnshaw@arm.com>
3588 * arm.c (legitimize_pic_address): Fix sense of assertion test for
3589 creating pseudos when the base offset is too large.
3591 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
3593 * global.c (earlyclobber_regclass): Change the type to
3595 (check_earlyclobber): Update uses of earlyclobber_regclass.
3596 (mark_reg_use_for_earlyclobber): Likewise.
3597 (calculate_local_reg_bb_info): Allocate and free
3598 earlyclobber_regclass using the VEC API.
3600 2005-04-28 Nathan Sidwell <nathan@codesourcery.com>
3602 * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
3605 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
3607 * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
3610 * config.gcc: Obsolete c4x-* and tic4x-*.
3612 * tree.h (edge_def): Remove.
3614 * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
3615 function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
3616 reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
3617 JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
3620 * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
3621 coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
3622 errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
3623 genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
3624 integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
3625 machmode.def, mips-tfile.c, params.c, pretty-print.c,
3626 print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
3627 tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
3628 config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
3629 config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
3630 config/i386/cygming.h, config/i386/djgpp.h,
3631 config/i386/lynx.h, config/i386/netware.c,
3632 config/i386/winnt.c, config/ia64/ia64-c.c,
3633 config/iq2000/iq2000.c, config/m32r/little.h,
3634 config/m68k/m68k-protos.h, config/m68k/m68k.h,
3635 config/m68k/m68k.md, config/mcore/mcore.c,
3636 config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
3637 config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
3638 config/mn10300/mn10300.h, config/ns32k/netbsd.h,
3639 config/ns32k/ns32k.c, config/ns32k/ns32k.h,
3640 config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
3641 config/pdp11/pdp11.h, config/rs6000/darwin.h,
3642 config/rs6000/default64.h, config/rs6000/rs6000-c.c,
3643 config/s390/2064.md, config/s390/2084.md,
3644 config/s390/s390-modes.def, config/s390/s390-protos.h,
3645 config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
3646 config/stormy16/stormy16.c, config/vax/vax-protos.h,
3647 config/vax/vax.c, config/vax/vax.h,
3648 config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
3651 2005-04-28 Joseph S. Myers <joseph@codesourcery.com>
3653 * c-typeck.c (build_compound_expr): Correct logic in last change.
3655 2005-04-27 James E. Wilson <wilson@specifixinc.com>
3657 * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
3658 parameters. Replace conditional move code with assert checking for
3659 ar.lc. Delete obsolete comments.
3660 (set_src_needs_barrier): Delete cond parameter, and code using it.
3661 (rtx_needs_barrier): Delete initialization of cond. Fix typo in
3662 assert checking for PR_REGS. Fix calls to update_set_flags and
3663 set_src_needs_barrier.
3664 (group_barrier_needed): Renamed from group_barrier_needed_p. Fix all
3665 callers. Rewrite explanatory comment before the function.
3666 (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
3669 2005-04-27 Mike Stump <mrs@apple.com>
3671 * doc/cpp.texi: gcc now implements universal character names.
3673 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
3676 * c-typeck.c (build_compound_expr): Don't warn for left-hand side
3677 being a compound expression whose right-hand side is cast to void.
3679 2005-04-27 Caroline Tice <ctice@apple.com>
3681 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3682 Remove targetm.have_named_sections test.
3683 (fix_edges_for_rarely_executed_code): Likewise.
3684 (insert_section_boundary_note): Likewise.
3685 (reorder_basic_blocks): Check partitioning flag before calling
3686 verify_hot_cold_block_grouping.
3687 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
3688 the function struct rather than global variables.
3689 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
3690 (COLD_END_LABEL): Likewise
3691 (cold_text_section_label): New static global variable.
3692 (cold_end_label): Likewise.
3693 (dwarf2out_switch_text_section): Get hot/cold section labels from
3694 the function struct rather than global variables; test to make sure
3696 (output_aranges): Use cold_text_section_label and cold_end_label;
3697 check partitioning flag before putting out delta.
3698 (output_ranges): Remove incorrect code attempting to use
3700 (output_line_info): Get cold section label from function struct; test
3701 to make sure cfun is defined.
3702 (add_location_or_const_value_attribute): Likewise.
3703 (dwarf2out_var_location): Likewise.
3704 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
3705 write out cold_text_section_label if partition flag is set.
3706 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
3707 * function.h (struct function): Add new fields to point to hot/cold
3708 section labels: hot_section_label, cold_section_label,
3709 hot_section_end_label and cold_section_end_label; also add new field
3710 for cold text section name, unlikely_text_section_name.
3711 * opts.c (decode_options): Turn off partitioning flag if
3712 !targetm.have_named_sections.
3713 * output.h (hot_section_label): Remove.
3714 (hot_section_end_label): Remove.
3715 (cold_section_end_label): Remove.
3716 (unlikely_section_label): Remove.
3717 (unlikely_text_section_name): Remove.
3718 * passes.c (rest_of_handle_final): Remove extra blank line.
3719 * varasm.c (unlikely_section_label): Remove.
3720 (hot_section_label): Remove.
3721 (hot_section_end_label): Remove.
3722 (cold_section_end_label): Remove.
3723 (unlikely_text_section_name): Remove.
3724 (initialize_cold_section_name): Modify to call
3725 targetm.strip_name_encoding; to store cold section name in current
3726 function struct, if it exists; and to only use the decl_section_name
3727 if flag_named_sections is true.
3728 (unlikely_text_section): Modify to get section name out of current
3729 function struct, if there is one; otherwise build it from
3730 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
3731 (in_unlikely_text_section): Likewise.
3732 (named_section): Modify to get/put cold section name in current function
3733 struct, if there is one.
3734 (function_section): Change 'bool unlikely' to 'int reloc'; check
3735 targetm.have_named_sections before calling named_section.
3736 (current_function_section): Likewise.
3737 (assemble_start_function): Modify to get/put unlikely_text_section_name
3738 in current function struct; modify to get hot/cold section labels
3739 from function struct; initialize labels using
3740 ASM_GENERATE_INTERNAL_LABEL;
3741 test partitioning flag before writing out hot section label.
3742 (assemble_end_function): Test partitioning flag before writing out
3743 hot/cold section labels.
3744 (default_section_type_flags_1): Get cold text section name from
3745 function struct if there is one; Set flags correctly for
3746 cold text section if there is not a current function struct.
3748 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
3750 * tree-ssa-propagate.c (set_rhs): Revert last change.
3752 2005-04-27 Steve Ellcey <sje@cup.hp.com>
3754 * explow.c (convert_memory_address): Add gcc_assert.
3756 2005-04-27 Mark Mitchell <mark@codesourcery.com>
3758 * configure.ac: Check for ld --sysroot support.
3759 * gcc.c: Document %R specifier for specs.
3760 (SYSROOT_SPEC): New macro.
3761 (sysroot_spec): New variable.
3762 (static_specs): Add sysroot_spec.
3763 (main): Pass the sysroot spec to the linker if appropriate.
3764 * configure: Regenerated.
3765 * config.in: Likewise.
3767 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
3769 * fold-const.c (fold_binary): Use build_fold_addr_expr
3770 for address calculation and INDIRECT_REF handling.
3772 2005-04-27 Andrew Haley <aph@redhat.com>
3774 * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
3776 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
3778 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
3779 pointer when thumb backtracing is on.
3781 * config/fp-bit.c (abort): Revert change.
3783 2005-04-27 Ian Lance Taylor <ian@airs.com>
3785 * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
3787 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
3789 * tree-ssa-dce.c: Fix a comment typo.
3791 2005-04-27 David S. Miller <davem@davemloft.net>
3793 * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
3794 Kill setjmpless_size. current_function_calls_setjmp is completely
3795 computed when we are called, so just use the optimized size value
3796 instead of using REG_SAVE_AREA notes.
3797 (optimize_save_area_alloca): Delete....
3798 * rtl.h (optimize_save_area_alloca): Likewise...
3799 * passes.c (rest_of_compilation): and don't call it any more.
3800 * reg-notes.def (SAVE_AREA): Delete.
3802 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
3804 * config/fp-bit.c (abort): Add noreturn attribute.
3806 * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
3807 gcc_unreachable as appropriate.
3808 (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
3809 * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
3810 ASM_OUTPUT_REG_POP): Likewise.
3812 2005-04-27 Paolo Bonzini <bonzini@gnu.org>
3814 * tree-complex.c (expand_vector_operations_1): Do not build
3815 VIEW_CONVERT_EXPR's for the lhs.
3817 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
3819 * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
3820 unnecessary noncanonical RTL handling.
3821 * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
3822 gcc_assert and gcc_unreachable.
3824 * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
3825 gcc_unreachable as appropriate.
3826 (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
3827 * config/arm/arm.c (arm_override_options, arm_compute_func_type,
3828 use_return_insn, const_ok_for_op, arm_gen_constant,
3829 arm_canonicalize_comparison, legitimize_pic_address,
3830 thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
3831 arm_cirrus_insn_p, cirrus_reorg, minmax_code,
3832 load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
3833 emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
3834 arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
3835 move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
3836 dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
3837 fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
3838 output_call, output_mov_long_double_fpa_from_arm,
3839 output_mov_long_double_arm_from_fpa,
3840 output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
3841 output_move_double, arithmetic_instr, shift_op, int_log2,
3842 output_return_instruction, arm_output_function_prologue,
3843 arm_output_epilogue, arm_output_function_epilogue,
3844 emit_multi_reg_push, arm_get_frame_offsets,
3845 arm_compute_initial_elimination_offset, arm_expand_prologue,
3846 arm_print_operand, arm_assemble_integer, get_arm_condition_code,
3847 arm_final_prescan_insn, arm_init_iwmmxt_builtins,
3848 arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
3849 thumb_compute_initial_elimination_offset,
3850 thumb_output_function_prologue, thumb_load_double_from_address,
3851 thumb_output_move_mem_multiple, thumb_reload_out_hi,
3852 arm_emit_vector_const, arm_dbx_register_number): Likewise.
3853 * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
3854 * config/arm/arm.md (thumb_extendhisi2,
3855 *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
3856 *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
3857 thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
3858 *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
3859 * config/arm/cirrus.md (*cirrus_arm_movdi,
3860 *cirrus_movdf_hard_insn): Likewise.
3861 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
3863 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
3865 * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
3866 (num_ssa_names): Use VEC_length.
3867 (ssa_names): Use VEC_index.
3868 * tree-ssanames.c (ssa_names): Change the type to
3870 (init_ssanames, fini_ssa_names, make_ssanames,
3871 release_ssa_name): Update uses of ssa_names.
3873 * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
3874 Use fold_buildN instead of fold (buildN (...)).
3876 2005-04-27 Devang Patel <dpatel@apple.com>
3878 * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
3880 2005-04-27 Matt Thomas <matt@3am-software.com>
3881 Jan-Benedict Glaw <jbglaw@microdata-pos.de>
3883 * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
3884 (vax_output_mi_thunk): Ditto.
3885 (vax_notice_cc_update): Ditto.
3886 (INDEX_REGISTER_P): Add trailing \.
3887 (BASE_REGISTER_P): Add trailing \.
3888 (legitimate_address_p): Whitespace cleanup. Remove trailing \.
3890 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
3892 * tree-ssa-propagate.c (set_rhs): Check operand of
3893 ADDR_EXPR for gimpliness, too.
3895 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
3897 * tree-ssa-pre.c: Fix a comment typo.
3899 2005-04-27 Zdenek Dvorak <dvorakz@suse.cz>
3901 PR tree-optimization/21171
3902 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
3903 record address uses if the reference is volatile.
3905 2004-04-27 Paolo Bonzini <bonzini@gnu.org>
3907 * tree-complex.c (expand_vector_operation): New, extracted from
3908 expand_vector_operations_1.
3909 (tree_vec_extract): Build a NOP_EXPR.
3910 (expand_vec_parallel): Do not care about returning the correct type.
3911 (expand_vector_operations_1): Call expand_vector_operation.
3912 Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
3914 * tree-complex.c (gate_expand_vector_operations): New.
3915 (pass_lower_vector_ssa): Use it.
3916 * tree-optimize.c (init_tree_optimization_passes): Include
3917 pass_lower_vector_ssa.
3918 * tree-vect-transform.c (vect_min_worthwhile_factor): New.
3919 (vectorizable_operation): Use it.
3920 * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
3921 integer modes for the vector type.
3923 * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
3924 * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
3925 Do not cope with UNITS_PER_SIMD_WORD == 0.
3926 * tree-vectorizer.c (get_vectype_for_scalar_type): Check
3927 if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
3928 (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
3929 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
3930 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3931 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3932 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3934 * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
3935 * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
3936 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
3938 * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
3939 (UNITS_PER_SIMD_WORD): New.
3941 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
3943 * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
3944 gcc_unreachable as appropriate.
3945 (ia64_expand_load_address, ia64_expand_tls_address,
3946 ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
3947 ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
3948 next_scratch_gr_reg, ia64_initial_elimination_offset,
3949 ia64_expand_prologue, ia64_expand_epilogue,
3950 ia64_output_dwarf_dtprel, ia64_print_operand,