Preparation for Optimal Edge Profiling:
authorAndreas Neustifter <astifter-llvm@gmx.at>
Tue, 1 Sep 2009 10:08:39 +0000 (10:08 +0000)
committerAndreas Neustifter <astifter-llvm@gmx.at>
Tue, 1 Sep 2009 10:08:39 +0000 (10:08 +0000)
Add statistics for regular edge profiling, this enables the comparation of the
number of edges inserted by regular and optimal edge profiling.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80668 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Instrumentation/EdgeProfiling.cpp

index ed9ff5087750410a75ddb06ff77e39294d193dcc..b9cb275578e01a9d348b9c89c2c7f5286cb7fe4c 100644 (file)
@@ -16,7 +16,7 @@
 // number of counters inserted.
 //
 //===----------------------------------------------------------------------===//
-
+#define DEBUG_TYPE "insert-edge-profiling"
 #include "ProfilingUtils.h"
 #include "llvm/Module.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/raw_ostream.h"
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"
 #include "llvm/Transforms/Instrumentation.h"
+#include "llvm/ADT/Statistic.h"
 #include <set>
 using namespace llvm;
 
+STATISTIC(NumEdgesInserted, "The # of edges inserted.");
+
 namespace {
   class VISIBILITY_HIDDEN EdgeProfiler : public ModulePass {
     bool runOnModule(Module &M);
   public:
     static char ID; // Pass identification, replacement for typeid
     EdgeProfiler() : ModulePass(&ID) {}
+
+    virtual const char *getPassName() const {
+      return "Edge Profiler";
+    }
   };
 }
 
@@ -69,6 +76,7 @@ bool EdgeProfiler::runOnModule(Module &M) {
   GlobalVariable *Counters =
     new GlobalVariable(M, ATy, false, GlobalValue::InternalLinkage,
                        Constant::getNullValue(ATy), "EdgeProfCounters");
+  NumEdgesInserted = NumEdges;
 
   // Instrument all of the edges...
   unsigned i = 0;