summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp b/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
index adb0919231c..d82f26ac33a 100644
--- a/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
+++ b/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
@@ -158,6 +158,8 @@ static bool opcodeEmitsNoInsts(unsigned Opc) {
bool SILowerControlFlow::shouldSkip(MachineBasicBlock *From,
MachineBasicBlock *To) {
+ if (From->succ_empty())
+ return false;
unsigned NumInstr = 0;
MachineFunction *MF = From->getParent();
@@ -217,7 +219,7 @@ bool SILowerControlFlow::skipIfDead(MachineInstr &MI, MachineBasicBlock &NextBB)
return false;
MachineBasicBlock *SkipBB = insertSkipBlock(MBB, MI.getIterator());
- SkipBB->addSuccessor(&NextBB);
+ MBB.addSuccessor(SkipBB);
const DebugLoc &DL = MI.getDebugLoc();
@@ -493,7 +495,6 @@ MachineBasicBlock *SILowerControlFlow::insertSkipBlock(
++MBBI;
MF->insert(MBBI, SkipBB);
- MBB.addSuccessor(SkipBB);
return SkipBB;
}
OpenPOWER on IntegriCloud