diff options
author | Florian Hahn <florian.hahn@arm.com> | 2018-03-15 21:34:43 +0000 |
---|---|---|
committer | Florian Hahn <florian.hahn@arm.com> | 2018-03-15 21:34:43 +0000 |
commit | fc97b6173f2d98f707dc7815f0d44116a8ace9c6 (patch) | |
tree | 04f4768814f24d549602588e3ff4485358e391f1 /llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp | |
parent | 5a791ee4081469d65d98fe02d4c767b455f6f69b (diff) | |
download | bcm5719-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.cpp | 2 |
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; |