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
This commit is contained in:
Andreas Neustifter 2009-09-01 10:08:39 +00:00
parent e885af9fb7
commit 62353a8d13

View 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"
@ -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;