OSDN Git Service

Fix NM/AR propagation from toplevel for recursive makes.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index c2993d2..f512126 100644 (file)
@@ -1,5 +1,915 @@
+2004-07-12  James E Wilson  <wilson@specifixinc.com>
+
+       * 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  <davem@nuts.davemloft.net>
+
+       * config/sparc/sparc.md (ashlsi3): Eliminate const 1
+       special case.
+       (ashldi3_sp64): Likewise.
+
+2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/16477
+       * pa.c (function_arg): Update comment.
+       * pa.h (BLOCK_REG_PADDING): Define.
+
+2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       PR tree-optimization/16461
+       * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
+       arguments of phi nodes.
+
+2004-07-12  Devang Patel  <dpatel@apple.com>
+
+       * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
+       
+2004-07-12  Steve Ellcey  <sje@cup.hp.com>
+
+       * 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  <vmakarov@redhat.com>
+
+       PR target/16445
+       * config/ia64/ia64.c (bundling): Don't count ignored insns.
+
+2004-07-12  Richard Henderson  <rth@redhat.com>
+
+       * 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  <aoliva@redhat.com>
+
+       * 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  <pop@cri.ensmp.fr>
+
+       * 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 <vmakarov@redhat.com>
+
+       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  <dnovillo@redhat.com>
+
+       * 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  <roger@eyesopen.com>
+
+       * 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  <bonzini@gnu.org>
+
+       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  <roger@eyesopen.com>
+
+       * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
+       index entry.
+
+2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
+
+       * 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  <bje@au.ibm.com>
+
+       * doc/invoke.texi (Optimize Options): Document -frename-registers
+       not being enabled by default at -O3.
+
+2004-07-11  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
+       floating point additions, to keep real immediate constant positive.
+       <MINUS_EXPR>:  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  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
+
+2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       PR tree-optimization/15654
+       * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
+
+2004-07-11  Roger Sayle  <roger@eyesopen.com>
+
+       * 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  <rth@redhat.com>
+
+       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  <rth@redhat.com>
+
+       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  <roger@eyesopen.com>
+
+       * 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  <roger@eyesopen.com>
+
+       * 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  <jsm@polyomino.org.uk>
+
+       * LANGUAGES: Remove obsolete information.
+
+2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * 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  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
+       added to TLS symbol addresses.
+
+2004-07-11  Richard Henderson  <rth@redhat.com>
+
+       * expmed.c (init_expmed): Use stack-local structures for 
+       temporary rtl.  Don't recognize shifts.
+
+2004-07-11  Richard Henderson  <rth@redhat.com>
+
+       * expr.c (store_expr): Don't fiddle subreg promotion for types
+       with precision smaller than the mode.
+
+2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * tree.h (all_types_permanent): Remove.
+
+2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * 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  <jsm@polyomino.org.uk>
+
+       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  <phil@codesourcery.com>
+
+       * configure.ac:  Alphabetize --enable-checking list, add
+       missing valgrind entry.
+       * configure:  Regenerate.
+
+2004-07-11  Phil Edwards  <phil@codesourcery.com>
+
+       * doc/install.texi (Testing):  Fix syntax in "make check" example.
+
+2004-07-10  James E Wilson  <wilson@specifixinc.com>
+
+       * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
+
+2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       PR rtl-optimization/16001
+       * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
+       niter_expr.
+
+2004-07-10  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
+
+2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
+            James Morrison  <phython@gcc.gnu.org>
+
+        * doc/contrib.texi (Contributors): Add gfortran contributors and
+       fix a couple of typos.
+
+2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       PR rtl-optimization/15387
+       * calls.c (check_sibcall_argument_overlap_1): Handle pointers
+       to incoming args space correctly.
+
+2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * 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  <dan@debian.org>
+
+       * config/i386/i386.c (override_options): Pick a 64-bit CPU
+       for the default tuning if TARGET_64BIT.
+
+2004-07-10  Richard Henderson  <rth@redhat.com>
+
+       * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
+       to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
+
+2004-07-10  Jakub Jelinek  <jakub@redhat.com>
+
+       * 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  <rth@redhat.com>
+
+       * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
+
+2004-07-09  Mike Stump  <mrs@apple.com>
+
+       * 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  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * 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  <rth@redhat.com>
+
+       * 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  <kcook@gcc.gnu.org>
+
+       * 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  <jbeulich@novell.com>
+
+       * 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  <rth@redhat.com>
+
+       * 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  <davem@nuts.davemloft.net>
+
+       * config/sparc/sparc.c (*_costs): Scale instruction costs
+       by COSTS_N_INSNS.
+       (sparc_rtx_costs): Adjust as appropriate.
+
+2004-07-09  Jan Beulich  <jbeulich@novell.com>
+
+       * config/i386/mm3dnow.h: New.
+       * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
+
+2004-07-09  Richard Henderson  <rth@redhat.com>
+
+       * simplify-rtx.c (simplify_const_relational_operation): Only
+       look at bounds of scalar integers.
+
+2004-07-09  Jan Beulich  <jbeulich@novell.com>
+
+       * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
+
+2004-07-09  Andrew Pinski  <apinski@apple.com>
+
+       * 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  <wilson@specifixinc.com>
+
+       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  <jbeulich@novell.com>
+
+       * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
+       permissible for unary plus.
+
+2004-07-09  Jan Beulich  <jbeulich@novell.com>
+
+       * 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  <davem@nuts.davemloft.net>
+
+       * 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  <stevenb@suse.de>
+
+       * 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  <jbeulich@novell.com>
+
+       * 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  <rth@redhat.com>
+
+       * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
+
+2004-07-09  Eric Christopher  <echristo@redhat.com>
+
+       * config/rs6000/40x.md: Split into two automatons.
+
+2004-07-09  Zack Weinberg  <zack@codesourcery.com>
+           Andrew Pinski  <apinski@apple.com>
+
+       * 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  <zack@codesourcery.com>
+
+       * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
+
+2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       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  <gerald@pfeifer.com>
+
+       * doc/install.texi (Binaries): Mention OpenPKG.
+
+2004-07-09  Diego Novillo  <dnovillo@redhat.com>
+
+       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  <bonzini@gnu.org>
+
+       * 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  <rearnsha@arm.com>
+
+       * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
+       pointer.
+
+2004-07-09  Richard Henderson  <rth@redhat.com>
+
+       * 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  <rearnsha@arm.com>
+
+       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  <rth@redhat.com>
+
+       * 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  <ebotcazou@libertysurf.fr>
+
+       * 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  <rearnsha@arm.com>
+
+       * 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  <nathan@codesourcery.com>
+
+       * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
+
+2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       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  <tausq@debian.org>
+
+       * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
+
+2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
+
+       * builtins.c (fold_builtin_strncpy): Make sure len is a constant
+       before comparing it as such.
+
+2004-07-08  Richard Henderson  <rth@redhat.com>
+
+       * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
+       temporary.  Use bit arithmetic to align.
+
+2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
+
+       * 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  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * 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  <kkojima@gcc.gnu.org>
+
+       * 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  <rth@redhat.com>
 
+       * 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.