OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index d31e6ad..a0e29cc 100644 (file)
@@ -1,3 +1,317 @@
+2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/35757
+       * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
+       proper error message for the third argument on blendpd and
+       blendps.
+
+       * config/i386/sse.md (blendbits): New.
+       (sse4_1_blendp<ssemodesuffixf2c>): Use it.
+
+2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
+
+2008-03-30  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/31023
+       * fold-const.c (fold_sign_changed_comparison): Do leave
+       conversions to base-types alone.
+
+2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
+       the link register if one altivec register is be saved.
+
+2008-03-30  Ben Elliston  <bje@au.ibm.com>
+
+       * final.c (final_scan_insn): Remove if (0) code.
+
+2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
+
+       * c-parser.c (c_parser_next_token_is_keyword): Simplify.
+
+2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
+       of V4SFmode to ix86_binary_operator_ok.
+
+2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (override_options): Initialize
+       ix86_veclib_handler to ix86_veclibabi_svml when
+       -mveclibabi=svml is used.
+       (ix86_veclibabi_svml): New function for SVML ABI style
+       vectorization support.
+       * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
+
+2008-03-28  Rafael Espindola  <espindola@google.com>
+
+       * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
+       (tree_binary_nonnegative_warnv_p): Make it public.
+       (tree_single_nonnegative_warnv_p): Make it public.
+       (tree_invalid_nonnegative_warnv_p): Make it public.
+       (tree_unary_nonzero_warnv_p): Make it public.
+       (tree_binary_nonzero_warnv_p): Make it public
+       (tree_single_nonzero_warnv_p): Make it public.
+       * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
+       (extract_range_from_binary_expr): Split the expr argument.
+       (extract_range_from_unary_expr): Split the expr argument.
+       (extract_range_from_comparison): Split the expr argument.
+       (extract_range_from_expr): Use the new aux functions.
+       (vrp_evaluate_conditional_warnv): Use
+       vrp_evaluate_conditional_warnv_with_ops.
+       * tree.h (tree_unary_nonzero_warnv_p): Declare.
+       (tree_binary_nonzero_warnv_p): Declare.
+       (tree_single_nonzero_warnv_p): Declare.
+       (tree_expr_nonzero_warnv_p): Declare.
+       (tree_unary_nonnegative_warnv_p): Declare.
+       (tree_binary_nonnegative_warnv_p): Declare.
+       (tree_single_nonnegative_warnv_p): Declare.
+       (tree_invalid_nonnegative_warnv_p): Declare.
+
+2008-03-28  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/30317
+       PR tree-optimization/30911
+       PR tree-optimization/34793
+       * tree-vrp.c (set_and_canonicalize_value_range): New function.
+       (struct assert_locus_d): New member EXPR.
+       (register_new_assert_for): Add EXPR parameter to support
+       ASSERT_EXPR <name, expr OP limit>.
+       (register_edge_assert_for_1): Adjust callers.
+       (find_assert_locations): Likewise.
+       (process_assert_insertions_for): Build condition from expression.
+       (extract_range_from_assert): Handle ASSERT_EXPRs
+       of the form ASSERT_EXPR <name, expr OP limit>.
+       (register_edge_assert_for_2): New helper registering
+       asserts for comparisons.  Recognize range tests of the form
+       (unsigned)i - CST1 OP CST2.
+       (register_edge_assert_for_1): Use it.
+       (register_edge_assert_for): Likewise.
+       (needs_overflow_infinity): Integer sub-types
+       do not need overflow infinities.
+       (vrp_val_is_max): The extreme values of integer sub-types
+       are those of the base type.
+       (vrp_val_is_min): Likewise.
+       * tree.def (ASSERT_EXPR): Document extra allowed conditional
+       expressions.
+
+2008-03-28  Nick Clifton  <nickc@redhat.com>
+
+       * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
+       Return GENERAL_REGS for stack adjustment reloads.
+
+2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR target/31334
+       * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
+       const_vector when all the vectors are constant.
+
+2008-03-27  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
+       comparisons.
+       * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
+       (any_scc_sf): Add uneq, unlt, unle and unordered operators.
+       (scc_sf): New.
+       (s<code>_sf): Use new scc_sf attribute for opcode names.
+
+2008-03-27  Tom Tromey  <tromey@redhat.com>
+
+       * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
+       configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
+       config/spu/t-spu-elf, config/i386/t-interix,
+       config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
+       config/i386/x-darwin, config/i386/x-mingw32,
+       config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
+       config/sh/t-sh, config/sh/t-symbian, config/x-linux,
+       config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
+       config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
+       config/rs6000/x-rs6000, config/rs6000/x-darwin64,
+       config/rs6000/x-darwin, config/rs6000/t-rs6000,
+       config/score/t-score-elf, config/arm/t-strongarm-pe,
+       config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
+       config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
+       Revert automatic dependency patch.
+
+2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/35657
+       * config/i386/i386.c (ix86_function_arg_boundary): Align
+       decimal floating point to its natural boundary.
+
+2008-03-27  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/35716
+       * fold-const.c (fold_comparison): Restrict distinct decl
+       comparison folding to VAR_DECLs and PARM_DECLs.  Do not
+       solely rely on operand_equal_p.
+
+2008-03-27  Richard Guenther  <rguenther@suse.de>
+
+       PR c/32511
+       * c-common.c (handle_weak_attribute): Reject combination of
+       weak and inline.
+
+2008-03-27  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/32810
+       * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
+       conversions from DECL_INITIAL.
+       (fold_const_aggregate_ref): Likewise from constructor elements.
+
+2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
+
+       * tree-affine.h (aff_combination_expand): Declare.
+       (get_inner_reference_aff): Likewise.
+       * tree-affine.c (aff_combination_expand): Split out from
+       tree_to_aff_combination_expand.
+       (get_inner_reference_aff): New function.
+       * tree-parloops.c (loop_parallel_p): Free vectorizer info.
+       * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
+       (struct lim_aux_data): sm_done field removed.
+       (mem_ref_loc_p, mem_ref_locs_p): New types.
+       (struct mem_ref): Added id, stored, accesses_in_loop,
+       indep_loop, dep_loop, indep_ref, dep_ref fields.
+       Removed is_stored, locs and next fields.
+       (memory_accesses): New variable.
+       (movement_possibility): Do not allow moving statements
+       that store to memory.
+       (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
+       New functions.
+       (determine_max_movement): For statements with memory references,
+       find the outermost loop in that the reference is independent.
+       (move_computations_stmt): Mark the virtual operands for renaming.
+       (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
+       gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
+       vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
+       add_vop_ref_mapping, create_vop_ref_mapping_loop,
+       create_vop_ref_mapping, analyze_memory_references,
+       cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
+       get_all_locs_in_loop, ref_always_accessed_p,
+       refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
+       ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
+       store_motion_loop, store_motion): New functions.
+       (struct vop_to_refs_elt): New type.
+       (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
+       memref_hash, memref_eq, hoist_memory_references): Rewritten.
+       (schedule_sm): Replaced by...
+       (execute_sm): ... this.
+       (determine_lsm_ref, hoist_memory_references,
+       loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
+       find_more_ref_vops, free_mem_ref, free_mem_refs,
+       determine_lsm_loop, determine_lsm): Removed.
+       (tree_ssa_lim_finalize): Free data structures used by store motion.
+       (tree_ssa_lim): Call analyze_memory_references.  Use
+       store_motion instead of determine_lsm.
+
+2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
+
+       * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
+       rename tmake_file to m68hc11/t-m68hc11.
+       (mcore): Set inhibit_libc to true.
+       * config.host (alpha*-dec-*vms*): Set extra_programs.
+       (interix3*): Don't use host_xmake_file.
+       * configure.ac: Let config.gcc override inhibit_libc.
+       * configure: Regenerate.
+
+       * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
+       * config/t-openbsd-thread: Remove commented out lines.
+       
+       * config/x-interix: Remove.
+
+       * config/m68hc11/t-m68hc11-gas: Rename to...
+       * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
+
+       * config/mcore/t-mcore: Remove T_CFLAGS.
+       * config/mcore/t-mcore-pe: Likewise.
+
+2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
+
+       * configure.ac: Replace custom __GNU_SOURCE test with
+       AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+
+2008-03-27  Richard Guenther  <rguenther@suse.de>
+
+       * fold-const.c (target.h): Include.
+       (fold_comparison): Fold comparison of addresses of decls
+       that bind locally or of constants.  Consolidate address folding code.
+       * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
+       results from fold_binary_to_constant.
+       (compare_values_warnv): Likewise.
+
+2008-03-27  Andrew Pinski  <pinskia@gmail.com>
+
+       PR middle-end/35429
+       * fold-const.c (fold_truthop): Check for integeral types when folding
+       a == 0 && b == 0 and a != 0 || b != 0 .
+
+2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
+
+2008-03-26  Andreas Schwab  <schwab@suse.de>
+
+       * doc/invoke.texi: Fix use of @item vs. @itemx.
+
+2008-03-26  Tom Tromey  <tromey@redhat.com>
+
+       * Makefile.in (build/gensupport.o, build/print-rtl.o,
+       build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
+       build/genattrtab.o, build/genautomata.o, build/gencheck.o,
+       build/gencodes.o, build/genconditions.o, build/genconfig.o,
+       build/genconstants.o, build/genemit.o, build/genextract.o,
+       build/genflags.o, build/genmddeps.o, build/genopinit.o,
+       build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
+       options.h.
+
+2008-03-26  Richard Guenther  <rguenther@suse.de>
+
+       Revert
+       2008-03-26  Richard Guenther  <rguenther@suse.de>
+
+       * fold-const.c (target.h): Include.
+       (fold_comparison): Fold comparison of addresses of two decls
+       that bind locally.  Consolidate address folding code.
+
+2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (expand_builtin_pow, fold_builtin_cabs,
+       fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
+       fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
+       dconstsqrt2, dconstthird, dconste and/or dconst10.
+       * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
+       * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
+       dconstsqrt2, dconste): Delete.
+       (init_emit_once): Likewise.  Simplify initializing dconstm1.
+       Constify variable.
+       * real.c (get_real_const): New.
+       * real.h (dconst3, dconst10, dconstm2, dconstthird,
+       dconstsqrt2, dconste): Delete.
+       (real_value_const, get_real_const): New.
+
+2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
+
+       * config/i386/i386.c (ix86_function_arg_boundary): Check
+       BIGGEST_ALIGNMENT instead of 128.
+       (setup_incoming_varargs_64): Likewise.
+
+2008-03-26  Tom Tromey  <tromey@redhat.com>
+
+       * Makefile.in (DEPFILES): Add missing '/'.
+
+2008-03-26  Richard Guenther  <rguenther@suse.de>
+
+       * fold-const.c (target.h): Include.
+       (fold_comparison): Fold comparison of addresses of two decls
+       that bind locally.  Consolidate address folding code.
+
 2008-03-26  Nick Clifton  <nickc@redhat.com>
 
        PR target/31232
        * config/v850/t-v850 (v850-c.o): Update.
        * config/t-vxworks (vxworks.o): Update.
        * config/t-sol2 (sol2-c.o, sol2.o): Update.
-       * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o):
-       Update.
+       * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
        * config/spu/t-spu-elf (spu-c.o): Update.
        (spu.o): Remove.
        * config/sh/t-symbian (sh-c.o): Update.
        (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
        cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
        prefix.o, toplev.o): Reduce to variable setting.
-       (libbackend.o): Use COMPILE.  Remove most dependencies.  Move
-       later.
+       (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
        ($(out_object_file), gcc-options.o): New targets.
-       ($(ALL_HOST_OBJS)): New target.
-       Include dependency files.
+       ($(ALL_HOST_OBJS)): New target.  Include dependency files.
        * configure: Rebuilt.
-       * configure.ac: Call ZW_CREATE_DEPDIR,
-       ZW_PROG_COMPILER_DEPENDENCIES.
-       * doc/sourcebuild.texi (Front End Directory): Document new
-       variable.
+       * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
+       * doc/sourcebuild.texi (Front End Directory): Document new variable.
 
 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
 
-       * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
-       complain when we hit an error, return ERROR_MARK_NODE.
+       * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
+       complain when we hit an error, return ERROR_MARK_NODE.
 
 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
 
 
 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
 
-       * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if
-       possible.
+       * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
        * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
 
 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
 
        * config/sh/constraints.md (I28): New constraint.
        * config/sh/sh.c (broken_move): Add support for movi20s.
-       * config/sh/sh.md (movsi_ie): Add the alternative for
-       movi20s.
+       * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
 
 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
            Jayant Sonar  <Jayant.sonar@kpitcummins.com>
 
 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
 
-       * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and
-       CX_REG.
+       * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
 
 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
 
 2008-03-19  Richard Guenther  <rguenther@suse.de>
 
        PR middle-end/35609
-       * tree-ssa.c (always_executed): New global flag.
-       (warn_uninitialized_var): If !always_executed warn with "maybe"
+       * tree-ssa.c (walk_data): New structure.
+       (warn_uninitialized_var): If not always_executed warn with "maybe"
        instead of "is".
        (execute_early_warn_uninitialized): Compute post-dominators.
        Initialize always_executed before processing each basic block.