Verify after completing all updates.
Resolves PR46275.
if (MSSA) {
MSSAU->applyUpdates({{DominatorTree::Delete, Preheader, L->getHeader()}},
*DT);
- if (VerifyMemorySSA)
- MSSA->verifyMemorySSA();
SmallSetVector<BasicBlock *, 8> DeadBlockSet(L->block_begin(),
L->block_end());
MSSAU->removeBlocks(DeadBlockSet);
+ if (VerifyMemorySSA)
+ MSSA->verifyMemorySSA();
}
}
--- /dev/null
+; RUN: opt -S -memoryssa -loop-deletion -loop-simplifycfg -verify-memoryssa < %s | FileCheck %s
+; REQUIRES: asserts
+
+; CHECK-LABEL: @foo()
+define void @foo() {
+entry:
+ br i1 false, label %for.body.lr.ph, label %for.end
+
+for.body.lr.ph: ; preds = %entry
+ br label %for.body
+
+for.body: ; preds = %for.body, %for.body.lr.ph
+ call void @foo()
+ call void @foo()
+ br i1 false, label %for.body, label %for.cond.for.end_crit_edge
+
+for.cond.for.end_crit_edge: ; preds = %for.body
+ unreachable
+
+for.end: ; preds = %entry
+ ret void
+}
+