OSDN Git Service

* lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 60107b0..dc6e63c 100644 (file)
@@ -1,3 +1,395 @@
+2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
+        
+       * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
+       Use standard_iv_increment_position for computing the bsi position
+       for create_iv.
+       * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
+       the bsi position.
+
+2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR target/17428
+       * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending life range of hard
+       registers.
+       * value-prof.c (insn_prefetch_values_to_profile): Only scan normal insns.
+
+       * value-prof.c (rtl_find_values_to_profile): Do not look for values to
+       profile in libcalls.
+
+2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * bitmap.h (bitmap_and_compl_into): Return bool.
+       * bitmap.c (bitmap_and_compl_into): Return changed flag.
+
+2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
+
+       PR tree-optimization/19944
+       * fold-const.c (fold): Re-add ABS_EXPR folding.
+
+2005-02-13  David Edelsohn  <edelsohn@gnu.org>
+
+       PR target/19019
+       * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
+       {TARGET,MASK}_XL_COMPAT.
+       (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
+       MASK_XL_COMPAT.
+       * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
+       * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
+       TARGET_XL_COMPAT.
+       (rs6000_arg_partial_bytes): Same.
+       (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
+       and XL compatibility enabled.
+       * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
+       * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
+       test to final condition.
+       (cmptf_internal2): New.
+       * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
+       xl-compat.  Add TFmode information to description.
+
+2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
+
+2005-02-13  Jason Merrill  <jason@redhat.com>
+
+       [reverted temporarily]
+
+       PR mudflap/19319
+       * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
+       slot explicit.
+
+       PR c++/16405
+       * fold-const.c (fold_indirect_ref_1): Split out from...
+       (build_fold_indirect_ref): Here.
+       (fold_indirect_ref): New fn.
+       * tree.h: Declare it.
+       * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
+       (gimplify_modify_expr_rhs): Likewise.
+       (gimplify_expr): Likewise.
+
+2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
+
+       PR tree-optimization/14303
+       PR tree-optimization/15784
+       * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
+       Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
+       ABS_EXPR<x> != 0 to x != 0.
+
+2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
+       simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
+       spelling conventions.
+
+       * passes.c (rest_of_handle_gcse): Don't run cse_main and
+       delete_trivially_dead_insns too many times.
+
+       * passes.c (rest_of_handle_gcse): Remove dead assignments to
+       tem and tem2.
+
+2005-02-12  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vectorizer.c (vect_get_base_and_offset): Remove.
+       (vect_is_simple_iv_evolution): Remove redundant parameter
+       and step check.
+       (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
+       without last parameter.
+       (vect_analyze_pointer_ref_access): Get access_fn as parameter.
+       Return pointer step. Call vect_is_simple_iv_evolution without
+       last parameter. Check only that the step is multiple of size
+       type. Remove stmt_vinfo updates.
+       (vect_get_memtag_and_dr): Remove.
+       (vect_get_memtag): New function.
+       (vect_address_analysis): New function.
+       (vect_object_analysis): New function.
+       (vect_analyze_data_refs): Call vect_object_analysis and
+       vect_get_memtag. Update stmt_vinfo fields.
+
+2005-02-12  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-data-ref.c (array_base_name_differ_p): Check that the bases
+       exist and are objects. Remove checks for pointer.
+       * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
+       STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
+       (vect_create_data_ref_ptr): Likewise.
+       (vect_base_addr_differ_p): New function.
+       (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
+       (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
+       Don't set the DR_BASE_NAME field of data-ref.
+       (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
+
+2005-02-12  Uros Bizjak  <uros@kss-loka.si>
+
+       * optabs.h (enum optab_index): Add new OTI_ldexp.
+       (ldexp_optab): Define corresponding macro.
+       * optabs.c (init_optabs): Initialize ldexp_optab.
+       * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
+       patterns.
+       * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
+       using ldexp_optab.
+       (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
+       expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
+
+       * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
+       to implement ldexpf, ldexp and ldexpl built-ins as inline x87
+       intrinsics.
+
+2005-02-12  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
+       to base_address.
+       * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
+       stmt_vec_info.
+       (vect_get_base_and_offset): Always return an address.
+       (vect_create_addr_base_for_vector_ref): Remove treatment for
+       different data reference types.
+       (vect_compute_data_ref_alignment): Rename base to base_address in
+       stmt_vec_info. Get the object in order to force its alignment.
+       (vect_get_memtag_and_dr): Rename base to base_address in
+       stmt_vec_info. Extract the object for memtag analysis.
+
+2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR regression/19898.
+       * config/cris/cris.c (cris_notice_update_cc): When testing if insn
+       changes cc_status, use apply modified_in_p to part of cc_status
+       and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
+       body.
+
+2005-02-11  Richard Henderson  <rth@redhat.com>
+
+       * tree-complex.c (expand_complex_libcall): New.
+       (expand_complex_multiplication): Use it for c99 compliance.
+       (expand_complex_division): Likewise.
+       * fold-const.c (fold_complex_add, fold_complex_mult): New.
+       (fold): Call them.
+       * builtins.c (built_in_names): Remove const.
+       * tree.c (build_common_builtin_nodes): Build complex arithmetic
+       builtins.
+       * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
+       (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
+       (built_in_names): Remove const.
+       * c-common.c (c_common_type_for_mode): Handle complex modes.
+       * flags.h, toplev.c (flag_complex_method): Rename from
+       flag_complex_divide_method.
+       * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
+       __mulsc3, __muldc3, __mulxc3, __multc3): New.
+       * libgcc2.h: Declare them.
+       * libgcc-std.ver: Export them.
+       * mklibgcc.in (lib2funcs): Build them.
+
+2005-02-11  Steven Bosscher  <stevenb@suse.de>
+
+       PR tree-optimization/19876
+       Partially revert my change from 2005-01-14
+       * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
+       (compute_antic): ...and remove the loop here.
+
+2005-02-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/19858
+       * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
+       is number of inner's bits, avoid creating a BIT_FIELD_REF.
+
+       * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
+       crtend.o if -pie.  Use %{x:a;:b} spec syntax.
+
+2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
+       offsets for the big-endian 32-bit case.
+
+2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
+
+2005-02-11  Dale Johannesen  <dalej@apple.com>
+
+       * cselib.c (cselib_process_insn):  Clear out regs where
+       HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
+       * reload.c (find_equiv_reg): Ditto.
+
+2005-02-11  Ian Lance Taylor  <ian@airs.com>
+
+       * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
+       with no elements.
+
+       * tree.c (build_function_type_list): Work correctly if there are
+       no arguments.
+
+2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
+       "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
+       ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
+       TARGET_ZARCH instead of TARGET_64BIT.
+
+2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
+
+       * config/rs6000/t-rtems:
+       (MULTILIB_OPTIONS): Remove mcpu=602.
+       (MUTLILIB_DIRNAMES): Remove m602.
+       (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}. 
+       Let mcpu=602 match mcpu=603.
+       (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
+
+2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
+       signal trampolines.
+
+2005-02-10  David Daney  <ddaney@avtrex.com>
+
+       * config/alpha/linux-unwind.h: Add exception clause to copyright.
+       * config/i386/linux-unwind.h: Likewise.
+       * config/ia64/linux-unwind.h: Likewise.
+       * config/mips/linux-unwind.h: Likewise.
+       * config/pa/linux-unwind.h: Likewise.
+       * config/rs6000/linux-unwind.h: Likewise.
+       * config/s390/linux-unwind.h: Likewise.
+       * config/sh/linux-unwind.h: Likewise.
+       * config/sparc/linux-unwind.h: Likewise.
+
+2005-02-10  Steven Bosscher  <stevenb@suse.de>
+
+       PR tree-optimization/17549
+       * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
+       TER to replace a DEF with its expression if the DEF and the
+       rhs of the expression we replace into have the same root
+       variable.
+
+2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md: Fix the placement of the match_scratch in the
+       lea64 peephole2.
+
+2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
+       Fix comment typos.
+
+2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
+       (strip_offset): Handle addresses.
+       (add_address_candidates): Use strip_offset.
+       (difference_cost): Reflect strip_offset change.
+       (force_var_cost, difference_cost): Strip nops.
+
+2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
+
+       * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
+       tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
+       config/cris/cris-protos.h, config/cris/cris.c: Update
+       copyright.
+
+2005-02-10  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
+       (lookup_avail_expr): Similarly.
+
+2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * builtins.c (fold_builtin_powi): New function.
+       (fold_builtin_1): Call it.
+
+2005-02-10  Steven Bosscher  <stevenb@suse.de>
+
+       PR documentation/19309
+       * doc/cpp.texi: The __GNUC__ and related predefined macros
+       are also defined for the "standalone" cpp.
+       Some non-GCC compilers may also define __GNUC__.
+
+2005-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/19342
+       * c-typeck.c (common_type): New routine.  Old common_type renamed
+       to...
+       (c_common_type): ...this.
+       (build_conditional_expr, build_binary_op): Use c_common_type instead
+       of common_type.
+
+2005-02-10  Steven Bosscher  <stevenb@suse.de>
+
+       * doc/md.texi: Replace @samp{length} with @code{length}.
+
+2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR tree-optimization/18687
+       * tree-flow.h (find_loop_niter): Declare.
+       * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
+       Try using scev even for loops with more than one exit.
+       * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
+       (struct ivopts_data): Added niters field.
+       (struct nfe_cache_elt): New.
+       (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
+       functions.
+       (tree_ssa_iv_optimize_init): Initialize niters cache.
+       (determine_number_of_iterations): Removed.
+       (find_induction_variables): Do not call determine_number_of_iterations.
+       Access niters for single exit through niter_for_single_dom_exit.
+       (add_iv_outer_candidates): Access niters for single exit through
+       niter_for_single_dom_exit.
+       (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
+       number_of_iterations_cond.
+       (iv_period): New function.
+       (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
+       (may_replace_final_value): Take data argument.  Use
+       niter_for_single_dom_exit.
+       (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
+       (rewrite_use_compare): Pass data to may_eliminate_iv.
+       (rewrite_use_outer): Pass data to may_replace_final_value.
+       (free_loop_data): Clean up the niters cache.
+       (tree_ssa_iv_optimize_finalize): Free the niters cache.
+       (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
+       * tree-ssa-loop-niter.c (find_loop_niter): New function.
+       (find_loop_niter_by_eval): Use tree_int_cst_lt.
+       (num_ending_zeros): Moved to tree.c.
+       * tree.h (num_ending_zeros): Declare.
+       * tree.c (num_ending_zeros): Moved from tree.c.
+
+2005-02-09  Richard Henderson  <rth@redhat.com>
+
+       * builtins.c (DEF_BUILTIN): Add COND argument.
+       * tree.h (DEF_BUILTIN): Likewise.
+       * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
+       DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
+       match.
+       (DEF_BUILTIN_STUB): New.
+       (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
+       BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
+       BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
+       * c-common.c (DEF_BUILTIN): Add COND argument.
+       * tree.c (local_define_builtin): New.
+       (build_common_builtin_nodes): New.
+
+2005-02-09  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold_strip_sign_ops): New function to simplify a
+       floating point expression ignoring the sign of the result.
+       (fold) <ABS_EXPR>: Use it to simplify fabs(x).
+       (fold) <MULT_EXPR>: Use it to simplify x*x.
+       * tree.h (fold_strip_sign_ops): Prototype here.
+       * builtins.c (fold_builtin_copysign): Take an additional FNDECL
+       argument.  Use fold_strip_sign_ops to simplify the first argument.
+       (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
+       first argument when the second argument is an even integer
+       constant, but only with -funsafe_math_optimizations.
+       (fold_builtin_1): Update call to fold_builtin_copysign.
+
+2005-02-09  Ian Lance Taylor  <ian@airs.com>
+
+       PR middle-end/19583
+       * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
+       just check whether EH_FILTER_FAILURE falls through.
+
+2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * gcc/haifa-sched.c (schedule_block): Make queued sched group
+       insns return to ready list in the next turn.
+
 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
 
        PR middle-end/19402