summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXinliang David Li <davidxl@google.com>2016-09-20 22:39:47 +0000
committerXinliang David Li <davidxl@google.com>2016-09-20 22:39:47 +0000
commit9780fc1451e66f620512b47cff0d3c78c7431466 (patch)
tree211a963debe76ea58ecb892fb450d561c7bba67e
parent177ccc554bdb683e1d31a0a16c2746b8e41c6756 (diff)
downloadbcm5719-llvm-9780fc1451e66f620512b47cff0d3c78c7431466.tar.gz
bcm5719-llvm-9780fc1451e66f620512b47cff0d3c78c7431466.zip
code cleanup -- commoning IR travsersals
llvm-svn: 282034
-rw-r--r--llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp b/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
index 4f333d61810..615d9edf3e4 100644
--- a/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
+++ b/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
@@ -314,6 +314,7 @@ private:
std::unordered_multimap<Comdat *, GlobalValue *> &ComdatMembers;
public:
+ std::vector<Instruction *> IndirectCallSites;
SelectInstVisitor SIVisitor;
std::string FuncName;
GlobalVariable *FuncNameVar;
@@ -347,6 +348,7 @@ public:
// This should be done before CFG hash computation.
SIVisitor.countSelects(Func);
NumOfPGOSelectInsts += SIVisitor.getNumOfSelectInsts();
+ IndirectCallSites = findIndirectCallSites(Func);
FuncName = getPGOFuncName(F);
computeCFGHash();
@@ -395,7 +397,7 @@ void FuncPGOInstrumentation<Edge, BBInfo>::computeCFGHash() {
}
JC.update(Indexes);
FunctionHash = (uint64_t)SIVisitor.getNumOfSelectInsts() << 56 |
- (uint64_t)findIndirectCallSites(F).size() << 48 |
+ (uint64_t)IndirectCallSites.size() << 48 |
(uint64_t)MST.AllEdges.size() << 32 | JC.getCRC();
}
@@ -550,7 +552,7 @@ static void instrumentOneFunc(
return;
unsigned NumIndirectCallSites = 0;
- for (auto &I : findIndirectCallSites(F)) {
+ for (auto &I : FuncInfo.IndirectCallSites) {
CallSite CS(I);
Value *Callee = CS.getCalledValue();
DEBUG(dbgs() << "Instrument one indirect call: CallSite Index = "
@@ -1002,7 +1004,7 @@ void PGOUseFunc::annotateIndirectCallSites() {
createPGOFuncNameMetadata(F, FuncInfo.FuncName);
unsigned IndirectCallSiteIndex = 0;
- auto IndirectCallSites = findIndirectCallSites(F);
+ auto &IndirectCallSites = FuncInfo.IndirectCallSites;
unsigned NumValueSites =
ProfileRecord.getNumValueSites(IPVK_IndirectCallTarget);
if (NumValueSites != IndirectCallSites.size()) {
OpenPOWER on IntegriCloud