diff --git a/llvm/lib/Transforms/Scalar/LICM.cpp b/llvm/lib/Transforms/Scalar/LICM.cpp index 94e5e978660b5..9a206956bfe23 100644 --- a/llvm/lib/Transforms/Scalar/LICM.cpp +++ b/llvm/lib/Transforms/Scalar/LICM.cpp @@ -401,7 +401,6 @@ bool LoopInvariantCodeMotion::runOnLoop(Loop *L, AAResults *AA, LoopInfo *LI, bool Changed = false; assert(L->isLCSSAForm(*DT) && "Loop is not in LCSSA form."); - MSSA->ensureOptimizedUses(); // If this loop has metadata indicating that LICM is not to be performed then // just exit. @@ -1304,7 +1303,8 @@ bool llvm::canSinkOrHoistInst(Instruction &I, AAResults *AA, DominatorTree *DT, if (auto *Accesses = MSSA->getBlockAccesses(BB)) { for (const auto &MA : *Accesses) if (const auto *MU = dyn_cast(&MA)) { - auto *MD = MU->getDefiningAccess(); + auto *MD = getClobberingMemoryAccess(*MSSA, BAA, Flags, + const_cast(MU)); if (!MSSA->isLiveOnEntryDef(MD) && CurLoop->contains(MD->getBlock())) return false; diff --git a/llvm/test/Analysis/MemorySSA/pr43427.ll b/llvm/test/Analysis/MemorySSA/pr43427.ll index 6b9ac5c5288f1..18d87251e1067 100644 --- a/llvm/test/Analysis/MemorySSA/pr43427.ll +++ b/llvm/test/Analysis/MemorySSA/pr43427.ll @@ -19,7 +19,7 @@ ; CHECK-NEXT: [[NO7]] = MemoryPhi({lbl2,[[NO8]]},{for.end,2}) ; CHECK: cleanup: -; CHECK-NEXT: MemoryUse([[NO7]]) +; CHECK-NEXT: MemoryUse([[NO2]]) ; CHECK-NEXT: %cleanup.dest = load i32, ptr undef, align 1 ; CHECK: lbl1.backedge: diff --git a/llvm/test/Analysis/MemorySSA/pr45927.ll b/llvm/test/Analysis/MemorySSA/pr45927.ll index a6a586feabdaa..7786b80c19a54 100644 --- a/llvm/test/Analysis/MemorySSA/pr45927.ll +++ b/llvm/test/Analysis/MemorySSA/pr45927.ll @@ -24,7 +24,7 @@ ; CHECK-NEXT: store i16 %inc.i.lcssa, ptr @c, align 1 ; CHECK-NEXT: ; [[NO2:.*]] = MemoryDef([[NO6]]) ; CHECK-NEXT: store i16 1, ptr @a, align 1 -; CHECK-NEXT: ; MemoryUse([[NO2]]) +; CHECK-NEXT: ; MemoryUse([[NO6]]) ; CHECK-NEXT: %tmp2 = load i16, ptr @c, align 1 ; CHECK-NEXT: br label %g.exit diff --git a/llvm/test/Analysis/MemorySSA/pr49859.ll b/llvm/test/Analysis/MemorySSA/pr49859.ll index 9778ca831c26c..25ef58698d92d 100644 --- a/llvm/test/Analysis/MemorySSA/pr49859.ll +++ b/llvm/test/Analysis/MemorySSA/pr49859.ll @@ -67,7 +67,7 @@ final.cleanup: ; preds = %if.then, %for br label %for.end ; CHECK: for.end: -; CHECK-NEXT: ; MemoryUse([[NO12]]) +; CHECK-NEXT: ; MemoryUse([[NO20]]) ; CHECK-NEXT: %3 = load i8, ptr %sum, align 1 for.end: ; preds = %final.cleanup %8 = load i8, ptr %sum, align 1