OSDN Git Service

2004-07-15 Roman Zippel <zippel@linux-m68k.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 38e8fad..f0eb71f 100644 (file)
@@ -1,3 +1,887 @@
+2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
+
+       * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to 
+       generate code which is generated by pushqi1 now
+       * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
+
+2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
+
+       * combine.c (simplify_set): match the mode of the constant 0 with 
+       the tested operand to match the compare behaviour and the 
+       simplify_relational_operation() expectation.
+
+2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
+
+        * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
+        ("bordered"): Same.
+
+2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
+
+        * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
+        unconditionally.
+        * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
+
+2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
+       calls in mips16 code.
+
+2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
+       the destination of the li as well as for the neg.
+
+2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
+
+       g++/15861
+       * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
+       * cgraph.h: Update declaration.
+       * c-decl.c (build_cdtor): Update call with default priority.
+       * coverage.c (create_coverage): Ditto.
+       * tree-mudflap.c (mf_init_fndecl): New tree.
+       (mudflap_init): Set it.
+       (mudflap_register_call): Arrange to call __mf_init before the first
+       __mf_register call.
+       (mudflap_finish_file): Mark the mudflap static initializer as extra
+       high priority, to beat all C++ static constructors.
+
+2004-07-15  Jeff Law  <law@redhat.com>
+
+       * loop.c (check_insn_for_givs): Restore check for code labels that was
+       accidentally deleted by a recent checkin.
+
+2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
+       (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
+
+2004-07-14  Richard Henderson  <rth@redhat.com>
+
+       * print-tree.c (print_node): Fix casts last change.
+
+2004-07-15  Paul Brook  <paul@codesourcery.com>
+
+       * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
+       to TARGET_UNWIND_INFO.
+       * except.c (output_function_exception_table): Ditto.
+       * except.h: Ditto.
+       * opts.c (decode_options): Ditto.
+       * passes.c (rest_of_handle_final): Ditto.
+       * final.c (final_start_function): Ditto.
+       (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
+       target hook.
+       * targhooks.h (default_unwind_emit): Declare.
+       * targhooks.c (default_unwind_emit): New function.
+       * target-def.h: Define and use TARGET_UNWIND_EMIT.
+       * target.h (struct gcc_target): Add unwind_emit.
+       * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
+       * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
+       Remove IA64_UNWIND_EMIT.
+       * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
+
+2004-07-14  Richard Henderson  <rth@redhat.com>
+
+       * print-tree.c (print_node): Handle SSA_NAME.
+
+2004-07-14  James E Wilson  <wilson@specifixinc.com>
+
+       PR target/16325
+       * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
+       and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
+
+2004-07-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * expr.c (expand_assignment): Reenable bitfield += optimizations.
+       Use alias set 0 for memory, do proper mode calculations and adjust
+       address for memories.
+
+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  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.
        * 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