1 2005-05-02 Hans-Peter Nilsson <hp@bitrange.com>
3 * config/mmix/mmix.opt: New file.
4 * config/mmix/mmix.h: Move options-related comments to mmix.opt.
5 (mmix_cc1_ignored_option): Don't declare.
6 (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
7 (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
8 (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
9 (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
10 (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
11 (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
12 (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
13 (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
15 (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
16 * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
17 (TARGET_DEFAULT_TARGET_FLAGS): Override default.
19 2005-05-02 Joseph S. Myers <joseph@codesourcery.com>
22 * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
23 * c-decl.c (current_function_prototype_built_in,
24 current_function_prototype_arg_types): New.
25 (merge_decls): Keep source location of prototype followed by
26 nonprototype declaration. Update C_DECL_BUILTIN_PROTOTYPE.
27 (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
28 (start_function): Always set current_function_prototype_locus,
29 current_function_prototype_built_in and
30 current_function_prototype_arg_types. Check for external
31 prototype whether or not visible for external function and set
32 current_function_prototype_arg_types accordingly.
33 (store_parm_decls_oldstyle): Use
34 current_function_prototype_arg_types for checking old-style
35 definition against prototype. Give warnings only if
36 current_function_prototype_built_in).
38 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
40 * ggc.h (ggc_alloc_zone_pass_stat): New macro.
41 (ggc_alloc_zone_stat): Don't define.
42 * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
43 ggc_alloc_zone_pass_stat.
44 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
45 * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
46 (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
48 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
50 * calls.c (expand_call): Handle current_function_pretend_args_size
51 when checking for sibcalls.
53 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
55 PR tree-optimization/21294
56 * tree-vrp.c (vrp_expr_computes_nonzero): New.
57 (extract_range_from_expr): Call vrp_expr_computes_nonzero.
59 2005-05-02 Janis Johnson <janis187@us.ibm.com>
62 * gcov-io.h: Declare gcov external functions hidden.
64 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
66 * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
67 record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
68 Use VEC instead of VARRAY.
71 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
74 2005-05-02 Paolo Bonzini <bonzini@gnu.org>
76 * c-common.c (resolve_overloaded_builtin): Forward to target
77 hook for BUILT_IN_MD built-ins.
78 * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
79 for all types of built-in.
80 * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New. Use it
81 in the definition of the target hooks struct.
82 * target.h (struct gcc_target): Add resolve_overloaded_builtin.
83 * config/rs6000/altivec.h: Rewritten.
84 * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
85 altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
86 rs6000_builtin_type, rs6000_builtin_type_compatible,
87 altivec_overloaded_builtins, rs6000_builtin_type,
88 rs6000_builtin_type_compatible): New.
89 * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
91 (def_builtin): Turn into a function. Check for duplicates and store
92 the builtin into rs6000_builtin_decls.
93 (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
94 bdesc_1arg): Add overloaded builtins.
95 (altivec_expand_builtin): Check for unresolved overloaded builtins,
96 do not support ALTIVEC_COMPILETIME_ERROR.
97 (rs6000_init_builtins): Add opaque 128-bit vector, and internal
98 nodes to represent front-end types.
99 (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
100 with opaque arguments and/or return values.
101 * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
102 ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
103 (rs6000_builtin_type_index): New.
104 (is_ev64_opaque_type): Rename to...
105 (rs6000_is_opaque_type): ... this.
106 (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
109 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
111 * function.c (reorder_blocks, reorder_blocks_1): Use VEC
114 2005-05-02 Nathan Sidwell <nathan@codesourcery.com>
115 Bernd Schmidt <bernd.schmidt@analog.com>
117 * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
118 print_address_operand, print_operand, legitimize_pic_address,
119 asm_conditional_branch, bfin_gen_compare, output_push_multiple,
120 output_pop_multiple): Use gcc_assert or gcc_unreachable as
122 * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
124 2005-05-02 Dorit Naishlos <dorit@il.ibm.com>
126 * doc/passes.texi: Document vectorization pass.
128 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
130 * tree-scalar-evolution.c (get_exit_conditions_rec,
131 select_loops_exit_conditions,
132 number_of_iterations_for_all_loops,
133 analyze_scalar_evolution_for_all_loop_phi_nodes,
134 scev_analysis): Use VEC instead of VARRAY.
136 2005-05-02 Michael Matz <matz@suse.de>
139 * c-common.c (c_common_nodes_and_builtins): Create global null_node.
140 (warn_strict_null_sentinel): Define.
141 (check_function_sentinel): Check for null_node as valid sentinel too.
142 * c-common.h (c_tree_index): Added CTI_NULL.
143 (null_node) Define global_tree[CTI_NULL].
144 (warn_strict_null_sentinel): Declare.
145 * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
146 * c.opt: (Wstrict-null-sentinel): New C++ option.
147 * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
149 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
151 * gimplify.c (gimplify_compound_lval): Use VEC instead of
154 * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
156 * dwarf2out.c (decl_scope_table, push_decl_scope,
157 pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
160 2005-05-01 Mark Mitchell <mark@codesourcery.com>
163 * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
165 * doc/cpp.texi (__DEPRECATED): Document.
166 (__EXCEPTIONS): Likewise.
167 (__GXX_WEAK__): Likewise.
169 * function.c (INVOKE__main): Do not define.
170 (expand_main_function): Check HAS_INIT_SECTION when determining
171 whether or not to call __main.
173 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
175 * tree-ssa-loop-ivopts.c: Fix a comment typo.
177 2005-01-05 Paul Brook <paul@codesourcery.com>
179 * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
180 (INITIALIZE_TRAMPOLINE): Use it.
181 * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
182 * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
183 * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
185 2005-05-01 Gerald Pfeifer <gerald@pfeifer.com>
187 * doc/install.texi (Specific): Omit dots in the @anchors names
188 for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
189 Omit underscores for x86_64-*-* and the "all ELF targets" entry.
191 2005-05-01 Zdenek Dvorak <dvorakz@suse.cz>
193 PR tree-optimization/18316
194 PR tree-optimization/19126
195 * tree.c (build_int_cst_type): Avoid shift by size of type.
196 * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
198 * tree-scalar-evolution.h (simple_iv): Declaration changed.
199 * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
201 (dump_cand): Dump depends_on information.
202 (determine_biv_step): Add argument to simple_iv call.
203 (contains_abnormal_ssa_name_p): Handle case expr == NULL.
204 (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
206 (add_candidate_1): Record depends_on for candidates.
207 (tree_int_cst_sign_bit, constant_multiple_of): New functions.
208 (get_computation_at, get_computation_cost_at, may_eliminate_iv):
209 Handle ivs with nonconstant step.
210 (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
211 (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
212 (create_new_iv): Unshare the step before passing it to create_iv.
213 (free_loop_data): Free cand->depends_on.
214 (build_addr_strip_iref): New function.
215 (find_interesting_uses_address): Use build_addr_strip_iref.
216 (strip_offset_1): Split the recursive part from strip_offset.
217 Strip constant offset component_refs and array_refs.
218 (strip_offset): Split the recursive part to strip_offset_1.
219 (add_address_candidates): Removed.
220 (add_derived_ivs_candidates): Do not use add_address_candidates.
221 (add_iv_value_candidates): Add candidates with stripped constant
222 offset. Consider all candidates with initial value 0 important.
223 (struct affine_tree_combination): New.
224 (aff_combination_const, aff_combination_elt, aff_combination_scale,
225 aff_combination_add_elt, aff_combination_add,
226 tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
227 fold_affine_sum): New functions.
228 (get_computation_at): Use fold_affine_sum.
229 * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
230 * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
233 2005-04-30 Michael Matz <matz@suse.de>
235 * config/i386/i386.md (movmemsi): Also active when
236 TARGET_INLINE_ALL_STRINGOPS.
238 2005-04-30 Eric Botcazou <ebotcazou@libertysurf.fr>
241 * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
243 2005-04-30 Paul Brook <paul@codesourcery.com>
245 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
247 * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
248 * config/arm/ieee754-sf.S: Ditto.
249 * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
250 (FUNC_ALIAS): Use .thumb_set for thumb routines.
252 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
254 * tree-ssanames.c: Fix a comment typo.
255 * doc/options.texi: Fix a typo.
257 2005-04-30 Nathan Sidwell <nathan@codesourcery.com>
259 * config/h8300/h8300.c (byte_reg): Use gcc_assert and
260 gcc_unreachable as appropriate.
261 (split_adds_subs, cond_string, print_operand,
262 h8300_initial_elimination_offset, h8300_classify_operand,
263 h8300_unary_length, h8300_short_immediate_length,
264 h8300_bitfield_length, h8300_binary_length,
265 h8300_insn_length_from_table, compute_mov_length, output_plussi,
266 compute_plussi_length, compute_plussi_cc, output_logical_op,
267 compute_logical_op_length, compute_logical_op_cc,
268 output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
269 output_a_shift, compute_a_shift_length, compute_a_shift_cc,
270 output_a_rotate, compute_a_rotate_length, fix_bit_operand,
271 h8300_regs_ok_for_stm): Likewise.
272 * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
273 monitor_prologue): Likewise.
275 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
277 * loop-invariant.c (invariants, create_new_invariant,
278 get_inv_cost, best_gain_for_invariant,
279 find_invariants_to_move, move_invariants,
280 init_inv_motion_data, free_inv_motion_data): Use VEC instead
283 2005-04-29 Richard Henderson <rth@redhat.com>
285 * function.c (instantiate_decls): Remove valid_only argument.
286 (instantiate_decls_1, instantiate_decl): Likewise.
287 (instantiate_virtual_regs_1): Delete.
288 (instantiate_virtual_regs_lossage): Delete.
289 (instantiate_virtual_regs_in_rtx): New.
290 (safe_insn_predicate): New.
291 (instantiate_virtual_regs_in_insn): New.
292 (instantiate_virtual_regs): Update to match all that. Only run
293 instantiate_decls once.
295 2005-04-29 Richard Henderson <rth@redhat.com>
296 Daniel Jacobowitz <dan@codesourcery.com>
298 * gengtype.c (write_func_for_structure): Split out ...
299 (output_type_enum): ... new function. Fix thinko accessing
300 TYPE_PARAM_STRUCT data.
302 2005-04-29 Tom Tromey <tromey@redhat.com>
304 * tree.c (build_block): Removed unused 'tags' argument.
305 * tree.h (build_block): Removed argument.
307 2005-04-29 Michael Matz <matz@suse.de>
309 PR rtl-optimization/21144
310 * postreload.c (reload_cse_move2add): Check for VOIDmode.
312 2005-04-29 Bob Wilson <bob.wilson@acm.org>
314 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
317 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
319 PR tree-optimization/21030
320 * tree-vrp.c (adjust_range_with_scev): Do not create invalid
321 ranges where VR->MAX is smaller than VR->MIN.
323 2005-04-29 Devang Patel <dpatel@apple.com>
325 PR tree-optimization/21272
326 PR tree-optimization/21266
327 * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
329 2005-04-29 Kazu Hirata <kazu@cs.umass.edu>
331 * tree-flow-inline.h: Fix a comment typo.
332 * doc/tree-ssa.texi: Fix a typo.
334 * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
336 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
338 * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
339 gcc_unreachable as appropriate.
340 (fr30_expand_epilogue, fr30_setup_incoming_varargs,
341 fr30_print_operand, fr30_move_double): Likewise.
342 * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
344 2005-04-29 Mark Mitchell <mark@codesourcery.com>
346 * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
347 definition has already been provided.
348 (ARM_EABI_DTORS_SECTION_OP): Likewise.
349 * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
350 (ARM_EABI_DTORS_SECTION_OP): Likewise.
352 2005-04-29 Jim Tison <jtison@us.ibm.com>
354 * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
355 trace hooks calls to improve performance.
357 2005-04-29 Julian Brown <julian@codesourcery.com>
358 Mark Mitchell <mark@codesourcery.com>
359 Paul Brook <paul@codesourcery.com>
361 * crtstuff.c: Handle targets that use .init_array.
362 * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
363 that INVOKE__main is set correctly.
364 (expand_main_function): Test INVOKE__main.
365 * libgcc2.c: Do not define __main when using .init_array.
366 * config/arm/arm.c (arm_elf_asm_constructor): New function.
367 * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
369 (DTORS_SECTION_ASM_OP): Likewise.
370 (CTOR_LIST_BEGIN): Define specially when in libgcc.
371 (CTOR_LIST_END): Likewise.
372 (DTOR_LIST_BEGIN): Likewise.
373 (DTOR_LIST_END): Likewise.
374 * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
375 (FINI_SECTION_ASM_OP): Likewise.
376 (INIT_ARRAY_SECTION_ASM_OP): Define.
377 (FINI_ARRAY_SECTION_ASM_OP): Likewise.
378 * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
379 (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
380 * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
381 (FINI_ARRAY_SECTION_ASM_OP): Likewise.
383 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
385 * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
386 gcc_assert and gcc_unreachable as appropriate.
387 (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
388 const_int_cost, output_move_const_into_data_reg,
389 output_move_qimode, output_move_double, find_addr_reg,
390 print_operand, print_operand_address): Likewise.
391 * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
392 absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
393 sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
394 bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
395 *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
396 conditional_trap): Likewise.
397 * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
399 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
401 * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
402 gcc_unreachable as appropriate.
403 (gen_conditional_move, xtensa_split_operand_pair,
404 xtensa_split_operand_pair, xtensa_copy_incoming_a7,
405 xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
406 xtensa_copy_incoming_a7, xtensa_output_literal,
407 xtensa_output_literal, xtensa_output_literal): Likewise.
408 * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
409 * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
410 *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
411 movsicc_internal1, movsfcc_internal0,
412 movsfcc_internal1): Likewise.
414 2005-04-28 James E Wilson <wilson@specifixinc.com>
416 * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
417 (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
419 2005-04-28 DJ Delorie <dj@redhat.com>
421 * opt-functions.awk (var_set): Emit proper initializer for
422 non-target bitfields.
424 2005-04-28 Devang Patel <dpatel@apple.com>
426 * dbxout.c (have_used_extensions): Remove.
427 (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
428 have_used_extensions.
430 2005-04-28 James E Wilson <wilson@specifixinc.com>
432 * doc/install.texi: Update -enable-languages info. Correct path to
435 2005-04-28 DJ Delorie <dj@redhat.com>
437 * optc-gen.awk (END): Make sure no variable is defined more
439 * opth-gen.awk (END): Allocate bits on a per-variable basis.
440 Allow for bitfield variables other than target_flags.
441 * doc/options.text (Mask): Document that you may specify a
442 variable other than target_flags.
444 2005-04-28 Martin Koegler <mkoegler@auto.tuwien.ac.at>
446 PR rtl-optimization/18877
447 * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
450 2005-04-28 David Edelsohn <edelsohn@gnu.org>
453 * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
455 * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
456 * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
457 * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
459 2005-04-28 Richard Earnshaw <richard.earnshaw@arm.com>
461 * arm.c (legitimize_pic_address): Fix sense of assertion test for
462 creating pseudos when the base offset is too large.
464 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
466 * global.c (earlyclobber_regclass): Change the type to
468 (check_earlyclobber): Update uses of earlyclobber_regclass.
469 (mark_reg_use_for_earlyclobber): Likewise.
470 (calculate_local_reg_bb_info): Allocate and free
471 earlyclobber_regclass using the VEC API.
473 2005-04-28 Nathan Sidwell <nathan@codesourcery.com>
475 * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
478 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
480 * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
483 * config.gcc: Obsolete c4x-* and tic4x-*.
485 * tree.h (edge_def): Remove.
487 * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
488 function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
489 reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
490 JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
493 * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
494 coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
495 errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
496 genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
497 integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
498 machmode.def, mips-tfile.c, params.c, pretty-print.c,
499 print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
500 tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
501 config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
502 config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
503 config/i386/cygming.h, config/i386/djgpp.h,
504 config/i386/lynx.h, config/i386/netware.c,
505 config/i386/winnt.c, config/ia64/ia64-c.c,
506 config/iq2000/iq2000.c, config/m32r/little.h,
507 config/m68k/m68k-protos.h, config/m68k/m68k.h,
508 config/m68k/m68k.md, config/mcore/mcore.c,
509 config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
510 config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
511 config/mn10300/mn10300.h, config/ns32k/netbsd.h,
512 config/ns32k/ns32k.c, config/ns32k/ns32k.h,
513 config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
514 config/pdp11/pdp11.h, config/rs6000/darwin.h,
515 config/rs6000/default64.h, config/rs6000/rs6000-c.c,
516 config/s390/2064.md, config/s390/2084.md,
517 config/s390/s390-modes.def, config/s390/s390-protos.h,
518 config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
519 config/stormy16/stormy16.c, config/vax/vax-protos.h,
520 config/vax/vax.c, config/vax/vax.h,
521 config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
524 2005-04-28 Joseph S. Myers <joseph@codesourcery.com>
526 * c-typeck.c (build_compound_expr): Correct logic in last change.
528 2005-04-27 James E. Wilson <wilson@specifixinc.com>
530 * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
531 parameters. Replace conditional move code with assert checking for
532 ar.lc. Delete obsolete comments.
533 (set_src_needs_barrier): Delete cond parameter, and code using it.
534 (rtx_needs_barrier): Delete initialization of cond. Fix typo in
535 assert checking for PR_REGS. Fix calls to update_set_flags and
536 set_src_needs_barrier.
537 (group_barrier_needed): Renamed from group_barrier_needed_p. Fix all
538 callers. Rewrite explanatory comment before the function.
539 (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
542 2005-04-27 Mike Stump <mrs@apple.com>
544 * doc/cpp.texi: gcc now implements universal character names.
546 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
549 * c-typeck.c (build_compound_expr): Don't warn for left-hand side
550 being a compound expression whose right-hand side is cast to void.
552 2005-04-27 Caroline Tice <ctice@apple.com>
554 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
555 Remove targetm.have_named_sections test.
556 (fix_edges_for_rarely_executed_code): Likewise.
557 (insert_section_boundary_note): Likewise.
558 (reorder_basic_blocks): Check partitioning flag before calling
559 verify_hot_cold_block_grouping.
560 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
561 the function struct rather than global variables.
562 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
563 (COLD_END_LABEL): Likewise
564 (cold_text_section_label): New static global variable.
565 (cold_end_label): Likewise.
566 (dwarf2out_switch_text_section): Get hot/cold section labels from
567 the function struct rather than global variables; test to make sure
569 (output_aranges): Use cold_text_section_label and cold_end_label;
570 check partitioning flag before putting out delta.
571 (output_ranges): Remove incorrect code attempting to use
573 (output_line_info): Get cold section label from function struct; test
574 to make sure cfun is defined.
575 (add_location_or_const_value_attribute): Likewise.
576 (dwarf2out_var_location): Likewise.
577 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
578 write out cold_text_section_label if partition flag is set.
579 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
580 * function.h (struct function): Add new fields to point to hot/cold
581 section labels: hot_section_label, cold_section_label,
582 hot_section_end_label and cold_section_end_label; also add new field
583 for cold text section name, unlikely_text_section_name.
584 * opts.c (decode_options): Turn off partitioning flag if
585 !targetm.have_named_sections.
586 * output.h (hot_section_label): Remove.
587 (hot_section_end_label): Remove.
588 (cold_section_end_label): Remove.
589 (unlikely_section_label): Remove.
590 (unlikely_text_section_name): Remove.
591 * passes.c (rest_of_handle_final): Remove extra blank line.
592 * varasm.c (unlikely_section_label): Remove.
593 (hot_section_label): Remove.
594 (hot_section_end_label): Remove.
595 (cold_section_end_label): Remove.
596 (unlikely_text_section_name): Remove.
597 (initialize_cold_section_name): Modify to call
598 targetm.strip_name_encoding; to store cold section name in current
599 function struct, if it exists; and to only use the decl_section_name
600 if flag_named_sections is true.
601 (unlikely_text_section): Modify to get section name out of current
602 function struct, if there is one; otherwise build it from
603 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
604 (in_unlikely_text_section): Likewise.
605 (named_section): Modify to get/put cold section name in current function
606 struct, if there is one.
607 (function_section): Change 'bool unlikely' to 'int reloc'; check
608 targetm.have_named_sections before calling named_section.
609 (current_function_section): Likewise.
610 (assemble_start_function): Modify to get/put unlikely_text_section_name
611 in current function struct; modify to get hot/cold section labels
612 from function struct; initialize labels using
613 ASM_GENERATE_INTERNAL_LABEL;
614 test partitioning flag before writing out hot section label.
615 (assemble_end_function): Test partitioning flag before writing out
616 hot/cold section labels.
617 (default_section_type_flags_1): Get cold text section name from
618 function struct if there is one; Set flags correctly for
619 cold text section if there is not a current function struct.
621 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
623 * tree-ssa-propagate.c (set_rhs): Revert last change.
625 2005-04-27 Steve Ellcey <sje@cup.hp.com>
627 * explow.c (convert_memory_address): Add gcc_assert.
629 2005-04-27 Mark Mitchell <mark@codesourcery.com>
631 * configure.ac: Check for ld --sysroot support.
632 * gcc.c: Document %R specifier for specs.
633 (SYSROOT_SPEC): New macro.
634 (sysroot_spec): New variable.
635 (static_specs): Add sysroot_spec.
636 (main): Pass the sysroot spec to the linker if appropriate.
637 * configure: Regenerated.
638 * config.in: Likewise.
640 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
642 * fold-const.c (fold_binary): Use build_fold_addr_expr
643 for address calculation and INDIRECT_REF handling.
645 2005-04-27 Andrew Haley <aph@redhat.com>
647 * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
649 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
651 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
652 pointer when thumb backtracing is on.
654 * config/fp-bit.c (abort): Revert change.
656 2005-04-27 Ian Lance Taylor <ian@airs.com>
658 * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
660 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
662 * tree-ssa-dce.c: Fix a comment typo.
664 2005-04-27 David S. Miller <davem@davemloft.net>
666 * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
667 Kill setjmpless_size. current_function_calls_setjmp is completely
668 computed when we are called, so just use the optimized size value
669 instead of using REG_SAVE_AREA notes.
670 (optimize_save_area_alloca): Delete....
671 * rtl.h (optimize_save_area_alloca): Likewise...
672 * passes.c (rest_of_compilation): and don't call it any more.
673 * reg-notes.def (SAVE_AREA): Delete.
675 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
677 * config/fp-bit.c (abort): Add noreturn attribute.
679 * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
680 gcc_unreachable as appropriate.
681 (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
682 * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
683 ASM_OUTPUT_REG_POP): Likewise.
685 2005-04-27 Paolo Bonzini <bonzini@gnu.org>
687 * tree-complex.c (expand_vector_operations_1): Do not build
688 VIEW_CONVERT_EXPR's for the lhs.
690 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
692 * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
693 unnecessary noncanonical RTL handling.
694 * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
695 gcc_assert and gcc_unreachable.
697 * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
698 gcc_unreachable as appropriate.
699 (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
700 * config/arm/arm.c (arm_override_options, arm_compute_func_type,
701 use_return_insn, const_ok_for_op, arm_gen_constant,
702 arm_canonicalize_comparison, legitimize_pic_address,
703 thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
704 arm_cirrus_insn_p, cirrus_reorg, minmax_code,
705 load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
706 emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
707 arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
708 move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
709 dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
710 fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
711 output_call, output_mov_long_double_fpa_from_arm,
712 output_mov_long_double_arm_from_fpa,
713 output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
714 output_move_double, arithmetic_instr, shift_op, int_log2,
715 output_return_instruction, arm_output_function_prologue,
716 arm_output_epilogue, arm_output_function_epilogue,
717 emit_multi_reg_push, arm_get_frame_offsets,
718 arm_compute_initial_elimination_offset, arm_expand_prologue,
719 arm_print_operand, arm_assemble_integer, get_arm_condition_code,
720 arm_final_prescan_insn, arm_init_iwmmxt_builtins,
721 arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
722 thumb_compute_initial_elimination_offset,
723 thumb_output_function_prologue, thumb_load_double_from_address,
724 thumb_output_move_mem_multiple, thumb_reload_out_hi,
725 arm_emit_vector_const, arm_dbx_register_number): Likewise.
726 * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
727 * config/arm/arm.md (thumb_extendhisi2,
728 *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
729 *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
730 thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
731 *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
732 * config/arm/cirrus.md (*cirrus_arm_movdi,
733 *cirrus_movdf_hard_insn): Likewise.
734 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
736 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
738 * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
739 (num_ssa_names): Use VEC_length.
740 (ssa_names): Use VEC_index.
741 * tree-ssanames.c (ssa_names): Change the type to
743 (init_ssanames, fini_ssa_names, make_ssanames,
744 release_ssa_name): Update uses of ssa_names.
746 * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
747 Use fold_buildN instead of fold (buildN (...)).
749 2005-04-27 Devang Patel <dpatel@apple.com>
751 * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
753 2005-04-27 Matt Thomas <matt@3am-software.com>
754 Jan-Benedict Glaw <jbglaw@microdata-pos.de>
756 * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
757 (vax_output_mi_thunk): Ditto.
758 (vax_notice_cc_update): Ditto.
759 (INDEX_REGISTER_P): Add trailing \.
760 (BASE_REGISTER_P): Add trailing \.
761 (legitimate_address_p): Whitespace cleanup. Remove trailing \.
763 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
765 * tree-ssa-propagate.c (set_rhs): Check operand of
766 ADDR_EXPR for gimpliness, too.
768 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
770 * tree-ssa-pre.c: Fix a comment typo.
772 2005-04-27 Zdenek Dvorak <dvorakz@suse.cz>
774 PR tree-optimization/21171
775 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
776 record address uses if the reference is volatile.
778 2004-04-27 Paolo Bonzini <bonzini@gnu.org>
780 * tree-complex.c (expand_vector_operation): New, extracted from
781 expand_vector_operations_1.
782 (tree_vec_extract): Build a NOP_EXPR.
783 (expand_vec_parallel): Do not care about returning the correct type.
784 (expand_vector_operations_1): Call expand_vector_operation.
785 Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
787 * tree-complex.c (gate_expand_vector_operations): New.
788 (pass_lower_vector_ssa): Use it.
789 * tree-optimize.c (init_tree_optimization_passes): Include
790 pass_lower_vector_ssa.
791 * tree-vect-transform.c (vect_min_worthwhile_factor): New.
792 (vectorizable_operation): Use it.
793 * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
794 integer modes for the vector type.
796 * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
797 * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
798 Do not cope with UNITS_PER_SIMD_WORD == 0.
799 * tree-vectorizer.c (get_vectype_for_scalar_type): Check
800 if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
801 (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
802 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
803 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
804 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
805 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
807 * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
808 * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
809 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
811 * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
812 (UNITS_PER_SIMD_WORD): New.
814 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
816 * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
817 gcc_unreachable as appropriate.
818 (ia64_expand_load_address, ia64_expand_tls_address,
819 ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
820 ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
821 next_scratch_gr_reg, ia64_initial_elimination_offset,
822 ia64_expand_prologue, ia64_expand_epilogue,
823 ia64_output_dwarf_dtprel, ia64_print_operand,
824 ia64_register_move_cost, first_instruction, rws_access_regno,
825 update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
826 ia64_sched_init, ia64_variable_issue,
827 ia64_first_cycle_multipass_dfs_lookahead_guard,
828 ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
829 ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
830 process_for_unwind_directive, ia64_hpux_file_end): Likewise.
831 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
832 * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
833 * config/ia64/predicates.md (got_symbolic_operand,
834 sdata_symbolic_operand): Likewise.
835 * config/ia64/vect.md (vcondv2sf): Likewise.
837 2005-04-27 Matt Thomas <matt@3am-software.com>
839 * config/vax/vax.c (legitimate_constant_address_p): New. Formerly
840 CONSTANT_ADDRESS_P in config/vax/vax.h
841 (legitimate_constant_p): Added. Formerly CONSTANT_P in vax.h.
842 (INDEX_REGISTER_P): New.
843 (BASE_REGISTER_P): New.
844 (indirectable_constant_address_p): New. Adapted from
845 INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
846 (indirectable_address_p): New. Adapted from
847 INDIRECTABLE_ADDRESS_P in vax.h.
848 (nonindexed_address_p): New. Adapted from
849 GO_IF_NONINDEXED_ADDRESS in vax.h.
850 (index_temp_p): New. Adapted from INDEX_TERM_P in vax.h.
851 (reg_plus_index_p): New. Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
852 (legitimate_address_p): New. Adapted from
853 GO_IF_LEGITIMATE_ADDRESS in vax.h.
854 (vax_mode_dependent_address_p): New. Adapted from
855 GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
856 * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
857 legitimate_constant_address_p.
858 (CONSTANT_P): Use legitimate_constant_p.
859 (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
860 (INDIRECTABLE_ADDRESS_P): Removed.
861 (GO_IF_NONINDEXED_ADDRESS): Removed.
862 (INDEX_TEMP_P): Removed.
863 (GO_IF_REG_PLUS_INDEX): Removed.
864 (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
865 definitions, depending on whether REG_OK_STRICT is defined.
866 (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
867 Two definitions, depending on whether REG_OK_STRICT is defined.
868 * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
870 (legitimate_constant_p): Prototype added.
871 (legitimate_address_p): Prototype added.
872 (vax_mode_dependent_address_p): Prototype added.
874 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
876 * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
878 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
881 * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
884 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
887 * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
888 assertion failures, if __gcc_host_wide_int__ is not properly
890 (init_dynamic_diag_info): Give errors, not assertion failures, if
891 location_t, tree or __gcc_host_wide_int__ are not properly
894 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
896 * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
897 n_iv_uses, iv_use, n_iv_cands, iv_cand,
898 tree_ssa_iv_optimize_init, record_use, add_candidate_1,
899 prepare_decl_rtl, free_loop_data,
900 tree_ssa_iv_optimize_finalize): Use the VEC API instead of
903 * tree.h (tree_phi_node): Add a comment about the order of PHI
906 2005-04-26 Paul Brook <paul@codesourcery.com>
908 * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
910 2005-04-26 Nathan Sidwell <nathan@codesourcery.com>
912 * config/mips.mips.c (mips_legitimize_tls_address): Use
915 * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
916 * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
917 * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
919 * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
922 2005-04-26 Jeff Law <law@redhat.com>
924 * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
925 (op_iter_init_must_and_may_def): Likewise.
926 (unmodifiable_var_p): Move to a later point in the file.
927 * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
928 * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
929 (dse_record_phis): Directly check for virtual operands rather than
930 using need_imm_uses_for.
931 (dse_optimize_stmt): Handle V_MUST_DEF operands. Handle case where
932 store has multiple V_{MAY,MUST}_DEF operands.
934 2005-04-26 Andrew MacLeod <amacleod@redhat.com>
936 * tree-cfg.c (bsi_replace): Delink immediate uses for the original
939 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
941 * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
942 call to find_edge outside a loop to go through a PHI chain.
944 2004-04-26 Richard Guenther <rguenth@gcc.gnu.org>
946 PR tree-optimization/17598
947 * fold-const.c (fold_binary): Fold comparisons of addresses
948 of COMPONENT_REFs which reference the same field to
949 comparisons of the addresses of the base objects.
951 2005-04-26 Julian Brown <julian@codesourcery.com>
953 * config/arm/arm.c (arm_return_in_msb): New function.
954 (arm_must_pass_in_stack): New function.
955 (TARGET_RETURN_IN_MSB): Define target hook.
956 (TARGET_MUST_PASS_IN_STACK): Define target hook.
957 (arm_function_value): Pad small aggregate return.
958 (arm_pad_arg_upward): New function.
959 (arm_pad_reg_upward): New function.
960 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
961 (FUNCTION_ARG_PADDING): Define macro.
962 (BLOCK_REG_PADDING): Define macro.
963 (PAD_VARARGS_DOWN): Correct padding for AAPCS.
964 * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
965 (arm_pad_reg_upward): Declare function.
967 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
969 * basic-block.h (ei_cond): New.
970 (FOR_EACH_EDGE): Call ei_cond.
972 PR tree-optimization/21047
973 * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
974 (fold): Don't handle ASSERT_EXPR.
976 2005-04-25 Roger Sayle <roger@eyesopen.com>
978 * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
979 all writes to any stack register as a read/write dependency on
981 (sched_analyze_2): Likewise, for reads from any stack register.
983 2005-04-25 Richard Henderson <rth@redhat.com>
985 * final.c (output_addr_const): Revert 2005-04-09 change.
987 2005-04-25 Mike Stump <mrs@apple.com>
989 * config/darwin.c (darwin_encode_section_info): Always set
990 MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
992 2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
994 * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
995 gensupport.c, protoize.c, toplev.c: Replace calls to
996 `unlock_stream' with `unlock_std_streams'.
998 2005-04-25 Devang Patel <dpatel@apple.com>
1000 * dbxout.c (dbxout_type): Emit attribute vector.
1002 2005-04-05 Paul Brook <paul@codesourcery.com>
1004 * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
1005 * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
1006 * config/arm/arm.c (arm_cxx_atexit_name): New function.
1007 (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
1008 * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
1009 (register_dtor_fn): Likewise.
1010 * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
1012 2005-04-25 Ian Lance Taylor <ian@airs.com>
1014 * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
1015 * c-common.h (EXPR_STMT_EXPR): Don't define.
1016 (c_common_stmt_codes): Don't define.
1017 * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
1018 * c-gimplify.c (gimplify_expr_stmt): Remove.
1019 (c_gimplify_expr): Remove EXPR_STMT case.
1020 * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
1021 to INIT_STATEMENT_CODES.
1022 * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
1024 2005-04-25 Jan Hubicka <jh@suse.cz>
1026 * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
1028 * except.c: Include diagnostic.h
1029 (dump_eh_tree, verify_eh_tree): New functions.
1030 * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
1031 * tree-cfg.c (tree_verify_flow_info): verify eh edges.
1032 (dump_function_to_file): dump eh tree.
1033 * tree-eh.c (mark_eh_edge): New function.
1034 (mark_eh_edge_found_error): New static variable.
1035 (verify_eh_edges): New function.
1037 2005-04-25 Nathan Sidwell <nathan@codesourcery.com>
1039 * tree-ssa-alias.c (fieldoff_t): Remove.
1040 (fieldoff_s): typedef the structure itself. Create a vector of
1042 (push_fields_onto_fieldstack): Return count of fields pushed.
1043 Remove peeling of first field. Adjust.
1044 (fieldoff_compare): Adjust.
1045 (create_overlap_variables_for): Adjust.
1047 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
1049 * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
1051 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
1054 * doc/install.texi: Document correct assembler and linker to use
1055 on i?86-*-solaris2.10.
1057 2005-04-25 Steven Bosscher <stevenb@suse.de>
1059 Fix PR tree-optimization/21173
1061 * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
1062 Unshare expression we pass to force_gimple_operand.
1064 2005-04-25 J"orn Rennecke <joern.rennecke@st.com>
1065 Stephen Clarke <stevec@superh.com>
1066 Roger Sayle <roger@eyesopen.com>
1068 PR rtl-optimization/20413
1069 * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
1070 VOIDmode for LABEL_REF.
1071 * final.c (shorten_branches): Likewise.
1072 * jump.c (mark_all_labels, redirect_exp_1): Likewise.
1073 * loop.c (reg_dead_after_loop): Likewise.
1074 * varasm.c (decode_addr_const): Likewise.
1075 * doc/rtl.texi: Document mode requirement for LABEL_REF.
1077 2005-04-25 Ralf Corsepius <ralf.corsepius@rtems.org>
1079 * config.gcc (avr-*-*): Remove redundant "case".
1081 2005-04-25 Kazu Hirata <kazu@cs.umass.edu>
1083 * tree-vect-analyze.c (vect_mark_relevant): Take
1084 VEC(tree,heap) instead of varray_type as an argument.
1085 (vect_mark_stmts_to_be_vectorized): Change the type of
1086 worklist to VEC(tree,heap). Adjust uses of worklist.
1088 2005-04-24 Devang Patel <dpatel@apple.com>
1090 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
1092 2005-04-24 Ian Lance Taylor <ian@airs.com>
1094 * c-semantics.c (build_stmt): Remove test of specific tree codes
1095 for TREE_SIDE_EFFECTS handling.
1097 2005-04-24 Per Bothner <per@bothner.com>
1099 * c-opts.c (finish_options): Make the line-number of the <built-in>
1100 location 0, as assumed elsewhere, rather than 1.
1102 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
1104 * tree-ssa-uncprop.c (equiv_stack): Change the type o
1106 (tree_ssa_uncprop, uncprop_finalize_block,
1107 uncprop_initialize_block): Update uses of equiv_stack.
1109 2005-04-24 Richard Henderson <rth@redhat.com>
1112 * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
1113 for SCALAR_INT_MODE_P instead of not MODE_CC before returning
1115 <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
1116 <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
1117 <DIV, MOD>: Likewise.
1119 2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1121 * collect2.c (main): Unlock the stdio streams.
1122 * gcc.c (main): Likewise.
1123 * gcov-dump.c (main): Likewise.
1124 * gcov.c (main): Likewise.
1125 * gen-protos.c (main): Likewise.
1126 * gensupport.c (init_md_reader_args_cb): Likewise.
1127 * protoize.c (main): Likewise.
1128 * toplev.c (general_init): Likewise.
1130 2005-04-24 Jakub Jelinek <jakub@redhat.com>
1133 * cgraph.h (cgraph_local_info): Add vtable_method field.
1134 * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
1135 and node is vtable_method, finalized and not reachable, don't do
1138 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
1140 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
1142 * tree-ssa-pre.c (create_value_expr_from): Use
1143 CONSTANT_CLASS_P and REFERENCE_CLASS_P.
1144 * tree-ssa-propagate.c (stmt_makes_single_load,
1145 stmt_makes_single_store): Use REFERENCE_CLASS_P.
1146 * tree-vect-transform.c (vect_is_simple_cond): Use
1148 * tree-vrp.c (extract_range_from_assert,
1149 build_assert_expr_for, fp_predicate, has_assert_expr): Use
1152 * tree-ssa-live.c (build_tree_conflict_graph): Change the type
1153 of tpa_to_clear to VEC(int,heap). Update uses of
1154 tpa_to_clear. Free tpa_to_clear at the end.
1156 2005-04-24 Andrew Pinski <pinskia@physics.uc.edu>
1158 * tree.h (TREE_THIS_VOLATILE): Document the effect on a
1161 2005-04-24 Nathan Sidwell <nathan@codesourcery.com>
1163 * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
1164 and gcc_unreachable as appropriate.
1165 (num_insns_constant, output_vec_const_move,
1166 build_mask64_2_operands, rs6000_output_dwarf_dtprel,
1167 rs6000_emit_set_const, rs6000_emit_move,
1168 spe_build_register_parallel, function_arg,
1169 rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
1170 spe_expand_predicate_builtin, spe_expand_evsel_builtin,
1171 rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
1172 rs6000_common_init_builtins, expand_block_clear,
1173 expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
1174 extract_ME, rs6000_get_some_local_dynamic_name,
1175 rs6000_output_function_entry, print_operand,
1176 print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
1177 output_cbranch, output_e500_flip_gt_bit,
1178 rs6000_emit_vector_compare, rs6000_emit_vector_compare,
1179 rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
1180 compute_save_world_info, rs6000_stack_info,
1181 rs6000_emit_load_toc_table, rs6000_frame_related,
1182 spe_synthesize_frame_save, rs6000_emit_epilogue,
1183 rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
1184 output_function_profiler, rs6000_trampoline_size,
1185 rs6000_initialize_trampoline, find_addr_reg,
1186 rs6000_machopic_legitimize_pic_address,
1187 rs6000_initial_elimination_offset,
1188 rs6000_dbx_register_number): Likewise.
1189 * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
1190 *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
1191 *movti_power, *movti_string, call, call_value, sibcall,
1192 sibcall_value): Likewise.
1193 * config/rs6000/spe.md (*movdf_e500_double,
1194 *movv2si_internal): Likewise.
1195 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
1198 2005-04-24 Richard Henderson <rth@redhat.com>
1201 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
1202 * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
1203 Deny modes smaller than 4 bytes.
1204 * config/i386/i386-protos.h: Update.
1206 2005-04-24 Ralf Corsepius <ralf.corsepius@rtems.org>
1208 * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
1209 Switch h8300-*-rtems* to ELF.
1211 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
1213 * vec.h (VEC_safe_grow): Replace grow with safe_grow.
1215 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
1217 * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
1219 2005-04-23 Richard Guenther <rguenth@gcc.gnu.org>
1222 * fold-const.c: Fold &a[i]-&a[j] to i-j.
1224 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
1226 * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
1227 definitions of ssa names in condition. Split recusive part to ...
1228 (tree_simplify_using_condition_1): New function.
1229 (expand_simple_operations): New function.
1231 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
1233 * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
1234 (find_interesting_uses_cond): Do not use integer_zerop and
1235 integer_nonzerop to check for integer constants.
1236 (set_use_iv_cost): Record the value field.
1237 (determine_use_iv_cost_generic, determine_use_iv_cost_address,
1238 determine_use_iv_cost_outer): Set the value field of the cost pair.
1239 (may_eliminate_iv): Do not return the comparison code.
1240 (iv_elimination_compare): New function.
1241 (determine_use_iv_cost_condition): Set the value field. Record
1242 noneliminable invariants correctly.
1243 (rewrite_use_compare, rewrite_use_outer): Use the value field.
1245 2005-04-23 DJ Delorie <dj@redhat.com>
1247 * diagnostic.c (warning): Accept parameter to classify warning option.
1248 (warning0): New, for when a pointer to an error() like function is needed.
1249 * errors.c (warning): Likewise.
1250 * errors.h (warning, warning0): Adjust prototypes.
1251 * toplev.h (warning, warning0): Likewise.
1253 * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
1254 c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
1255 c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
1256 fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
1257 genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
1258 reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
1259 tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
1260 tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
1262 * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
1263 config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
1264 config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
1265 config/darwin.c, config/darwin.h, config/h8300/h8300.c,
1266 config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
1267 config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
1268 config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
1269 config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
1270 config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
1271 config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
1272 config/rs6000/aix52.h, config/rs6000/darwin.h,
1273 config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
1274 config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
1275 config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
1276 config/stormy16/stormy16.c, config/v850/v850-c.c,
1277 config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
1280 2005-04-23 Richard Henderson <rth@redhat.com>
1283 * simplify-rtx.c (simplify_binary_operation): Fix mode check before
1284 performing some integral scalar simplifications.
1286 2005-04-23 Richard Henderson <rth@redhat.com>
1289 * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
1290 simplifying CONST_VECTOR.
1292 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
1294 * tree-ssa-live.c (live_worklist): Take a stack allocated on
1295 heap as an argument. Update uses of stack.
1296 (calculate_live_on_entry): Allocate stack on heap.
1298 * tree-ssa-live.c (build_tree_conflict_graph): Allocate
1299 partition_link and tpa_nodes on heap.
1301 * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
1302 (mark_stmt_necessary, propagate_necessity,
1303 mark_really_necessary_kill_operand_phis): Update uses of
1305 (tree_dce_init): Allocate worklist using VEC_alloc.
1306 (tree_dce_done): Free worklist using VEC_free.
1308 2005-04-23 Mike Stump <mrs@apple.com>
1310 * config/darwin.c (machopic_indirection_name): Don't use
1312 (darwin_emit_unwind_label): Use user_label_prefix instead of
1315 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
1317 * final.c, ipa-inline.c, varasm.c: Fix comment typos.
1319 2005-04-23 Hans-Peter Nilsson <hp@axis.com>
1321 * config.gcc <cris-*>: Specify .opt files.
1322 * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
1323 config/cris/linux.opt: New files.
1324 * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
1325 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
1326 (TARGET_ELF): Override to 0.
1327 (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
1328 -melinux-stacksize=N.
1329 * config/cris/cris.c: (cris_handle_option): New function.
1330 (TARGET_DEFAULT_TARGET_FLAGS): Override.
1331 (TARGET_HANDLE_OPTION): Override to cris_handle_option.
1332 (cris_override_options): Use MASK_*, not TARGET_MASK_*.
1333 * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
1334 (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
1335 (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
1336 (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
1337 (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
1338 (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
1339 (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
1340 (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
1341 (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
1342 (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
1343 (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
1344 (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
1345 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
1346 (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
1347 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
1348 (TARGET_LINUX): Define 0.
1349 (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
1350 (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
1351 (CRIS_SUBTARGET_DEFAULT): New empty default macro.
1352 * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
1353 (TARGET_LINUX): Override to 1.
1354 (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
1356 2005-04-23 Nathan Sidwell <nathan@codesourcery.com>
1358 * haifa-sched.c (schedule_block): Fix thinko in previous
1359 assertification patch.
1361 2005-04-23 Richard Sandiford <rsandifo@redhat.com>
1363 * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
1364 $extra_options. Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
1365 (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
1366 pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
1367 $extra_options. Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
1368 (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
1369 pa/pa-hpux.opt to $extra_options. Also add pa/pa-hpux1111.opt
1371 * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
1372 (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
1373 (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
1374 (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
1375 (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
1376 (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
1377 (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
1378 (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
1379 (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
1380 (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
1381 (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
1382 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
1383 (SUBTARGET_OPTIONS): Delete.
1384 (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
1385 (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
1386 instead of a string.
1387 * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
1388 (pa_cpu_string, pa_unix_string): Delete.
1389 (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
1390 (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
1392 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1393 (pa_handle_option): New function.
1394 (override_options): Remove handling of -march=, -mfixed-range=,
1395 -mschedule= and -munix=.
1396 * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
1397 * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
1398 * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
1399 * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
1400 * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
1401 * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
1402 * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
1404 * config/pa/pa.opt: New file.
1405 * config/pa/pa-hpux.opt: New file.
1406 * config/pa/pa-hpux1010.opt: New file.
1407 * config/pa/pa-hpux1111.opt: New file.
1408 * config/pa/pa64-hpux.opt: New file.
1410 2005-04-22 David S. Miller <davem@davemloft.net>
1412 * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
1413 integer when it's mode is VOIDmode not DImode.
1415 2005-04-22 Geoffrey Keating <geoffk@apple.com>
1417 * config/rs6000/rs6000.md (sync_add<mode>_internal,
1418 sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
1419 sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
1420 sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
1421 sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
1422 "bne- $-xxx" rather than local labels.
1423 (sync_lock_release<mode>): Add second operand.
1424 (lwsync): Use .long rather than a more meaningful opcode.
1425 * doc/md.texi (Standard Names): Add description of second
1426 parameter to sync_lock_test_and_set.
1428 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
1430 PR tree-optimization/21088
1431 * fold-const.c (fold_unary, fold_binary, fold_ternary):
1433 * tree-vrp.c (compare_values): Use fold_binary to compare
1434 pointers. Use boolean_type_node as the type of a comparison
1435 expression being folded.
1436 * tree.h: Add prototypes for fold_unary, fold_binary,
1439 * tree-ssa-dom.c: Fix formatting.
1441 2005-04-22 Diego Novillo <dnovillo@redhat.com>
1443 * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
1444 * lambda-code.c (perfect_nestify): Mark virtual operands in
1445 the moved statement for renaming.
1446 * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
1447 (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
1448 * params.h (MIN_VIRTUAL_MAPPINGS): Define.
1449 (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
1450 * tree-flow.h (struct var_ann_d): Update comments.
1451 (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
1452 allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
1453 debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
1454 debug_tree_ssa_stats, rewrite_ssa_into_ssa,
1455 dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
1456 debug_names_replaced_by): Remove declarations.
1457 (delete_update_ssa, get_current_def, set_current_def): Declare.
1458 (rewrite_into_loop_closed_ssa): Add new argument. Update
1460 * tree-into-ssa.c: Include params.h.
1461 (old_virtual_ssa_names): Remove. Update all users.
1462 (need_to_replace_names_p): Remove. Update all users.
1463 (struct update_ssa_stats_d): Declare.
1464 (update_ssa_stats): New local.
1465 (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
1466 dump_tree_ssa_stats, debug_tree_ssa_stats,
1467 dump_update_ssa, debug_update_ssa,
1468 dump_names_replaced_by, debug_names_replaced_by): Declare.
1469 (get_current_def, set current_def): Make extern.
1470 (is_old_name, is_new_name): Protect against references
1471 past the end of the sets.
1472 (add_new_name_mapping): Assert that OLD and NEW are
1473 different SSA names for the same symbol.
1474 When adding a virtual mapping, update stats for virtual
1476 (insert_phi_nodes_for): If UPDATE_P is true, create the
1477 LHS of the new PHI by duplicating SSA name VAR.
1478 (insert_phi_nodes_1): Remove. Update all users.
1479 (insert_phi_nodes): Remove second argument. Update all
1481 (maybe_replace_use, maybe_replace_def): New.
1482 (rewrite_update_stmt): Call them.
1483 (mark_def_interesting): Remove calls to is_gimple_reg.
1484 (prepare_phi_args_for_update): Remove. Update all users.
1485 (prepare_block_for_update): Only process virtual operands
1486 and GIMPLE registers in normal form.
1487 (prepare_use_sites_for): New.
1488 (prepare_names_to_update): Rename from prepare_def_sites.
1489 Call prepare_use_sites_for.
1490 (dump_update_ssa): Rename from dump_repl_tbl.
1492 Show statistics for virtual mapping heuristic.
1493 (debug_update_ssa): Rename from debug_debug_repl_tbl.
1494 (init_update_ssa): Initialize UPDATE_SSA_STATS.
1495 (delete_update_ssa): Make extern.
1496 (mark_set_for_renaming): If the set is empty, do nothing.
1497 (release_ssa_name_after_update_ssa): Update comment.
1498 (insert_updated_phi_nodes_for): Do not remove existing
1499 PHI nodes for symbols.
1500 (switch_virtuals_to_full_rewrite_p): New.
1501 (switch_virtuals_to_full_rewrite): New.
1502 (update_ssa): Call them.
1503 Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
1504 for every statement before updating.
1505 If all the names in NEW_SSA_NAMES have been marked for
1506 removal, do nothing.
1507 Only start at the top of the CFG if there are symbols in
1509 (ssa_rewrite_finalize_block): Remove.
1510 (ssa_register_new_def): Remove.
1511 (ssa_rewrite_stmt): Remove.
1512 (ssa_rewrite_phi_arguments): Remove.
1513 (ssa_rewrite_initialize_block): Remove.
1514 (ssa_mark_def_sites): Remove.
1515 (ssa_mark_def_sites_initialize_block): Remove.
1516 (ssa_mark_phi_uses): Remove.
1517 (rewrite_ssa_into_ssa): Remove.
1518 * tree-phinodes.c (find_phi_node_for): Remove.
1519 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1521 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
1522 Remove calls to verify_dominators and
1523 verify_loop_structure.
1524 (tree_unswitch_single_loop): Call update_ssa.
1525 * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
1528 (delete_tree_ssa): Assert that need_ssa_update_p returns
1530 * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
1531 * tree-vectorizer.c (allocate_new_names, rename_def_op,
1532 free_new_names): Remove. Update all users.
1533 (rename_use_op): Call get_current_def.
1534 (rename_variables_in_bb): Do not handle any real or
1536 (slpeel_update_phis_for_duplicate_loop): Call
1537 get_current_def and set_current_def instead of using
1539 (slpeel_update_phi_nodes_for_guard2): Reformat comments.
1540 (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
1541 ssa_names_to_replace and delete_update_ssa.
1542 * doc/invoke.texi: Document --param min-virtual-mappings
1543 and --param virtual-mappings-ratio.
1545 2005-04-22 Diego Novillo <dnovillo@redhat.com>
1547 * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
1548 for newly created PHI nodes.
1549 Call create_new_def_for for every new V_MAY_DEF and
1550 V_MUST_DEF on the copied statement.
1551 (struct ssa_name_map_entry): Remove.
1552 (ssa_name_map_entry_hash): Remove.
1553 (ssa_name_map_entry_eq): Remove.
1554 (allocate_ssa_names): Remove.
1555 (rewrite_to_new_ssa_names_def): Remove.
1556 (rewrite_to_new_ssa_names_use): Remove.
1557 (rewrite_to_new_ssa_names_bb): Remove.
1558 (rewrite_to_new_ssa_names): Remove.
1559 (tree_duplicate_sese_region): Remove variables ver,
1560 definitions, phi, ssa_name_map and bi.
1561 Call need_ssa_update_p instead of any_marked_for_rewrite_p.
1563 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
1564 update_ssa instead of rewrite_ssa_into_ssa.
1565 * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
1567 (find_uses_to_rename_use): Add argument 'need_phis'.
1568 (find_uses_to_rename_stmt): Do not scan virtual operands.
1569 (find_uses_to_rename): Only scan PHI nodes for
1571 (rewrite_into_loop_closed_ssa): Call update_ssa.
1572 (check_loop_closed_ssa_use): Ignore virtual operands.
1573 (check_loop_closed_ssa_stmt): Likewise.
1574 (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
1576 (rename_variables, set_phi_def_stmts): Remove.
1577 (tree_duplicate_loop_to_header_edge): Reformat comment.
1578 Remove variables BB, I and DEFINITIONS.
1579 Call need_ssa_update_p.
1581 (lv_adjust_loop_header_phi): Reformat comment.
1582 * tree-ssanames.c (ssa_names_to_rewrite): Remove.
1583 (marked_for_rewrite_p, any_marked_for_rewrite_p,
1584 mark_for_rewrite, unmark_all_for_rewrite,
1585 marked_ssa_names): Remove. Update all users.
1586 (release_ssa_name): If VAR has been registered for SSA
1587 updating, do nothing.
1588 * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
1589 (build_assert_expr_for): Call register_new_name_mapping.
1590 (insert_range_assertions): Update call to update_ssa.
1591 * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
1592 marked_for_rewrite_p, any_marked_for_rewrite_p,
1593 marked_ssa_names): Remove.
1595 2005-04-22 Jeff Law <law@redhat.com>
1597 * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
1598 (restore_currdefs_to_original_value): Likewise.
1599 (register_definitions_for_stmt): Likewise.
1600 (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
1601 for each variable. Do not allocate/free block_defs_stack either.
1602 Do not iterate if we just thread jumps. Only iterate if the
1603 tree_cleanup_cfg does useful work (temporary).
1604 (dom_opt_initialize_block): No longer push a marker on
1606 (dom_opt_finalize_block): Removal call to restore currdefs.
1607 Relax restrictions for recording edge equivalences.
1608 (record_equivalences_from_phis): No longer need to track
1610 (optimize_stmt): Similarly.
1611 (thread_across_edge): Simplify by removing the requirement that
1612 statements in the block we are threading through must be nops.
1613 (initialize_hash_element): Handle GOTO_EXPR.
1615 2005-04-22 David S. Miller <davem@davemloft.net>
1617 * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
1619 * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
1620 fix check on CONST_DOUBLE mode. It should be VOIDmode
1621 when it is representing an integer.
1623 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
1625 * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
1626 'abort'. Use gcc_assert and gcc_unreachable as appropriate.
1627 * c-format.c (get_constant, decode_format_attr, get_flag_spec,
1628 find_char_info_specifier_index,
1629 find_length_info_modifier_index): Likewise.
1630 * c-typeck.c (composite_type, pop_init_level): Likewise.
1631 * combine.c (cant_combine_insn_p, try_combine): Likewise.
1632 * cse.c (cse_insn): Likewise
1633 * dominance.c (calc_dfs_tree): Likewise
1634 dwarf2out.c (loc_descriptor_from_tree_1,
1635 add_abstract_origin_attribute, force_decl_die,
1636 force_type_die): Likewise
1637 emit-rtl.c (operand_subword_force): Likewise
1638 explow.c (hard_function_value): Likewise
1639 expmed.c (store_bit_field, expand_divmod,
1640 emit_store_flag_force): Likewise
1641 expr.c (emit_move_multi_word, store_expr,
1642 expand_expr_real_1): Likewise
1643 final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
1644 output_operand): Likewise
1645 flow.c (recompute_reg_usage): Likewise
1646 * function.c (assign_stack_temp_for_type, assign_temp,
1647 handle_epilogue_set): Likewise
1648 * genextract.c (main): Likewise
1649 * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
1650 gimplify_modify_expr_rhs, gimplify_expr): Likewise
1651 * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
1652 ready_remove, rm_line_notes, rm_other_notes,
1653 schedule_block): Likewise
1654 mips-tfile.c (copy_object, out_of_bounds): Likewise
1656 2005-04-22 David Edelsohn <edelsohn@gnu.org>
1659 * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
1660 * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
1661 rs64. Add MASK_PPC_GFXOPT to powerpc64 and rs64.
1662 (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
1664 * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
1666 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
1668 * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
1669 (gcc_tree_to_linear_expression): Convert to heap allocated
1671 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1672 lbv_to_gcc_expression, lle_to_gcc_expression,
1673 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
1674 perfect_nestify): Likewise.
1675 lambda.h (gcc_loopnest_to_lambda_loopnest,
1676 lambda_loopnest_to_gcc_loopnest): Likewise.
1677 tree-loop-linear.c (linear_transform_loops): Likewise.
1679 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1681 * config/sparc/predicates.md (arith_double_operand): Use
1682 trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
1683 * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
1684 (DImode, DFmode constant splitters): Likewise. Remove code for
1685 TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
1686 (logical constant splitters): Use const_int_operand predicate.
1687 (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
1688 HOST_BITS_PER_WIDE_INT < 64.
1690 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
1692 * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
1693 gcc_unreachable as appropriate.
1694 (force_mode, emit_move_sequence, singlemove_string,
1695 output_move_double, output_fp_move_double, find_addr_reg,
1696 output_block_move, output_block_clear, output_and,
1697 output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
1698 pa_adjust_cost, pa_issue_rate, print_operand,
1699 output_global_address, output_arg_descriptor, output_cbranch,
1700 output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
1701 output_call): Likewise.
1702 * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
1703 prefetch, prefetch_cc, prefetch_nocc): Likewise.
1705 2005-04-22 Zdenek Dvorak <dvorakz@suse.cz>
1707 * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
1708 _gcov_pow2_profiler and _gcov_one_value_profiler.
1709 (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
1710 (GTFILES): Add $(srcdir)/tree-profile.c.
1711 * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
1712 __gcov_one_value_profiler): Declare.
1713 * gimplify.c (force_gimple_operand): Check whether the statements
1714 should be produced in ssa form.
1715 (force_gimple_operand_bsi): New function.
1716 * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
1717 __gcov_one_value_profiler): New functions.
1718 * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
1719 the profiled value is a power of two or not.
1720 * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
1721 * tree-flow.h (in_ssa_p): Declare.
1722 (force_gimple_operand_bsi): Declare.
1723 * tree-into-ssa.c (in_ssa_p): New variable.
1724 (rewrite_into_ssa): Set in_ssa_p.
1725 * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
1726 * tree-profile.c: Include ggc.h and gt-tree-profile.h.
1727 (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
1728 tree_one_value_profiler_fn): New variables.
1729 (tree_init_edge_profiler): Initialize the profiler function decls.
1730 (tree_gen_edge_profiler): Use global gcov_type_node.
1731 (prepare_instrumented_value): New function.
1732 (tree_gen_interval_profiler, tree_gen_interval_profiler,
1733 tree_gen_one_value_profiler): Call the library functions instead of
1734 creating instrumentation code.
1735 * tree.c (build_fn_decl): New function.
1736 * tree.h (build_fn_decl): Declare.
1737 * value-prof.c (rtl_divmod_values_to_profile,
1738 rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
1739 tree_mod_pow2_value_transform, tree_find_values_to_profile):
1740 Do not handle may_be_other and precise values of exponents at pow2
1742 (tree_mod_subtract_transform): Reflect that value field of
1743 histogram has changed meaning.
1744 (tree_divmod_values_to_profile): Record the values correctly.
1745 (tree_values_to_profile): Update comment.
1746 * value-prof.h (struct histogram_value_t): Remove pow2 data.
1748 2005-04-22 Joseph S. Myers <joseph@codesourcery.com>
1750 * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
1753 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
1755 * config/i386/i386.md (length_immediate): Use gcc_assert or
1756 gcc_unreachable, as appropriate.
1757 (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
1758 *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
1759 *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
1760 *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
1761 *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1762 *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
1763 *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
1764 *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
1765 *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
1766 *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
1767 *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
1768 *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1769 pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
1770 pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
1771 *prefetch_sse_rex): Likewise.
1772 * config/i386/predicates.md (x86_64_immediate_operand,
1773 x86_64_zext_immediate_operand, symbolic_operand,
1774 no_seg_address_operand, aligned_operand,
1775 memory_displacement_operand): Likewise.
1776 * config/i386/sse.md (*mov<mode>_internal,
1777 *movv2df_internal): Likewise.
1779 2005-04-22 Jan Hubicka <jh@suse.cz>
1781 * Makefile.in (ipa.o, ipa-inline.o): New files.
1782 * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
1783 cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
1784 cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
1785 * cgraphunit.c (cgraph_default_inline_p,
1786 cgraph_decide_inlining_incrementally, ncalls_inlined,
1787 nfunctions_inlined, initial_insns, overall_insns,
1788 cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
1789 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1790 cgraph_mark_inline, cgraph_check_inline_limits,
1791 cgraph_default_inline_p, cgraph_recursive_inlining_p,
1792 update_callee_keys, lookup_recursive_calls,
1793 cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
1794 cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
1795 cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
1796 pass_ipa_inline): Move to ipa-inline.c
1797 (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
1799 * ipa-inline.c: New file.
1801 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1803 * doc/invoke.texi (SPARC options): Document that -mapp-regs
1804 is turned off by default on Solaris.
1806 2005-04-21 Roger Sayle <roger@eyesopen.com>
1808 * c-common.h (objc_build_method_signature): Update prototype.
1809 * stub-objc.c (objc_build_method_signature): Update the stub
1810 implementation to accept and ignore additional parameter.
1811 * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
1812 the value of ellipsis to objc_build_method_signature instead
1813 of setting TREE_OVERFLOW on the parms TREE_LIST node.
1815 2005-04-21 Geoffrey Keating <geoffk@apple.com>
1817 * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
1818 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
1819 gen_rtx_* not gen_rtx_fmt_*.
1820 (rs6000_emit_vector_select): Likewise.
1821 (rs6000_emit_sync): New.
1822 * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
1823 (larx, stcx, cmp): New mode substitutions.
1824 (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
1825 UNSPEC_ISYNC): New constants.
1826 (rlwinm): Give name.
1827 (memory_barrier, isync, lwsync): New insns.
1828 (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
1829 (sync_lock_release<mode>): New expander.
1830 (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
1831 sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
1832 sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
1833 sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
1834 sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
1835 sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
1836 (sync_add<mode>_internal, sync_addshort_internal,
1837 sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
1838 sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
1839 sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
1841 * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
1842 is the memory before, not after, the operation. Clarify
1843 barrier requirements.
1845 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1847 * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
1848 * lambda.h (lambda_vector_min_nz): Likewise.
1849 * langhooks.h (struct lang_hooks_for_types,
1850 struct lang_hooks): Likewise.
1851 * output.h (assemble_integer, this_is_asm_operands): Likewise.
1854 * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
1856 * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
1857 comments to avoid 'abort'. Use gcc_assert as necessary.
1858 * opts.c (common_handle_option): Likewise.
1859 * pretty-print.c (pp_base_format_text): Likewise.
1860 * print-rtl.c (print_rtx): Likewise.
1861 * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
1862 * regmove.c (try_auto_increment): Likewise.
1863 * reload.c (find_valid_class, find_reloads_toplev,
1864 find_equiv_reg): Likewise.
1865 * reload1.c (reload, forget_old_reloads_1, function_invariant_p,
1866 merge_assigned_reloads): Likewise.
1867 * tree-inline.c (inline_forbidden_p_1,
1868 estimate_num_insns_1): Likewise.
1869 * tree-optimize.c (execute_todo): Likewise.
1870 * tree-outof-ssa.c (eliminate_phi): Likewise.
1871 * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
1872 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
1873 * tree-ssa-operands.c (parse_ssa_operands,
1874 get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
1875 * tree-ssa-pre.c (find_or_generate_expression): Likewise.
1876 * tree-ssanames.c (release_ssa_name): Likewise.
1877 * tree.c (int_bit_position, int_byte_position, tree_low_cst,
1878 walk_tree): Likewise.
1880 * tree-ssa-operands.c (verify_abort): Fold into ..
1881 (verify_imm_links): ... here.
1883 2005-04-21 Richard Henderson <rth@redhat.com>
1885 * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
1886 on non-memory operand for previous inversion.
1888 2005-04-21 Devang Patel <dpatel@apple.com>
1890 PR optimization/20994
1891 * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
1892 x = !(a == b) : p , q;.
1893 (pass_if_conversion): Verify stmts and flow.
1895 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1897 * optabs.c (gen_conditional_trap): Restore #define.
1899 * alias.c (true_dependence): Remove 'abort' from comments. Use
1900 gcc_assert and gcc_unreachable as appropriate.
1901 (canon_true_dependence): Likewise.
1902 * bb-reorder.c (connect_traces): Likewise.
1903 * c-common.c (c_add_case_label): Likewise.
1904 * c-decl.c (finish_function): Likewise.
1905 * caller-save.c (insert_restore, insert_save): Likewise.
1906 * cfg.c (update_bb_profile_for_threading): Likewise.
1907 * cfganal.c (flow_active_insn_p): Likewise.
1908 * cfgexpand.c (add_reg_br_prob_note): Likewise.
1909 * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
1910 cfg_layout_merge_blocks): Likewise.
1911 * ifcvt.c (cond_exec_process_insns, merge_if_block,
1912 find_if_block): Likewise.
1913 * integrate.c (allocate_initial_values): Likewise.
1914 * jump.c (reverse_condition, reverse_condition_maybe_unordered,
1915 swap_condition, unsigned_condition, signed_condition,
1916 mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
1917 reg_or_subregno): Likewise.
1918 * lambda-code.c (lambda_compute_auxillary_space,
1919 lambda_transform_legal_p): Likewise.
1920 * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
1921 * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
1922 lhd_incomplete_type_error, lhd_expand_expr,
1923 lhd_types_compatible_p, lhd_tree_size): Likewise.
1924 * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
1925 * local-alloc.c (update_equiv_regs): Likewise.
1926 * loop-unroll.c (peel_loop_completely
1927 unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
1928 peel_loop_simple, unroll_loop_stupid,
1929 analyze_iv_to_split_insn): Likewise.
1930 * loop.c (gen_prefetch, find_and_verify_loops,
1931 basic_induction_var): Likewise.
1932 * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
1933 * value-prof.c (tree_find_values_to_profile): Likewise.
1934 * varasm.c (named_section, default_assemble_integer,
1935 decode_addr_const): Likewise.
1937 2005-04-21 Alan Modra <amodra@bigpond.net.au>
1938 Fariborz Jahanian <fjahanian@apple.com>
1940 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
1941 portion of argument passed in fpr.
1942 * expr.c (emit_push_insn): Fix computation of 'offset' used to
1943 decide on partial argument save on stack.
1945 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
1947 * config/sparc/predicates.md, config/sparc/sparc.md: Fix
1950 2005-04-21 Jan Hubicka <jh@suse.cz>
1952 * cgraphunit.c: Include tree-pass.h
1953 (cgraph_decide_recursive_inlining,
1954 cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
1955 cgraph_decide_inlining): Dump goes to dump_file.
1956 (cgraph_optimize): Call ipa passes instead of inliner.
1957 (cgraph_gate_inlining, pass_ipa_inline): New.
1958 * tree-optimize.c (all_ipa_passes): New static variable.
1959 (register_one_dump_file): Dead with IPA passes.
1960 (register_dump_files): Likewise.
1961 (init_tree_optimization_passes): Initialize IPA passes.
1962 (execute_todo): Do cgraph dump when asked to, do not dump function body
1964 * tree-pass.h (TODO_dump_cgraph): New macro.
1965 (ipa_passes): Declare.
1966 * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
1968 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
1970 * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
1971 gcc_assert instead of abort.
1972 (classify_argument, examine_argument, construct_container,
1973 contains_128bit_aligned_vector_p, ix86_check_movabs,
1974 standard_80387_constant_opcode, standard_80387_constant_rtx,
1975 ix86_initial_elimination_offset, ix86_compute_frame_layout,
1976 pro_epilogue_adjust_stack, ix86_expand_epilogue,
1977 ix86_address_cost, legitimate_address_p, legitimize_pic_address,
1978 legitimize_tls_address, output_pic_addr_const,
1979 i386_output_dwarf_dtprel, put_condition_code, print_reg,
1980 get_some_local_dynamic_name, print_operand, print_operand_address,
1981 output_387_binary_op, emit_i387_cw_initialization,
1982 output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
1983 ix86_expand_clear, ix86_expand_binary_operator,
1984 ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
1985 ix86_cc_modes_compatible, ix86_fp_comparison_codes,
1986 ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
1987 ix86_expand_branch, ix86_expand_setcc,
1988 ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
1989 ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
1990 ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
1991 memory_address_length, ix86_attr_length_immediate_default,
1992 ix86_attr_length_address_default, ix86_agi_dependant,
1993 x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
1994 ix86_expand_binop_builtin, ix86_force_to_memory,
1995 ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
1996 x86_emit_floatuns): Likewise.
1997 * config/i386/netware.c (gen_regparm_prefix,
1998 i386_nlm_strip_name_encoding): Likewise.
1999 * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
2001 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
2003 * optabs.c (gen_condiational_trap): Remove #define.
2004 (add_equal_note): Assertify. Remove explicit indirection from
2005 call via function pointer.
2006 (expand_ternary_op, expand_simple_binop, expand_binop,
2007 expand_twoval_unop, expand_twoval_binop,
2008 expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
2009 emit_unop_insn, emit_no_conflict_block, prepare_cmp_insn,
2010 prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
2011 prepare_float_lib_cmp, emit_conditional_move,
2012 emit_conditional_add, gen_add2_insn, gen_add3_insn,
2013 have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
2014 expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
2015 vector_compare_rtx, expand_vec_cond_expr): Likewise.
2017 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
2019 * vec.h: Update API to separate allocation mechanism from type.
2020 (VEC_safe_grow): New.
2021 * vec.c (calculate_allocation): New.
2022 (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
2023 (vec_gc_free, vec_heap_free): Remove.
2024 * gengtype-lex.l (DEF_VEC_): Process mult-argument macros. Adjust.
2026 (mangle_macro_name): New.
2027 (struct macro_def): New.
2028 (struct macro): Add multiple argument values.
2029 (macro_expans_end): New.
2030 (push_macro_expansion): Chain on new macro. Process multiple
2031 args, create follow on expansion. Return follow on argument.
2032 (macro_input): Deal with multiple arguments.
2034 * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
2035 (struct tree_binfo): Adjust.
2036 * basic-block.h: Define VEC(edge,gc).
2037 (struct edge_def): Adjust.
2038 (struct basic_block_def, struct edge_iterator): Likewise.
2039 (ei_container, ei_start_1, ei_last_1): Likewise.
2040 * cfg.c (connect_src, connect_dest): Likewise.
2041 * cfgrtl.c (force_nonfallthru_and_redirect)
2042 * dbxout.c (dbxout_type)
2043 * dwarf2out.c (gen_member_die)
2044 * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
2045 (gcc_tree_to_linear_expression): Adjust.
2046 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
2047 lbv_to_gcc_expression, lle_to_gcc_expression,
2048 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
2049 perfect_nestify): Likewise.
2050 * lambda.h (gcc_loopnest_to_lambda_loopnest,
2051 lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
2052 * profile.c (instrument_values): Adjust.
2053 * tree-cfg.c (modified_noreturn_calls): Adjust.
2054 (remove_fallthru_edge): Likewise.
2055 * tree-dump.c (dequeue_and_dump): Adjust.
2056 * tree-flow-inline.h (mark_stmt_modified): Adjust.
2057 * tree-flow.h (modified_noreturn_calls): Adjust.
2058 (tree_on_heap): Remove. (yay!)
2059 (register_new_def): Adjust.
2060 * tree-into-ssa.c: Define VEC(int,heap).
2061 (block_defs_stack): Adjust.
2062 (find_idf, insert_phi_nodes, register_new_def,
2063 rewrite_initialize_block, rewrite_finalize_block,
2064 register_new_update_single, rewrite_update_init_block,
2065 rewrite_update_fini_block, rewrite_blocks,
2066 ssa_rewrite_finalize_block, ssa_register_new_def,
2067 ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
2068 * tree-loop-linear.c (linear_transform_loops): Adjust.
2069 * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
2070 (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
2071 * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
2072 stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
2073 vrp_variables_stack): Adjust declarations.
2074 (tree_ssa_dominator_optimize): Adjust.
2075 (dom_opt_initialize_block, remove_local_expressions_from_table,
2076 restore_nonzero_vars_to_original_value,
2077 restore_vars_to_original_value,
2078 restore_currdefs_to_original_value, dom_opt_finalize_block,
2079 record_var_is_nonzero, record_cond, record_const_or_copy_1,
2080 optimize_stmt, update_rhs_and_lookup_avail_expr,
2081 lookup_avail_expr, record_range): Likewise.
2082 * tree-ssa-pre.c: Define VEC(basic_block,heap).
2083 (compute_antic_aux): Adjust.
2084 (inserted_exprs, create_expression_by_pieces,
2085 insert_into_preds_of_block, eliminate, mark_operand_necessary,
2086 remove_dead_inserted_code, fini_pre): Likewise.
2087 * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
2088 (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
2089 ssa_prop_init): Likewise.
2090 * tree-ssa.c: Define VEC(bitmap,heap).
2091 (verify_name_tags): Adjust.
2092 * value-prof.c (rtl_divmod_values_to_profile): Adjust.
2093 (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
2094 tree_divmod_values_to_profile, tree_find_values_to_profile,
2095 value_profile_transformations): Likewise.
2096 * value-prof.h: Define VEC(histogram_value,heap).
2097 * varasm.c: Remove alias_pair pointer typedef, define
2099 (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
2101 * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
2102 not a pointer to it. Create an object vector.
2103 (extern_symbols): Turn into an object vector.
2104 (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
2106 2005-04-21 Sebastian Pop <pop@cri.ensmp.fr>
2109 * Makefile.in (tree-chrec.o): Depend on params.h.
2110 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
2112 * tree-chrec.c: Depend on params.h. Replace build with buildN,
2113 and fold build with fold_buildN.
2114 (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
2115 the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
2116 (tree_contains_chrecs): Compute an estimation of the size of the
2118 * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
2119 (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
2120 * tree-scalar-evolution.c (simple_iv): Ditto.
2121 * doc/invoke.texi (scev-max-expr-size): Documented.
2123 2005-04-21 Richard Sandiford <rsandifo@redhat.com>
2125 * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
2126 (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
2127 (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
2128 (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
2129 (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
2130 (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
2131 * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
2132 (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
2133 * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
2134 (darwin_fix_and_continue_switch): Delete.
2135 * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
2136 (SUBTARGET_SWITCHES): Delete.
2137 * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
2138 (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
2139 (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
2140 (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
2141 (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
2142 (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
2143 (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
2144 (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
2145 (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
2146 (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
2147 (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
2148 (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
2149 (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
2150 (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
2151 (TARGET_64BIT): Undef before redefining.
2152 (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
2153 (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
2154 (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
2155 (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
2156 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
2157 (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
2158 (ix86_asm_string, ix86_regparm, ix86_regparm_string)
2159 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
2160 (ix86_debug_arg_string, ix86_debug_addr_string)
2161 (ix86_align_loops_string, ix86_align_jumps_string)
2162 (ix86_align_funcs_string): Delete.
2163 * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
2164 (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
2165 * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
2166 (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
2167 * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
2168 * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
2169 (SUBTARGET_SWITCHES): Delete.
2170 * config/i386/i386.c (ix86_debug_arg_string): Delete.
2171 (ix86_debug_addr_string): Delete.
2172 (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
2173 (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
2174 (ix86_align_loops_string, ix86_align_jumps_string)
2175 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
2176 (ix86_align_funcs_string): Make static.
2177 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2178 (ix86_handle_option): New function.
2179 (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
2180 (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
2181 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
2182 of darwin_fix_and_continue_switch.
2183 (darwin_one_byte_bool): Delete.
2184 * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2185 * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
2186 to darwin_one_byte_bool.
2187 * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
2188 * config/i386/djgpp.opt, config/i386/i386.opt,
2189 * config/i386/sco5.opt: New files.
2191 2005-04-21 Eric Botcazou <ebotcazou@libertysurf.fr>
2193 * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
2194 fp_zero_operand, fp_register_operand, intreg_operand,
2195 fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
2196 call_operand, call_operand_address, tgd_symbolic_operand,
2197 tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
2198 symbolic_operand, symbolic_memory_operand, label_ref_operand,
2199 sp64_medium_pic_operand, data_segment_operand,
2200 text_segment_operand, splittable_symbolic_memory_operand,
2201 reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
2202 eq_or_neq, normal_comp_operator, noov_compare_op,
2203 noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
2204 cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
2205 const64_operand, const64_high_operand, arith11_operand,
2206 arith10_operand, arith_double_operand, arith_double_4096_operand,
2207 arith_double_add_operand, arith11_double_operand,
2208 arith10_double_operand, small_int, small_int_or_double,
2209 uns_small_int, uns_arith_operand, clobbered_register,
2210 input_operand, compare_operand): Delete.
2211 (sparc_emit_set_const32): Use predicates in assertion. Remove special
2212 code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
2213 (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
2214 (GEN_HIGHINT64, GEN_INT64): Delete.
2215 (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
2216 gen_safe_XOR64): Adjust for above deletion.
2217 (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
2218 Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
2219 (legitimate_constant_p): Use const_zero_operand instead.
2220 (sparc_extra_constraint_check): Likewise.
2221 * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
2222 (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
2223 (PREDICATE_CODES): Delete.
2224 * config/sparc/sparc.md: Include predicates.md.
2225 (All patterns): Adjust for new predicate names.
2226 (cmpdi, cmpdi_sp64): Use arith_operand predicate.
2227 (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
2228 (movdi): Use general_operand predicate.
2229 (movdi_sp64_dbl): Delete.
2230 (movdi_const64_special): Add 'N' constraint.
2231 (movdicc): Use arith10_operand predicate.
2232 (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
2233 (movdi_cc_reg_sp64): Use arith10_operand predicate.
2234 (movdi_cc_reg_sp64_trunc): Delete.
2235 (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
2236 (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
2237 (subdi3_sp32): Delete.
2238 (subdi3_insn_sp32): Change to define_insn_and_split.
2239 (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
2240 (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
2241 (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
2242 umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
2243 small_int_operand predicate.
2244 (divdi3, udivdi3): Use arith_operand predicate.
2245 (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
2246 (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
2247 xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
2248 (xordi3_sp64_dbl): Delete.
2249 (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
2250 cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
2251 cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
2252 cmp_ccx_set_not): Use arith_operand predicate.
2253 (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
2254 * config/sparc/predicates.md: New file.
2256 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
2258 PR tree-optimization/14846
2259 * fold-const.c (fold_single_bit_test_into_sign_test): New,
2261 (fold_single_bit_test): ... here.
2262 (fold_binary): Call fold_single_bit_test_into_sign_test
2263 instead of fold_single_bit_test.
2265 2005-04-20 James E Wilson <wilson@specifixinc.com>
2268 * dwarf2out.c (gen_variable_die): Don't emit a specification if this
2269 is another declaration.
2271 2005-04-21 Hans-Peter Nilsson <hp@axis.com>
2273 * config/cris/predicates.md: New file.
2274 * config/cris/cris-protos.h (cris_store_multiple_op_p)
2275 (cris_movem_load_rest_p): Declare.
2276 * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
2277 (cris_movem_load_rest_p): Ditto. Globalize.
2278 (cris_bdap_operand, cris_bdap_biap_operand,
2279 cris_orthogonal_operator, cris_commutative_orth_op,
2280 cris_operand_extend_operator,
2281 cris_additive_operand_extend_operator, cris_extend_operator,
2282 cris_plus_or_bound_operator, cris_mem_op,
2283 cris_general_operand_or_symbol,
2284 cris_general_operand_or_gotless_symbol,
2285 cris_general_operand_or_plt_symbol, cris_mem_call_operand,
2286 cris_load_multiple_op): Remove predicate functions.
2287 (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
2288 abort, for UNSPECs other than CRIS_UNSPEC_PLT.
2289 * config/cris/cris.h (PREDICATE_CODES): Don't define.
2290 * config/cris/cris.md: Include predicates.md.
2291 ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
2293 2005-04-20 Ian Lance Taylor <ian@airs.com>
2295 * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
2296 * c-common.h (STMT_EXPR_STMT): Don't define.
2297 (STMT_EXPR_NO_SCOPE): Don't define.
2298 * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
2299 * c-pretty-print.c (pp_c_primary_expression): Likewise.
2300 (pp_c_expression): Likewise.
2302 2005-04-20 Richard Henderson <rth@redhat.com>
2305 * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
2307 2005-04-20 Jeff Law <law@redhat.com>
2309 * reload1.c (reload): Ignore equivalences between pseudos and
2312 2005-04-20 Joseph S. Myers <joseph@codesourcery.com>
2315 * c-tree.h (struct c_label_list): Update comment.
2316 (struct c_label_context): Rename to struct c_label_context_se.
2317 (label_context_stack): Rename to label_context_stack_se.
2318 (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
2319 c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
2320 c_end_vm_scope): New.
2321 (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
2322 * c-decl.c (pop_scope): Call c_end_vm_scope.
2323 (pushdecl): Call c_begin_vm_scope for variably modified
2325 (define_label): Check for jumping into scope of identifier with
2326 variably modified type. Push label on stack for those defined at
2327 current context of identifiers with variably modified type.
2328 (start_function): Create stack level for context of identifiers
2329 with variably modified type.
2330 (finish_function): Pop stack level for context of identifiers with
2331 variably modified type.
2332 * c-typeck.c (label_context_stack): Rename to
2333 label_context_stack_se.
2334 (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
2335 (c_finish_goto_label): Check for jumping into scope of identifier
2336 with variably modified type. Push label on stack for those jumped
2337 to from current context of identifiers with variably modified
2339 (struct c_switch): Add blocked_vm.
2340 (c_start_case): Initialize blocked_vm.
2341 (do_case): Check blocked_vm.
2342 (c_finish_case): Add comment.
2343 (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
2344 variable label_context_stack.
2346 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
2348 * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
2349 conditional_replacement, value_replacement, abs_replacement,
2351 (replace_phi_edge_with_variable): Remove argument BB.
2352 (conditional_replacement, value_replacement,
2353 minmax_replacement, abs_replacement): Remove argument PHI_BB.
2354 Update a call to replace_phi_edge_with_variable.
2356 * tree-ssa-phiopt.c: Fix comments.
2358 2005-04-20 Michael Matz <matz@suse.de>
2361 * reload.c (push_reload, find_dummy_reload): Check for uninitialized
2364 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
2366 * tree-ssa-phiopt.c: Fix comment typos.
2368 PR tree-optimization/21116
2369 * tree-ssa-phiopt.c: Fix a typo.
2371 2005-04-19 Richard Henderson <rth@redhat.com>
2373 * builtins.c (expand_builtin_sync_operation): Revert last change.
2374 * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
2376 (expand_compare_and_swap_loop): Likewise.
2377 (expand_sync_operation): Remove fallback from NAND to AND; invert
2378 memory operand when expanding from cmpxchg.
2379 (expand_sync_fetch_operation): Likewise.
2380 * doc/extend.texi (Atomic Builtins): Fix docs for nand and
2383 * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
2384 when implementing NAND. Fix double-add for AFTER.
2385 * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
2386 (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
2387 (sync_compare_and_swap<I48MODE>): Fix compare vs zero. Return old
2389 (sync_lock_test_and_set<I48MODE>): Remove extra label and last
2392 * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
2393 to return old memory value.
2394 (sync_compare_and_swap_cc<IMODE>): Likewise.
2396 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
2397 return pre-reload. Don't consider output or anti dependencies.
2398 * config/ia64/sync.md (IMODE): New.
2399 (modesuffix): Add QI and HI.
2400 (memory_barrier): Simplify expansion.
2401 (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
2402 (cmpxchg_acq_<IMODE>): Likewise.
2403 (sync_lock_test_and_set<IMODE>): Likewise.
2404 (sync_lock_release<IMODE>): Likewise.
2406 2005-04-19 James A. Morrison <phython@gcc.gnu.org>
2408 * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
2411 2005-04-19 James A. Morrison <phython@gcc.gnu.org>
2413 * fold-const (fold_binary): Fold ~X ^ ~ Y to X ^ Y.
2415 2005-04-20 Michael Pogue <michael.pogue@sun.com>
2416 Joseph S. Myers <joseph@codesourcery.com>
2418 * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
2419 * c-typeck.c (build_c_cast): Check these options.
2420 * doc/invoke.texi: Document these options.
2422 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
2424 * tree-ssa-phiopt.c: Update a comment about the pass.
2426 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
2428 * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
2429 config/mcore/mcore.c: Fix comment typos.
2431 2005-04-19 Daniel Jacobowitz <dan@codesourcery.com>
2433 * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
2434 * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
2436 2005-04-19 Paul Brook <paul@codesourcery.com>
2438 * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
2440 2005-04-19 Andrew Haley <aph@redhat.com>
2443 * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
2444 looking at a field's bitpos.
2446 2005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2448 * system.h (fopen, fdopen, freopen): Define these to the unlocked
2449 libiberty functions.
2451 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
2453 PR tree-optimization/21096
2454 * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
2456 2005-04-19 Alan Modra <amodra@bigpond.net.au>
2459 * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
2460 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
2462 2005-04-19 Alexandre Oliva <aoliva@redhat.com>
2464 * tree-cfg.c (dump_function_to_file): Use cfun info only if it
2465 refers to the function being dumped.
2467 2005-04-18 Daniel Jacobowitz <dan@codesourcery.com>
2469 * varasm.c (assemble_start_function): Remove reset of in_section.
2471 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
2473 PR tree-optimization/21085
2474 * fold-const (fold_binary): Don't change X % -C to X % C if C has
2477 2005-04-19 Ben Elliston <bje@au.ibm.com>
2479 * doc/invoke.texi (Optimize Options): Refer to the correct
2480 optimisation flag -ftree-dominator-opts, not -ftree-dom.
2482 2005-04-18 Christopher Jaillet <christophe.jaillet@wanadoo.fr>
2484 * config/rs6000/rs6000.c (machopic_output_stub): Increase
2485 alloca argument to be big enough.
2487 2005-04-18 Alexandre Oliva <aoliva@redhat.com>
2490 * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
2493 2005-04-18 Tom Tromey <tromey@redhat.com>
2495 * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
2498 2005-04-18 Richard Henderson <rth@redhat.com>
2500 * config/alpha/alpha.c (alpha_split_atomic_op): New.
2501 (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
2502 (alphaev4_insn_pipe): Likewise. Correct IST and LDSYM pipes.
2503 * config/alpha/alpha-protos.h: Update.
2504 * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
2505 (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
2506 (attr type): Add ld_l, st_c, mb.
2507 (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
2508 iornotsi3, xorsi_internal, xornotsi3): New.
2509 * config/alpha/ev4.md (ev4_ld): Add ld_l.
2510 (ev4_ist_c, ev4_mb): New.
2511 * config/alpha/ev5.md (ev5_st): Add st_c, mb.
2513 * config/alpha/ev6.md (ev6_ild): Add ld_l.
2514 (ev6_ist): Add st_c.
2516 * config/alpha/sync.md: New file.
2518 2005-04-18 Richard Henderson <rth@redhat.com>
2520 * builtins.c (expand_builtin_sync_operation): Fold nand to and
2523 * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
2525 2005-04-18 Devang Patel <dpatel@apple.com>
2527 * config/rs6000/atlivec.md (mulv4si3): New pattern.
2529 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
2531 PR tree-optimization/20922
2532 * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
2533 Fold X + c >= X and fold X - c <= X to true.
2535 2005-04-18 James A. Morrison <phython@gcc.gnu.org>
2537 * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
2539 (emergency_labeled_state_free): Likewise.
2541 2005-04-18 Nick Clifton <nickc@redhat.com>
2543 * config/h8300/h8300.md (jump): Remove prescan parameter from
2544 calls to final_scan_insn.
2546 * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
2547 parameter from calls to final_scan_insn.
2549 * config.gcc (m68hc12): Use the m68hc11.opt file for target
2551 (v850e, v850e1): Use the v850.opt file for target specific
2554 2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
2556 PR tree-optimization/21001
2557 * tree-optimize.c (init_tree_optimization_passes): Move the
2558 first pass_forwprop immediately before pass_vrp.
2560 2005-04-17 Ian Lance Taylor <ian@airs.com>
2562 * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
2563 * c-common.c (c_sizeof_or_alignof_type): Change second parameter
2564 from enum tree_code op to bool is_sizeof.
2565 * c-common.h (c_sizeof_or_alignof_type): Update declaration.
2566 (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
2567 * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
2569 (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
2571 (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
2574 2005-04-17 Ian Lance Taylor <ian@airs.com>
2576 * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
2578 2005-04-17 Richard Henderson <rth@redhat.com>
2580 * config/alpha/alpha.c (va_list_skip_additions): Only define if
2582 (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
2583 (alpha_stdarg_optimize_hook): Likewise. Allow for one more round
2584 of indirection through ssa names while looking for the gpr counter
2586 (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
2587 saved va_list_gpr_size and va_list_fpr_size.
2589 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
2591 * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
2592 both pointers or both integers.
2594 * tree-vrp.c (maybe_add_assert_expr): Don't assert
2595 ASSERT_EXPRs for single-use variable.
2597 * tree-into-ssa.c: Fix a comment typo.
2599 2005-04-17 Richard Sandiford <rsandifo@redhat.com>
2601 * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
2602 -mipsN before forcing a default of -mips2.
2604 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
2606 * predict.h (IS_TAKEN): Remove.
2607 * rtl.h (NOTE_PREDICTION): Likewise.
2609 * modulo-sched.c (CFG_HOOKS): Remove.
2611 * c-parser.c (N_C_TTYPES): Remove.
2613 * tree-flow-inline.h (get_stmt_operands): Remove.
2614 * lambda-code.c, tree-ssa-loop-unswitch.c,
2615 tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
2616 tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
2617 tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
2618 calls to get_stmt_operands.
2619 * doc/tree-ssa.texi: Don't mention get_stmt_operands.
2621 2005-04-17 Richard Henderson <rth@redhat.com>
2624 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
2625 of CUMULATIVE_ARGS past the last named argument.
2626 (alpha_va_start): Expect pretend_args_size only if strictly less than
2629 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
2632 * builtins.c (expand_builtin_strcat): Convert the result of
2633 strlen to the right type.
2634 * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
2635 avoid creating type mismatches.
2636 <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
2639 * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
2641 2005-04-16 Richard Henderson <rth@redhat.com>
2644 * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
2645 Use the mode of boolean_type_node when the user doesn't provide one.
2646 * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
2648 2005-04-16 Alexandre Oliva <aoliva@redhat.com>
2651 * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
2654 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
2657 2005-04-16 Roger Sayle <roger@eyesopen.com>
2658 Steven Bosscher <stevenb@suse.de>
2660 * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
2661 (fold_unary_to_constant): Likewise.
2663 2005-04-16 Kazu Hirata <kazu@cs.umass.edu>
2665 * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
2668 2005-04-16 Gerald Pfeifer <gerald@pfeifer.com>
2670 * doc/install.texi (Specific): Avoid using asterisks in @anchor
2671 names related to target triplets.
2672 Remove i?86-*-esix from platform directory.
2673 Remove powerpc-*-eabiaix from platform directory.
2675 2005-04-16 Joseph S. Myers <joseph@codesourcery.com>
2678 * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
2679 falling through from SUBREG case to REG.
2681 2005-04-15 Roger Sayle <roger@eyesopen.com>
2683 * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
2684 (fold_binary): Update comment mentioning fold_relational_hi_lo.
2685 (fold_binary_to_constant): Simplify using fold_binary.
2686 (fold_unary_to_constant): Likewise, simplify using fold_unary.
2688 2005-04-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2690 * gthr-posix.c (pthread_cancel): Define.
2691 (pthread_mutexattr_init): Likewise.
2692 (pthread_mutexattr_settype): Likewise.
2693 (pthread_mutexattr_destroy): Likewise.
2695 2005-04-15 David S. Miller <davem@davemloft.net>
2698 * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
2700 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
2702 PR tree-optimization/21031
2703 * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
2704 (forward_propagate_into_cond_1): Call it. Forward propagate
2705 integer-integer casts into COND_EXPRs.
2707 2005-04-15 Dave Korn <dave.korn@artimi.com>
2709 * gcc.c (default_compilers): Clarify obscure error message when
2710 reading from standard input.
2712 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
2714 * basic-block.h (PROP_EQUAL_NOTES): Remove.
2715 * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
2717 * tree-ssa-alias.c (init_alias_info): Remove a call to
2720 2005-04-15 Andrew MacLeod <amacleod@redhat.com>
2722 * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
2723 of non-virtual PHI nodes like we use to.
2725 2005-05-15 Paolo Bonzini <bonzini@gnu.org>
2727 * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
2728 (attr_copy_rtx): Do not use it.
2730 2005-04-15 Andrew Macleod <amacleod@redhat.com>
2732 * doc/tree-ssa.texi: Grammer/abbreviation updates.
2734 2005-04-15 Diego Novillo <dnovillo@redhat.com>
2736 * tree-vect-transform.c (vectorizable_store): Mark necessary
2737 objects in the vectorized store needing renaming. Update the
2738 SSA graph for V_MAY_DEF operands in the original store.
2740 2005-04-14 Daniel Berlin <dberlin@dberlin.org>
2742 * tree-ssa-pre.c (compute_avail): It's okay to have
2743 TREE_INVARIANT's here, and value number the resulting expressions.
2744 (create_expression_by_pieces): Make sure operands that were
2745 min_invariant when we started, stay that way.
2747 2005-04-15 David Edelsohn <edelsohn@gnu.org>
2749 * doc/install.texi (*-ibm-aix*): Add comment about system limits.
2751 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
2753 PR tree-optimization/20936.
2754 * tree-ssa-ccp.c (visit_assignment): Fix a typo.
2756 2005-04-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2758 * doc/invoke.texi: Fix typos.
2759 * doc/md.texi: Likewise.
2760 * doc/rtl.texi: Likewise.
2761 * doc/sourcebuild.texi: Likewise.
2762 * doc/tm.texi: Likewise.
2764 2005-04-15 Uros Bizjak <uros@kss-loka.si>
2766 PR tree-optimization/21004
2767 * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
2768 and floorl in c99 mode only.
2769 * builtins.c (expand_builtin_int_roundingfn): Assert that
2770 fallback_fndecl is not NULL_TREE.
2772 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
2774 * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
2775 * basic-block.h: Update the prototype for
2776 purge_all_dead_edges.
2777 * cfgexpand.c (tree_expand_cfg): Update a call to
2778 purge_all_dead_edges.
2779 * combine.c (combine_instructions): Likewise.
2780 * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
2781 rest_of_handle_cse2, rest_of_handle_gcse,
2782 rest_of_handle_postreload): likewise.
2784 2005-04-15 Alexandre Oliva <aoliva@redhat.com>
2787 * gimplify.c (gimplify_addr_expr): Compensate for removal of
2788 e.g. cv-qualification conversions.
2790 2005-04-14 Mike Stump <mrs@apple.com>
2792 * config/darwin-c.c (framework_construct_pathname): We must
2793 find all headers of a framework in the first instance of it
2794 found in the seach path.
2796 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
2798 PR tree-optimization/21021
2799 * tree-vrp.c (compare_values): Work around a bug in the front
2800 end that produces a comparison of mismatched types.
2802 2004-04-14 Richard Henderson <rth@redhat.com>
2804 * config/ia64/ia64.h (enum fetchop_code): Remove.
2805 (enum ia64_builtins): Move ...
2806 * config/ia64/ia64.c (enum ia64_builtins): ... here. Remove all
2807 members except BSP and FLUSHRS.
2808 (ia64_init_builtins): Remove __sync builtins.
2809 (ia64_expand_builtin): Likewise.
2810 (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
2811 (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
2812 (ia64_expand_lock_release): Remove.
2813 * config/ia64/ia64.md (mf): Move to sync.md.
2814 (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
2815 cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
2816 * config/ia64/sync.md: New file.
2817 (memory_barrier): Rename from mf.
2818 (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
2819 (cmpxchg_acq_<I48MODE>): Likewise.
2820 (sync_lock_test_and_set<I48MODE>): Likewise.
2822 * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
2823 to c++. Remove __sync* declarations. s/_si/_4/. s/_di/_8/.
2825 2004-04-14 Richard Henderson <rth@redhat.com>
2827 * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
2828 (ix86_compare_emitted): New.
2829 (ix86_expand_compare): Use ix86_compare_emitted if set.
2830 (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
2831 and ix86_compare_op0 are set.
2832 * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
2833 (TARGET_CMPXCHG, TARGET_XADD): New.
2834 (ix86_compare_emitted): Declare.
2835 * config/i386/i386.md: Include sync.md
2836 (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
2837 (UNSPECV_XCHG, UNSPECV_LOCK): New.
2838 * config/i386/sync.md: New file.
2840 2004-04-14 Richard Henderson <rth@redhat.com>
2843 * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
2844 BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
2845 BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
2846 BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
2847 BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
2848 BT_FN_I8_VPTR_I8_I8): New.
2849 * builtins.def (DEF_SYNC_BUILTIN): New.
2850 (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
2851 BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
2852 BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
2853 BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
2854 BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
2855 BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
2856 BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
2857 BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
2858 BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
2859 BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
2860 BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
2861 BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
2862 BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
2863 BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
2864 BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
2865 BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
2866 BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
2867 BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
2868 BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
2869 BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
2870 BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
2871 BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
2872 BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
2873 BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
2874 BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
2875 BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
2876 BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
2877 BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
2878 BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
2879 BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
2880 BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
2881 BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
2882 BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
2883 BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
2884 BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
2885 BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
2886 BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
2887 BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
2888 BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
2889 BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
2890 BUILT_IN_SYNCHRONIZE: New.
2891 * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
2892 as a function. Accept __sync_ as a prefix as well.
2893 (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
2894 expand_builtin_lock_test_and_set, expand_builtin_synchronize,
2895 expand_builtin_lock_release): New.
2896 (expand_builtin): Call them.
2897 * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
2898 neither BOTH_P nor FALLBACK_P are defined.
2899 (builtin_type_for_size): New.
2900 (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
2901 (resolve_overloaded_builtin): New.
2902 * c-common.h (resolve_overloaded_builtin): Declare.
2903 (builtin_type_for_size): Declare.
2904 * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
2905 * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
2906 sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
2907 sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
2908 sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
2909 sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
2910 sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
2911 sync_compare_and_swap_cc, sync_lock_test_and_set,
2912 sync_lock_release): New.
2913 * optabs.h: Declare them.
2914 * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
2915 expand_sync_operation, expand_sync_fetch_operation,
2916 expand_sync_lock_test_and_set): Declare.
2917 * genopinit.c (optabs): Add sync optabs.
2918 * optabs.c (init_optabs): Initialize sync optabs.
2919 (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
2920 expand_bool_compare_and_swap, expand_compare_and_swap_loop,
2921 expand_sync_operation, expand_sync_fetch_operation,
2922 expand_sync_lock_test_and_set): New.
2923 * doc/extend.texi (Atomic Builtins): New section
2924 * doc/md.texi (Standard Names): Add sync patterns.
2926 2005-04-14 Alexandre Oliva <aoliva@redhat.com>
2928 * tree-eh.c (lower_try_finally_copy): Generate new code in
2929 response to goto_queue entries as if the queue was sorted by
2930 index, not pointers.
2931 (lower_try_finally_switch): Likewise.
2933 2005-04-14 Richard Henderson <rth@redhat.com>
2935 * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
2936 (ix86_expand_sse_movcc): ... here. Take cmp as a pre-computed
2938 (ix86_expand_fp_movcc): Update to match.
2939 (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
2940 * config/i386/i386-protos.h: Update.
2941 * config/i386/sse.md (vcondv4sf, vcondv2df): New.
2942 (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
2944 2005-04-14 Joseph S. Myers <joseph@codesourcery.com>
2946 * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
2949 2005-04-14 Julian Brown <julian@codesourcery.com>
2951 * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
2952 link failures on ppc64 Linux.
2954 2005-04-14 Andreas Krebbel <krebbel1@de.ibm.com>
2956 * config.gcc: Set cpu_type for s390.
2958 2005-04-14 Daniel Berlin <dberlin@dberlin.org>
2960 Fix PR tree-optimization/20963
2961 * tree-ssa-pre.c (compute_avail): Remove special case for
2963 (create_expression_by_pieces): Add value numbers for forced out
2966 2005-04-14 Hans-Peter Nilsson <hp@axis.com>
2968 * config/cris/cris.md: Replace references to (reg:SI 16) with
2969 (reg:SI CRIS_SRP_REGNUM).
2971 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
2973 PR tree-optimization/20657
2974 * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
2975 create an appropriate range from it.
2977 2005-04-14 Uros Bizjak <uros@kss-loka.si>
2979 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
2980 <UNSPEC_FIST_CEIL> case.
2982 * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
2983 (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
2984 (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
2985 to implement lfloor and llfloor built-ins as x87 intrinsic function.
2986 (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
2987 (lfloor<mode>2): New expanders.
2988 (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
2989 (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
2990 to implement lceil and llceil built-ins as x87 intrinsic function.
2991 (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
2992 (lceil<mode>2): New expanders.
2994 2005-04-14 Uros Bizjak <uros@kss-loka.si>
2996 * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
2997 and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
2999 2005-04-14 Ulrich Weigand <uweigand@de.ibm.com>
3002 * config/s390/s390-modes.def: Define TFmode.
3004 2005-04-13 Richard Sandiford <rsandifo@redhat.com>
3006 * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
3007 (JUMP_TABLES_IN_TEXT_SECTION): Define.
3008 * config/mips/mips.c (mips16_insn_length): Remove reference to
3009 JUMP_TABLES_IN_TEXT_SECTION.
3011 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
3013 * simplify-rtx.c (simplify_binary_operation_1): Return
3014 scalar or vector of constant 0, depending on the xor's
3017 2005-04-13 Dale Johannesen <dalej@apple.com>
3019 * objc/Make-lang.in (objc-lang.o): Depend on tree-gimple.h.
3020 (objc-act.o): Ditto.
3021 * objc/objc-act.c (objc_gimplify_expr): New.
3022 (objc_get_callee_fndecl): New.
3023 * objc/objc-act.h: Include tree-gimple.h. Declare new functions.
3024 * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR): Define.
3025 (LANG_HOOKS_GET_CALLEE_FNDECL): Define.
3027 2005-04-13 Devang Patel <dpatel@apple.com>
3029 * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
3032 2005-04-13 Hans-Peter Nilsson <hp@axis.com>
3034 CRIS prologue as RTL.
3035 * config/cris/cris-protos.h (cris_emit_movem_store)
3036 (cris_expand_prologue): Prototype.
3037 * config/cris/cris.c (struct machine_function): New member
3039 (cfa_label_num, cris_target_asm_function_prologue): Remove.
3040 (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
3041 (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
3042 (cris_load_multiple_op, cris_return_address_on_stack)
3043 (cris_return_address_on_stack_for_return): ISO-Cify.
3044 (cris_store_multiple_op): New predicate function.
3045 (cris_expand_prologue, cris_emit_movem_store): New functions.
3046 (cris_print_operand) <case 'O'>: Handle modifications other than
3048 (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
3049 (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
3050 (cris_gen_movem_load): Rearrange slightly to make local variable
3051 src a parameter, removing osrc.
3052 (cris_setup_incoming_varargs): Set machine_function member
3053 stdarg_regs to correspond to the number of registers that need to
3055 * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
3057 (PREDICATE_CODES): Add cris_store_multiple_op. Make
3058 cris_general_operand_or_gotless_symbol accept UNSPEC.
3059 * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
3060 ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
3061 ("*cris_store_multiple"): New pattern. Tweak common comment above
3062 this and "*cris_load_multiple".
3063 ("prologue"): New define_expand.
3065 * config/cris/cris.md ("epilogue"): Conditionalize on
3066 TARGET_PROLOGUE_EPILOGUE.
3068 2005-04-13 Steve Ellcey <sje@cup.hp.com>
3071 * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
3072 fpsr 0 instead of fpsr 1.
3073 (divsf3_internal_thr): Ditto.
3074 (divdf3_internal_lat): Ditto.
3075 (divdf3_internal_thr): Ditto.
3076 (divxf3_internal_lat): Ditto.
3077 (divxf3_internal_thr): Ditto.
3079 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
3081 PR tree-optimization/20913
3082 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
3084 PR tree-optimization/20702
3085 * tree-vrp.c (maybe_add_assert_expr): Recurse into
3086 dominator children that haven't been walked into.
3088 2005-04-13 Julian Brown <julian@codesourcery.com>
3090 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
3091 being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
3094 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
3096 * basic-block.h, tree-ssa-uncprop.c, varasm.c,
3097 config/i386/sse.md: Fix comment typos.
3099 * genattrtab.c (NULL_ATTR): Remove.
3100 * ifcvt.c (NULL_EDGE): Likewise.
3102 * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
3104 * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
3105 NOTE_PREDICT): Remove.
3107 2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
3109 * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
3110 * configure: Regenerate.
3111 * config.in: Likewise.
3112 * system.h: Declare vsnprintf if not already declared.
3114 2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
3116 * optc-gen.awk: Handle stand-alone Mask records.
3117 * opth-gen.awk: Likewise.
3118 * doc/options.texi (Option file format): Document them.
3119 * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
3120 sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
3121 (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
3122 * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
3123 MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
3124 MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
3125 MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
3126 MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
3127 MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
3128 (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
3129 TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
3130 TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
3131 TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
3132 TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
3133 TARGET_LONG_DOUBLE_128): Likewise.
3134 (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
3135 (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
3136 * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
3137 * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
3138 * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
3139 * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
3140 * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
3141 * config/sparc/sparc.c (fpu_option_set): New global.
3142 (sparc_handle_option): New function.
3143 (sparc_override_options): Test fpu_option_set.
3144 (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
3145 (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
3146 * config/sparc/sparc.opt: New file.
3147 * config/sparc/little-endian.opt: Likewise.
3148 * config/sparc/long-double-switch.opt: Likewise.
3150 2005-04-13 Bernd Schmidt <bernd.schmidt@analog.com>
3152 * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
3153 (bfin_handle_options): Set it if -mshared-library-id= is seen.
3154 * config/bfin/bfin.opt (mshared-library-id=): Lose
3155 Var(bfin_lib_id_given).
3157 2005-04-13 Matt Thomas <matt@3am-software.com>
3159 * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
3162 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
3164 * rtl.h (CLEAR_RTX_FLAGS): Remove.
3166 * cgraphunit.c (INSNS_PER_CALL): Remove.
3168 * tree-ssa-forwprop.c (vars,
3169 record_single_argument_cond_exprs,
3170 substitute_single_use_vars): Remove.
3171 (forward_propagate_into_cond_1, forward_propagate_into_cond):
3173 (tree_ssa_forward_propagate_single_use_vars): Call
3174 forward_propagate_into_cond for each COND_EXPR.
3176 * tree-inline.c (INSNS_PER_STMT): Remove.
3178 2005-04-12 Richard Henderson <rth@redhat.com>
3180 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
3181 (ix86_expand_sse_fp_minmax): ... from ...
3182 (ix86_expand_fp_movcc): ... here.
3183 (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
3184 * config/i386/i386-protos.h: Update.
3185 * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
3186 (sse_setccsf, sse_setccdf): Allow before reload.
3187 (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
3188 (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
3189 (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
3190 * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
3191 (anddf3, nanddf3, iordf3, xordf3): New.
3193 2005-04-12 Jeff Law <law@redhat.com>
3195 * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
3196 (tree-ssa-uncprop.o): Add dependencies.
3197 * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
3198 * tree-flow.h (remove_useless_stmts): Remove prototype.
3199 * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
3200 remove_useless_stmts.
3201 * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
3202 * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
3203 * tree-pass.h (pass_uncprop): Declare.
3204 * tree-ssa-uncprop.c: New file.
3206 2005-04-12 James E. Wilson <wilson@specifixinc.com>
3209 * unwind-ia64.c (uw_intall_context): Add missing load of r27.
3211 2005-04-12 Caroline Tice <ctice@apple.com>
3213 Temporary fix for partitioning problems.
3214 * passes.c (rest_of_handle_final): Remove code that
3215 frees unlikely_text_section_name,
3216 * varasm.c (assemble_start_function): Test for partitioning
3217 flag before writing out section labels.
3218 (assemble_end_function): Test for partitioning flag before
3219 writing out section labels.
3221 2005-04-12 Steven Bosscher <stevenb@suse.de>
3222 Stuart Hastings <stuart@apple.com>
3223 Jan Hubicka <jh@suse.cz>
3225 * Makefile.in: Add function.h to BASIC_BLOCK_H. Remove all
3226 references to gt-tree-cfg.h.
3227 * basic-block.h (struct basic_block_def): Don't skip rbi
3228 for garbage collection.
3229 (struct reorder_block_def): Make GTY-able.
3230 (struct control_flow_graph): New structure.
3231 (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
3232 BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
3233 but instead defines to the control_flow_graph for cfun.
3234 (label_to_block_map): New define, points to the label map of
3235 the control_flow_graph for cfun.
3236 (n_edges_for_function, n_basic_blocks_for_function,
3237 last_basic_block_for_function, basic_block_info_for_function,
3238 EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
3239 basic_block_info_for_function, label_to_block_map_for_function):
3240 Counterparts for the above, taking a struct function as an extra
3242 (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
3243 * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
3244 basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
3245 (alloc_rbi_pool, free_rbi_pool): Remove.
3246 (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
3247 * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
3249 (cfg_layout_finalize) ... and don't free it here.
3250 * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
3252 * flow.c (free_basic_block_vars): Set label_to_block_map and
3253 n_edges to zero too.
3254 * function.h (struct function): Add cfg field.
3255 * function.c (allocate_struct_function): Allocate the cfg.
3256 * tree-cfg.c (label_to_block_map): Remove.
3257 (build_tree_cfg): Don't allocate the rbi pool here...
3258 (delete_tree_cfg_annotations): ...and don't free it here.
3259 Also don't nullify label_to_block_map for cfun.
3261 2005-04-12 Caroline Tice <ctice@apple.com>
3263 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3264 Revert my patch from April 9.
3265 (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
3266 (reorder_basic_blocks): Revert my patch from April 9.
3267 (insert_section_boundary_note): Revert my patch from April 9.
3268 * dbxout.c (dbxout_function_end): Revert my patch from April 9.
3269 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
3270 (COLD_END_LABEL): Revert my patch from April 9.
3271 (cold_text_section_label): Revert my patch from April 9.
3272 (cold_end_label): Revert my patch from April 9.
3273 (dwarf2out_switch_text_section): Revert my patch from April 9.
3274 (output_aranges): Revert my patch from April 9.
3275 (output_ranges): Revert my patch from April 9.
3276 (output_line_info): Revert my patch from April 9.
3277 (add_location_or_const_value_attribute): Revert my patch from April 9.
3278 (dwarf2out_var_location): Revert my patch from April 9.
3279 (dwarf2out_init): Revert my patch from April 9.
3280 (dwarf2out_finish): Revert my patch from April 9.
3281 * function.h (struct function): Revert my patch from April 9.
3282 * opts.c (decode_options): Revert my patch from April 9.
3283 * output.h (unlikely_section_label, hot_section_label,
3284 hot_section_end_label, cold_section_end_label,
3285 unlikely_text_section_name): Revert my patch from April 9.
3286 * passes.c (rest_of_handle_final): Revert my patch from April 9.
3287 * varasm.c (unlikely_section_label, hot_section_label,
3288 hot_section_end_label, cold_section_end_label,
3289 unlikely_text_section_name): Revert my patch from April 9.
3290 (initialize_cold_section_name): Revert my patch from April 9.
3291 (unlikely_text_section): Revert my patch from April 9.
3292 (in_unlikely_text_section): Revert my patch from April 9.
3293 (named_section): Revert my patch from April 9.
3294 (function_section): Revert my patch from April 9.
3295 (current_function_section): Revert my patch from April 9.
3296 (assemble_start_function): Revert my patch from April 9.
3297 (assemble_end_function): Revert my patch from April 9.
3298 (default_section_type_flags_1): Revert my patch from April 9.
3300 2005-04-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3302 * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
3303 * config/sparc/sparc.md (untyped_call): Save the registers manually.
3305 * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
3307 2005-04-12 Ulrich Weigand <uweigand@de.ibm.com>
3310 * config/s390/s390.md ("*set_tp"): Use SET in pattern.
3311 ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
3313 2004-04-12 Richard Henderson <rth@redhat.com>
3315 * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
3316 UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
3317 UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
3318 (UNSPEC_*, UNSPECV_*): Renumber.
3320 2005-04-12 Frank Ch. Eigler <fche@redhat.com>
3323 From Richard Henderson <rth@redhat.com>:
3324 * tree-mudflap.c (mf_build_check_statement_for): Correct block
3327 2005-04-12 Dorit Naishlos <dorit@il.ibm.com>
3329 * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
3331 2005-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
3333 * config/bfin/bfin.c (bfin_library_id_string): Remove.
3334 (bfin_library_id): New variable.
3335 (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
3336 instead of bfin_library_id_string.
3337 (bfin_handle_option): New function.
3338 (override_options): Remove most code to deal with shared library IDs,
3339 just check they aren't used without -mid-shared-library.
3340 (TARGET_HANDLE_OPTION): Define.
3341 * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
3342 * config/bfin/bfin.opt (mshared-library-id=): New.
3344 2005-04-12 Kazu Hirata <kazu@cs.umass.edu>
3346 * tree-vect-transform.c: Fix comment typos.
3348 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
3350 * postreload-gcse.c (eliminate_partially_redundant_load): Don't
3351 split critical edges when not possible/profitable.
3353 2005-04-12 Richard Sandiford <rsandifo@redhat.com>
3355 * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
3356 (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
3357 (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
3358 (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
3359 (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
3360 (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
3361 (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
3362 * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
3364 * config/ns32k/ns32k.c (ns32k_handle_option): New function.
3365 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3366 * config/ns32k/ns32k.opt: New file.
3368 2005-04-12 Richard Sandiford <rsandifo@redhat.com>
3370 * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
3371 * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
3372 (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
3373 (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
3374 (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
3375 (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
3376 (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
3377 (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
3378 (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
3379 (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
3380 (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
3381 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
3382 (MASK_COLDFIRE): Formatting fixes.
3383 (TARGET_COLDFIRE): Turn into a boolean value for consistency.
3384 * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
3385 * config/m68k/m68k.c (m68k_library_id_string): Initialize to
3386 "_current_shared_library_a5_offset_".
3387 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3388 (MASK_ALL_CPU_BITS): New macro.
3389 (m68k_handle_option): New function.
3390 (override_options): Remove handling of m68k_library_id_string.
3391 * config/m68k/m68k.opt: New file.
3392 * config/m68k/ieee.opt: New file.