[Bug tree-optimization/39839] [4.3/4.4/4.5/4.6 regression] loop invariant motion causes stack spill

2010-07-22 Thread sandra at gcc dot gnu dot org


--- 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

2010-07-10 Thread sandra at gcc dot gnu dot org


--- 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

2010-07-05 Thread sandra at gcc dot gnu dot org


--- 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

2010-07-02 Thread sandra at gcc dot gnu dot org


--- 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)

2010-06-08 Thread sandra at gcc dot gnu dot org


--- 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

2010-06-08 Thread sandra at gcc dot gnu dot org


--- 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

2010-05-08 Thread sandra at gcc dot gnu dot org


--- 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

2007-08-30 Thread sandra at gcc dot gnu dot org


--- 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

2007-08-24 Thread sandra at gcc dot gnu dot org


--- 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

2007-02-18 Thread sandra at gcc dot gnu dot org


--- 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