OSDN Git Service

2004-07-12 David S. Miller <davem@nuts.davemloft.net>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 295dba3..b7c5f69 100644 (file)
@@ -1,3 +1,229 @@
+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