re PR middle-end/31530 (Incorrect folding of multiplication and sign change when...
[gcc.git] / gcc / ChangeLog
index b422096c176cf7ad86d2f851a302b2c949734315..7d85c96bd313c53bb072aa3451b3a3e83726b7a2 100644 (file)
@@ -1,3 +1,169 @@
+2007-04-11  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/31530
+       * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
+       a * -b + c as c - a * b if we honor sign dependent rounding.
+
+2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
+       bfin_expand_strmov.
+       * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
+       bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
+       variables.
+       (initialize_trampoline): Don't use old-style function definition.
+       (bfin_secondary_reload): Mark IN_P argument as unused.
+
+2007-04-10  Sebastian Pop  <sebastian.pop@inria.fr>
+
+       PR tree-optimization/31343
+       * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
+       (build_polynomial_chrec): Return a scalar when the evolution is zero.
+       * testsuite/gcc.dg/vect/pr31343.c: New.
+
+2007-04-10  Eric Christopher  <echristo@apple.com>
+
+       * config/i386/i386.h (X87_FLOAT_MODE_P): New.
+       * config/i386/i386.md (*cmpfp0): Use.
+       (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
+       (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
+       (fix_trunc<mode>_i386_fisttp): Ditto.
+       (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
+       (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
+       (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
+       (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
+       (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
+       (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
+       (unnamed_splitters): Ditto.
+       * config/i386/i386.c (output_fix_trunc): Assert that
+       we're not being passed a TFmode operand.
+
+2007-04-10  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR tree-optimization/31526
+       * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
+       n_basic_blocks to find newly added blocks.
+
+2007-04-10  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
+       alternative.
+       (fix_trunc<mode>si_sse): Ditto.
+       (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
+       (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
+       (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
+       (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
+       (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
+       expander using SSEMODEF mode macro.
+       (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
+       expander using SSEMODEF mode macro.
+       (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
+       *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
+       (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
+       *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
+       (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
+       *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
+       (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
+       Macroize insn using X87MODEF mode macro.
+
+2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (sse2_pinsrw): Removed.
+       (sse2_pextrw): Renamed to ...
+       (*sse2_pextrw): This.
+
+2007-04-09  Jan Hubicka  <jh@suse.cz>
+
+       PR target/27869
+       * config/i386/sse.md
+       (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
+       (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
+       (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
+       (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
+
+2007-04-09  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
+       multiple fields of union.
+
+2007-04-09  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
+       (create_preheaders): Check that loops are available.
+       (fix_loop_structure): Clean up, improve comments.
+       * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
+       Check that loops are available.  Set LOOP_CLOSED_SSA to the loops
+       state flags.
+       * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
+       * predict.c (tree_estimate_probability): Do not call
+       calculate_dominance_info.  Call create_preheaders.
+       * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
+       rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
+       flags.
+       * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
+       * cfgloop.h (LOOP_CLOSED_SSA): New constant.
+       * tree-cfg.c (tree_split_edge): Make an assert more precise.
+       * tree-ssa-threadedge.c (thread_across_edge): Comment the function
+       arguments.
+
+2007-04-08  Jan Hubicka  <jh@suse.cz>
+
+       * tree.h (maybe_fold_offset_to_component_ref): Declare.
+       * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
+       * fold-const.c (fold_unary): Use it.
+
+2007-04-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       * varasm.c (assemble_variable): Remove call to
+       lang_hooks.decls.prepare_assemble_variable.
+       * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
+       (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
+       * langhooks.h (lang_hooks_for_decls): Remove
+       prepare_assemble_variable.
+
+2007-04-08  Mike Stump  <mrs@apple.com>
+
+       * config/i386/i386.c: Use inc/dec on Core2.
+
+2007-04-08  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
+       lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
+       lhd_tree_inlining_end_inlining): Remove.
+       * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
+       add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
+       end_inlining hooks.
+       * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
+       lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
+       lhd_tree_inlining_end_inlining): Remove prototypes.
+       (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
+       LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
+       LANG_HOOKS_TREE_INLINING_START_INLINING,
+       LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
+
+       * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
+       not set it.
+
+2007-04-08  Anatoly Sokolov <aesok@post.ru>
+
+       PR target/29932
+       * config/avr/predicates.md (io_address_operand): Delete predicate.
+       (low_io_address_operand): Don't use 'mode' argument.
+       (higth_io_address_operand): Rename ...
+       (high_io_address_operand): ... to this. Don't use 'mode' argument.
+       * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
+       for above change.
+
+2007-04-07  Daniel Berlin  <dberlin@dberlin.org>
+
+       Revert change removing staticp.
+
+2007-04-07  Anatoly Sokolov <aesok@post.ru>
+
+       PR target/30289
+       * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
+       earlyclobber.
+
 2007-04-07  Bruce Korb  <bkorb@gnu.org>
 
        * c.opt: Add -Wformat-contains-nul.
        * langhooks.h (lang_hooks): Remove safe_from_p.
        (lhd_safe_from_p): Remove prototype.
        * langhooks.c (lhd_safe_from_p): Remove.
-       
+
 2007-04-06  Jan Hubicka  <jh@suse.cz>
 
        * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
 2007-04-05  Anatoly Sokolov <aesok@post.ru>
 
        PR target/25448
-       * config/avr/avr.c (avr_handle_fndecl_attribute): Use the 
+       * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
        DECL_ASSEMBLER_NAME, not the DECL_NAME.
 
 2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>