diff options
author | Owen Anderson <resistor@mac.com> | 2008-06-02 17:36:36 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2008-06-02 17:36:36 +0000 |
commit | e3abb0a858ceaea4a4ffa7c1874be8426d2724bc (patch) | |
tree | 2f042a2c0219b255378471dbdf1e73118856812f /lib/CodeGen/LiveIntervalAnalysis.cpp | |
parent | 98e3a6829aaf070a8893a164d6dc8c75f9f9feaa (diff) |
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
Diffstat (limited to 'lib/CodeGen/LiveIntervalAnalysis.cpp')
-rw-r--r-- | lib/CodeGen/LiveIntervalAnalysis.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp index f711c0ccaa..54738539fa 100644 --- a/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/lib/CodeGen/LiveIntervalAnalysis.cpp @@ -128,13 +128,11 @@ void LiveIntervals::computeNumbering() { 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 @@ void LiveIntervals::computeNumbering() { 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 |