From 69ea68d4b62c18d9cdff5dba708c745dff97a7d8 Mon Sep 17 00:00:00 2001 From: Alkis Evlogimenos Date: Sun, 4 Jul 2004 17:23:35 +0000 Subject: [PATCH] Correctly compute the ration of iterations/#intervals. llvm-svn: 14626 --- lib/CodeGen/RegAllocLinearScan.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/CodeGen/RegAllocLinearScan.cpp b/lib/CodeGen/RegAllocLinearScan.cpp index 0e52f46c6f2..d5d3459906f 100644 --- a/lib/CodeGen/RegAllocLinearScan.cpp +++ b/lib/CodeGen/RegAllocLinearScan.cpp @@ -38,6 +38,9 @@ namespace { Statistic efficiency ("regalloc", "Ratio of intervals processed over total intervals"); + static unsigned numIterations = 0; + static unsigned numIntervals = 0; + class RA : public MachineFunctionPass { private: MachineFunction* mf_; @@ -183,7 +186,7 @@ void RA::linearScan() // pick the interval with the earliest start point IntervalPtrs::value_type cur = unhandled_.front(); unhandled_.pop_front(); - ++efficiency; + ++numIterations; DEBUG(std::cerr << "\n*** CURRENT ***: " << *cur << '\n'); processActiveIntervals(cur); @@ -206,7 +209,8 @@ void RA::linearScan() DEBUG(printIntervals("inactive", inactive_.begin(), inactive_.end())); // DEBUG(verifyAssignment()); } - efficiency /= li_->getIntervals().size(); + numIntervals += li_->getIntervals().size(); + efficiency = double(numIterations) / double(numIntervals); // expire any remaining active intervals for (IntervalPtrs::iterator i = active_.begin(); i != active_.end(); ++i) {