summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-07-15 00:58:09 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-07-15 00:58:09 +0000
commit83ab049af2579ca6afc5934923b81c432802910a (patch)
tree197b880ac8b3550ef4fc674d23aeeb757520d403 /llvm/lib/Target
parent03f8907f65c5581a3d2653210dcab07e116ebe2f (diff)
downloadbcm5719-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.cpp16
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);
OpenPOWER on IntegriCloud