[all-commits] [llvm/llvm-project] 20cbb6: [LoopPred] Selectively disable to preserve test cases
Philip Reames via All-commits
all-commits at lists.llvm.org
Wed Nov 6 15:42:01 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 20cbb6cdf8b33dd3732b9ef8702e7946b6d8c739
https://github.com/llvm/llvm-project/commit/20cbb6cdf8b33dd3732b9ef8702e7946b6d8c739
Author: Philip Reames <listmail at philipreames.com>
Date: 2019-11-06 (Wed, 06 Nov 2019)
Changed paths:
M llvm/test/Transforms/IndVarSimplify/eliminate-trunc.ll
M llvm/test/Transforms/IndVarSimplify/lftr-dead-ivs.ll
M llvm/test/Transforms/IndVarSimplify/lftr-pr20680.ll
M llvm/test/Transforms/IndVarSimplify/lftr-reuse.ll
M llvm/test/Transforms/IndVarSimplify/lftr.ll
M llvm/test/Transforms/IndVarSimplify/loop-invariant-conditions.ll
M llvm/test/Transforms/IndVarSimplify/no-iv-rewrite.ll
M llvm/test/Transforms/IndVarSimplify/pr24356.ll
M llvm/test/Transforms/IndVarSimplify/pr38674.ll
M llvm/test/Transforms/IndVarSimplify/pr39673.ll
M llvm/test/Transforms/IndVarSimplify/replace-loop-exit-folds.ll
M llvm/test/Transforms/IndVarSimplify/sink-from-preheader.ll
Log Message:
-----------
[LoopPred] Selectively disable to preserve test cases
I'm about to enable the new loop predication transform by default. It has the effect of completely destroying many read only loops - which happen to be a super common idiom in our test cases. So as to preserve test coverage of other transforms, disable the new transform where it would cause sharp test coverage regressions.
(This is semantically part of the enabling commit. It's committed separate to ease revert if the actual flag flip gets reverted.)
Commit: 8748be7750920b7bd669a47be72a81ee7f1d305c
https://github.com/llvm/llvm-project/commit/8748be7750920b7bd669a47be72a81ee7f1d305c
Author: Philip Reames <listmail at philipreames.com>
Date: 2019-11-06 (Wed, 06 Nov 2019)
Changed paths:
M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
M llvm/test/Transforms/IndVarSimplify/exit_value_tests.ll
M llvm/test/Transforms/LoopUnroll/scevunroll.ll
Log Message:
-----------
[LoopPred] Enable new transformation by default
The basic idea of the transform is to convert variant loop exit conditions into invariant exit conditions by changing the iteration on which the exit is taken when we know that the trip count is unobservable. See the original patch which introduced the code for a more complete explanation.
The individual parts of this have been reviewed, the result has been fuzzed, and then further analyzed by hand, but despite all of that, I will not be suprised to see breakage here. If you see problems, please don't hesitate to revert - though please do provide a test case. The most likely class of issues are latent SCEV bugs and without a reduced test case, I'll be essentially stuck on reducing them.
(Note: A bunch of tests were opted out of the new transform to preserve coverage. That landed in a previous commit to simplify revert cycles if they turn out to be needed.)
Compare: https://github.com/llvm/llvm-project/compare/c52efdc52cef...8748be775092
More information about the All-commits
mailing list