diff options
Diffstat (limited to 'lib/CodeGen/SplitKit.cpp')
-rw-r--r-- | lib/CodeGen/SplitKit.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/CodeGen/SplitKit.cpp b/lib/CodeGen/SplitKit.cpp index 4bb13e44b8..7ed9089ecd 100644 --- a/lib/CodeGen/SplitKit.cpp +++ b/lib/CodeGen/SplitKit.cpp @@ -48,6 +48,7 @@ SplitAnalysis::SplitAnalysis(const MachineFunction &mf, curli_(0) {} void SplitAnalysis::clear() { + UseSlots.clear(); usingInstrs_.clear(); usingBlocks_.clear(); usingLoops_.clear(); @@ -67,6 +68,7 @@ void SplitAnalysis::analyzeUses() { MachineInstr *MI = I.skipInstruction();) { if (MI->isDebugValue() || !usingInstrs_.insert(MI)) continue; + UseSlots.push_back(lis_.getInstructionIndex(MI).getDefIndex()); MachineBasicBlock *MBB = MI->getParent(); if (usingBlocks_[MBB]++) continue; @@ -74,6 +76,7 @@ void SplitAnalysis::analyzeUses() { Loop = Loop->getParentLoop()) usingLoops_[Loop]++; } + array_pod_sort(UseSlots.begin(), UseSlots.end()); DEBUG(dbgs() << " counted " << usingInstrs_.size() << " instrs, " << usingBlocks_.size() << " blocks, " |