[Bug tree-optimization/39839] [4.3/4.4/4.5/4.6 regression] loop invariant motion causes stack spill
--- Comment #15 from sandra at gcc dot gnu dot org 2010-07-23 02:18 --- Subject: Bug 39839 Author: sandra Date: Fri Jul 23 02:18:07 2010 New Revision: 162438 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=162438 Log: 2010-07-22 Sandra Loosemore san...@codesourcery.com PR tree-optimization/39839 gcc/testsuite/ * gcc.target/arm/pr39839.c: New test case. Added: trunk/gcc/testsuite/gcc.target/arm/pr39839.c Modified: trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39839
[Bug middle-end/42505] [4.4/4.5/4.6 Regression] loop canonicalization causes a lot of unnecessary temporary variables
--- Comment #12 from sandra at gcc dot gnu dot org 2010-07-10 18:43 --- Subject: Bug 42505 Author: sandra Date: Sat Jul 10 18:43:29 2010 New Revision: 162043 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=162043 Log: 2010-07-10 Sandra Loosemore san...@codesourcery.com PR middle-end/42505 gcc/ * tree-inline.c (estimate_num_insns): Refactor builtin complexity lookup code into * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these new functions. * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare. * cfgloopanal.c (target_clobbered_regs): Define. (init_set_costs): Initialize target_clobbered_regs. (estimate_reg_pressure_cost): Add call_p argument. When true, adjust the number of available registers to exclude the call-clobbered registers. * cfgloop.h (target_clobbered_regs): Declare. (estimate_reg_pressure_cost): Adjust declaration. * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call. (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost. (determine_set_costs): Dump target_clobbered_regs. (loop_body_includes_call): New function. (tree_ssa_iv_optimize_loop): Use it to initialize new field. * loop-invariant.c (gain_for_invariant): Adjust arguments to pass call_p flag through. (best_gain_for_invariant): Likewise. (find_invariants_to_move): Likewise. (move_single_loop_invariants): Likewise, using already-computed has_call field. Modified: trunk/gcc/ChangeLog trunk/gcc/builtins.c trunk/gcc/cfgloop.h trunk/gcc/cfgloopanal.c trunk/gcc/loop-invariant.c trunk/gcc/tree-inline.c trunk/gcc/tree-ssa-loop-ivopts.c trunk/gcc/tree.h -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42505
[Bug middle-end/42505] [4.4/4.5/4.6 Regression] loop canonicalization causes a lot of unnecessary temporary variables
--- Comment #11 from sandra at gcc dot gnu dot org 2010-07-05 17:41 --- Subject: Bug 42505 Author: sandra Date: Mon Jul 5 17:40:57 2010 New Revision: 161844 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=161844 Log: 2010-07-05 Sandra Loosemore san...@codesourcery.com PR middle-end/42505 gcc/ * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete comments about cost model. (try_add_cand_for): Add second strategy for choosing initial set based on original IVs, controlled by ORIGINALP argument. (get_initial_solution): Add ORIGINALP argument. (find_optimal_iv_set_1): New function, split from find_optimal_iv_set. (find_optimal_iv_set): Try two different strategies for choosing the IV set, and return the one with lower cost. gcc/testsuite/ * gcc.target/arm/pr42505.c: New test case. Added: trunk/gcc/testsuite/gcc.target/arm/pr42505.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-loop-ivopts.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42505
[Bug target/43703] Unexpected floating point precision loss due to ARM NEON autovectorization
--- Comment #7 from sandra at gcc dot gnu dot org 2010-07-03 00:47 --- Subject: Bug 43703 Author: sandra Date: Sat Jul 3 00:46:51 2010 New Revision: 161763 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=161763 Log: 2010-07-02 Julian Brown jul...@codesourcery.com Sandra Loosemore san...@codesourcery.com PR target/43703 gcc/ * config/arm/vec-common.md (addmode3, submode3, sminmode3) (smaxmode3): Disable for NEON float modes when flag_unsafe_math_optimizations is false. * config/arm/neon.md (*addmode3_neon, *submode3_neon) (*mulmode3_neon) (mulmode3addmode_neon, mulmode3negmodeaddmode_neon) (reduc_splus_mode, reduc_smin_mode, reduc_smax_mode): Disable for NEON float modes when flag_unsafe_math_optimizations is false. (quad_halves_codev4sf): Only enable if flag_unsafe_math_optimizations is true. * doc/invoke.texi (ARM Options): Add note about floating point vectorization requiring -funsafe-math-optimizations. gcc/testsuite/ * gcc.dg/vect/vect.exp: Add -ffast-math for NEON. * gcc.dg/vect/vect-reduc-6.c: Add XFAIL for NEON. Modified: trunk/gcc/ChangeLog trunk/gcc/config/arm/neon.md trunk/gcc/config/arm/vec-common.md trunk/gcc/doc/invoke.texi trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/vect/vect-reduc-6.c trunk/gcc/testsuite/gcc.dg/vect/vect.exp -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43703
[Bug tree-optimization/39874] [4.4 regression] missing VRP (submission)
--- Comment #5 from sandra at gcc dot gnu dot org 2010-06-08 18:16 --- Subject: Bug 39874 Author: sandra Date: Tue Jun 8 18:15:53 2010 New Revision: 160445 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=160445 Log: 2010-06-08 Sandra Loosemore san...@codesourcery.com PR tree-optimization/39874 PR middle-end/28685 gcc/ * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons): Declare. * gimple-fold.c (canonicalize_bool, same_bool_comparison_p, same_bool_result_p): New. (and_var_with_comparison, and_var_with_comparison_1, and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New. (or_var_with_comparison, or_var_with_comparison_1, or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New. * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use maybe_fold_and_comparisons or maybe_fold_or_comparisons instead of combine_comparisons. * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise. gcc/testsuite/ * gcc.dg/pr39874.c: New file. Added: trunk/gcc/testsuite/gcc.dg/pr39874.c Modified: trunk/gcc/ChangeLog trunk/gcc/gimple-fold.c trunk/gcc/gimple.h trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-ifcombine.c trunk/gcc/tree-ssa-reassoc.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39874
[Bug middle-end/28685] Multiple comparisons are not simplified
--- Comment #16 from sandra at gcc dot gnu dot org 2010-06-08 18:16 --- Subject: Bug 28685 Author: sandra Date: Tue Jun 8 18:15:53 2010 New Revision: 160445 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=160445 Log: 2010-06-08 Sandra Loosemore san...@codesourcery.com PR tree-optimization/39874 PR middle-end/28685 gcc/ * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons): Declare. * gimple-fold.c (canonicalize_bool, same_bool_comparison_p, same_bool_result_p): New. (and_var_with_comparison, and_var_with_comparison_1, and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New. (or_var_with_comparison, or_var_with_comparison_1, or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New. * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use maybe_fold_and_comparisons or maybe_fold_or_comparisons instead of combine_comparisons. * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise. gcc/testsuite/ * gcc.dg/pr39874.c: New file. Added: trunk/gcc/testsuite/gcc.dg/pr39874.c Modified: trunk/gcc/ChangeLog trunk/gcc/gimple-fold.c trunk/gcc/gimple.h trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-ifcombine.c trunk/gcc/tree-ssa-reassoc.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28685
[Bug middle-end/28685] Multiple comparisons are not simplified
--- Comment #12 from sandra at gcc dot gnu dot org 2010-05-08 15:54 --- Subject: Bug 28685 Author: sandra Date: Sat May 8 15:53:59 2010 New Revision: 159189 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159189 Log: 2010-05-08 Sandra Loosemore san...@codesourcery.com PR middle-end/28685 gcc/ * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function. (optimize_ops_list): Call it. gcc/testsuite/ * gcc.dg/pr28685-1.c: New file. Added: trunk/gcc/testsuite/gcc.dg/pr28685-1.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-reassoc.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28685
[Bug middle-end/33211] [4.3 Regression] FAIL: gcc.target/spu/fixed-range.c scan-assembler lqd.*21
--- Comment #3 from sandra at gcc dot gnu dot org 2007-08-31 03:25 --- Subject: Bug 33211 Author: sandra Date: Fri Aug 31 03:25:02 2007 New Revision: 127951 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=127951 Log: 2007-08-30 Sandra Loosemore [EMAIL PROTECTED] PR middle-end/33211 gcc/ * regclass.c (initial_fixed_regs): Revert previous change and make it const again. (initial_call_used_regs): Likewise. (initial_call_really_used_regs): Delete, reverting previous addition. (initial_reg_names): Likewise. (init_reg_sets): Revert previous change. (saved_fixed_regs): New. (saved_call_used_regs): New. (saved_call_really_used_regs): New. (saved_reg_names): New. (save_register_info): New. (restore_register_info): New. (init_reg_sets_1): Replace reset of register info with call to restore_register_info. * rtl.h (save_register_info): Declare. * toplev.c (backend_init): Call save_register_info. Modified: trunk/gcc/ChangeLog trunk/gcc/regclass.c trunk/gcc/rtl.h trunk/gcc/toplev.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33211
[Bug target/11787] always call memcpy for block move in mips16
--- Comment #5 from sandra at gcc dot gnu dot org 2007-08-24 23:54 --- Subject: Bug 11787 Author: sandra Date: Fri Aug 24 23:54:05 2007 New Revision: 127790 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=127790 Log: 2007-08-24 Sandra Loosemore [EMAIL PROTECTED] Nigel Stephens [EMAIL PROTECTED] PR target/11787 gcc/ * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros. (STORE_BY_PIECES_P): No longer applies to __builtin_memset. * expr.c (SET_BY_PIECES_P): Define. (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P. (store_expr): Pass MEMSETP argument to can_store_by_pieces and store_by_pieces. * expr.h (SET_RATIO): Define. (can_store_by_pieces, store_by_pieces): Update prototypes. * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to can_store_by_pieces/store_by_pieces. (expand_builtin_memcpy_args): Likewise. (expand_builtin_strncpy): Likewise. (expand_builtin_memset_args): Likewise. Also remove special case for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can decide what to do instead. * value-prof.c (tree_stringops_transform): Pass MEMSETP argument to can_store_by_pieces. * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P. * config/s390/s390.h (SET_BY_PIECES_P): Likewise. * config/mips/mips.opt (mmemcpy): Change from Var to Mask. * config/mips/mips.c (override_options): Make -Os default to -mmemcpy. * config/mips/mips.h (MIPS_CALL_RATIO): Define. (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define. (STORE_BY_PIECES_P): Define. Modified: trunk/gcc/ChangeLog trunk/gcc/builtins.c trunk/gcc/config/mips/mips.c trunk/gcc/config/mips/mips.h trunk/gcc/config/mips/mips.opt trunk/gcc/config/s390/s390.h trunk/gcc/config/sh/sh.h trunk/gcc/doc/tm.texi trunk/gcc/expr.c trunk/gcc/expr.h trunk/gcc/value-prof.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11787
[Bug middle-end/30833] [4.3 Regression] ICE with -fdump-tree-all
--- Comment #5 from sandra at gcc dot gnu dot org 2007-02-19 04:13 --- Subject: Bug 30833 Author: sandra Date: Mon Feb 19 04:12:49 2007 New Revision: 122122 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=122122 Log: 2007-02-18 Sandra Loosemore [EMAIL PROTECTED] PR middle-end/30833 * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed during CALL_EXPR representation conversion. * tree-ssa-propagate.c (set_rhs): Likewise. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-dump.c trunk/gcc/tree-ssa-propagate.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30833