aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Passes/PassBuilderPipelines.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Passes/PassBuilderPipelines.cpp')
-rw-r--r--llvm/lib/Passes/PassBuilderPipelines.cpp43
1 files changed, 19 insertions, 24 deletions
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index eeb1074..256cf9d 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -848,8 +848,7 @@ void PassBuilder::addPGOInstrPasses(ModulePassManager &MPM,
OptimizationLevel Level, bool RunProfileGen,
bool IsCS, bool AtomicCounterUpdate,
std::string ProfileFile,
- std::string ProfileRemappingFile,
- IntrusiveRefCntPtr<vfs::FileSystem> FS) {
+ std::string ProfileRemappingFile) {
assert(Level != OptimizationLevel::O0 && "Not expecting O0 here!");
if (!RunProfileGen) {
@@ -884,10 +883,11 @@ void PassBuilder::addPGOInstrPasses(ModulePassManager &MPM,
MPM.addPass(InstrProfilingLoweringPass(Options, IsCS));
}
-void PassBuilder::addPGOInstrPassesForO0(
- ModulePassManager &MPM, bool RunProfileGen, bool IsCS,
- bool AtomicCounterUpdate, std::string ProfileFile,
- std::string ProfileRemappingFile, IntrusiveRefCntPtr<vfs::FileSystem> FS) {
+void PassBuilder::addPGOInstrPassesForO0(ModulePassManager &MPM,
+ bool RunProfileGen, bool IsCS,
+ bool AtomicCounterUpdate,
+ std::string ProfileFile,
+ std::string ProfileRemappingFile) {
if (!RunProfileGen) {
assert(!ProfileFile.empty() && "Profile use expecting a profile file!");
MPM.addPass(
@@ -1133,8 +1133,8 @@ PassBuilder::buildModuleSimplificationPipeline(OptimizationLevel Level,
if (LoadSampleProfile) {
// Annotate sample profile right after early FPM to ensure freshness of
// the debug info.
- MPM.addPass(SampleProfileLoaderPass(PGOOpt->ProfileFile,
- PGOOpt->ProfileRemappingFile, Phase));
+ MPM.addPass(SampleProfileLoaderPass(
+ PGOOpt->ProfileFile, PGOOpt->ProfileRemappingFile, Phase, FS));
// Cache ProfileSummaryAnalysis once to avoid the potential need to insert
// RequireAnalysisPass for PSI before subsequent non-module passes.
MPM.addPass(RequireAnalysisPass<ProfileSummaryAnalysis, Module>());
@@ -1230,8 +1230,7 @@ PassBuilder::buildModuleSimplificationPipeline(OptimizationLevel Level,
addPGOInstrPasses(MPM, Level,
/*RunProfileGen=*/IsPGOInstrGen,
/*IsCS=*/false, PGOOpt->AtomicCounterUpdate,
- PGOOpt->ProfileFile, PGOOpt->ProfileRemappingFile,
- PGOOpt->FS);
+ PGOOpt->ProfileFile, PGOOpt->ProfileRemappingFile);
} else if (IsCtxProfGen || IsCtxProfUse) {
MPM.addPass(PGOInstrumentationGen(PGOInstrumentationType::CTXPROF));
// In pre-link, we just want the instrumented IR. We use the contextual
@@ -1254,10 +1253,10 @@ PassBuilder::buildModuleSimplificationPipeline(OptimizationLevel Level,
addPostPGOLoopRotation(MPM, Level);
MPM.addPass(PGOCtxProfLoweringPass());
} else if (IsColdFuncOnlyInstrGen) {
- addPGOInstrPasses(
- MPM, Level, /* RunProfileGen */ true, /* IsCS */ false,
- /* AtomicCounterUpdate */ false, InstrumentColdFuncOnlyPath,
- /* ProfileRemappingFile */ "", IntrusiveRefCntPtr<vfs::FileSystem>());
+ addPGOInstrPasses(MPM, Level, /* RunProfileGen */ true, /* IsCS */ false,
+ /* AtomicCounterUpdate */ false,
+ InstrumentColdFuncOnlyPath,
+ /* ProfileRemappingFile */ "");
}
if (IsPGOInstrGen || IsPGOInstrUse || IsCtxProfGen)
@@ -1268,7 +1267,7 @@ PassBuilder::buildModuleSimplificationPipeline(OptimizationLevel Level,
EnableSampledInstr));
if (IsMemprofUse)
- MPM.addPass(MemProfUsePass(PGOOpt->MemoryProfile, PGOOpt->FS));
+ MPM.addPass(MemProfUsePass(PGOOpt->MemoryProfile, FS));
if (PGOOpt && (PGOOpt->Action == PGOOptions::IRUse ||
PGOOpt->Action == PGOOptions::SampleUse))
@@ -1477,13 +1476,11 @@ PassBuilder::buildModuleOptimizationPipeline(OptimizationLevel Level,
if (PGOOpt->CSAction == PGOOptions::CSIRInstr)
addPGOInstrPasses(MPM, Level, /*RunProfileGen=*/true,
/*IsCS=*/true, PGOOpt->AtomicCounterUpdate,
- PGOOpt->CSProfileGenFile, PGOOpt->ProfileRemappingFile,
- PGOOpt->FS);
+ PGOOpt->CSProfileGenFile, PGOOpt->ProfileRemappingFile);
else if (PGOOpt->CSAction == PGOOptions::CSIRUse)
addPGOInstrPasses(MPM, Level, /*RunProfileGen=*/false,
/*IsCS=*/true, PGOOpt->AtomicCounterUpdate,
- PGOOpt->ProfileFile, PGOOpt->ProfileRemappingFile,
- PGOOpt->FS);
+ PGOOpt->ProfileFile, PGOOpt->ProfileRemappingFile);
}
// Re-compute GlobalsAA here prior to function passes. This is particularly
@@ -2071,13 +2068,11 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
if (PGOOpt->CSAction == PGOOptions::CSIRInstr)
addPGOInstrPasses(MPM, Level, /*RunProfileGen=*/true,
/*IsCS=*/true, PGOOpt->AtomicCounterUpdate,
- PGOOpt->CSProfileGenFile, PGOOpt->ProfileRemappingFile,
- PGOOpt->FS);
+ PGOOpt->CSProfileGenFile, PGOOpt->ProfileRemappingFile);
else if (PGOOpt->CSAction == PGOOptions::CSIRUse)
addPGOInstrPasses(MPM, Level, /*RunProfileGen=*/false,
/*IsCS=*/true, PGOOpt->AtomicCounterUpdate,
- PGOOpt->ProfileFile, PGOOpt->ProfileRemappingFile,
- PGOOpt->FS);
+ PGOOpt->ProfileFile, PGOOpt->ProfileRemappingFile);
}
// Break up allocas
@@ -2237,7 +2232,7 @@ PassBuilder::buildO0DefaultPipeline(OptimizationLevel Level,
MPM,
/*RunProfileGen=*/(PGOOpt->Action == PGOOptions::IRInstr),
/*IsCS=*/false, PGOOpt->AtomicCounterUpdate, PGOOpt->ProfileFile,
- PGOOpt->ProfileRemappingFile, PGOOpt->FS);
+ PGOOpt->ProfileRemappingFile);
// Instrument function entry and exit before all inlining.
MPM.addPass(createModuleToFunctionPassAdaptor(