diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-07-15 00:58:09 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-07-15 00:58:09 +0000 |
| commit | 83ab049af2579ca6afc5934923b81c432802910a (patch) | |
| tree | 197b880ac8b3550ef4fc674d23aeeb757520d403 /llvm/lib/Target | |
| parent | 03f8907f65c5581a3d2653210dcab07e116ebe2f (diff) | |
| download | bcm5719-llvm-83ab049af2579ca6afc5934923b81c432802910a.tar.gz bcm5719-llvm-83ab049af2579ca6afc5934923b81c432802910a.zip | |
AMDGPU: Fix splitting kill blocks with defs before kill
llvm-svn: 275508
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/SIISelLowering.cpp | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp index 0bbadf348db..1b68ff692d8 100644 --- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp @@ -1091,12 +1091,6 @@ MachineBasicBlock *SITargetLowering::splitKillBlock(MachineInstr &MI, MachineBasicBlock *SplitBB = MF->CreateMachineBasicBlock(BB->getBasicBlock()); - SmallSet<unsigned, 8> SplitDefRegs; - for (auto I = SplitPoint, E = BB->end(); I != E; ++I) { - for (MachineOperand &Def : I->defs()) - SplitDefRegs.insert(Def.getReg()); - } - // Fix the block phi references to point to the new block for the defs in the // second piece of the block. for (MachineBasicBlock *Succ : BB->successors()) { @@ -1104,13 +1098,10 @@ MachineBasicBlock *SITargetLowering::splitKillBlock(MachineInstr &MI, if (!MI.isPHI()) break; - for (unsigned I = 1, E = MI.getNumOperands(); I != E; I += 2) { - unsigned IncomingReg = MI.getOperand(I).getReg(); - MachineOperand &FromBB = MI.getOperand(I + 1); + for (unsigned I = 2, E = MI.getNumOperands(); I != E; I += 2) { + MachineOperand &FromBB = MI.getOperand(I); if (BB == FromBB.getMBB()) { - if (SplitDefRegs.count(IncomingReg)) - FromBB.setMBB(SplitBB); - + FromBB.setMBB(SplitBB); break; } } @@ -1120,7 +1111,6 @@ MachineBasicBlock *SITargetLowering::splitKillBlock(MachineInstr &MI, MF->insert(++MachineFunction::iterator(BB), SplitBB); SplitBB->splice(SplitBB->begin(), BB, SplitPoint, BB->end()); - SplitBB->transferSuccessors(BB); BB->addSuccessor(SplitBB); |

