Add efficiency statistic.
authorAlkis Evlogimenos <alkis@evlogimenos.com>
Sun, 4 Jul 2004 07:59:06 +0000 (07:59 +0000)
committerAlkis Evlogimenos <alkis@evlogimenos.com>
Sun, 4 Jul 2004 07:59:06 +0000 (07:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14590 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegAllocLinearScan.cpp

index 285f493fff3e74e68c4cc1e3174eea0ffab0a625..0e52f46c6f2c19056539144e29ffe4f518de5f15 100644 (file)
@@ -21,6 +21,7 @@
 #include "llvm/Target/MRegisterInfo.h"
 #include "llvm/Target/TargetMachine.h"
 #include "Support/Debug.h"
+#include "Support/Statistic.h"
 #include "Support/STLExtras.h"
 #include "LiveIntervals.h"
 #include "PhysRegTracker.h"
 using namespace llvm;
 
 namespace {
+
+    Statistic<double> efficiency
+    ("regalloc", "Ratio of intervals processed over total intervals");
+
     class RA : public MachineFunctionPass {
     private:
         MachineFunction* mf_;
@@ -178,7 +183,7 @@ void RA::linearScan()
         // pick the interval with the earliest start point
         IntervalPtrs::value_type cur = unhandled_.front();
         unhandled_.pop_front();
-
+        ++efficiency;
         DEBUG(std::cerr << "\n*** CURRENT ***: " << *cur << '\n');
 
         processActiveIntervals(cur);
@@ -201,6 +206,7 @@ void RA::linearScan()
         DEBUG(printIntervals("inactive", inactive_.begin(), inactive_.end()));
         // DEBUG(verifyAssignment());
     }
+    efficiency /= li_->getIntervals().size();
 
     // expire any remaining active intervals
     for (IntervalPtrs::iterator i = active_.begin(); i != active_.end(); ++i) {