diff options
author | Florian Hahn <florian.hahn@arm.com> | 2016-12-19 17:13:37 +0000 |
---|---|---|
committer | Florian Hahn <florian.hahn@arm.com> | 2016-12-19 17:13:37 +0000 |
commit | 2e03213f90b0c443a4f3415757e8893d70420a85 (patch) | |
tree | cee22297bbbc2d12448cce13934cf6c33b1ce644 /llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp | |
parent | 17cb7c0a2a40151960d5e105bd2b7d9772c97086 (diff) | |
download | bcm5719-llvm-2e03213f90b0c443a4f3415757e8893d70420a85.tar.gz bcm5719-llvm-2e03213f90b0c443a4f3415757e8893d70420a85.zip |
[LoopVersioning] Require loop-simplify form for loop versioning.
Summary:
Requiring loop-simplify form for loop versioning ensures that the
runtime check block always dominates the exit block.
This patch closes #30958 (https://llvm.org/bugs/show_bug.cgi?id=30958).
Reviewers: silviu.baranga, hfinkel, anemet, ashutosh.nema
Subscribers: ashutosh.nema, mzolotukhin, efriedma, hfinkel, llvm-commits
Differential Revision: https://reviews.llvm.org/D27469
llvm-svn: 290116
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp b/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp index 8e83c4700aa..08e7acdaaf7 100644 --- a/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp +++ b/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp @@ -517,6 +517,11 @@ public: return false; } + if (!L->isLoopSimplifyForm()) { + DEBUG(dbgs() << "Loop is not is loop-simplify form"); + return false; + } + // Point of no-return, start the transformation. First, version the loop // if necessary. |