re PR tree-optimization/55079 (false positive -Warray-bounds (also seen at -O3 bootstrap))
PR middle-end/55079 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update MAX field if NITER was folded to contant. (record_estimate): Sanity check. * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): New function. (remove_redundant_iv_test): New function. (loops_to_unloop, loops_to_unloop_nunroll): New static vars. (unloop_loops): Break out from ... (try_unroll_loop_completely): ... here; Pass in MAXITER; use remove_exits_and_undefined_stmts; do not unloop. (canonicalize_loop_induction_variables): Compute MAXITER; use remove_redundant_iv_test; remove loop_close_ssa_invalidated and irred_invalidated arguments. (canonicalize_induction_variables): Compute fresh bound estimates; unloop; walk from innermost. (tree_unroll_loops_completely): Likewise. * gcc.dg/tree-ssa/cunroll-10.c: New testcase. * gcc.dg/tree-ssa/cunroll-9.c: New testcase. From-SVN: r193098
Showing
- gcc/ChangeLog 20 additions, 0 deletionsgcc/ChangeLog
- gcc/testsuite/ChangeLog 5 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gcc.dg/tree-ssa/cunroll-10.c 13 additions, 0 deletionsgcc/testsuite/gcc.dg/tree-ssa/cunroll-10.c
- gcc/testsuite/gcc.dg/tree-ssa/cunroll-9.c 22 additions, 0 deletionsgcc/testsuite/gcc.dg/tree-ssa/cunroll-9.c
- gcc/tree-ssa-loop-ivcanon.c 220 additions, 70 deletionsgcc/tree-ssa-loop-ivcanon.c
- gcc/tree-ssa-loop-niter.c 6 additions, 0 deletionsgcc/tree-ssa-loop-niter.c
Loading
Please register or sign in to comment