diff options
Diffstat (limited to 'lib/CodeGen/LiveIntervalAnalysis.cpp')
-rw-r--r-- | lib/CodeGen/LiveIntervalAnalysis.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp index a8aa21a96a..0bf47322ba 100644 --- a/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/lib/CodeGen/LiveIntervalAnalysis.cpp @@ -963,13 +963,15 @@ static void handleMoveUses(const MachineBasicBlock *mbb, } } -void LiveIntervals::handleMove(MachineInstr *mi) { + + +void LiveIntervals::handleMove(MachineInstr* mi) { SlotIndex origIdx = indexes_->getInstructionIndex(mi); indexes_->removeMachineInstrFromMaps(mi); - SlotIndex miIdx = indexes_->insertMachineInstrInMaps(mi); - + SlotIndex miIdx = mi->isInsideBundle() ? + indexes_->getInstructionIndex(mi->getBundleStart()) : + indexes_->insertMachineInstrInMaps(mi); MachineBasicBlock* mbb = mi->getParent(); - assert(getMBBStartIdx(mbb) <= origIdx && origIdx < getMBBEndIdx(mbb) && "Cannot handle moves across basic block boundaries."); assert(!mi->isBundled() && "Can't handle bundled instructions yet."); |