diff options
author | Lang Hames <lhames@gmail.com> | 2012-02-15 01:23:52 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2012-02-15 01:23:52 +0000 |
commit | 77d205152a2bbbbe10aef16266f3c66c461dc3fd (patch) | |
tree | c3a64140d077700e63243053dd1e0d7bed77d3b0 /llvm/lib/CodeGen/LiveIntervalAnalysis.cpp | |
parent | c62bb3914260c9b864dcf88e8a12ee645f5368da (diff) | |
download | bcm5719-llvm-77d205152a2bbbbe10aef16266f3c66c461dc3fd.tar.gz bcm5719-llvm-77d205152a2bbbbe10aef16266f3c66c461dc3fd.zip |
Disentangle moving a machine instr from updating LiveIntervals.
llvm-svn: 150552
Diffstat (limited to 'llvm/lib/CodeGen/LiveIntervalAnalysis.cpp')
-rw-r--r-- | llvm/lib/CodeGen/LiveIntervalAnalysis.cpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp index 30374da18f2..d27b8e5fd9f 100644 --- a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp @@ -963,22 +963,17 @@ static void handleMoveUses(const MachineBasicBlock *mbb, } } -void LiveIntervals::moveInstr(MachineBasicBlock::iterator insertPt, - MachineInstr *mi) { - MachineBasicBlock* mbb = mi->getParent(); - assert((insertPt == mbb->end() || insertPt->getParent() == mbb) && - "Cannot handle moves across basic block boundaries."); - assert(&*insertPt != mi && "No-op move requested?"); - assert(!mi->isBundled() && "Can't handle bundled instructions yet."); - - // Grab the original instruction index. +void LiveIntervals::handleMove(MachineInstr *mi) { SlotIndex origIdx = indexes_->getInstructionIndex(mi); - - // Move the machine instr and obtain its new index. indexes_->removeMachineInstrFromMaps(mi); - mbb->splice(insertPt, mbb, mi); SlotIndex miIdx = indexes_->insertMachineInstrInMaps(mi); + MachineBasicBlock* mbb = mi->getParent(); + + assert(getMBBFromIndex(origIdx) == mbb && + "Cannot handle moves across basic block boundaries."); + assert(!mi->isBundled() && "Can't handle bundled instructions yet."); + // Pick the direction. bool movingUp = miIdx < origIdx; |