GlobalISel: clear pending phis after MachineFunction translated
Test is just reordering the existing functions (it would trigger for any
function after one with a phi).
llvm-svn: 277841
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
index 2982731..618a385 100644
--- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
@@ -249,6 +249,8 @@
MIB.addMBB(BBToMBB[PI->getIncomingBlock(i)]);
}
}
+
+ PendingPHIs.clear();
}
bool IRTranslator::translate(const Instruction &Inst) {
@@ -327,6 +329,8 @@
MRI = &MF.getRegInfo();
DL = &F.getParent()->getDataLayout();
+ assert(PendingPHIs.empty() && "stale PHIs");
+
// Setup the arguments.
MachineBasicBlock &MBB = getOrCreateBB(F.front());
MIRBuilder.setMBB(MBB);