summaryrefslogtreecommitdiffstats
path: root/lib/Transforms/Instrumentation
diff options
context:
space:
mode:
authorAndreas Neustifter <astifter-llvm@gmx.at>2009-09-01 10:08:39 +0000
committerAndreas Neustifter <astifter-llvm@gmx.at>2009-09-01 10:08:39 +0000
commit62353a8d1323b42e4c28ea3a6f5cca39acac3195 (patch)
tree4e6344aec41aae045036cb16ebdbc954528459bd /lib/Transforms/Instrumentation
parente885af9fb773f5a01a5b31fa0a0b7fd0489bde56 (diff)
downloadexternal_llvm-62353a8d1323b42e4c28ea3a6f5cca39acac3195.zip
external_llvm-62353a8d1323b42e4c28ea3a6f5cca39acac3195.tar.gz
external_llvm-62353a8d1323b42e4c28ea3a6f5cca39acac3195.tar.bz2
Preparation for Optimal Edge Profiling:
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
Diffstat (limited to 'lib/Transforms/Instrumentation')
-rw-r--r--lib/Transforms/Instrumentation/EdgeProfiling.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/Transforms/Instrumentation/EdgeProfiling.cpp b/lib/Transforms/Instrumentation/EdgeProfiling.cpp
index ed9ff50..b9cb275 100644
--- a/lib/Transforms/Instrumentation/EdgeProfiling.cpp
+++ b/lib/Transforms/Instrumentation/EdgeProfiling.cpp
@@ -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"
@@ -24,15 +24,22 @@
#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;