Lift limitation on step being +/- 1. In fact, the only thing it is needed for
is proving no-self-wrap. We can instead check this flag directly.
Theoretically it can increase the scope of the transform, but I could not
construct such test easily.
Paths
| Differential D91126
[SCEV] Generalize no-self-wrap check in isLoopInvariantExitCondDuringFirstIterations ClosedPublic Authored by mkazantsev on Nov 9 2020, 11:15 PM.
Details Summary Lift limitation on step being +/- 1. In fact, the only thing it is needed for Theoretically it can increase the scope of the transform, but I could not
Diff Detail
Event Timelinemkazantsev added a child revision: D90395: [NFC][SCEV] Generalize monotonicity check for full and limited iteration space. apilipenko added inline comments.
This revision is now accepted and ready to land.Nov 10 2020, 7:10 PM Closed by commit rG7dcc8899174f: [SCEV] Generalize no-self-wrap check in isLoopInvariantExitCondDuringFirstItera… (authored by mkazantsev). · Explain WhyNov 10 2020, 8:38 PM This revision was automatically updated to reflect the committed changes. mkazantsev added a reverting change: rG9130651126b7: Revert "[SCEV] Generalize no-self-wrap check in….Nov 24 2020, 10:27 PM
Revision Contents
Diff 304386 llvm/lib/Analysis/ScalarEvolution.cpp
|
Nit. IsStepNonNegative local variable can be removed.