diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-07-15 00:58:13 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-07-15 00:58:13 +0000 |
commit | fa5a86a40373797c8f10bc2d57e60064b1623db1 (patch) | |
tree | 665673ddc76432eb59f6a1c5f84ad5973e0e2c85 /llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp | |
parent | 83ab049af2579ca6afc5934923b81c432802910a (diff) | |
download | bcm5719-llvm-fa5a86a40373797c8f10bc2d57e60064b1623db1.tar.gz bcm5719-llvm-fa5a86a40373797c8f10bc2d57e60064b1623db1.zip |
AMDGPU: Fix trying to skip from a block with no successors
Found while reducing bug 28550
llvm-svn: 275509
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp | 5 |
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; } |