Skip to content

Commit c84a99d

Browse files
[InlineAdvisor] Update documentation for PluginInlineAdvisorAnalysis (NFC). (llvm#116715)
This commit updates the documentation for `PluginInlineAdvisorAnalysis` based on the feedback in PR#114615 suggesting that `registerAnalysisRegistrationCallback` should be the preferred method to register the plugin inline advisor analysis.
1 parent 197e012 commit c84a99d

File tree

3 files changed

+14
-39
lines changed

3 files changed

+14
-39
lines changed

llvm/include/llvm/Analysis/InlineAdvisor.h

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -247,37 +247,30 @@ class DefaultInlineAdvisor : public InlineAdvisor {
247247
///
248248
/// namespace {
249249
///
250-
/// InlineAdvisor *defaultAdvisorFactory(Module &M, FunctionAnalysisManager
251-
/// &FAM,
252-
/// InlineParams Params, InlineContext IC)
253-
/// {
250+
/// InlineAdvisor *defaultAdvisorFactory(Module &M,
251+
/// FunctionAnalysisManager &FAM,
252+
/// InlineParams Params,
253+
/// InlineContext IC) {
254254
/// return new DefaultInlineAdvisor(M, FAM, Params, IC);
255255
/// }
256256
///
257-
/// struct DefaultDynamicAdvisor : PassInfoMixin<DefaultDynamicAdvisor> {
258-
/// PreservedAnalyses run(Module &, ModuleAnalysisManager &MAM) {
259-
/// PluginInlineAdvisorAnalysis PA(defaultAdvisorFactory);
260-
/// MAM.registerPass([&] { return PA; });
261-
/// return PreservedAnalyses::all();
262-
/// }
263-
/// };
264-
///
265257
/// } // namespace
266258
///
267259
/// extern "C" LLVM_ATTRIBUTE_WEAK ::llvm::PassPluginLibraryInfo
268260
/// llvmGetPassPluginInfo() {
269261
/// return {LLVM_PLUGIN_API_VERSION, "DynamicDefaultAdvisor",
270-
/// LLVM_VERSION_STRING,
262+
/// LLVM_VERSION_STRING,
271263
/// [](PassBuilder &PB) {
272-
/// PB.registerPipelineStartEPCallback(
273-
/// [](ModulePassManager &MPM, OptimizationLevel Level) {
274-
/// MPM.addPass(DefaultDynamicAdvisor());
264+
/// PB.registerAnalysisRegistrationCallback(
265+
/// [](ModuleAnalysisManager &MAM) {
266+
/// PluginInlineAdvisorAnalysis PA(defaultAdvisorFactory);
267+
/// MAM.registerPass([&] { return PA; });
275268
/// });
276269
/// }};
277270
/// }
278271
///
279272
/// A plugin must implement an AdvisorFactory and register it with a
280-
/// PluginInlineAdvisorAnlysis to the provided ModuleanAlysisManager.
273+
/// PluginInlineAdvisorAnlysis to the provided ModuleAnalysisManager.
281274
///
282275
/// If such a plugin has been registered
283276
/// InlineAdvisorAnalysis::Result::tryCreate will return the dynamically loaded

llvm/unittests/Analysis/InlineAdvisorPlugin/InlineAdvisorPlugin.cpp

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,32 +17,16 @@ InlineAdvisor *DefaultAdvisorFactory(Module &M, FunctionAnalysisManager &FAM,
1717
return new DefaultInlineAdvisor(M, FAM, Params, IC);
1818
}
1919

20-
struct DefaultDynamicAdvisor : PassInfoMixin<DefaultDynamicAdvisor> {
21-
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM) {
22-
PluginInlineAdvisorAnalysis DA(DefaultAdvisorFactory);
23-
MAM.registerPass([&] { return DA; });
24-
return PreservedAnalyses::all();
25-
}
26-
};
27-
2820
} // namespace
2921

3022
/* New PM Registration */
3123
llvm::PassPluginLibraryInfo getDefaultDynamicAdvisorPluginInfo() {
3224
return {LLVM_PLUGIN_API_VERSION, "DynamicDefaultAdvisor", LLVM_VERSION_STRING,
3325
[](PassBuilder &PB) {
34-
PB.registerPipelineStartEPCallback(
35-
[](ModulePassManager &MPM, OptimizationLevel Level) {
36-
MPM.addPass(DefaultDynamicAdvisor());
37-
});
38-
PB.registerPipelineParsingCallback(
39-
[](StringRef Name, ModulePassManager &PM,
40-
ArrayRef<PassBuilder::PipelineElement> InnerPipeline) {
41-
if (Name == "dynamic-inline-advisor") {
42-
PM.addPass(DefaultDynamicAdvisor());
43-
return true;
44-
}
45-
return false;
26+
PB.registerAnalysisRegistrationCallback(
27+
[](ModuleAnalysisManager &MAM) {
28+
PluginInlineAdvisorAnalysis PA(DefaultAdvisorFactory);
29+
MAM.registerPass([&] { return PA; });
4630
});
4731
}};
4832
}

llvm/unittests/Analysis/PluginInlineAdvisorAnalysisTest.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@ struct CompilerInstance {
6666
Expected<PassPlugin> Plugin = PassPlugin::Load(PluginPath);
6767
ASSERT_TRUE(!!Plugin) << "Plugin path: " << PluginPath;
6868
Plugin->registerPassBuilderCallbacks(PB);
69-
ASSERT_THAT_ERROR(PB.parsePassPipeline(MPM, "dynamic-inline-advisor"),
70-
Succeeded());
7169
}
7270

7371
// connect the FooOnlyInlineAdvisor to our compiler instance

0 commit comments

Comments
 (0)