diff options
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/LoopUtils.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopUtils.cpp b/llvm/lib/Transforms/Utils/LoopUtils.cpp index c03d118..8bb4e17 100644 --- a/llvm/lib/Transforms/Utils/LoopUtils.cpp +++ b/llvm/lib/Transforms/Utils/LoopUtils.cpp @@ -1795,15 +1795,12 @@ Value *llvm::addDiffRuntimeChecks( ConstantInt::get(Ty, IC * C.AccessSize)); Value *Sink = Expander.expandCodeFor(C.SinkStart, Ty, Loc); Value *Src = Expander.expandCodeFor(C.SrcStart, Ty, Loc); - if (C.NeedsFreeze) { - IRBuilder<> Builder(Loc); - Sink = Builder.CreateFreeze(Sink, Sink->getName() + ".fr"); - Src = Builder.CreateFreeze(Src, Src->getName() + ".fr"); - } Value *Diff = ChkBuilder.CreateSub(Sink, Src); Value *IsConflict = ChkBuilder.CreateICmpULT(Diff, VFTimesUFTimesSize, "diff.check"); - + if (C.NeedsFreeze) + IsConflict = + ChkBuilder.CreateFreeze(IsConflict, IsConflict->getName() + ".fr"); if (MemoryRuntimeCheck) { IsConflict = ChkBuilder.CreateOr(MemoryRuntimeCheck, IsConflict, "conflict.rdx"); |