2004-07-13 Per Bothner * collect2.c (main): Handle --no-demangle and --demangle flags. 2004-07-13 Sebastian Pop * Makefile.in (OBJS-common): Add tree-data-ref.o. (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h. (tree-data-ref.o): New rule. * lambda.h: New file. * tree-data-ref.c: New file. * tree-data-ref.h: New file. * tree.c (int_cst_value, tree_fold_gcd): New functions. * tree.h (int_cst_value, tree_fold_gcd): Declared here. 2004-07-13 Eric Botcazou PR target/13926 * config/sparc/sparc-protos.h (output_ubranch): New prototype. * config/sparc/sparc.c (output_ubranch): New function. * config/sparc/sparc.md (jump pattern): Use it. 2004-07-13 Eric Botcazou PR target/16494 * config/sparc/sparc.c (output_cbranch): Properly guard the code handling far branches with TARGET_V9. * config/sparc/sparc.md (length attribute): Document the side-effect of having a length greater or equal to 3. 2004-07-13 Eric Botcazou Lloyd Parkes PR target/15186 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified. 2004-07-13 Eric Botcazou Martin Sebor PR target/12602 * doc/invoke.texi (SPARC options): Document -threads and -pthreads on Solaris. 2004-07-13 Richard Henderson * builtins.c (std_gimplify_va_arg_expr): Handle types passed by reference. (ind_gimplify_va_arg_expr): Remove. * tree.h (ind_gimplify_va_arg_expr): Remove. * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it. * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow argsp to be null. * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove. (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove. * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c, config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c, config/mn10300/mn10300.c, config/v850/v850.c: Similarly. 2004-07-13 Richard Henderson * function.c (pass_by_reference): New. (assign_parm_find_data_types): Use it. * calls.c (initialize_argument_information): Likewise. (emit_library_call_value_1): Likewise. * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. * function.h (pass_by_reference): Declare. 2004-07-13 Richard Henderson * target-def.h (TARGET_MUST_PASS_IN_STACK): New. * target.h (struct gcc_target): Add calls.must_pass_in_stack. * expr.h (MUST_PASS_IN_STACK): Remove. * system.h (MUST_PASS_IN_STACK): Poison. * tree.h (must_pass_in_stack_var_size): Declare. (must_pass_in_stack_var_size_or_pad): Declare. * calls.c (must_pass_in_stack_var_size): New. (must_pass_in_stack_var_size_or_pad): Rename from default_must_pass_in_stack. * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New. (TARGET_MUST_PASS_IN_STACK): New. * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove. * config/fr30/fr30.c (fr30_must_pass_in_stack): New. (TARGET_MUST_PASS_IN_STACK): New. * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove. * config/frv/frv.c (frv_must_pass_in_stack): New. (TARGET_MUST_PASS_IN_STACK): New. * config/frv/frv.h (MUST_PASS_IN_STACK): Remove. * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove. * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New. (ix86_must_pass_in_stack): Make static. * config/i386/i386.h (MUST_PASS_IN_STACK): Remove. * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New. * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove. * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New. * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove. * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove. * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New. (mcore_must_pass_on_stack): Remove. * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove. * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New. * config/mips/mips.h (MUST_PASS_IN_STACK): Remove. * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New. * config/pa/pa.h (MUST_PASS_IN_STACK): Remove. * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove. * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove. * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New. (TARGET_MUST_PASS_IN_STACK): New. * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New. * config/sh/sh.h (MUST_PASS_IN_STACK): Remove. * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New. * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove. * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New. * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove. * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from MUST_PASS_IN_STACK. * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h, config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c, config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h, config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c, config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c, config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c, config/xtensa/xtensa.c: Use target hook. 2004-07-13 Anthony Heading * configure.ac (gcc_cv_as_offsetable_lo10: Fix a typo. * configure: Rebuilt. 2004-07-13 Richard Sandiford * doc/invoke.texi: Remove documentation for MIPS -mrnames option. * config/mips/mips.h (mips_reg_names): Don't declare. (MASK_NAME_REGS): Delete. Shuffle other MASK_* values down. (TARGET_NAME_REGS): Delete. (TARGET_SWITCHES): Remove -mrnames. (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[]. (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned in REGISTER_NAMES. * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete. (override_options): Remove handling of TARGET_NAME_REGS. 2004-07-13 Richard Sandiford * config/mips/mips.h (TARGET_*): Boolify. 2004-07-12 Nick Clifton * config.gcc: Add sh-*-symbianelf target. * config/sh/sh.c: Add new target macros: TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING, TARGET_CXX_IMPORT_EXPORT_CLASS. (sh_file_start): Create a definition of the .directive section. (sh_attribute): Add dllimport and dllexport attributes. * config/sh/symbian-pre.h: New file. * config/sh/symbian-post.h: New file. * config/sh/symbian.c: New file. Contains Symbian specific functions. * config/sh/sh-protos.h: Add prototypes for new functions provided by symbian.c. * config/sh/t-symbian: New file. * doc/extend.texi: Document support for dllimport and dllexport attributes by the sh-symbianelf target. 2004-07-12 James E Wilson * Makefile.in (AR): Use @AR@ not ar. (NM): New. (AR_FOR_TARGET): Use $(AR) not ar for native. (NM_FOR_TARGET): Use $(NM) not nm for native. * configure.ac: Add AC_CHECK_PROG calls for NM and AR. * configure: Regenerate. 2004-07-12 David S. Miller * config/sparc/sparc.md (ashlsi3): Eliminate const 1 special case. (ashldi3_sp64): Likewise. 2004-07-12 John David Anglin PR target/16477 * pa.c (function_arg): Update comment. * pa.h (BLOCK_REG_PADDING): Define. 2004-07-12 Zdenek Dvorak PR tree-optimization/16461 * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name arguments of phi nodes. 2004-07-12 Devang Patel * doc/invoke.texi (Darwin Options): Document -gused and -gfull. 2004-07-12 Steve Ellcey * function.c (expand_function_start): Ensure r_save is in Pmode. * calls.c (prepare_call_address): Ensure static_chain_value is in Pmode. * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and r_save_area are in Pmode. * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr, fnaddr, and static_chain are in Pmode. 2004-07-12 Vladimir Makarov PR target/16445 * config/ia64/ia64.c (bundling): Don't count ignored insns. 2004-07-12 Richard Henderson * target.h (struct gcc_target): Move gimplify_va_arg_expr next to build_builtin_va_list. * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match. * builtins.c (gimplify_va_arg_expr): Likewise. * gimplify.c (copy_if_shared_r): Likewise. 2004-07-12 Alexandre Oliva * passes.c (rest_of_decl_compilation): Don't defer call of assemble_variable if its DECL_RTL is already set. 2004-07-12 Sebastian Pop * cfgloop.h (struct loop): Add nb_iterations field. (current_loops): Declare. * tree-chrec.c (chrec_not_analyzed_yet, chrec_dont_know, chrec_known, count_ev_in_wider_type, chrec_contains_symbols_defined_in_loop): Remove the temporary hooks. * tree-flow-inline.h (loop_containing_stmt): New function. * tree-scalar-evolution.c: Add implementation. * tree-scalar-evolution.h: Add declarations. 2004-07-12 Vladimir Makarov PR rtl-optimization/15921 * Makefile.in (global.o): Add recog.h. * global.c (recog.h): Add the include-clause. (bb_info): New member earlyclobber. (allocate_bb_info, free_bb_info): Initialize/finish the new member. (earlyclobber_regclass, earlyclobber_regclass_length): The new global variables. (check_earlyclobber, regclass_intersect, mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1): New functions. (calculate_local_reg_bb_info): Calculate value of earlyclobber. (make_accurate_live_analysis): Modify pavin. 2004-07-12 Diego Novillo * tree-cfg.c (find_taken_edge): Statically compute the truth value of a predicate comparing an SSA_NAME to itself. 2004-07-12 Roger Sayle * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the rs6000 doesn't have shift-and-add or shift-and-sub instructions by returning the cost of a multiplication plus an addition. 2004-07-12 Paolo Bonzini PR tree-optimization/14107 * gimplify.c (gimplify_return_expr): Accept a RETURN_EXPR with an error argument. * tree-optimize.c (init_tree_optimization_passes): Run pass_warn_function_return at -O0. 2004-07-12 Roger Sayle * doc/invoke.texi: Correct -fasynchronous-unwind-tables option index entry. 2004-07-12 Richard Sandiford * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete. (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. * config/mips/3000.md: Add copyright notice. Remove automota and function units; use generic ones instead. Only define reservations for things that are different from generic.md. Extend each clause to include r3900. * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files. * config/mips/mips.md: Include them. Remove define_function_units. (alu, imuldiv): New automata and units. 2004-07-12 Ben Elliston * doc/invoke.texi (Optimize Options): Document -frename-registers not being enabled by default at -O3. 2004-07-11 Roger Sayle * fold-const.c (fold) : Canonicalize X + -C as X - C for floating point additions, to keep real immediate constant positive. : For floating point subtractions, only transform X - -C into X + C, and leave positive real constants as X - C. 2004-07-11 John David Anglin * pa.c (hppa_gimplify_va_arg_expr): Remove comment. 2004-07-11 Zdenek Dvorak PR tree-optimization/15654 * tree-tailcall.c (eliminate_tail_call): Remove unreachable code. 2004-07-11 Roger Sayle * builtins.c (fold_builtin_fputs): Don't bother converting the return type to integer_type_node, as we've already checked that the result will be ignored. * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such that signed addition, subtraction, multiplication, division, remainder, negation and absolute value may potentially trap. * fold-const.c (fold_ignored_result): New function to strip non-side-effecting tree nodes from an expression whose result is ignored. (fold_convert): Call fold_ignored_result when casting a value to VOID_TYPE. (omit_one_operand): Call fold_ignored_result on the "omitted" operand when building a COMPOUND_EXPR. (pedantic_omit_one_operand): Likewise. * tree.h (fold_ignored_result): Prototype here. * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result when we're going to ignore the result. 2004-07-11 Richard Henderson PR tree-opt/16383 * tree-ssa-ccp.c (fold_stmt_r): Split out... * tree.c (fields_compatible_p, find_compatible_field): ... new. * tree.h (fields_compatible_p, find_compatible_field): Declare. * tree-sra.c (sra_hash_tree): Hash fields by offset. (sra_elt_eq): Use fields_compatible_p. (generate_one_element_ref): Use find_compatible_field. 2004-07-11 Richard Henderson PR tree-opt/16422 * tree-sra.c (generate_one_element_init): New. (generate_element_init): Use it. (scalarize_init): Push/pop gimplify context around it. (find_new_referenced_vars_1, find_new_referenced_vars): New. * gimplify.c (gimplify_expr): Allow SSA_NAME. 2004-07-11 Roger Sayle * rtlanal.c (insn_rtx_cost): New function, moved and renamed from combine.c's combine_insn_cost. * rtl.h (insn_rtx_cost): Prototype here. * combine.c (combine_insn_cost): Delete function. (combine_validate_cost): Update callers of combine_insn_cost to call insn_rtx_cost instead. (combine_instructions): Likewise. Use NONJUMP_INSN_P to avoid requesting the rtx_cost of call and/or jump instructions. * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling rtx_cost directly. Don't request/use the cost of call or jump instructions. Return -1 if the cost of any instruction can't be determined (or the BB contains a function call). (find_if_case_1): Abort transformation if total_bb_rtx_cost returns -1 (i.e. can't determine the cost of any instruction or the basic block contains a subroutine call). (find_if_case_2): Likewise. 2004-07-11 Roger Sayle * rs6000.c (struct processor_costs): Change semantics of fields to include the COST_N_INSNS scaling, and update all initializers. (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields. Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE. Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP. When optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE. 2004-07-11 Joseph S. Myers * LANGUAGES: Remove obsolete information. 2004-07-11 Ulrich Weigand * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and SIGBUS signal frames, the PSW address points *to* the faulting instruction, not after it. 2004-07-11 Ulrich Weigand * config/s390/s390.c (legitimize_tls_address): Handle constant offsets added to TLS symbol addresses. 2004-07-11 Richard Henderson * expmed.c (init_expmed): Use stack-local structures for temporary rtl. Don't recognize shifts. 2004-07-11 Richard Henderson * expr.c (store_expr): Don't fiddle subreg promotion for types with precision smaller than the mode. 2004-07-11 Joseph S. Myers * tree.h (all_types_permanent): Remove. 2004-07-11 Joseph S. Myers * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block, maybe_build_cleanup, update_decl_after_saving): Remove hooks. * langhooks.c (lhd_clear_binding_stack): Remove. * langhooks-def.h (lhd_clear_binding_stack, LANG_HOOKS_MAYBE_BUILD_CLEANUP, LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove. (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing. * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_MAYBE_BUILD_CLEANUP, LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison. * tree.h (poplevel): Don't declare. * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove. * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove. 2004-07-11 Joseph S. Myers PR tree-optimization/16437 * c-common.c (shorten_compare): Don't mark result of conversion to narrower signed type as overflowing. * fold-const.c (decode_field_reference): Determine whether signedness comes from outer type using precision rather than size. 2004-07-11 Phil Edwards * configure.ac: Alphabetize --enable-checking list, add missing valgrind entry. * configure: Regenerate. 2004-07-11 Phil Edwards * doc/install.texi (Testing): Fix syntax in "make check" example. 2004-07-10 James E Wilson * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp. 2004-07-10 Zdenek Dvorak PR rtl-optimization/16001 * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in niter_expr. 2004-07-10 Geoffrey Keating * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt. 2004-07-10 Steve Kargl James Morrison * doc/contrib.texi (Contributors): Add gfortran contributors and fix a couple of typos. 2004-07-10 Zdenek Dvorak PR rtl-optimization/15387 * calls.c (check_sibcall_argument_overlap_1): Handle pointers to incoming args space correctly. 2004-07-10 John David Anglin * pa.c (output_indirect_call): Only use %r2 as the link register in indirect calls with the long PA 2.0 pc-relative branch. 2004-07-10 Daniel Jacobowitz * config/i386/i386.c (override_options): Pick a 64-bit CPU for the default tuning if TARGET_64BIT. 2004-07-10 Richard Henderson * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary to HOST_WIDE_INT. Fold pad-args-down arithmetic. 2004-07-10 Jakub Jelinek * expr.h (store_bit_field, extract_bit_field): Remove last argument. * expmed.c (store_bit_field, extract_bit_field): Remove last argument. * builtins.c (expand_builtin_signbit): Adjust callers. * optabs.c (expand_vector_binop, expand_vector_unop): Likewise. * calls.c (store_unaligned_arguments_into_pseudos): Likewise. * ifcvt.c (noce_emit_move_insn): Likewise. * stmt.c (expand_return): Likewise. * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg, store_field, expand_expr_real_1): Likewise. 2004-07-10 Richard Henderson * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR. 2004-07-09 Mike Stump * config/darwin.c (no_dead_strip): Add. (HAVE_DEAD_STRIP): Add. (darwin_emit_unwind_label): Ensure that we don't dead code strip the .eh label. 2004-07-09 Zdenek Dvorak * tree-ssa-loop-im.c: New file. * Makefile.in (tree-ssa-loop-im.o): Add. * cfgloop.c (superloop_at_depth): New function. * cfgloop.h (superloop_at_depth): Declare. * common.opt (ftree-lim): New flag. * expr.c (array_ref_up_bound): New function. * params.def (PARAM_LIM_EXPENSIVE): New parameter. * timevar.def (TV_LIM): New timevar. * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when computing immediate uses of a phi node. * tree-flow.h (struct tree_ann_common_d): Add aux field. (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare. * tree-optimize.c (init_tree_optimization_passes): Add pass_lim. * tree-pass.h (pass_lim): Declare. * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New functions. (pass_lim): New pass structure. * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly. * tree.c (in_array_bounds_p): New function. * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs. (in_array_bounds_p, array_ref_up_bound): Declare. * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document. * doc/passes.texi (tree-ssa-loop-im.c): Document. 2004-07-09 Richard Henderson * builtins.c (expand_builtin_stpcpy): Don't modify len. * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs with prejudice. 2004-07-10 Kelley Cook * flags.h: Delete redundant prototypes that are being generated in options.h from common.opt. * common.opt: Add in the expository comments formerly in flags.h. 2004-07-09 Jan Beulich * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers available for use only when TARGET_MMX/_SSE is set, and check for variable argument function if any register count is non-zero. (function_arg): Correctly suppress repeated warnings for passing SSE vectors are arguments without SSE enabled. (ix86_function_arg_boundary): Without SSE enabled, the use of what would be SSE register modes does no longer influence the alignment. 2004-07-09 Richard Henderson * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD. Always align upward to arg boundary. Use size_in_bytes/round_up. Maintain type-correctness of constants. * stor-layout.c (round_up, round_down): Special-case powers of 2. 2004-07-09 David S. Miller * config/sparc/sparc.c (*_costs): Scale instruction costs by COSTS_N_INSNS. (sparc_rtx_costs): Adjust as appropriate. 2004-07-09 Jan Beulich * config/i386/mm3dnow.h: New. * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64. 2004-07-09 Richard Henderson * simplify-rtx.c (simplify_const_relational_operation): Only look at bounds of scalar integers. 2004-07-09 Jan Beulich * config/i386/i386.md (sse2_clflush): Use correct operand for clflush. 2004-07-09 Andrew Pinski * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as always referenced. (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and UOBJC_METACLASS_decl. 2004-07-09 James E Wilson PR target/16364 * config/ia64/ia64.c (ia64_function_arg): For a single element HFA, do return a parallel if hfa_mode == XFmode and mode == TImode. 2004-07-09 Jan Beulich * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes permissible for unary plus. 2004-07-09 Jan Beulich * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED. (BT_FN_UINT): Rename from BT_FN_UNSIGNED. (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED. (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG, BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New. * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx, BUILTIN_POPCOUNTxxx): Arguments are unsigned. (BUILTIN_xxxIMAX): New. * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX, BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and BUILT_IN_PARITYIMAX. 2004-07-09 David S. Miller * config/sparc/sparc.h (processor_costs): Define. (sparc_costs): Declare. * config/sparc/sparc.c (cypress_costs, supersparc_costs, hypersparc_costs, sparclet_costs, ultrasparc_costs, ultrasparc3_costs): New. (sparc_override_options): Set sparc_costs as appropriate. (sparc_rtx_costs): Use sparc_costs instead of messy conditionals. 2004-07-09 Steven Bosscher * doc/md.texi (Processor pipeline description): Mention that the old pipeline description is deprecated. * config/rs6000/7450.md (automaton ppc7450): Split up, move mciu_7450 function unit to... (automaton ppc7450mciu): ...new automaton. * haifa-sched.c (insert_schedule_bubbles_p): Remove. (schedule_block): Don't consider inserting bubbles. (sched_init): Don't initialize DFA bubbles. * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): Remove. * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks. * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): Remove documentation. * stmt.c (conditional_context): Remove prototype. * tree.h (conditional_context): Remove. * tree-cfg.c (pre_insert_on_edge): Remove. * c-common.h (c_expand_asm_operands): Remove prototype. * c-typeck.c (c_expand_asm_operands): Remove. 2004-07-09 Jan Beulich * config/i386/i386.c (classify_argument): Treat V1xx modes the same as their base modes. CTImode, TCmode, and XCmode must be passed in memory. TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode, and V8QI are class SSE. All sufficiently small remaining vector modes must be passed in one or two integer registers. (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be returned in memory. (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and __builtin_ia32_pmuludq128 have non-uniform argument and return types and must thus be handled explicitly. * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between MMX and XMM regs. (movv8qi_internal, movv4hi_internal, movv2si_internal, movv2sf_internal): Permit moving between MMX and XMM registers (since MMX areguments and return values are passed in XMM registers). (sse2_umulsidi3): Correct type and mode. 2004-07-09 Richard Henderson * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors. 2004-07-09 Eric Christopher * config/rs6000/40x.md: Split into two automatons. 2004-07-09 Zack Weinberg Andrew Pinski * c-opts.c (c_common_post_options): Force unit-at-a-time mode on when we have more than one input file. (c_common_parse_file): Restore loop over all input files. Clarify diagnostic for -dy when YYDEBUG wasn't defined. * c-decl.c (set_type_context): New function. (pop_scope): Use it to set context of types. When we encounter a TYPE_DECL, set the context of the attached type too. (pop_file_scope): Don't call cpp_undef_all here. (diagnose_mismatched_decls): Do not complain about a second definition of an 'extern inline' function if it's not in the same translation unit. Do not complain about inline declaration after use if the use was in a different translation unit. (merge_decls): Don't clobber olddecl's DECL_CONTEXT. (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in the external scope. (pushdecl_top_level): Likewise. (grokdeclarator): Clarify what is going on with setting DECL_EXTERNAL on function types, a little. (c_write_global_declarations): Don't do anything if -fsyntax-only or errors have been encountered. 2004-07-09 Zack Weinberg * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument. 2004-07-09 John David Anglin PR target/16459 * pa.c (output_indirect_call): Use %r2 as the link register when calling $$dyncall with a pc-relative branch. 2004-07-08 Gerald Pfeifer * doc/install.texi (Binaries): Mention OpenPKG. 2004-07-09 Diego Novillo Fix PR tree-optimization/15555 * tree-dfa.c (dump_variable): If the variable is a pointer SSA_NAME, also dump its points-to information. * tree-flow.h (struct ptr_info_def): Add field is_dereferenced. (dump_points_to_info_for): Declare. (debug_points_to_info_for): Declare. * tree-optimize.c (init_tree_optimization_passes): Add a second alias analysis pass after DOM2. Move pass_del_pta to a later spot. * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not create a name tags when we find a dereferenced pointer. Just mark the pointer dereferenced. (collect_points_to_info_for): Move code to clear points-to information to create_name_tags. (create_name_tags): New function. (compute_flow_sensitive_aliasing): Call it. (setup_pointers_and_addressables): Mark type tags for renaming here instead of ... (create_memory_tag): ... here. (merge_pointed_to_info): Do not merge PT_MALLOC attributes. (dump_points_to_info_for): Declare extern. (debug_points_to_info_for): New function. 2004-07-09 Paolo Bonzini * config/arc/arc.md: Switch to DFA-based scheduler description. * config/arc/arc.c: Switch to DFA-based scheduler description. 2004-07-09 Richard Earnshaw * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame pointer. 2004-07-09 Richard Henderson * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove. * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg. * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove. * config/v850/v850-protos.h (v850_va_arg): Remove. * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg. * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove. (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types. (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE. 2004-07-09 Richard Earnshaw PR target/12133 * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float and DImode to use +/-4k offset. 2004-07-09 Richard Henderson * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg): Remove. * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (xstormy16_gimplify_va_arg_expr): Rewrite from xstormy16_expand_builtin_va_arg. * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove. * config/sparc/sparc-protos.h (sparc_va_arg): Remove. * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static. * config/sh/sh-protos.h (sh_va_arg): Remove. * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg. * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove. * config/pa/pa-protos.h (hppa_va_arg): Remove. * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg. * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove. * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove. * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg. * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove. 2004-07-09 Eric Botcazou * config/sparc/sparc.md (return): Rewrite length formula. * config/sparc/sparc.c (output_return): Pass 1 as 5th argument to final_scan_insn when in a delay slot. (output_sibcall): Likewise. 2004-07-09 Richard Earnshaw * arm.c (arm_cpp_interwork): New variable. (arm_override_options): Set it if TARGET_INTERWORK was on the command line. * arm.h (arm_cpp_interwork): Declare it. (TARGET_CPU_CPP_BUILTINS): Use it to control definition of __THUMB_INTERWORK__ in the preprocessor. 2004-07-09 Nathan Sidwell * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto. 2004-07-09 Eric Botcazou PR target/16416 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro. Override default settings to account for -m32 and -m64. 2004-07-08 Randolph Chung * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define. 2004-07-09 Alexandre Oliva * builtins.c (fold_builtin_strncpy): Make sure len is a constant before comparing it as such. 2004-07-08 Richard Henderson * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a temporary. Use bit arithmetic to align. 2004-07-08 Jerry Quinn * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p, nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P, NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P. * bb-reorder.c (mark_bb_for_unlikely_executed_section, add_labels_and_missing_jumps, find_jump_block, fix_crossing_unconditional_branches, add_reg_crossing_jump_notes): Likewise. * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen, link_btr_uses, move_btr_def): Likewise. * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto, expand_builtin_expect_jump): Likewise. * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise. * calls.c (expand_call, emit_library_call_value_1): Likewise. * cfganal.c (forwarder_block_p): Likewise. * cfgbuild.c (inside_basic_block_p, count_basic_blocks, make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1, find_bb_boundaries): Likewise. * cfgcleanup.c (try_simplify_condjump, try_forward_edges, merge_blocks_move_predecessor_nojumps, merge_blocks_move_successor_nojumps, insns_match_p, flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg): Likewise. * cfgexpand.c (expand_block, construct_exit_block): Likewise. * cfglayout.c (skip_insns_after_block, label_for_bb, record_effective_endpoints, insn_locators_initialize, fixup_reorder_chain, update_unlikely_executed_notes): Likewise. * cfgmainloop.c (create_loop_notes): Likewise. * cfgrtl.c (delete_insn, delete_insn_chain, create_basic_block_structure, rtl_delete_block, free_bb_for_insn, update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks, block_label, try_redirect_by_replacing_jump, last_loop_beg_note, redirect_branch_edge, force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p, rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb, update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info, purge_dead_edges, cfg_layout_redirect_edge_and_branch, cfg_layout_delete_block, cfg_layout_can_merge_blocks_p, cfg_layout_merge_blocks, rtl_block_ends_with_call_p, need_fake_edge_p, rtl_flow_call_edges_add): Likewise. * combine.c (combine_instructions, can_combine_p, try_combine, find_split_point, record_dead_and_set_regs, reg_dead_at_p, distribute_notes, distribute_links, insn_cuid): Likewise. * cse.c (fold_rtx, cse_insn, cse_around_loop, invalidate_skipped_block, cse_set_around_loop, cse_end_of_basic_block, cse_main, cse_basic_block, cse_condition_code_reg): Likewise. * cselib.c (cselib_process_insn): Likewise. * ddg.c (create_ddg): Likewise. * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify): Likewise. * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug, gen_label_die, dwarf2out_var_location): Likewise. * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn, next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn, last_call_insn, active_insn_p, next_label, prev_label, link_cc0_insns, next_cc0_user, try_split, add_insn_after, add_insn_before, remove_insn, add_function_usage_to, reorder_insns, find_line_note, remove_unnecessary_notes, emit_insn_after_1, classify_insn): Likewise. * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before, connect_post_landing_pads, sjlj_mark_call_sites, sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers, can_throw_internal, can_throw_external, set_nothrow_function_flags, convert_to_eh_region_ranges): Likewise. * explow.c (optimize_save_area_alloca): Likewise. * expr.c (expand_expr_real): Likewise. * final.c (insn_current_reference_address, compute_alignments, shorten_branches, final, scan_ahead_for_unlikely_executed_note, final_scan_insn, output_asm_label, leaf_function_p): Likewise. * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables, propagate_block_delete_insn, propagate_one_insn, init_propagate_block_info, propagate_block, libcall_dead_p, mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment): Likewise. * function.c (instantiate_virtual_regs, reorder_blocks_1, expand_function_start, expand_function_end, contains, thread_prologue_and_epilogue_insns, reposition_prologue_and_epilogue_notes): Likewise. * gcse.c (constprop_register, bypass_conditional_jumps, insert_insn_end_bb, gcse_after_reload): Likewise. * genemit.c (gen_expand, gen_split): Likewise. * genpeep.c (gen_peephole, main): Likewise. * global.c (build_insn_chain): Likewise. * graph.c (node_data, print_rtl_graph_with_bb): Likewise. * haifa-sched.c (unlink_other_notes, unlink_line_notes, get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes, restore_line_notes, rm_redundant_line_notes, rm_other_notes, ok_for_early_queue_removal, set_priorities, sched_init): Likewise. * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn, cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block, merge_if_block, block_jumps_and_fallthru_p, find_if_block, dead_or_predicable): Likewise. * integrate.c (try_constants): Likewise. * jump.c (rebuild_jump_labels, cleanup_barriers, purge_line_number_notes, init_label_info, mark_all_labels, squeeze_notes, get_label_before, get_label_after, reversed_comparison_code_parts, simplejump_p, pc_set, returnjump_p, onlyjump_p, follow_jumps, mark_jump_label, delete_barrier, delete_prior_computation, delete_computation, delete_related_insns, delete_for_peephole, redirect_jump): Likewise. * lcm.c (optimize_mode_switching): Likewise. * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc): Likewise. * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise. * loop-invariant.c (find_exits, find_invariants_bb): Likewise. * loop-iv.c (simplify_using_assignment): Likewise. * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg, libcall_benefit, skip_consec_insns, move_movables, prescan_loop, find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop, loop_bivs_init_find, strength_reduce, check_insn_for_bivs, check_insn_for_givs, check_final_value, update_giv_derive, basic_induction_var, product_cheap_p, check_dbra_loop, loop_insn_first_p, last_use_this_basic_block, canonicalize_condition, get_condition, loop_regs_scan, load_mems, try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise. * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule, sms_schedule_by_order): Likewise. * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise. * postreload.c (reload_cse_simplify_operands, reload_combine, reload_cse_move2add): Likewise. * predict.c (can_predict_insn_p, estimate_probability, expected_value_to_br_prob, process_note_predictions): Likewise. * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise. * profile.c (branch_prob): Likewise. * ra-build.c (live_out_1, livethrough_conflicts_bb, detect_webs_set_in_cond_jump): Likewise. * ra-debug.c (ra_print_rtx_object, ra_debug_insns, ra_print_rtl_with_bb): Likewise. * ra-rewrite.c (insert_stores, rewrite_program2): Likewise. * recog.c (next_insn_tests_no_inequality, find_single_use, split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise. * reg-stack.c (next_flags_user, record_label_references, emit_swap_insn, swap_rtx_condition, subst_stack_regs, compensate_edge, convert_regs_1): Likewise. * regclass.c (scan_one_insn): Likewise. * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2, regmove_optimize, fixup_match_1, single_set_for_csa, combine_stack_adjustments_for_block): Likewise. * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise. * reload.c (find_reloads, find_reloads_address_1, subst_reloads, find_equiv_reg): Likewise. * reload1.c (reload, calculate_needs_all_insns, set_label_offsets, reload_as_needed, emit_input_reload_insns, do_output_reload, delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges): Likewise. * reorg.c (find_end_label, emit_delay_sequence, delete_from_delay_slot, delete_scheduled_jump, optimize_skip, get_jump_flags, rare_destination, mostly_true_jump, try_merge_delay_insns, redundant_insn, own_thread_p, fill_simple_delay_slots, fill_slots_from_thread, fill_eager_delay_slots, relax_delay_slots, make_return_insns, dbr_schedule): Likewise. * resource.c (find_basic_block, next_insn_no_annul, find_dead_or_set_registers, mark_target_live_regs): Likewise. * rtl.h (RTX_PREV): Likewise. * rtlanal.c (global_reg_mentioned_p, no_labels_between_p, no_jumps_between_p, reg_used_between_p, reg_referenced_between_p, reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage, find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1, tablejump_p, computed_jump_p, insns_safe_to_move_p, find_first_parameter_load, can_hoist_insn_p): Likewise. * sched-deps.c (get_condition, add_dependence, sched_analyze_2, sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise. * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns, schedule_ebbs): Likewise. * sched-rgn.c (is_cfg_nonregular, find_conditional_protection, is_conditionally_protected, can_schedule_ready_p, add_branch_dependences, debug_dependencies): Likewise. * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable): Likewise. * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p, reg_dead_after_loop, loop_find_equiv_value, loop_iterations, set_dominates_use, ujump_to_loop_cont): Likewise. * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise. * varasm.c (output_constant_pool_1): Likewise. 2004-07-08 Zdenek Dvorak * tree-scalar-evolution.c: New file. * tree-scalar-evolution.h: New file. * tree-ssa-loop-niter.c: New file. * Makefile.in (SCEV_H): New. (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files. * cfgloop.h (struct loop): Add bounds field. * tree-flow.h (struct tree_niter_desc): New type. (number_of_iterations_cond, number_of_iterations_exit, loop_niter_by_eval, find_loop_niter_by_eval, estimate_numbers_of_iterations, can_count_iv_in_wider_type, free_numbers_of_iterations_estimates): Declare. * tree.h (lower_bound_in_type, upper_bound_in_type): Declare. * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter. * doc/invoke.texi (max-iterations-to-track): Document. 2004-07-08 Kaz Kojima * config/sh/sh.c (sh_va_arg): Initinalize lab_over. * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses. (MODE_AFTER): Add cast appropriately. * config/sh/sh.md (movdi splitter): Likewise. (casesi_worker_2): Add const qualifier appropriately. (eh_return): Remove unused variable. (insv): Initialize v; 2004-07-08 Richard Henderson * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove. * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg. * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove. (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label. * config/m32r/m32r-protos.h (m32r_va_arg): Remove. * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg. * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove. * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove. * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg. * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove. * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove. * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg. * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove. * config/i860/i860-protos.h (i860_va_arg): Remove. * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg. * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove. 2004-05-31 Aaron W. LaFramboise * system.h: Prototype getpagesize if missing. * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS. * configure: Regenerate. * config.in: Regenerate. 2004-07-08 Richard Henderson * config/fr30/fr30-protos.h (fr30_va_arg): Remove. * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (fr30_gimplify_va_arg_expr): New. (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove. * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove. 2004-07-08 Vladimir Makarov PR target/16414 * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison of asm_noperands result. 2004-07-08 Richard Henderson * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove. * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg. * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove. 2004-07-08 Richard Henderson * builtins.c (ind_gimplify_va_arg_expr): New. * tree.h (ind_gimplify_va_arg_expr): Declare. * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it. 2004-07-08 Jan Beulich * expmed.c (extract_bit_field): Correct condition to use vec_extract patterns also on vector elements other than the first one. * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing break statements. 2004-07-08 Geoffrey Keating * config/rs6000/darwin-ldouble.c: Correct reference to the Linnainmaa paper. 2004-07-08 Richard Henderson * config/arc/arc-protos.h (arc_va_arg): Remove. * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg. * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove. * config/c4x/c4x-protos.h (c4x_va_arg): Remove. * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg. * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove. 2004-07-08 John David Anglin * pa.md (prefetch_32, prefetch_64): Simplify constraint checks. 2004-07-08 Zack Weinberg * c-decl.c (static_ctors, static_dtors): Make static. (pop_file_scope): Call c_common_write_pch and cgraph_finalize_compilation_unit here. (build_cdtor): Moved here from c-objc-common.c; simplify. (c_write_global_declarations_1): Clarify comment. (c_write_global_declarations): Close the external scope before doing anything else. Call build_cdtor, cgraph_optimize, and mudflap_finish_file here. * c-lang.c (finish_file): Don't call c_objc_common_finish_file. Clarify comment. * c-objc-common.c: No need to include cgraph.h. (build_cdtor): Moved to c-decl.c. (c_objc_common_finish_file): Delete. * c-tree.h: Update to match. * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file. (generate_static_references): Set TREE_USED before calling finish_decl. Eliminate unnecessary dummy declaration. Call rest_of_decl_compilation on the static_instances_decl. 2004-07-08 Zack Weinberg * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope decls when there is only one input translation unit. * langhooks.c (lhd_set_decl_assembler_name): Partially revert change of 2004-07-05; do not treat declarations with DECL_CONTEXT a TRANSLATION_UNIT_DECL specially. * opts.c (cur_in_fname): Delete. * opts.h: Likewise. * tree.c: Revert changes of 2004-07-05; no special treatment for TRANSLATION_UNIT_DECLs. * Makefile.in (tree.o): Update dependencies. 2004-07-08 Roger Sayle * builtins.c (fold_builtin_strcpy): Merge functionality from simplify_builtin_strcpy. Add additional len argument. No longer static. Remove function prototype. (fold_builtin_strncpy): Likewise integrate functionality from simplify_builtin_strncpy. Add additional slen argument. No longer static. Remove function prototype. (simplify_builtin_strcy, simplify_builtin_strncpy): Delete. (simplify_builtin_fputs): Rename to fold_builtin_fputs. Change types of "ignore" and "unlocked" parameters to bool. (fold_builtin_1): Add additional ignore argument. Call renamed fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked" builtins. Update arguments to fold_builtin_strncpy and fold_builtin_strcpy. Add function prototype. (fold_builtin): Add additional Boolean ignore argument to pass to fold_builtin_1. (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy instead of simplify_builtin_fputs, simplify_builtin_strcpy and simplify_builtin_strncpy respectively. * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy, simplify_builtin_strncpy): Delete function prototypes. * tree.h (fold_builtin_fputs, fold_builtin_strcpy, fold_builtin_strncpy): Add function prototypes here. (fold_builtin): Update function prototype with new "bool ignore". * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin. (ccp_fold_builtin): Update call to fold_builtin. Call fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy instead of simplify_builtin_fputs, simplify_builtin_strcpy and simplify_builtin_strncpy respectively. * fold-const.c (fold): Update call to fold_builtin. 2004-07-08 Alexandre Oliva * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy to strcpy. * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0. (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise. (FUNCTION_ARG_CALLEE_COPIES): Likewise. * calls.c: Remove ifdefs of macros above. * functions.c: Likewise. * expr.c: Likewise. 2004-07-08 Eric Botcazou * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete. (arch attribute): Delete. (current_function_calls_alloca attribute): Rename into calls_alloca. (calls_eh_return): New attribute. (leaf_function): Likewise. (length attribute): Fix formula for sibcalls. (return insn): Correctly compute the 'length' attribute. (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca. 2004-07-08 Richard Henderson * tree-cfg.c (make_exit_edges): Use get_call_expr_in. (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise. (tree_block_ends_with_call_p, need_fake_edge_p): Likewise. * tree-eh.c (lower_eh_constructs_1): Likewise. * tree-sra.c (sra_walk_modify_expr): Likewise. * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. (eliminate_unnecessary_stmts): Likewise. * tree-ssa-dse.c (dse_optimize_stmt): Likewise. * tree-tailcall.c (optimize_tail_call): Likewise. * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch. 2004-07-08 Paolo Bonzini Jakub Jelinek * config/i386/i386.c (override_options): Enable SSE prefetches with -mtune, as long as we are compiling for i686 or higher. All i686 processors accept SSE prefetches as NOPS, some i586's don't. 2004-07-08 Eric Botcazou PR target/10567 * config/sparc/sparc.md (update_return): Honor flag_delayed_branch. 2004-07-08 Diego Novillo * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in the handling of clobbering ASM_EXPRs. 2004-07-08 Eric Botcazou PR target/16430 * config/sparc/sparc.c (function_value): In 64-bit mode, return the aggregates larger than 16 bytes like unions. 2004-07-08 Eric Botcazou PR target/16199 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When 'temp' is zero, generate new pseudos as needed and emit the sequence of insns in single-assignment form. Resync comments with code. (sparc_emit_set_const64): Pass zero as 'temp' argument to above function before reload. 2004-07-08 Nathan Sidwell * vec.c (vec_assert_fail): Remove duplicate 'function'. * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed. * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init): Allocation is signed. (VEC_reserve): Return flag, allocation is signed. 2004-07-08 Richard Henderson * tree-ssa-ccp.c (fold_stmt): Get type directly from OBJ_TYPE_REF_OBJECT. 2004-07-08 Joseph S. Myers Neil Booth PR c/2511 PR c/3325 * c-decl.c (finish_struct): Ensure bit-fields are given the correct type. * c-common.c (c_common_signed_or_unsigned_type): For C, require the precision to match as well as the mode. * expr.c (reduce_to_bit_field_precision): New function. (expand_expr_real_1): Reduce expressions of bit-field type to proper precision. * langhooks.h (reduce_bit_field_operations): New hook. * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define. * c-lang.c, objc/objc-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define. * objc/objc-act.c (check_ivars): Convert types to bit-field types before checking. * tree.c (build_nonstandard_integer_type): New function. * tree.h (build_nonstandard_integer_type): New prototype. * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat conversions between integer and boolean types as useless. 2004-07-08 Paolo Bonzini * c-common.c (c_common_nodes_and_builtins): Do not create __builtin_ptrdiff_t and __builtin_size_t. 2004-07-08 Andrew Pinski * Makefile.in (libbackend.o): Add -combine to the gcc command line. 2004-07-08 Nick Clifton * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define. Set to -Os. 2004-07-08 Richard Henderson * except.c (expand_eh_region_start, expand_eh_region_end, expand_eh_handler, expand_eh_region_end_cleanup, expand_start_all_catch, expand_start_catch, expand_end_catch, expand_end_all_catch, expand_eh_region_end_allowed, expand_eh_region_end_must_not_throw, expand_eh_region_end_throw, expand_eh_region_end_fixup): Remove. * stmt.c (struct nesting): Remove stack_level, innermost_stack_block, cleanups, outer_cleanups, label_chain, exception_region. (struct goto_fixup): Remove stack_level, cleanup_list_list. (struct label_chain): Remove. (struct stmt_status): Remove x_stack_block_stack. (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups, fixup_gotos, save_stack_pointer, expand_decl_cleanup, expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral, end_cleanup_deferral, last_cleanup_this_contour, containing_blocks_have_cleanups_or_stack_level, any_pending_cleanups): Remove. (expand_null_return_1): Take no arguments. (expand_label, expand_naked_return, expand_return, expand_start_bindings_and_block, expand_end_bindings, expand_decl, expand_anon_union_decl, expand_start_case, pushcase, pushcase_range, expand_end_case_type): Don't use any of them. * calls.c (expand_call): Likewise. * dojump.c (do_jump): Likewise. * function.c (expand_function_end): Likewise. * expr.c (store_expr, expand_expr_real_1): Likewise. (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR. (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR, EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR. * fold-const.c (fold_checksum_tree): Use first_rtl_op. * gengtype.c (adjust_field_tree_exp): Remove rtl op handling. * gimplify.c (gimplify_cleanup_point_expr): Renumber operands for WITH_CLEANUP_EXPR. (gimple_push_cleanup): Likewise. * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE. * print-tree.c (print_node): Likewise. * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR. * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH. (has_cleanups): Remove GOTO_SUBROUTINE_EXPR. * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2. (GOTO_SUBROUTINE_EXPR): Remove. * tree.h (WITH_CLEANUP_EXPR_RTL): Remove. (DECL_TOO_LATE): Remove. * except.h, tree.h: Update decls. 2004-07-08 Paolo Bonzini * explow.c (optimize_save_area_alloca): Do not accept parameters. * passes.c (rest_of_handle_final): Handle symout. (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Push timevar here. (rest_of_handle_sched): Break out SMS. Remove ifs for flag_schedule_insns and flag_modulo_sched. (rest_of_handle_addressof, rest_of_handle_cse2): Garbage collect at the end. (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS. (rest_of_handle_partition_blocks, rest_of_handle_sms, rest_of_handle_if_after_reload, rest_of_handle_peephole2, rest_of_handle_mode_switching, rest_of_handle_jump, rest_of_handle_guess_branch_prob, rest_of_handle_eh, rest_of_handle_jump2, rest_of_handle_postreload, rest_of_handle_flow2, rest_of_clean_state, rest_of_handle_shorten_branches, rest_of_handle_prologue_epilogue, rest_of_handle_branch_target_load_optimize): New. (rest_of_compilation): Call the above. Remove ggc_collect calls moved to rest_of_handle_*. * rtl.h (optimize_save_area_alloca): Do not accept parameters. * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW. * except.c (set_nothrow_function_flags): Set TREE_NOTHROW. * except.h (set_nothrow_function_flags): Update comment. * function.c (current_function_nothrow): Remove. * output.h (current_function_nothrow): Remove. * passes.c (rest_of_compilation): Do not set TREE_NOTHROW. * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW. 2004-07-08 Eric Botcazou PR bootstrap/16326 * reorg.c: Revert 2004-06-30 change. (find_end_label): If HAVE_epilogue and !HAVE_return, return 0 instead of creating a label at the end of the insn chain. (optimize_skip): Account for the failure mode of find_end_label. (fill_simple_delay_slots): Likewise. (fill_slots_from_thread): Likewise. (relax_delay_slots): Likewise. 2004-07-08 Diego Novillo * tree-flow.h (addressable_vars): Declare. * tree-ssa-alias.c (addressable_vars): Define. (setup_pointers_and_addressables): Add addressable variables to addressable_vars. * tree-ssa-operands.c (get_stmt_operands): Move handling of ASM_EXPRs ... (get_asm_expr_operands): ... here. When the ASM_EXPR clobbers memory, also clobber addressable variables. * tree-ssa.c (init_tree_ssa): Initialize addressable_vars. (delete_tree_ssa): Reset addressable_vars. 2004-07-07 Jan Beulich Richard Henderson * varasm.c (assemble_variable): Use assemble_zeros for zero-initialized variables. (categorize_decl_for_section): Honor flag_zero_initialized_in_bss for SECCAT_BSS and SECCAT_TBSS. 2004-07-07 Jan Beulich * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP. * expmed.c (emit_store_flag): Also special-case double-word (in-)equality comparison against -1. * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for passing arguments the containers for which are registers. * calls.c (emit_library_call_value_1): Use mode of function parameter rather than that of argument since constants have none. 2004-07-08 Alexandre Oliva Introduce H8SX support. * expr.c (expand_strcpy): Renamed and moved to... * builtins.c (expand_movstr): ... here. Tweak. (expand_builtin_strcpy): Adjust. Use movstr if len can't be computed or has side effects. (expand_builtin_stpcpy): Likewise. Use strcpy if return value is unused, or if mempcpy fails. Adjust the return value in the latter case. Use movstr if everything else fails. * doc/md.texi (movstr): Document. (movmemM, clrmemM): Fix explanation of memory block operands. * config/h8300/h8300.md (stpcpy): Renamed to... (movstr): ... this. Adjust. 2004-07-07 Alexandre Oliva * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to movmem* and clrstr* to clrmem*. 2004-06-27 Alexandre Oliva * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to GENERAL_REGS, always. (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of getting the stack pointer as addr. * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes from general_operand_dst. * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode variant of... (movmd_internal): ... this. Add modes to operands. Disparage `D' instead of requiring it to match only before reload. (stpcpy_internal_normal): New, normal-mode variant of... (stpcpy_internal): ... this. Add modes to operands. Disparage `D' instead of requiring it to match only before reload. * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add mode argument. * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to... * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to h8300_get_index. * config/h8300/h8300.md (attr type): Add call. (attr can_delay): If type is call, set it no. (call, call_value): Set type to call. 2004-06-21 Alexandre Oliva * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New. 2004-06-16 Alexandre Oliva * tree.c (get_narrower): Don't narrow integral types into non-integral types. * config/h8300/h8300.c (h8300_expand_epilogue): Initialize frame_size *before* the first use. * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment on input. (peephole2): Don't widen instructions that push SP. Move decrement of SP to the end of all stm-generating peepholes. 2003-07-24 Richard Sandiford * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield and OR to set it to all ones. 2003-07-24 Richard Sandiford * config/h8300/h8300.md (can_delay): Default to "no" for bit branches. (call, call_value): Set can_delay to "no". 2003-07-22 Richard Sandiford * config/h8300/h8300.md (extzv): Make subreg check more robust. 2003-07-21 Richard Sandiford * config/h8300/h8300.md (*brabit): Remove. * config/h8300/h8300.md (*brabc, *brabs): Remove mode from zero_extract. Use bit_memory_operand as the predicate for operand 1 and 'WU' as the constraint. Check the difference between the base length and the final one when deciding which type of branch to use. 2003-07-21 Richard Sandiford * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1. Use convert_move to extend the result for TARGET_H8300SX. Check for QImode memory references. Optimize the case where the destination is a paradoxical subreg. 2003-07-21 Richard Sandiford * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative. * config/h8300/h8300.md (andqi): Remove bclr from h8sx version. 2003-07-21 Richard Sandiford * config/h8300/h8300.md: Include mova.md (length_table): Add mova and mova_zero. * config/h8300/h8300.c (print_operand): Handle '%o'. Print a length after all constant addresses for '%R', '%X', '%T' and '%S'. (h8300_mova_length): New function. (h8300_insn_length_from_table): Use it to handle mova and mova_zero. * config/h8300/t-h8300 (mova.md): Generate from genmova.sh. Add to dependencies for s-config, etc. * config/h8300/gemova.sh: New file. * config/h8300/mova.md: Generated. 2003-07-20 Alexandre Oliva * config/h8300/h8300.c (h8300_bitfield_length): New. (nibble_operand): Adjust. (h8300_binary_length): Handle conditional binary op. (h8300_insn_length_from_table): Handle bitfield and bitbranch. * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and P#X. Introduced P#>0 and P#<0, unused so far. W and Y are now prefixes to multi-letter constraints. WU is introduced as a variant of U that requires a mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT. * config/h8300/h8300.md (attr type): Added bitbranch. (attr length_table): Added bitfield and bitbranch. (attr length): Compute bitbranch length. (andqi): Separate pattern for H8300SX. Use bfld for loading the least-significant bit of a byte. (brabit, brabc, brabs): New. (insv, extzv): Emit bfst and bfld on H8300SX. (bfld, bfst, seq, sne): New. (bstzhireg, cmpstz, bstz, bistz): New. (cmpcondbset, condbset, cmpcondbclr, condbclr): New. (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New. 2003-07-11 Richard Sandiford * config/h8300/h8300.c (h8sx_binary_memory_operator): New function. (h8sx_unary_memory_operator): New function. * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable. (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator. * config/h8300/h8300.md: Add peepholes to combine reloads and arithmetic insns. 2003-07-10 Richard Sandiford * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints. (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise. (and?i, ior?i, xor?i): Likewise. 2003-07-10 Richard Sandiford * config/h8300/h8300.c: Move enums and prototypes to head of file. Various whitespace fixes. (h8300_constant_length): New function, split out from... (h8300_displacement_size): ...here. Rename h8300_displacement_length. (h8300_classify_operand): Use IN_RANGE. (h8300_classify_operand): Use h8300_constant_length. (h8300_short_move_mem_p): Tighten size check. (h8sx_mergeable_memrefs_p): Tighten equality check. 2003-06-30 Richard Sandiford * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__ for -msx. * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code. * config/h8300/crtn.asm: Likewise. * config/h8300/lib1funcs.asm: Likewise. Use 32-bit pointers if __H8300SX__ is defined. 2003-06-27 Richard Sandiford * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter. * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly. (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed addresses as mode-dependent. * config/h8300/h8300.c (print_operand_address): Update call to h8300_get_index. (h8300_get_index): Take a mode argument. Rework to fix an earlier misunderstanding. 2003-06-26 Richard Sandiford * config/h8300/h8300.c (zero_extendqisi2): Force the source operand into a register if TARGET_H8300SX. (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for TARGET_H8300SX. Also disable related define_splits. (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns. 2003-06-23 Richard Sandiford * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling. 2003-06-20 Richard Sandiford * config/h8300/h8300.h (OK_FOR_Z): New macro. (EXTRA_CONSTRAINT_STR): Check it. * config/h8300/h8300.c (h8300_classify_operand): Accept null class arguments. (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4. * config/h8300/h8300.md (length_table): Add mov_imm4. (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns. 2003-06-20 Richard Sandiford * genattrtab.c (write_eligible_delay): Allow candidate_insn to be a label. * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro. * config/h8300/h8300.c (h8300_reorg): New function. (TARGET_MACHINE_DEPENDENT_REORG): Define. * config/h8300/h8300.md (length): Subtract the length of the delay slot from (pc) when checking the range of forward branches. (delay_slot, can_delay): New attributes. (define_delay): Add bra/s handling. (movmd_internal, return_h8sx, *return_1): Set can_delay to no. (jump): Add delayed-branch handling. 2003-06-17 Richard Sandiford * expr.c (expand_strcpy): New function. * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy. (expand_builtin_stpcpy): Likewise. * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove. (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare. * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd' handling to improve register allocation for -fno-omit-frame-pointer. (h8sx_split_movmd): Delete, moving er6 handling into... (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions. * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant. (movmd): Add calls to copy_rtx. (movmd_internal): In the second alternative, allow the initial and final destination registers to be different . Update the splitter accordingly. Call h8300_swap_into_er6 and h8300_swap_out_of_er6 instead of h8sx_split_movmd. (stpcpy, movsd): New expanders. (movsd_internal): New define_insn. 2003-06-13 Richard Sandiford * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare. (h8sx_emit_movmd, h8sx_split_movmd): Declare. * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS and DESTINATION_REGS. (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes. (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter. (h8300_move_ratio): Declare. (MOVE_RATIO): Use it. * config/h8300/h8300.c (h8300_move_ratio): New variable. (h8300_init_once): Initialize it. (h8300_reg_class_from_letter): New function. (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l". (h8sx_emit_movmd, h8sx_split_movmd): New functions. * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant. (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants. (movstrsi, movmd): New expanders. (movmd_internal): New insn. 2003-06-06 Richard Sandiford * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define. 2003-06-04 Richard Sandiford * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn. * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise. 2003-06-03 Richard Sandiford * config/h8300/h8300.c (nibble_operand): Fix warning. * config/h8300/h8300.md (movstricthi): Set adjust_length to no. (movsi_h8sx): Likewise here and the normal h8sx movhi pattern. (movsf_h8300h): Disable for TARGET_H8300SX. 2003-06-03 Richard Sandiford * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel, h8300_stm_parallel and h8300_return_parallel. * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p, h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel, h8300_stm_parallel, h8300_return_parallel): New functions. (h8300_expand_prologue): Don't enforce ldm/stm register alignment if TARGET_H8300SX. Use h8300_push_pop. (h8300_expand_epilogue): Likewise. Try to merge the return insn and final pop when generating h8sx code. Always emit some form of return insn. * config/h8300/h8300.md: Don't enforce register alignment in stm peepholes if TARGET_H8300SX. (ldm_h8300s, stm_h8300s, return_h8sx): New patterns. (ldm_h8300s_[234], stm_h8300_[234]): Disable. (epilogue): Expect h8300_expand_epilogue to emit a return insn. 2003-06-03 Richard Sandiford * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib. (MULTILIB_DIRNAMES): Add a directory for it. (MULTILIB_MATCHES): Delete. 2003-05-28 Richard Sandiford * final.c (walk_alter_subreg): Handle addresses with subregs inside a ZERO_EXTEND or AND. * config/h8300/h8300-protos.h (h8300_get_index): Declare. * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS if TARGET_H8300SX. (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index. * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b), @(dd,Rn.w) and @(dd,ERn.L). (h8300_displacement_size): Take the whole address as argument. (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly. 2003-05-28 Richard Sandiford * config/mips/mips-protos.h (h8300_operands_match_p): Declare. (h8sx_mergeable_memrefs_p): Declare. * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX. (HAVE_PRE_INCREMENT): Likewise. (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement addresses for TARGET_H8300SX, * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC and POST_DEC. (movb_length_table, movl_length_table): New tables. (movw_length_table): Define to movb_length_table. (h8300_displacement_size): New, split out from... (h8300_classify_address): ...here. Handle pre/post inc/dec. (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands. (h8300_insn_length_from_table): Add cases for movb, movw and movl. (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions. (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx. (compute_plussi_length, compute_plussi_cc): Update accordingly. (h8sx_unary_shift_operator): Get the mode from the operator. (binary_shift_operator): Likewise. * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to a memory reference, check whether the reference is offsettable. (length_table): Add movb, movw and movl. (movqi): Add new h8sx pattern. Don't force one operand to be a register when generating h8sx code. (movhi, movsi, movsf): Likewise. (movstrictqi): Use the length_table attribute. (movstricthi): Likewise. Add h8sx alternative for mov.w #xx:3,Rn. (addqi3): Split into a define_expand and define_insn. Don't accept memory operands in the expander. Use h8300_operands_match_p to check for matching operands in the define_insn. (subqi3, negqi2, one_cmplqi2): Likewise. (add[hs]i3): Don't accept memory operands in the expander. Likewise in any patterns that are unused in h8sx code. In the h8sx patterns, use h8300_operands_match_p to check whether operands match. (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3, one_cmpl[hs]i3): Likewise. (andqi3, iorqi3, xorqi3): Likewise. Don't call fix_bit_operand in the expander. 2003-05-23 Richard Sandiford * config/h8300/h8300-protos.h (expand_a_shift): Return a bool. (h8300_insn_length_from_table): Add a second parameter. (output_h8sx_shift): Declare. * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros. (EXTRA_CONSTRAINT): Replace with... (EXTRA_CONSTRAINT_STR): ...this. Use OK_FOR_W and OK_FOR_Y. (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'. (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator and h8sx_binary_shift_operator. * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false for TARGET_H8300SX. (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U. (bit_memory_operand, fix_bit_operand): Likewise. (h8300_length_table_for_insn): Remove. (h8300_classify_operand): Fix check for 16-bit operands in 32-bit instructions. (h8300_short_immediate_length, h8300_binary_length): New functions. (h8300_insn_length_from_table): Add an opcodes parameter. Rework. (output_plussi): Use sub to add negative constants. (compute_plussi_length): Adjust accordingly. (h8sx_single_shift_type): New enum. (h8sx_single_shift, h8sx_unary_shift_operator, h8sx_binary_shift_operator, output_h8sx_shift): New functions. (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a single h8sx instruction. Return false in this case. * config/h8300/h8300.md (length_table): Add short_immediate. (length): Pass the operand array to h8300_insn_length_from_table. (adjust_length): Assume "no" for insns with a length_table attribute. (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3. (*addhi3_h8300hs): Don't use for h8sx. (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3 and sub.w #xx:3. (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand 1's predicate to nonimmediate_operand. Only skip default expansion if expand_a_shift or expand_a_rotate returns true. Add new patterns for single h8sx shift instructions. 2003-05-22 Alexandre Oliva * config/h8300/h8300.c (nibble_operand): Split out of... (reg_or_nibble_operand): ... this. * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand. * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3, umulhisi3): Introduce expand, and introduce separate insns for sign- or zero-extended REG and already-extended CONST_INT. 2003-05-20 Richard Sandiford * config/h8300/h8300.c (h8300_unary_length): Fix miscounting. * config/h8300/h8300.md (subqi3): Generalize for h8sx. (subhi3): Likewise. Don't accept immediates for operand 1. Remove the early clobber from second alternative of the h8300s pattern. (subsi3): Generalize for h8sx. Force operand 2 into a register on plain h8300 targets. (subsi3_h8300): Use h8300_dst_operand for consistency with expander. (subsi3_h8300h): Generalize for h8sx. (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise. 2003-05-19 Alexandre Oliva * config/h8300/h8300.c (reg_or_nibble_operand): New. * config/h8300/h8300.h (PREDICATE_CODES): Adjust. (TARGET_H8300SXMUL): New. (CONST_OK_FOR_P): New. (CONST_OK_FOR_LETTER_P): Adjust. * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3, umulhisi3): Accept 4-bit immediate on H8SX. (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New. (udivsi3, divhi3, udivsi3, divsi3): New. 2003-05-19 Richard Sandiford * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare. * config/h8300/h8300.h (OK_FOR_Q): New macro. (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint. (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand. Add ADDRESSOF to the bit_operand entry. * config/h8300/h8300.c (h8300_dst_operand): New predicate. (h8300_src_operand): Likewise. (bit_operand): Check nonimmediate_operand rather than general_operand. Accept any nonimmediate_operand in h8sx code. (h8300_and_costs): Initialize operands[1]. (h8300_rtx_costs) : Return false if the operands aren't valid. (h8300_operand_class): New enum. (h8300_length_table): New typedef. (addb_length_table, addw_length_table, addl_length_table, logicl_length_table): New tables. (logicb_length_table, logicw_length_table): New macros. (h8300_classify_operand, h8300_length_from_table, h8300_length_table_for_insn, h8300_unary_length, h8300_insn_length_from_table): New functions. (output_plussi): Only use adds and subs for register destinations. Disable redundant clause. (compute_plussi_cc): Likewise. (compute_plussi_length): Likewise. Use h8300_length_from_table to work out the length of an insn. (output_logical_op): Only use narrower immediate instructions if the destination is a register. (compute_logical_op_cc): Likewise. (compute_logical_op_length): Likewise. Use h8300_length_from_table. (h8300_adjust_insn_length): Tighten check for reg<->mem moves. * config/h8300/h8300.md (length_table): New attribute. (length): When an instruction has a length_table attribute, use h8300_insn_length_from_table to calculate its default length. (cmpqi): Use h8300_dst_operand for the first operand and h8300_src_operand for the second. (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2, negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3, addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3, iorsi3, xorhi3, xorsi3): Likewise. (andqi3): Use h8300_src_operand for operand 2. Adjust the condition so that it allows any combination of operands for TARGET_H8300SX. (iorqi3, xorqi3): Likewise. (cmpqi): Use the length_table attribute. (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise. (cmpqi): Add 'Q' constraint. (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3, iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise. 2003-05-14 Richard Sandiford * config/h8300/h8300.h (MASK_H8300SX): New macro. (TARGET_H8300S): True for both -ms and -msx. (TARGET_H8300SX): New macro. (TARGET_SWITCHES): Add entries for -msx and -mno-sx. * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx. * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx. * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx. [Temporary change.] 2003-02-28 Alexandre Oliva * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with 16-bit pointers and 32-bit ints. * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLE with mode no wider than SImode. * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for output operand. 2003-02-27 Alexandre Oliva * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX or SUBREG thereof. * config/h8300/h8300.h (PREDICATE_CODES): Adjust. 2003-02-22 Alexandre Oliva * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode. 2004-05-28 Aaron W. LaFramboise * config.gcc (i[34567]86-*-mingw32*): Enable threads by default. 2004-07-07 Per Bothner * flow.c (attempt_auto_inc): Remove now-redundant PUT_CODE. 2004-07-07 Mike Stump * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore. * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name) (machopic_finish): Likewise. 2004-07-07 Richard Henderson * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look through any value-preserving cast. 2004-07-07 Alexandre Oliva * function.c (assign_parm_find_data_types): Call FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined. 2004-07-07 Steven Bosscher * tree-cfg.c (group_case_labels): Remove case labels that have the same target as the default case. 2004-07-07 Steven Bosscher * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS regardless of DECL_LANG_SPECIFIC being present or not. * tree.h (DECL_NUM_STMTS): Purge. 2004-07-07 Andrew Pinski * configure: Regenerate with the right autoconf. 2004-07-07 David Edelsohn * ifcvt.c (total_bb_rtx_cost): New function. (find_if_case_1): Compare rtx_cost of basic block to cost of BRANCH_COST insns. (find_if_case_2): Same. 2004-07-07 Eric Botcazou PR target/10567 * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch. (output_return): Likewise. (output_sibcall): Abort if !flag_delayed_branch. (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch. (emit_and_preserve): New function. (sparc_output_mi_thunk): Use it. Honor flag_delayed_branch. Emit an indirect jump to the thunked-to function if !flag_delayed_branch. * config/sparc/sparc.md (delayed_branch): New attribute. (load_pcrel_sym): Honor flag_delayed_branch. Use above attribute to compute the length of the insn. (goto_handler_and_restore): Likewise. 2004-07-07 Andrew Pinski PR tree-optimization/15777 * fold-const.c (fold_single_bit_test): Fold the x^1 expression. * expr.c (expand_expr_real_1): Fix formating. BUFFER_REF and IN_EXPR are dead. * fold-const.c (non_lvalue): BUFFER_REF is dead. * tree-inline.c (estimate_num_insns_1): Likewise. * tree-pretty-print.c (dump_generic_node): BUFFER_REF, IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead. * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill. 2004-07-07 H.J. Lu * collect2.c (dump_file): Don't call cplus_demangle if HAVE_LD_DEMANGLE is defined. (main): Pass "--demangle" to ld if no_demangle is not 0 and HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style if HAVE_LD_DEMANGLE is defined. * configure.ac (--with-demangler-in-ld): Added (HAVE_LD_DEMANGLE): Define if ld supports --demangle when --with-demangler-in-ld is used. * config.in: Regenerated. * configure: Likewise. 2004-07-07 Roger Sayle * config/rs6000/rs6000.c (struct processor_costs): Add new fields for simple floating point operations "fp", double precision multiplication "dmul", and single and double precision division "sdiv" and "ddiv". Update all CPU variant tables as appropriate. (ppc630_cost): New table split from ppc620_cost, to distinguish differences in floating point latencies. (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630. (rs6000_rtx_costs): Add support for single and double precision floating point addition, subtraction, multiplication, division, fused-multiply-add, fused-multiply-sub, negation, absolute value and negative absolute value. Tweak MEM case to use prefered idiom. 2004-07-07 Richard Henderson * tree-flow-inline.h (may_propagate_copy): Move... * tree-ssa-copy.c (may_propagate_copy): ... here. Fail if we attempt to copy between types requiring conversion. * tree-flow.h (may_propagate_copy): Update decl. * tree-ssa-dom.c (cprop_operand): Tidy redundant tests. 2004-07-07 Jakub Jelinek * config/i386/i386.c (override_options): Don't set x86_prefetch_sse from -mtune= option. 2004-07-07 Alexandre Oliva * builtins.c: Rename movstr*, except for movstrict*, to movmem* and clrstr* to clrmem*. * expr.c: Likewise. * expr.h: Likewise. * genopinit.c: Likewise. * integrate.c: Likewise. * local-alloc.c: Likewise. * optabs.c: Likewise. * optabs.h: Likewise. * config/alpha/alpha.h: Likewise. * config/alpha/alpha.md: Likewise. * config/arm/arm-protos.h: Likewise. * config/arm/arm.c: Likewise. * config/arm/arm.md: Likewise. * config/avr/avr.md: Likewise. * config/c4x/c4x.c: Likewise. * config/c4x/c4x.md: Likewise. * config/frv/frv.md: Likewise. * config/i386/i386-protos.h: Likewise. * config/i386/i386.c: Likewise. * config/i386/i386.h: Likewise. * config/i386/i386.md: Likewise. * config/i860/i860.c: Likewise. * config/i860/i860.md: Likewise. * config/ip2k/ip2k.md: Likewise. * config/ip2k/libgcc.S: Likewise. * config/ip2k/t-ip2k: Likewise. * config/m32r/m32r.c: Likewise. * config/m32r/m32r.md: Likewise. * config/mcore/mcore.md: Likewise. * config/mips/mips.c: Likewise. * config/mips/mips.md: Likewise. * config/ns32k/ns32k.c: Likewise. * config/ns32k/ns32k.h: Likewise. * config/ns32k/ns32k.md: Likewise. * config/pa/pa.c: Likewise. * config/pa/pa.md: Likewise. * config/pdp11/pdp11.h: Likewise. * config/pdp11/pdp11.md: Likewise. * config/rs6000/rs6000.c: Likewise. * config/rs6000/rs6000.md: Likewise. * config/s390/s390-protos.h: Likewise. * config/s390/s390.c: Likewise. * config/s390/s390.md: Likewise. * config/sh/lib1funcs.asm: Likewise. * config/sh/sh.c: Likewise. * config/sh/sh.md: Likewise. * config/sh/t-sh: Likewise. * config/sparc/sparc.h: Likewise. * config/vax/vax.md: Likewise. * config/xtensa/xtensa.c: Likewise. * config/xtensa/xtensa.md: Likewise. * doc/invoke.texi: Likewise. * doc/md.texi: Likewise. * doc/rtl.texi: Likewise. 2004-07-07 Richard Sandiford PR target/16407 * config/mips/mips-protos.h (mips_declare_common_object): Declare. * config/mips/mips.c (mips_declare_common_object): New function, mostly split out from... (mips_output_aligned_decl_common): ...here. * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of... (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition. * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this rather than ASM_OUTPUT_LOCAL. Call mips_declare_common_object. 2004-07-07 John David Anglin PR c/16392 * function.c (assign_parms): Fix typo from previous change. 2004-07-07 Jason Merrill PR c++/15815 * doc/extend.texi (C++ Interface): Correct information and discourage use. 2004-07-07 Vladimir Makarov PR target/16130 PR target/16142 PR target/16143 * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm insn. 2004-07-06 Kazuhiro Inaoka PR target/1679. * config/m32r/m32r.c (m32r_function_symbol): New function: Generate a symbol name RTX with the correct m32r specific flags set. (block_move_call): Use new function to generate correct symbol. * config/m32r/m32r-protos.h: Add prototype for new funcion. * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new function. 2004-07-07 Nathan Sidwell * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE, TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES, TYPE_BINFO_BASETYPE): Remove. (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename to ... (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ... here. (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ... (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here. (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used. (struct tree_binfo): Rename base_types to base_binfos. * alias.c (record_component_aliases): Adjust BINFO macros. * dbxout.c (dbxout_type): Likewise. * dwarf2out.c (gen_member_die): Likewise. * sdbout.c (sdbout_one_type): Likewise. * tree-dump.c (deque_and_dump): Likewise. * config/i386/i386.c (classify_argument, contains_128bit_aligned_vector_p): Likewise. 2004-07-07 Nick Clifton * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change arguments to match TARGET_SETUP_INCOMING_VARARGS prototype. 2004-07-07 Nathan Sidwell * vec.h: Fix the example use. 2004-07-06 Richard Henderson * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove. * langhooks.h (struct lang_hooks): Remove gimple_before_inlining. * tree-inline.c (copy_body_r, setup_one_parameter, initialize_inlined_parameters, expand_call_inline, declare_inline_vars): Don't check it. (expand_calls_inline): Remove old version, rename new version from gimple_expand_calls_inline. * tree-optimize.c (execute_gimple): Remove. (pass_gimple): Don't run anything. 2004-07-06 Joseph S. Myers * doc/sourcebuild.texi: Use semicolons instead of commas in section title. 2004-07-06 Richard Henderson * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change. (sra_walk_modify_expr, scan_init): Likewise. (generate_element_zero): Check visited before scanning children. (generate_element_init): Set visited on error. (scalarize_init): Handle generate_element_init failure similar to use_block_copy. 2004-07-06 Joseph S. Myers * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define. (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG. 2004-07-06 Richard Henderson * config/i386/i386.c (legitimize_pic_address): Make static. (legitimize_address): Handle CONST with TLS operand. (ix86_expand_move): Don't call legitimize_pic_address directly. * config/i386/i386-protos.h (legitimize_pic_address): Remove. 2004-07-06 Roger Sayle * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field. (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway. (noce_process_if_block): Initialize if_info.b_unconditional if insn_b is currently executed unconditionally, i.e. not in "else_bb". 2004-07-06 Steven Bosscher * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove. (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove. (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove. (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove. (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove. (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove. (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove. (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove. (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. 2004-07-06 Daniel Berlin * dojump.c (do_jump): REFERENCE_EXPR is dead. * expr.c (expand_expr_real_1): Ditto. * tree-inline.c (estimate_num_insns_1): Ditto. * tree-pretty-print.c (dump_generic_node): Ditto. (op_symbol): Ditto. * tree.def: Ditto. 2004-07-06 Daniel Berlin * tree-ssa-pre.c (reference_node_pool): New pool. (find_or_generate_expression): Class 'r' is okay too. (create_value_expr_from): Ditto. (add_to_sets): LHS should not include vuses. (eliminate): Ditto. (compute_avail): Reverse ordering of tests. Valuize INDIRECT_REF as well. 2004-07-06 Richard Sandiford PR rtl-optimization/16380 * loop.c (check_dbra_loop): Sink comparison instructions if they do something other than set cc0. 2004-07-06 James E Wilson * doc/interface.texi (longjmp and automatic variables): Delete paragraph recommending taking the address of a variable. 2004-07-06 Nathan Sidwell * vec.h (VEC_embedded_alloc): Remove. (VEC_embedded_size, VEC_embedded_init): New. (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add MEM_STAT_INFO. (VEC_truncate): New. (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL. (vec_embedded_alloc): Remove. * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust. (vec_embedded_alloc): Remove. 2004-07-06 Mark Mitchell * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h. (gt-langhooks.h): Remove. 2004-07-06 George Helffrich * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo. 2004-07-06 Eric Botcazou * config/sparc/sparc.c (get_pc_symbol): Rename into add_pc_to_pic_symbol. (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name. (load_pic_register): Account for previous changes. Use reg_names. Don't create the label twice. * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into UNSPEC_LOAD_PCREL_SYM. (get_pc): Rename into load_pcrel_sym. Add predicate to operands. Remove condition. 2004-07-06 Nathan Sidwell * dbxout.c (dbxout_type): Don't test whether the binfo slot of RECORD, UNION & QUAL_UNION is actually a binfo. * tree.h (TREE_VIA_VIRTUAL): Rename to ... (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only. (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags. * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P. * dwarf2out.c (add_data_member_location_attribute): Likewise. (gen_inheritance_die): Likewise. * tree-dump.c (deque_and_dump): Likewise. * doc/c-tree.texi (Binfos): Add under reconstruction note. 2004-07-06 Steven Bosscher * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. * config/mcore/mcore.md: Model memory latency with a simple DFA pipeline description instead of a define_function_unit. 2004-07-05 Richard Kenner * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg. * langhooks.h (var_mod_type_p): Likewise. * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p. * expr.c (count_type_elements): Properly handle return from array_type_nelts and properly test for overflow. * gimplify.c (gimplify_init_constructor): Properly handle return from array_type_nelts. (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS. * integrate.c (copy_decl_for_inlining): Correct comments. * tree-inline.c (remap_decl): Update comments, remove dead code, and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist. (remap_type): Only remap if variably modified by vars in function being inlined. (copy_body_r): Use compatible_type langhooks to see when can fold. (setup_one_parameter): Don't remap type. (inline_forbidden_p_1): Add arg to variably_modified_type_p. * tree.c (recompute_tree_invarant_for_addr_expr): Properly compute TREE_INVARIANT for decl case. (find_var_from_fn): New function. (variably_modified_type_p): Add arg and call new function. * tree.h (variably_modified_type_p): Add extra arg. 2004-07-05 Eric Botcazou * config/sparc/sparc.md (nonlocal_goto): Remove disabled code. (goto_handler_and_restore_v9): Delete disabled insn. (goto_handler_and_restore_v9_sp64): Likewise. 2004-07-05 Roger Sayle * calls.c (load_register_parameters): Call expand_shift instead of expand_binop with ashl_optab (or other shift optab) directly. * expr.c (emit_group_load, emit_group_store): Likewise. * function.c (assign_parm_setup_block): Likewise. * stmt.c (shift_return_value): Likewise. 2004-07-05 Jakub Jelinek * expr.c (expand_assignment): Disable the bitfield += optimizations. 2004-07-05 Joseph S. Myers * doc/sourcebuild.texi: Revert previous patch. 2004-07-05 Joseph S. Myers * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check TARGET_MEM_FUNCTIONS. * system.h: Poison TARGET_MEM_FUNCTIONS. * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc, bcmp_libfunc, bzero_libfunc): Remove. * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or bzero_libfunc. * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove. * doc/standards.texi: Don't mention calling BSD string functions. * doc/invoke.texi: Likewise. Mention that memmove may be called. * config/vax/t-memfuncs: New. * config/memcmp.c, config/memcpy.c, config/memmove.c, config/memset.c: New. * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files. * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use vax/t-memfuncs. * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h, config/elfos.h, config/gnu.h, config/h8300/h8300.h, config/i386/gas.h, config/ia64/ia64.h, config/interix.h, config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h, config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h, config/netbsd.h, config/openbsd.h, config/pa/pa.h, config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h, config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h, config/svr3.h: Don't define TARGET_MEM_FUNCTIONS. 2004-07-05 Richard Henderson * function.c (assign_parm_setup_reg): Properly rename variables in FUNCTION_ARG_CALLEE_COPIES section. 2004-07-05 Zack Weinberg * tree-mudflap.c: Include cgraph.h. (mf_init_extern_trees): Rename to mudflap_init. Export. Rewrite to create synthetic declarations instead of looking up declarations from mf-runtime.h. (mf_make_builtin, mf_make_cache_struct_type): New functions. (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl): Correct commentary. (execute_mudflap_function_decls, mudflap_register_call): Don't call mf_init_extern_trees. (mudflap_finish_file): Use cgraph_build_static_cdtor. * tree-mudflap.h: Update prototypes. * c-mudflap.c: Delete file. * c-common.c: Include tree-mudflap.h. (c_common_nodes_and_builtins): Call mudflap_init if appropriate. * Makefile.in: Remove all references to c-mudflap.o. Update dependencies. 2004-07-05 John David Anglin * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short displacements with the spatial-locality cache-control completer. 2004-07-05 Zack Weinberg * langhooks.c: Don't include gt-langhooks.h. (var_labelno): Delete. (lhd_set_decl_assembler_name): Do not append a distinguishing number to file-scope internal-linkage declarations for the first input file, even if they have DECL_CONTEXT set. Use DECL_UID of the declaration itself (if at block scope), or its containing TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing number. * opts.c (cur_in_fname): New global. * opts.h: Declare it. * tree.c: Include opts.h. (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it DECL_UID equal to cur_in_fname. (copy_node_stat): Do not change DECL_UID when copying a TRANSLATION_UNIT_DECL. (build_common_tree_nodes): Adjust next_decl_uid to reserve the range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs. * c-decl.c (c_static_assembler_name): Delete. * c-tree.h (c_static_assembler_name): Delete prototype. * c-lang.c, objc/objc-lang.c: Don't override LANG_HOOKS_SET_DECL_ASSEMBLER_NAME. * Makefile.in (tree.o): Update dependencies. (GTFILES): Remove langhooks.c. 2004-07-05 Roger Sayle * fold-const.c (fold) : Optimize unsigned modulus by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)". Normalize "X % C" as "X % -C" for signed modulus and negative C. Optimize "X % -Y" as "X % Y" for signed modulus. : Recursively call "fold" when transforming "(X % Y) == 0" into "((unsigned) X % Y) == 0". 2004-07-05 Joseph S. Myers * sourcebuild.texi (Config Fragments): Use @comma{} in cross-reference to section title. 2004-07-05 Richard Kenner * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro. * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it. (gimplify_target_expr, gimplify_expr): Likewise. (copy_if_shared_r): No longer need special case for BIND_EXPR. (unshare_body, unvisit_body): Only look at nested if BODY_P is whole function. (gimplify_compound_lval): See if we can strip any useless conversion. (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size from RHS, not LHS. (gimplify_modify_expr_to_memset): Likewise. (gimplify_expr, case CONSTRUCTOR): Handle use as statement. * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P. (declare_inline_vars): Likewise. (walk_type_fields): New function. (walk_tree): Use it. * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR. * tree-sra.c (struct sra_walk_fns): Init function now returns bool. (sra_walk_modify_expr): Allow init function to fail. (scan_init): Now returns bool. (generate_element_init): If can't understand INIT, return false. (scalarize_init): Return false if generate_element_init does. * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly print bounds. * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against bounds if bounds aren't constant. * tree-cfg.c (verify_expr): Use CHECK_OP in binary case. * function.c, langhooks-def.h, langhooks.h: Move max_size hook to type hooks; remove bogus PARAMS. 2004-07-05 Nathan Sidwell * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1. * dwarf2out.c (add_data_member_location_attribute): Check for TREE_BINFO. * tree.c (tree_node_kinds): Add "binfos". (binfo_lang_slots): New. (make_node_stat): Add TREE_BINFO. (make_tree_binfo_stat): New. (tree_node_structure): Add TREE_BINFO. * tree.def (TREE_BINFO): New. * tree.h (REC_OR_UNION_CHECK): Rename to ... (RECORD_OR_UNION_CHECK): ... here. (NOT_RECORD_OR_UNION_CHECK): New. (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO. (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for RECORD_OR_UNION_CHECK. (TYPE_BINFO): Use RECORD_OR_UNION_CHECK. (TYPE_LANG_SLOT_1): New. (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS, BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD, BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust. (BINFO_ELTS): Remove. (BINFO_LANG_SLOT): New. (struct tree_binfo): New. (binfo_lang_slots): Declare. (enum tree_node_structure_enum): Add TS_BINFO. (union tree_node): Add binfo. (make_tree_binfo_stat): Declare. (make_tree_binfo): New. (enum tree_node_kind): Add binfo_kind. * objc/objc-act.c (start_class, objc_declare_protocols, start_protocols): Use TYPE_LANG_SLOT_1. * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename to ... (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here. (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE, CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS, PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1. 2004-07-05 Steven Bosscher * rtl.h (struct rtx_def): Remove the integrated flag. Use the return_val flag for MEM_SCALAR_P. Reshuffle and update flags in CLEAR_RTX_FLAGS. 2004-07-05 Richard Sandiford PR target/16357 * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs to mips_expand_unaligned_load, mips_expand_unaligned_store, and move_by_pieces. 2004-07-05 Josef Zlomek * var-tracking.c: Fix some comments. (frame_stack_adjust): New. (vt_stack_adjustments): Init stack_adjust of entry block to minus stack adjustment of function prologue. (adjust_stack_reference): Do not adjust if adjustment == 0. (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS. (emit_notes_in_bb): Likewise. (vt_add_function_parameters): Do not adjust locations of function arguments. (vt_initialize): Compute the stack adjustment of function prologue and offset the initial "location" of frame_base_decl from the stack pointer after prologue. 2004-07-04 Richard Henderson * function.c (struct assign_parm_data_all): New. (struct assign_parm_data_one): New. (assign_parms_initialize_all, assign_parms_augmented_arg_list, assign_parm_find_data_types, assign_parms_setup_varargs, assign_parm_find_entry_rtl, assign_parm_is_stack_parm, assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl, assign_parm_adjust_stack_rtl, assign_parm_setup_block_p, assign_parm_setup_block, assign_parm_setup_reg, assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ... (assign_parms): ... here. 2004-07-04 Daniel Berlin * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets now are bitmap_set_t's. (bitmap_insert_into_set): No point in inserting the value if it's invariant. (bitmap_set_contains): New function. (bitmap_set_replace_value): Add comment on why we do it this way. (set_contains): Removed. (bitmap_set_subtract_from_value_set): New name of set_subtract now that it's arguments are two different types of sets. Update callers. (bitmap_find_leader): Change algorithm used. (find_or_generate_expression): Update use of functions for new bitmap sets. (create_expression_by_pieces): Ditto. (insert_aux): Ditto. (insert): Ditto. (add_to_sets): Ditto. (init_pre): Ditto. (execute_pre): Ditto. (compute_avail): Ditto. Also ignore virtual phis. 2004-07-04 Richard Sandiford * combine.c (simplify_comparison): Fix comment typo. 2004-07-04 Eric Botcazou * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename into LEAF_SIBCALL_SLOT_RESERVED_P after negation. (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P. (output_restore): Change parameter from 'insn' to 'pat'. (output_return): Adjust call to output_restore. (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P. Adjust call to output_restore. 2004-07-04 Neil Booth * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__ and assert system is bsd. 2004-07-04 Richard Sandiford * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete. (TARGET_SWITCHES): Remove -mdebugc. * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu) (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling. (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i) (sle_[sd]i_reg): Delete. 2004-07-04 Steven Bosscher * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. * config/iq2000/iq2000.md: Translate old pipeline description to an equivalent new one. 2004-07-04 Roger Sayle * tree-ssa-ccp.c (set_rhs): Change function to return a bool. Ensure the replacement rhs is valid gimple before performing the substitution. Return false if these sanity checks fail. (fold_stmt): Only set changed to true, if set_rhs returns true. (execute_fold_all_builtins): Only call modify_stmt if set_rhs succeeds. 2004-07-04 Richard Henderson PR c/16348 * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops. 2004-07-04 Mark Mitchell * configure.ac (ranlib_flags): New variable. * Makefile.in (RANLIB_FLAGS): New variable. (libbackend.a): Use it. * configure: Regenerated. 2004-07-04 Roger Sayle * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate a "sign mask" instead of using ashr_optab directly. 2004-07-04 Neil Booth * doc/cpp.texi: Don't document what we do for ill-formed expressions. * doc/cppopts.texi: Clarify processing of command-line defines. 2004-07-04 Gerald Pfeifer * doc/contrib.texi (Contributors): Adjust link for GNU Classpath. 2004-07-04 Richard Henderson * rtl.def (ADDRESSOF): Remove. * alias.c (rtx_equal_for_memref_p): Don't handle addressof. (find_base_term, memrefs_conflict_p): Likewise. * cse.c (fixed_base_plus_p, find_best_addr: Likewise. (fold_rtx, cse_insn, set_live_p): Likewise. * dwarf2out.c (mem_loc_descriptor): Likewise. (add_location_or_const_value_attribute): Likewise. * emit-rtl.c (copy_insn_1): Likewise. * explow.c (memory_address): Likewise. * expmed.c (store_split_bit_field): Likewise. * expr.c (expand_expr_real_1): Likewise. * function.c (instantiate_decl (instantiate_virtual_regs_1, fix_lexical_addr): Likewise. * genrecog.c (preds, validate_pattern): Likewise. * integrate.c (copy_rtx_and_substitute): Likewise. * recog.c (general_operand, register_operand): Likewise. (memory_address_p): Likwise. * reload1.c (eliminate_regs, elimination_effects): Likewise. * rtl.c (copy_rtx): Likewise. * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise. (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise. * rtlhooks.c (gen_lowpart_general): Likewise. * stmt.c (expand_asm_operands): Likewise. * web.c (entry_register, replace_ref, web_main): Likewise. * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p, alpha_expand_block_move, alpha_expand_block_clear): Likewise. * config/arm/arm.c (thumb_rtx_costs): Likewise. * config/c4x/c4x.c (c4x_valid_operands): Likewise. * config/frv/frv.c (move_destination_operand, move_source_operand, condexec_dest_operand, condexec_source_operand, condexec_memory_operand): Likewise. * config/h8300/h8300.h (PREDICATE_CODES): Likewise. * config/ia64/ia64.c (general_xfmode_operand): Likewise. (destination_xfmode_operand): Likewise. * config/mips/mips.h (PREDICATE_CODES): Likewise. * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise. * config/s390/s390.c (general_s_operand): Likewise. * config/s390/s390.md (mov*): Likewise. * config/sparc/sparc.h (PREDICATE_CODES): Likewise. * c-typeck.c (c_mark_addressable): Don't put_var_into_stack. * expr.c (expand_expr_real_1): Likewise. * stmt.c (expand_decl): Likewise. * config/c4x/c4x.c (c4x_expand_builtin): Likewise. * function.c (struct fixup_replacement, struct insns_for_mem_entry, postponed_insns, put_var_into_stack, put_reg_into_stack, schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement, fixup_var_refs_insns, fixup_var_refs_insns_with_hash, fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg, walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field, gen_mem_addressof, flush_addressof, put_addressof_into_stack, purge_bitfield_addressof_replacements, purge_addressof_replacements, purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp, struct insns_for_mem_walk_info, insns_for_mem_walk, compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect, setjmp_protect_args): Remove. (push_function_context_to): Don't handle var_refs_queue. (pop_function_context_from, free_after_compilation): Likewise. (instantiate_virtual_regs): Don't handle parm_reg_stack_loc. (assign_parms, allocate_struct_function): Likewise. (use_register_for_decl): New. (expand_function_end): Don't setjmp_protect. * function.h (struct emit_status): Update commentary. (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc. (max_parm_reg, parm_reg_stack_loc): Remove. * passes.c (DFI_addressof): Remove. (dump_file_info): Remove addressof. (rest_of_handle_addressof): Remove. (rest_of_compilation): Don't call it. * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove. * stmt.c (expand_decl): Use use_register_for_decl. * tree.h: Update decls. * web.c (mark_addressof): Remove. * doc/invoke.texi (-dF): Remove. 2004-07-03 Richard Henderson * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp instead of gen_mem_addressof. * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle TImode output register. 2004-07-03 Richard Henderson PR tree-optimization/16341 * tree-sra.c (sra_walk_function): Increment to next stmt before processing the current stmt. (sra_insert_after): Always use BSI_SAME_STMT. 2004-07-03 Richard Henderson * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold fp plus with minus. 2004-07-03 Joseph S. Myers * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal with tree_int_cst_equal. 2004-07-03 Andreas Schwab * config/ia64/ia64.md: Define new attribute "empty". (prologue_use, nop_x, insn_group_barrier): Set it. * config/ia64/ia64.c (ia64_reorg): When looking for trailing call skip over "empty" insns. 2004-07-03 Richard Kenner * tree-inline.c (initialize_inlined_parameters): Pass proper function context to gimplify_body. (walk_tree): Don't walk into types twice. (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers. * tree-sra.c (generate_element_init): Remove any useless conversions. * gimplify.c (gimplify_conversion): Remove stripping useless conversions from here. (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS. (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare): Unshare before substituting PLACEHOLDER_EXPR. (gimplify_modify_expr_to_memset): Likewise. Pass address of TO to memset, not TO itself. (gimplify_init_constructor): Make copy of OBJECT so we have it each time we make an expression (to match a PLACEHOLDER_EXPR). * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at VIEW_CONVERT_EXPR and NON_LVALUE_EXPR. * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION. * tree-ssa-dom.c (local_fold): Likewise. * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook. * langhooks.h (strct lang_hooks): New field type_max_size. * function.c (assign_temp): Call it. 2004-07-03 Steven Bosscher * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1. * config/sh/sh.md: Convert the SH1 pipeline description to a DFA model. 2004-07-02 Zack Weinberg * c-decl.c (struct c_binding): Remove contour field; add depth, invisible, nested fields. (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE) (B_IN_EXTERNAL_SCOPE): New convenience macros. (bind): Add invisible and nested arguments. Initialize new fields of struct c_binding; adjust loop scanning for insertion point. (free_binding_and_advance): Clear structure with memset. (pop_scope): Adjust to match. Set DECL_CONTEXT on everything in file scope, even if it's in external scope too. (pushdecl): Adjust to match. Create invisible file-scope declarations for block-scope forward declarations of static functions. (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare) (undeclared_variable, lookup_label, declare_label, define_label) (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function) (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value) (store_parm_decls_oldstyle): Adjust to match. (diagnose_mismatched_decls): Correct handling of linkage clashes. (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE. * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete. (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one. 2004-07-02 Richard Henderson * c-decl.c (grokdeclarator): Don't frob current_function_decl around variable_size. (set_decl_nonlocal): Remove. (store_parm_decls): Add stmts for pending sizes. * calls.c (calls_function, calls_function_1): Remove. (precompute_arguments): Don't call it. * cfgexpand.c (set_save_expr_context): Remove. (tree_expand_cfg): Don't call it. * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR. (dwarf2out_finish): Likewise. * expr.c (emit_block_move): Adjust addresses to BLKmode. (store_constructor): Don't pre-evaluate SAVE_EXPR. (safe_from_p): Don't queue SAVE_EXPRs. (expand_expr_real_1 ): Rewrite to expect, or build plain VAR_DECLs. * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL. (fold): Likewise. (fold_checksum_tree): Don't special-case SAVE_EXPR. * function.c (free_after_compilation): Don't clear x_save_expr_regs. (put_var_into_stack): Don't handle SAVE_EXPR. (gen_mem_addressof): Likewise. * function.h (struct function): Remove x_save_expr_regs. (save_expr_regs): Remove. * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR. * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER. * stor-layout.c (variable_size): Don't set it. (force_type_save_exprs, force_type_save_exprs_1): Remove. * tree-inline.c (remap_save_expr): Remove fn argument. Update all callers. Don't set SAVE_EXPR_CONTEXT. * tree-inline.h (remap_save_expr): Update decl. * tree.c (save_expr): Update build size. (first_rtl_op): Don't handle SAVE_EXPR. (unsave_expr_1, contains_placeholder_p): Likewise. (decl_function_context): Likewise. * tree.def (SAVE_EXPR): Remove args 1 and 2. * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove. (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove. 2004-07-03 Joseph S. Myers * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi, doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi, doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi, doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid some first-person references and patronizing comments. Based on printed manual. * doc/invoke.texi: Don't reference fortran@gnu.org. * doc/trouble.texi (Warning when a non-void function value is ignored): Rewrite. From Russ Allbery and Chris Devers. 2004-07-02 Daniel Berlin * config/rs6000/rs6000.c (struct processor_costs): New structure used to hold instruction latencies/sizes for processor types. (rs6000_cost): New global variable pointing to current CPU's costs. (rs6000_override_options): Initialize rs6000_cost to point to the appropriate cost table based upon rs6000_cpu and optimize_size. (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor timings inline. 2004-07-02 Richard Henderson * expmed.c (make_tree): Don't use SET_DECL_RTL. 2004-07-02 Steven Bosscher * tree-flow.h (bb_ann_d): Remove ephi_nodes field. 2004-07-01 Richard Henderson * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx. (alpha_gp_save_rtx): Use assign_stack_local instead of gen_mem_addressof. 2004-07-01 Richard Henderson * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div. (alpha_rtx_cost_data): Update to match. (alpha_rtx_cost_size): New. (alpha_rtx_costs): Honor optimize_size. 2004-07-01 Richard Henderson * gimple-low.c (lower_function_body): Don't reset_block_changes here. * cfgexpand.c (tree_expand_cfg): Do it here. * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here. * config/ia64/ia64.c (ia64_output_mi_thunk): And here. * config/mips/mips.c (mips_output_mi_thunk): And here. * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here. * config/sh/sh.c (sh_output_mi_thunk): And here. * config/sparc/sparc.c (sparc_output_mi_thunk): And here. 2004-07-01 Richard Henderson * tree.def (RTL_EXPR): Remove. * c-typeck.c (lvalue_p): Don't handle it. * expr.c (safe_from_p): Likewise. (expand_expr_real_1): Likewise. * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise. (fold_checksum_tree, tree_expr_nonnegative_p): Likewise. * gengtype.c (adjust_field_tree_exp): Likewise. * stmt.c (warn_if_unused_value): Likewise. * tree-gimple.c (recalculate_side_effects): Likewise. * tree-pretty-print.c (dump_generic_node): Likewise. * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise. (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise. * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove. * stmt.c (struct stmt_status): Remove x_last_expr_type, x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value. (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove. (expand_expr_stmt): Merge with expand_expr_stmt_value. Remove all the bits that tracked last_expr. (expand_end_bindings): Don't track last_expr. (expand_start_stmt_expr, expand_end_stmt_expr): Remove. (clear_last_expr): Remove. (expand_asm): Don't call it. (expand_asm_operands, expand_end_cond): Likewise. (expand_naked_return, expand_null_return_1): Likewise. * c-typeck.c (c_begin_compound_stmt): Likewise. * cfgexpand.c (expand_block): Use expand_expr_stmt. * expr.c (expand_expr_real_1): Likewise. * tree.h: Update prototypes. * function.h (struct sequence_stack): Remove sequence_rtl_expr. (struct emit_status): Remove sequence_rtl_expr. (struct function): Remove x_rtl_expr_chain. (seq_rtl_expr, rtl_expr_chain): Remove. * function.c (struct temp_slot): Remove rtl_expr. (assign_stack_temp_for_type): Don't set it. (free_temp_slots, pop_temp_slots): Don't check it. (free_after_compilation): Don't clear x_rtl_expr_chain. (fixup_var_refs): Don't search it. (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove. * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr or seq_rtl_expr. (push_topmost_sequence): Likewise. (end_sequence, init_emit): Likewise. (start_sequence_for_rtl_expr): Remove. * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR. * rtl.h (preserve_rtl_expr_result): Remove. 2004-07-02 Kazu Hirata * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c, tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment typos. 2004-07-02 Aaron W. LaFramboise * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define. (STANDARD_STARTFILE_PREFIX_2): Define. (standard_startfile_prefix_1): Initialize to STANDARD_STARTFILE_PREFIX_1. (standard_startfile_prefix_2): Initialize to STANDARD_STARTFILE_PREFIX_2. * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove. (STANDARD_STARTFILE_PREFIX_1): Define. (STANDARD_STARTFILE_PREFIX_2): Define. * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document. (STANDARD_STARTFILE_PREFIX_2): Document. 2004-07-01 Richard Henderson * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr in order to disable scalarization. Instead set a flag and wait for a candidate decl. 2004-07-01 Joseph S. Myers * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi, doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Use terminology "testsuite" and "enumerated". 2004-07-01 Richard Henderson * dwarf2out.c (reg_save): Use INVALID_REGNUM. (dwarf2out_reg_save, dwarf2out_return_save): Likewise. (initial_return_save): Likewise. (flush_queued_reg_saves): Remap register numbers. (dwarf2out_return_reg): Likewise. 2004-07-01 Richard Kenner * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL. * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use access functions for lower bound and element size and only output if lower bound nonzero or element size not same as that of type. (dump_generic_node, case COMPONENT_REF): Use access func. for offset. 2004-07-01 Paolo Bonzini * c-pretty-print.c (pp_c_postfix_expression): Fix pasto. 2004-07-01 Per Bothner * final.c (final): Fix typo reported by Aaron W. LaFramboise. 2004-07-01 Jakub Jelinek * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit bitfields as well. STRIP_NOPS from src operand and PLUS_EXPR's first operand. Don't optimize if the bitfield is volatile. 2004-07-01 Paolo Bonzini * c-pretty-print.c (pp_c_postfix_expression): Handle floating-point comparison operators. (pp_c_expression): Pass floating-point comparison operators to pp_c_postfix_expression. 2004-07-01 Roger Sayle * simplify-rtx.c (simplify_binary_operation) : Use rtx_cost instead of "had_mult" to determine whether the transformed expression is cheaper than the original. 2004-07-01 Jerry Quinn * alias.c (get_alias_set, canon_rtx, get_addr, nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1): Use MEM_P. * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func, expand_builtin): Likewise. * calls.c (expand_call, emit_library_call_value_1, store_one_arg): Likewise. * combine.c (can_combine_p, combinable_i3pat, try_combine, find_split_point, combine_simplify_rtx, simplify_set, make_extraction, rtx_equal_for_field_assignment_p, gen_lowpart_for_combine, record_dead_and_set_regs_1, get_last_value_validate, mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise. * cse.c (check_dependence, canon_hash, equiv_constant, gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers, cse_around_loop, cse_check_loop_start, cse_set_around_loop, count_reg_usage): Likewise. * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup, cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set, cselib_record_sets): Likewise. * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol, dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise. * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise. * df.c (df_uses_record): Likewise. * dojump (do_jump): Likewise. * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor, loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info, decl_start_label): Likewise. * emit-rtl.c (gen_complex_constant_part, gen_highpart, operand_subword, change_address_1, make_safe_from): Likewise. * explow.c (break_out_memory_refs, copy_all_regs, validize_mem, stabilize, force_not_mem): Likewise. * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field, expand_mult_const, expand_divmod, emit_store_flag): Likewise. * expr.c (convert_move, convert_modes, emit_block_move, emit_group_load, emit_group_store, clear_storage, emit_move_insn, emit_move_insn_1, expand_assignment, store_expr, store_constructor_field, store_constructor, store_field, force_operand, safe_from_p, expand_expr_real_1, expand_increment): Likewise. * final.c (cleanup_subreg_operands, alter_subreg, get_mem_expr_from_op): Likewise. * flow.c (notice_stack_pointer_modification_1, init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs): Likewise. * function.c (mark_temp_addr_taken, preserve_temp_slots, preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1, optimize_bit_field, flush_addressof, purge_addressof_1, instantiate_decl, instantiate_virtual_regs_1, assign_parms, setjmp_protect, setjmp_protect_args, fix_lexical_addr, keep_stack_depressed): Likewise. * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok, noce_process_if_block, find_memory): Likewise. * integrate.c (subst_constants, allocate_initial_values): Likewise. * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p, update_equiv_regs): Likewise. * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store, maybe_eliminate_biv_1, find_mem_in_note_1): Likewise. * optabs.c (expand_abs, emit_unop_insn): Likewise. * passes.c (rest_of_handle_final): Likewise. * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands, move2add_note_store): Likewise. * ra-build.c (detect_remat_webs): Likewise. * ra-debug.c (dump_static_insn_cost): Likewise. * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise. * recog.c (validate_change, apply_change_group, cancel_changes, validate_replace_rtx_1, general_operand, register_operand, nonmemory_operand, push_operand, pop_operand, memory_operand, indirect_operand, asm_operand_ok, offsettable_memref_p, offsettable_nonstrict_memref_p, constrain_operands, store_data_bypass_p): Likewise. * reg-stack.c (subst_stack_regs_pat): Likewise. * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes, copy_cost, reg_scan_mark_refs): Likewise. * regmove.c (optimize_reg_copy_3, stack_memref_p, combine_stack_adjustments_for_block): Likewise. * regrename.c (copyprop_hardreg_forward_1): Likewise. * reload.c (can_reload_into, push_reload, decompose, immune_p, find_reloads, find_reloads_address, find_reloads_address_1, reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p, find_equiv_reg): Likewise. * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn, reload_as_needed, choose_reload_regs, emit_input_reload_insns, do_input_reload, emit_reload_insns, gen_reload, delete_output_reload, delete_address_reloads): Likewise. * resource.c (mark_referenced_resources): Likewise. * rtlanal.c (get_jump_table_offset, count_occurrences, reg_referenced_p, reg_set_p, set_of_1, set_noop_p, reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1, num_sign_bit_copies1): Likewise. * rtlhooks.c (gen_lowpart_general): Likewise. * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise. * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol, sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms, sdbout_global_decl): Likewise. * simplify-rtx.c (simplify_subreg): Likewise. * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl, expand_anon_union_decl, expand_end_case_type): Likewise. * unroll.c (calculate_giv_inc): Likewise. * var-tracking.c (stack_adjust_offset_pre_post, bb_stack_adjust_offset, track_expr_p, count_uses, add_uses, add_stores, compute_bb_dataflow, vt_get_decl_and_offset, vt_add_function_parameters): Likewise. * varasm.c (make_var_volatile, notice_global_symbol, assemble_external, decode_addr_const, mark_weak, default_encode_section_info): Likewise. 2004-07-01 Steven Bosscher * stmt.c (check_seenlabel): Remove. (pushcase, pushcase_range, expand_end_case_type): Don't call it. 2004-07-01 Richard Henderson * function.h (struct function): Remove x_function_call_count. (function_call_count): Remove. * calls.c (expand_call): Don't set it. * integrate.c (copy_rtx_and_substitute): Likewise. * function.h (struct function): Remove x_cleanup_label. (cleanup_label): Remove. * stmt.c (expand_value_return): Don't use it. * function.c (free_after_compilation): Don't set it. (expand_function_start): Likewise. Remove parms_have_cleanups arg. * cfgexpand.c (tree_expand_cfg): Update call. * tree.h (expand_function_start): Update decl. 2004-07-01 Joseph S. Myers PR c/1027 * c-lang.c (c_initialize_diagnostics): Move from here ... * c-objc-common.c: ... to here. Include "c-pretty-print.h". (c_tree_printer): Use pretty-printer to format %T. * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space before '*' if not C++. (pp_c_direct_abstract_declarator): Don't try to print array upper bound for flexible array members. * c-tree.h: Include "diagnostic.h". (c_initialize_diagnostics): Declare. * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define. * c-format.c (format_type_warning): New function. Improve diagnostics for incorrect format argument types. (check_format_types): Use it. Add two parameters. Use the TYPE_MAIN_VARIANT of wanted_type. (check_format_info_main): Pass new parameters to check_format_types. (struct format_wanted_type): Update comment. 2004-07-01 Nick Clifton * target.h (struct gcc_target): Add new field to struct cxx: import_export_class. * target-def.h (TARGET_CXX): Initialise the new field. (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for the new field. * doc/tm.texi: Document the new target hook. 2004-07-01 Paolo Bonzini * builtins.c (fold_builtin_classify): Fix typo. 2004-07-01 Richard Henderson * function.c (identify_blocks, identify_blocks_1): Remove. * function.h (identify_blocks): Remove. * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment. 2004-07-01 Paolo Bonzini * builtins.c (fold_builtin_classify): New. (fold_builtin_unordered_cmp): Fix commentary. (fold_builtin): Use it. * builtins.def: Define builtins for isnan, isnanf, isnanl, finite, finitef, finitel, isinf, isinff, isinfl. 2004-07-01 Richard Henderson * function.h (struct function): Remove dont_emit_block_notes. * gimple-low.c (lower_function_body): Don't set it. * cfgexpand.c (expand_block): Don't check it. * cfglayout.c (insn_locators_initialize): Likewise. * expr.c (expand_expr_real, expand_expr_real_1): Likewise. * passes.c (rest_of_compilation): Likewise. * stmt.c (expand_start_bindings_and_block): Likewise. (expand_end_bindings): Likewise. 2004-07-01 Richard Henderson * cgraph.h (cgraph_build_static_cdtor): Declare. * cgraphunit.c (cgraph_build_static_cdtor): New. * c-objc-common.c (build_cdtor): Use it. * coverage.c (create_coverage): Likewise. * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove. * optabs.c (init_optabs): Don't set gcov_init_libfunc. See ChangeLog.11 for earlier changes.