forked from OSchip/llvm-project
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. llvm-svn: 80668
This commit is contained in:
parent
8bcd5dcf5d
commit
eb5a9d34d6
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue