diff options
author | Max Kazantsev <max.kazantsev@azul.com> | 2019-01-15 10:01:46 +0000 |
---|---|---|
committer | Max Kazantsev <max.kazantsev@azul.com> | 2019-01-15 10:01:46 +0000 |
commit | 78a54352843cdd2287020cba61fe989dc67bd590 (patch) | |
tree | 6268f0c4d3a3d8dc6dc8738daa8686600926871b /llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp | |
parent | a78dc4d6c8afc51c9a6985b167043af33e246830 (diff) | |
download | bcm5719-llvm-78a54352843cdd2287020cba61fe989dc67bd590.tar.gz bcm5719-llvm-78a54352843cdd2287020cba61fe989dc67bd590.zip |
[NFC] Decrease if nest
llvm-svn: 351180
Diffstat (limited to 'llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp b/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp index 0e6dcfd4328..889d2ddbc74 100644 --- a/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp +++ b/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp @@ -1477,16 +1477,14 @@ bool LoopConstrainer::run() { if (Increasing) ExitPreLoopAtSCEV = *SR.LowLimit; + else if (cannotBeMinInLoop(*SR.HighLimit, &OriginalLoop, SE, + IsSignedPredicate)) + ExitPreLoopAtSCEV = SE.getAddExpr(*SR.HighLimit, MinusOneS); else { - if (cannotBeMinInLoop(*SR.HighLimit, &OriginalLoop, SE, - IsSignedPredicate)) - ExitPreLoopAtSCEV = SE.getAddExpr(*SR.HighLimit, MinusOneS); - else { - LLVM_DEBUG(dbgs() << "irce: could not prove no-overflow when computing " - << "preloop exit limit. HighLimit = " - << *(*SR.HighLimit) << "\n"); - return false; - } + LLVM_DEBUG(dbgs() << "irce: could not prove no-overflow when computing " + << "preloop exit limit. HighLimit = " + << *(*SR.HighLimit) << "\n"); + return false; } if (!isSafeToExpandAt(ExitPreLoopAtSCEV, InsertPt, SE)) { @@ -1506,16 +1504,14 @@ bool LoopConstrainer::run() { if (Increasing) ExitMainLoopAtSCEV = *SR.HighLimit; + else if (cannotBeMinInLoop(*SR.LowLimit, &OriginalLoop, SE, + IsSignedPredicate)) + ExitMainLoopAtSCEV = SE.getAddExpr(*SR.LowLimit, MinusOneS); else { - if (cannotBeMinInLoop(*SR.LowLimit, &OriginalLoop, SE, - IsSignedPredicate)) - ExitMainLoopAtSCEV = SE.getAddExpr(*SR.LowLimit, MinusOneS); - else { - LLVM_DEBUG(dbgs() << "irce: could not prove no-overflow when computing " - << "mainloop exit limit. LowLimit = " - << *(*SR.LowLimit) << "\n"); - return false; - } + LLVM_DEBUG(dbgs() << "irce: could not prove no-overflow when computing " + << "mainloop exit limit. LowLimit = " + << *(*SR.LowLimit) << "\n"); + return false; } if (!isSafeToExpandAt(ExitMainLoopAtSCEV, InsertPt, SE)) { |