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