diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-10-16 21:09:14 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-10-16 21:09:14 +0000 |
commit | 8f644cef0f11dce6c2ae99fba1038b6a660feca5 (patch) | |
tree | 441873447436b8f8cc6ff164502203484156c7d7 /llvm/lib/CodeGen/RegAllocLinearScan.cpp | |
parent | 923aebe09cf0967b4c9845bc3de2d646021e6d4a (diff) | |
download | bcm5719-llvm-8f644cef0f11dce6c2ae99fba1038b6a660feca5.tar.gz bcm5719-llvm-8f644cef0f11dce6c2ae99fba1038b6a660feca5.zip |
Some clean up.
llvm-svn: 43043
Diffstat (limited to 'llvm/lib/CodeGen/RegAllocLinearScan.cpp')
-rw-r--r-- | llvm/lib/CodeGen/RegAllocLinearScan.cpp | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/llvm/lib/CodeGen/RegAllocLinearScan.cpp b/llvm/lib/CodeGen/RegAllocLinearScan.cpp index 025de81aa93..0ea4c4ca63f 100644 --- a/llvm/lib/CodeGen/RegAllocLinearScan.cpp +++ b/llvm/lib/CodeGen/RegAllocLinearScan.cpp @@ -44,9 +44,6 @@ linearscanRegAlloc("linearscan", " linear scan register allocator", createLinearScanRegisterAllocator); namespace { - static unsigned numIterations = 0; - static unsigned numIntervals = 0; - struct VISIBILITY_HIDDEN RALinScan : public MachineFunctionPass { static char ID; RALinScan() : MachineFunctionPass((intptr_t)&ID) {} @@ -249,16 +246,13 @@ void RALinScan::linearScan() DOUT << "********** LINEAR SCAN **********\n"; DOUT << "********** Function: " << mf_->getFunction()->getName() << '\n'; - // DEBUG(printIntervals("unhandled", unhandled_.begin(), unhandled_.end())); DEBUG(printIntervals("fixed", fixed_.begin(), fixed_.end())); - DEBUG(printIntervals("active", active_.begin(), active_.end())); - DEBUG(printIntervals("inactive", inactive_.begin(), inactive_.end())); while (!unhandled_.empty()) { // pick the interval with the earliest start point LiveInterval* cur = unhandled_.top(); unhandled_.pop(); - ++numIterations; + ++NumIters; DOUT << "\n*** CURRENT ***: " << *cur << '\n'; processActiveIntervals(cur->beginNumber()); @@ -275,27 +269,24 @@ void RALinScan::linearScan() DEBUG(printIntervals("active", active_.begin(), active_.end())); DEBUG(printIntervals("inactive", inactive_.begin(), inactive_.end())); } - numIntervals += li_->getNumIntervals(); - NumIters += numIterations; // expire any remaining active intervals - for (IntervalPtrs::reverse_iterator - i = active_.rbegin(); i != active_.rend(); ) { - unsigned reg = i->first->reg; - DOUT << "\tinterval " << *i->first << " expired\n"; + while (!active_.empty()) { + IntervalPtr &IP = active_.back(); + unsigned reg = IP.first->reg; + DOUT << "\tinterval " << *IP.first << " expired\n"; assert(MRegisterInfo::isVirtualRegister(reg) && "Can only allocate virtual registers!"); reg = vrm_->getPhys(reg); prt_->delRegUse(reg); - i = IntervalPtrs::reverse_iterator(active_.erase(i.base()-1)); + active_.pop_back(); } // expire any remaining inactive intervals - for (IntervalPtrs::reverse_iterator - i = inactive_.rbegin(); i != inactive_.rend(); ) { - DOUT << "\tinterval " << *i->first << " expired\n"; - i = IntervalPtrs::reverse_iterator(inactive_.erase(i.base()-1)); - } + DEBUG(for (IntervalPtrs::reverse_iterator + i = inactive_.rbegin(); i != inactive_.rend(); ) + DOUT << "\tinterval " << *i->first << " expired\n"); + inactive_.clear(); // A brute force way of adding live-ins to every BB. MachineFunction::iterator MBB = mf_->begin(); |