re PR tree-optimization/83326 (SPEC CPU2017 648.exchange2_s ~6% performance regressio...
authorRichard Biener <rguenther@suse.de>
Thu, 14 Dec 2017 14:32:24 +0000 (14:32 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 14 Dec 2017 14:32:24 +0000 (14:32 +0000)
commit8fa06648cde628f49ac69587d31841fc338ec841
tree4ed9aa324a460c80fca144994aeda6284b57d5b2
parentf297ebafdcdf5d5a8c3ef74c9906de67998e5aa7
re PR tree-optimization/83326 (SPEC CPU2017 648.exchange2_s ~6% performance regression with r255267 (reproducer attached))

2017-12-14  Richard Biener  <rguenther@suse.de>

PR tree-optimization/83326
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
may_be_zero parameter and handle it by not marking the first
peeled copy as not exiting the loop.
(try_peel_loop): Likewise.
(canonicalize_loop_induction_variables): Use number_of_iterations_exit
to handle the case of constant or zero iterations and perform
loop header copying on-the-fly.

* gcc.dg/tree-ssa/pr81388-2.c: Adjust.

From-SVN: r255635
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/pr81388-2.c
gcc/tree-ssa-loop-ivcanon.c