Correctly handle removed instructions at the beginning of MBBs when renumbering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51876 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp
index f711c0c..5473853 100644
--- a/lib/CodeGen/LiveIntervalAnalysis.cpp
+++ b/lib/CodeGen/LiveIntervalAnalysis.cpp
@@ -128,13 +128,11 @@
i++;
} while (!newInstr);
- MachineInstr* preceding = i2miMap_[(mi2iMap_[newInstr] -
- InstrSlots::NUM) / InstrSlots::NUM];
- if (preceding->getParent() == newInstr->getParent() &&
- preceding->modifiesRegister(I->second.reg))
- LI->start = mi2iMap_[newInstr] - InstrSlots::NUM + offset;
- else
+ if (mi2iMap_[newInstr] ==
+ MBB2IdxMap[newInstr->getParent()->getNumber()].first)
LI->start = mi2iMap_[newInstr];
+ else
+ LI->start = mi2iMap_[newInstr] - InstrSlots::NUM + offset;
}
// Remap the ending index in the same way that we remapped the start,
@@ -172,13 +170,11 @@
i++;
} while (!newInstr);
- MachineInstr* preceding = i2miMap_[(mi2iMap_[newInstr] -
- InstrSlots::NUM) / InstrSlots::NUM];
- if (preceding->getParent() == newInstr->getParent() &&
- preceding->modifiesRegister(I->second.reg))
- vni->def = mi2iMap_[newInstr] - InstrSlots::NUM + offset;
- else
+ if (mi2iMap_[newInstr] ==
+ MBB2IdxMap[newInstr->getParent()->getNumber()].first)
vni->def = mi2iMap_[newInstr];
+ else
+ vni->def = mi2iMap_[newInstr] - InstrSlots::NUM + offset;
}
// Remap the VNInfo kill indices, which works the same as