diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-06-12 13:50:47 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-06-12 13:50:47 +0000 |
| commit | 86325be3d706fa1d624932acfc986a09af2402fc (patch) | |
| tree | 856c24491206acce8748572604822416277afac4 /llvm/lib | |
| parent | e2f94974dfde99a6a3b5a19cf3bf2b3cb10cb633 (diff) | |
| download | bcm5719-llvm-86325be3d706fa1d624932acfc986a09af2402fc.tar.gz bcm5719-llvm-86325be3d706fa1d624932acfc986a09af2402fc.zip | |
LoopLoadElim: Respect convergent
llvm-svn: 363162
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp b/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp index 68bb28d34d8..2b3d5e0ce9b 100644 --- a/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp +++ b/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp @@ -534,6 +534,12 @@ public: } if (!Checks.empty() || !LAI.getPSE().getUnionPredicate().isAlwaysTrue()) { + if (LAI.hasConvergentOp()) { + LLVM_DEBUG(dbgs() << "Versioning is needed but not allowed with " + "convergent calls\n"); + return false; + } + auto *HeaderBB = L->getHeader(); auto *F = HeaderBB->getParent(); bool OptForSize = F->hasOptSize() || |

