diff options
author | Xinliang David Li <davidxl@google.com> | 2016-09-20 22:39:47 +0000 |
---|---|---|
committer | Xinliang David Li <davidxl@google.com> | 2016-09-20 22:39:47 +0000 |
commit | 9780fc1451e66f620512b47cff0d3c78c7431466 (patch) | |
tree | 211a963debe76ea58ecb892fb450d561c7bba67e | |
parent | 177ccc554bdb683e1d31a0a16c2746b8e41c6756 (diff) | |
download | bcm5719-llvm-9780fc1451e66f620512b47cff0d3c78c7431466.tar.gz bcm5719-llvm-9780fc1451e66f620512b47cff0d3c78c7431466.zip |
code cleanup -- commoning IR travsersals
llvm-svn: 282034
-rw-r--r-- | llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp | 8 |
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()) { |