summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <florian.hahn@arm.com>2018-03-15 21:34:43 +0000
committerFlorian Hahn <florian.hahn@arm.com>2018-03-15 21:34:43 +0000
commitfc97b6173f2d98f707dc7815f0d44116a8ace9c6 (patch)
tree04f4768814f24d549602588e3ff4485358e391f1 /llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
parent5a791ee4081469d65d98fe02d4c767b455f6f69b (diff)
downloadbcm5719-llvm-fc97b6173f2d98f707dc7815f0d44116a8ace9c6.tar.gz
bcm5719-llvm-fc97b6173f2d98f707dc7815f0d44116a8ace9c6.zip
[LoopUnroll] Peel off iterations if it makes conditions true/false.
If the loop body contains conditions of the form IndVar < #constant, we can remove the checks by peeling off #constant iterations. This improves codegen for PR34364. Reviewers: mkuper, mkazantsev, efriedma Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D43876 llvm-svn: 327671
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
index 68d86d99382..093f3407bde 100644
--- a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
@@ -795,7 +795,7 @@ static bool computeUnrollCount(
}
// 4th priority is loop peeling
- computePeelCount(L, LoopSize, UP, TripCount);
+ computePeelCount(L, LoopSize, UP, TripCount, SE);
if (UP.PeelCount) {
UP.Runtime = false;
UP.Count = 1;
OpenPOWER on IntegriCloud