diff options
Diffstat (limited to 'llvm/lib/Target/R600/R600InstrInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/R600/R600InstrInfo.cpp | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/llvm/lib/Target/R600/R600InstrInfo.cpp b/llvm/lib/Target/R600/R600InstrInfo.cpp index c0827fc1ca4..2eca6cf4327 100644 --- a/llvm/lib/Target/R600/R600InstrInfo.cpp +++ b/llvm/lib/Target/R600/R600InstrInfo.cpp @@ -716,7 +716,13 @@ R600InstrInfo::AnalyzeBranch(MachineBasicBlock &MBB,      return false;    } -  // Get the last instruction in the block. +  // Remove successive JUMP +  while (I != MBB.begin() && llvm::prior(I)->getOpcode() == AMDGPU::JUMP) { +      MachineBasicBlock::iterator PriorI = llvm::prior(I); +      if (AllowModify) +        I->removeFromParent(); +      I = PriorI; +  }    MachineInstr *LastInst = I;    // If there is only one terminator instruction, process it. | 

