OSDN Git Service

* input.h: If USE_MAPPED_LOCATION, define separate expanded_location
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 77123a0..cb26f13 100644 (file)
@@ -1,3 +1,646 @@
+2004-07-14  Per Bothner  <per@bothner.com>
+
+       * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
+       structure with extra column field.
+       * tree.c (expand_location):  Also fill in column field.
+       * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
+       gets confused by the two conditionally-compiled definitions.
+
+2004-07-14  Eric Christopher  <echristo@redhat.com>
+
+       * calls.c (expand_call): Fix typo in comment.
+
+2004-07-14  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
+       comparision of TFmode.
+
+2004-07-14  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
+       (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
+       * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
+       * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
+       * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
+       * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
+       * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
+       * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
+       * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
+
+2004-07-14  Mike Stump  <mrs@apple.com>
+
+       * config/darwin.h (WINT_TYPE): Define to be int to match
+        system header files.
+
+2004-07-14  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.c (function_arg_advance): Check for args
+       that must be passed in the stack.
+       (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
+       arguments if the size is not a constant.
+
+2004-07-14  Per Bothner  <per@bothner.com>
+
+       * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
+       instead of EXPR_LOCUS in a boolean context, which is always true
+       if --enable-mapped-location.
+       * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
+
+2004-07-14  Richard Henderson  <rth@redhat.com>
+
+       * dominance.c (struct dom_info): Add fake_exit_edge.
+       (init_dom_info): Allocate it.
+       (free_dom_info): Free it.
+       (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
+       in two passes.
+       (calc_idoms): Honor fake_exit_edge.
+
+2004-07-13  Jason Merrill  <jason@redhat.com>
+
+       * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
+       (rhs_test_for): New fn.
+       (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
+       * tree-gimple.h: Declare them.
+       * gimplify.c (gimplify_modify_expr): Use the new fns.
+
+2004-07-14  Richard Henderson  <rth@redhat.com>
+
+       * config/arm/arm-protos.h (arm_va_arg): Remove.
+       * config/arm/arm.c (arm_va_arg): Remove.
+       (arm_init_expanders): Fix alignment of arg_pointer_rtx.
+       * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
+
+2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa.c (fix_range): New function to mark a range(s) of registers as
+       fixed registers.
+       (override_options): Call fix_range if the -mfixed-range option string
+       is not empty.
+       * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
+       * doc/invoke.texi (-mfixed-range): Document new option.
+
+2004-07-14  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
+       for TARGET_64BIT.
+       (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
+
+2004-07-14  Roger Sayle  <roger@eyesopen.com>
+
+       * expmed.c (expand_sdiv_pow2): New function to expand signed division
+       by a positive power of two, split out from expand_divmod.  Provide
+       an alternate implementation when shifts are expensive.  Lower the
+       threshold for using a branchless implementation to BRANCH_COST >= 2.
+       (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
+
+2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tree-dfa.c (make_rename_temp): *Really* work just
+       like create_tmp_var if called while outside SSA form.
+
+2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.md ("udivsi3"): Ensure trap is generated
+       for division by zero.
+       ("umodsi3"): Likewise.
+
+2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_output_move): When generating mips16 code,
+       force loads of negative constants to be split.
+       * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
+       Generalize SImode li/neg splitter to cope with other modes.
+
+2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
+
+       * expmed.c: Remove more references to QUEUED in the comments.
+       * expr.c: Likewise.
+
+2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
+
+       Revert:
+       2004-07-13  Richard Henderson  <rth@redhat.com>
+       * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
+       correctly.
+
+2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tree-dfa.c (make_rename_temp): Work just like
+       create_tmp_var if called while outside SSA form.
+
+2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
+
+       * expr.c (enqueue_insn, finish_expr_for_function,
+       protect_from_queue, queued_subexp_p, mark_queue,
+       emit_insns_enqueued_after_mark, emit_queue,
+       expand_increment): Remove.
+       (store_constructor): Expand increment as an assignment.
+       (expand_expr_real_1 <case PREINCREMENT_EXPR,
+       case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
+       case POSTDECREMENT_EXPR>): Abort.
+       * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
+       QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
+       protect_from_queue, emit_queue, queued_subexp_p): Remove.
+       * function.h (pending_chain, x_pending_chain): Remove.
+       * rtl.def (QUEUED): Remove.
+
+       * emit-rtl.c (copy_insn_1, copy_most_rtx,
+       set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
+       * genattrtab.c (attr_copy_rtx, clear_struct_flag,
+       encode_units_mask): Likewise.
+       * local-alloc.c (equiv_init_varies_p): Likewise.
+       * rtl.c (copy_rtx): Likewise.
+       * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
+       * simplify-rtx.c (simplify_gen_subreg): Likewise.
+       * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
+
+       * builtins.c (expand_builtin, expand_builtin_apply,
+       expand_builtin_mathfn, expand_builtin_mathfn_2,
+       expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
+       Remove calls to emit_queue and protect_from_queue.
+       * calls.c (expand_call, precompute_arguments,
+       precompute_register_parameters, rtx_for_function_call,
+       store_one_arg): Likewise.
+       * dojump.c (do_compare_and_jump, do_jump): Likewise.
+       * explow.c (memory_address): Likewise.
+       * expmed.c (clear_by_pieces_1, clear_storage,
+       clear_storage_via_libcall, emit_group_load,
+       emit_group_store, emit_store_flag,
+       expand_expr_real_1, store_by_pieces,
+       store_constructor, store_expr, try_casesi,
+       try_tablejump): Likewise.
+       * function.c (expand_pending_sizes): Likewise.
+       * optabs.c (emit_cmp_and_jump_insns,
+       emit_conditional_add, emit_conditional_move,
+       expand_fix, expand_float, prepare_cmp_insn): Likewise.
+       * stmt.c (emit_case_bit_tests,
+       expand_asm_expr, expand_computed_goto,
+       expand_decl_init, expand_end_case_type,
+       expand_end_stmt_expr, expand_expr_stmt_value,
+       expand_return, expand_start_case,
+       optimize_tail_recursion): Likewise.
+       * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
+       * config/s390/s390.c (s390_expand_cmpmem): Likewise.
+
+2004-07-14  Ben Elliston  <bje@au.ibm.com>
+
+       * vec.h: Comment fix.
+
+2004-07-13  Richard Henderson  <rth@redhat.com>
+
+       * target.h (struct gcc_target): Add calls.pass_by_reference.
+       * target-def.h (TARGET_PASS_BY_REFERENCE): New.
+       * function.c (pass_by_reference): Use the hook.
+       * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
+       * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
+       (hook_pass_by_reference_must_pass_in_stack): New.
+       * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
+       (alpha_pass_by_reference): New.
+       (TARGET_PASS_BY_REFERENCE): New.
+       * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/arc/arc.c (arc_pass_by_reference): New.
+       (TARGET_PASS_BY_REFERENCE): New.
+       * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       (FUNCTION_ARG_CALLEE_COPIES): True.
+       * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
+       * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
+       (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
+       * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/cris/cris.c (cris_pass_by_reference): New.
+       (TARGET_PASS_BY_REFERENCE): New.
+       * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
+       (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
+       (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
+       * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
+       * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
+       (frv_function_arg_pass_by_reference): Remove.
+       * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
+       * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
+       (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
+       * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
+       * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
+       (ia64_pass_by_reference): Rename from
+       ia64_function_arg_pass_by_reference.
+       * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
+       * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
+       (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
+       * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
+       * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
+       * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
+       (m32r_pass_by_reference): Adjust prototype.  Make static.
+       Handle mode sizes correctly.
+       * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
+       (m68hc11_function_arg_pass_by_reference): Remove.
+       * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
+       * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
+       * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
+       * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
+       (mips_va_arg): Use pass_by_reference.
+       (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
+       Handle mode sizes correctly.
+       * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
+       * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
+       * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
+       (mmix_pass_by_reference): Rename from
+       mmix_function_arg_pass_by_reference.
+       * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       (FUNCTION_ARG_CALLEE_COPIES): True.
+       * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
+       (mn10300_pass_by_reference): New.
+       * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       (FUNCTION_ARG_CALLEE_COPIES): True.
+       * config/pa/pa.c (pa_pass_by_reference): New.
+       (TARGET_PASS_BY_REFERENCE): New.
+       * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       (FUNCTION_ARG_CALLEE_COPIES): True.
+       * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
+       * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
+       (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
+       * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
+       * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
+       (s390_pass_by_reference): Rename from
+       s390_function_arg_pass_by_reference.
+       (s390_function_arg_advance): Don't query pass-by-ref.
+       (s390_function_arg): Likewise.
+       (s390_gimplify_va_arg): Use pass_by_reference.
+       (s390_call_saved_register_used): Likewise.
+       * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
+       (shcompact_byref, sh_pass_by_reference): New.
+       * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       (SHCOMPACT_BYREF): Remove.
+       * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
+       * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
+       (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
+       (sparc_gimplify_va_arg): Use pass_by_reference.
+       * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
+       (v850_pass_by_reference): New.
+       * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
+       (FUNCTION_ARG_CALLEE_COPIES): True.
+       * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
+       FUNCTION_ARG_PASS_BY_REFERENCE docs.
+
+2004-07-14  Richard Henderson  <rth@redhat.com>
+           Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips-protos.h (mips_va_arg): Delete.
+       * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
+       * config/mips/mips.c: Include tree-gimple.h.
+       (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
+       (mips_arg_info): Remove special handling of must_pass_in_stck args.
+       (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
+       (function_arg_pass_by_reference): Return true if must_pass_in_stack.
+
+2004-07-13  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
+       arguments for COND_EXPR in big-endian adjustment code.
+
+2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
+       * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
+       * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
+       * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
+
+2004-07-13  Diego Novillo  <dnovillo@redhat.com>
+
+       PR tree-optimization/16443
+       * tree-ssa-alias.c: Add more description for
+       CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
+       * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
+       clobbering of call-clobbered and addressable variables.  If
+       there are any before aliases have been computed, add them.
+
+2004-07-13  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-optimize.c (execute_todo): Flush DUMP_FILE before
+       verification.
+
+2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
+       of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
+       to the same type.
+
+2004-07-13  Per Bothner  <per@bothner.com>
+
+       * collect2.c (main):  Handle --no-demangle and --demangle flags.
+
+2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       * 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  <ebotcazou@libertysurf.fr>
+
+       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  <ebotcazou@libertysurf.fr>
+
+       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  <ebotcazou@libertysurf.fr>
+           Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
+
+       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  <ebotcazou@libertysurf.fr>
+           Martin Sebor  <sebor@roguewave.com>
+
+       PR target/12602
+       * doc/invoke.texi (SPARC options): Document -threads
+       and -pthreads on Solaris.
+
+2004-07-13  Richard Henderson  <rth@redhat.com>
+
+       * 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  <rth@redhat.com>
+
+       * 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  <rth@redhat.com>
+
+       * 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  <aheading@jpmorgan.com>
+
+       * configure.ac (gcc_cv_as_offsetable_lo10: Fix a typo.
+       * configure: Rebuilt.
+
+2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
+
+       * 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  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (TARGET_*): Boolify.
+
+2004-07-12  Nick Clifton  <nickc@redhat.com>
+
+       * 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  <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  Ulrich Weigand  <uweigand@de.ibm.com>
 
-       * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and 
+       * 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  Richard Henderson  <rth@redhat.com>
 
-       * expmed.c (init_expmed): Use stack-local structures for 
+       * expmed.c (init_expmed): Use stack-local structures for
        temporary rtl.  Don't recognize shifts.
 
 2004-07-11  Richard Henderson  <rth@redhat.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>
+           James Morrison  <phython@gcc.gnu.org>
 
-        * doc/contrib.texi (Contributors): Add gfortran contributors and
+       * doc/contrib.texi (Contributors): Add gfortran contributors and
        fix a couple of typos.
 
 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
        (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