summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenPGO.h
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2014-03-18 21:58:06 +0000
committerJustin Bogner <mail@justinbogner.com>2014-03-18 21:58:06 +0000
commitb4416f58d54bec73aeefa3122fb195ab1dd73517 (patch)
treed6fac4cc9299a96b332f6e2ea3f14d462661f956 /clang/lib/CodeGen/CodeGenPGO.h
parentbc9c856161118a6be1b956221ed52bae27286eed (diff)
downloadbcm5719-llvm-b4416f58d54bec73aeefa3122fb195ab1dd73517.tar.gz
bcm5719-llvm-b4416f58d54bec73aeefa3122fb195ab1dd73517.zip
CodeGen: Include a function hash in instrumentation based profiling
The hash itself is still the number of counters, which isn't all that useful, but this separates the API changes from the actual implementation of the hash and will make it easier to transition to the ProfileData library once it's implemented. llvm-svn: 204186
Diffstat (limited to 'clang/lib/CodeGen/CodeGenPGO.h')
-rw-r--r--clang/lib/CodeGen/CodeGenPGO.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CodeGenPGO.h b/clang/lib/CodeGen/CodeGenPGO.h
index 2f1fe5dba8a..e859324ae08 100644
--- a/clang/lib/CodeGen/CodeGenPGO.h
+++ b/clang/lib/CodeGen/CodeGenPGO.h
@@ -42,7 +42,8 @@ public:
PGOProfileData(CodeGenModule &CGM, std::string Path);
/// Fill Counts with the profile data for the given function name. Returns
/// false on success.
- bool getFunctionCounts(StringRef FuncName, std::vector<uint64_t> &Counts);
+ bool getFunctionCounts(StringRef FuncName, uint64_t &FuncHash,
+ std::vector<uint64_t> &Counts);
/// Return the maximum of all known function counts.
uint64_t getMaximumFunctionCount() { return MaxFunctionCount; }
};
@@ -57,6 +58,7 @@ private:
llvm::GlobalValue::LinkageTypes FuncLinkage;
unsigned NumRegionCounters;
+ uint64_t FunctionHash;
llvm::GlobalVariable *RegionCounters;
llvm::DenseMap<const Stmt*, unsigned> *RegionCounterMap;
llvm::DenseMap<const Stmt*, uint64_t> *StmtCountMap;
@@ -65,9 +67,9 @@ private:
public:
CodeGenPGO(CodeGenModule &CGM)
- : CGM(CGM), PrefixedFuncName(0), NumRegionCounters(0), RegionCounters(0),
- RegionCounterMap(0), StmtCountMap(0), RegionCounts(0),
- CurrentRegionCount(0) {}
+ : CGM(CGM), PrefixedFuncName(0), NumRegionCounters(0), FunctionHash(0),
+ RegionCounters(0), RegionCounterMap(0), StmtCountMap(0),
+ RegionCounts(0), CurrentRegionCount(0) {}
~CodeGenPGO() {
if (PrefixedFuncName) delete PrefixedFuncName;
}
OpenPOWER on IntegriCloud