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