[llvm] r268301 - Code refactoring -- preparation for new PM porting /NFC
Xinliang David Li via llvm-commits
llvm-commits at lists.llvm.org
Mon May 2 13:33:59 PDT 2016
Author: davidxl
Date: Mon May 2 15:33:59 2016
New Revision: 268301
URL: http://llvm.org/viewvc/llvm-project?rev=268301&view=rev
Log:
Code refactoring -- preparation for new PM porting /NFC
Modified:
llvm/trunk/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
Modified: llvm/trunk/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/PGOInstrumentation.cpp?rev=268301&r1=268300&r2=268301&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Instrumentation/PGOInstrumentation.cpp (original)
+++ llvm/trunk/lib/Transforms/Instrumentation/PGOInstrumentation.cpp Mon May 2 15:33:59 2016
@@ -774,23 +774,33 @@ static void createIRLevelProfileFlagVari
StringRef(INSTR_PROF_QUOTE(IR_LEVEL_PROF_VERSION_VAR))));
}
-bool PGOInstrumentationGen::runOnModule(Module &M) {
- if (skipModule(M))
- return false;
-
+static bool InstrumentAllFunctions(
+ Module &M, function_ref<BranchProbabilityInfo &(Function &)> LookupBPI,
+ function_ref<BlockFrequencyInfo &(Function &)> LookupBFI) {
createIRLevelProfileFlagVariable(M);
for (auto &F : M) {
if (F.isDeclaration())
continue;
- BranchProbabilityInfo *BPI =
- &(getAnalysis<BranchProbabilityInfoWrapperPass>(F).getBPI());
- BlockFrequencyInfo *BFI =
- &(getAnalysis<BlockFrequencyInfoWrapperPass>(F).getBFI());
- instrumentOneFunc(F, &M, BPI, BFI);
+ auto &BPI = LookupBPI(F);
+ auto &BFI = LookupBFI(F);
+ instrumentOneFunc(F, &M, &BPI, &BFI);
}
return true;
}
+bool PGOInstrumentationGen::runOnModule(Module &M) {
+ if (skipModule(M))
+ return false;
+
+ auto LookupBPI = [this](Function &F) -> BranchProbabilityInfo & {
+ return this->getAnalysis<BranchProbabilityInfoWrapperPass>(F).getBPI();
+ };
+ auto LookupBFI = [this](Function &F) -> BlockFrequencyInfo & {
+ return this->getAnalysis<BlockFrequencyInfoWrapperPass>(F).getBFI();
+ };
+ return InstrumentAllFunctions(M, LookupBPI, LookupBFI);
+}
+
static void setPGOCountOnFunc(PGOUseFunc &Func,
IndexedInstrProfReader *PGOReader) {
if (Func.readCounters(PGOReader)) {
More information about the llvm-commits
mailing list