[llvm] [InlineAdvisor] Update documentation for `PluginInlineAdvisorAnalysis` (NFC). (PR #116715)
Michele Scandale via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 18 15:59:09 PST 2024
https://github.com/michele-scandale created https://github.com/llvm/llvm-project/pull/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.
>From 0d70247d4a516e28dc7dee2c16457e0cc02ba676 Mon Sep 17 00:00:00 2001
From: Michele Scandale <michele.scandale at gmail.com>
Date: Mon, 18 Nov 2024 15:56:24 -0800
Subject: [PATCH] [InlineAdvisor] Update documentation for
`PluginInlineAdvisorAnalysis` (NFC).
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.
---
llvm/include/llvm/Analysis/InlineAdvisor.h | 27 +++++++------------
.../InlineAdvisorPlugin.cpp | 24 +++--------------
.../PluginInlineAdvisorAnalysisTest.cpp | 2 --
3 files changed, 14 insertions(+), 39 deletions(-)
diff --git a/llvm/include/llvm/Analysis/InlineAdvisor.h b/llvm/include/llvm/Analysis/InlineAdvisor.h
index b002bec2c91836..18fb7377ff667b 100644
--- a/llvm/include/llvm/Analysis/InlineAdvisor.h
+++ b/llvm/include/llvm/Analysis/InlineAdvisor.h
@@ -247,37 +247,30 @@ class DefaultInlineAdvisor : public InlineAdvisor {
///
/// namespace {
///
-/// InlineAdvisor *defaultAdvisorFactory(Module &M, FunctionAnalysisManager
-/// &FAM,
-/// InlineParams Params, InlineContext IC)
-/// {
+/// InlineAdvisor *defaultAdvisorFactory(Module &M,
+/// FunctionAnalysisManager &FAM,
+/// InlineParams Params,
+/// InlineContext IC) {
/// return new DefaultInlineAdvisor(M, FAM, Params, IC);
/// }
///
-/// struct DefaultDynamicAdvisor : PassInfoMixin<DefaultDynamicAdvisor> {
-/// PreservedAnalyses run(Module &, ModuleAnalysisManager &MAM) {
-/// PluginInlineAdvisorAnalysis PA(defaultAdvisorFactory);
-/// MAM.registerPass([&] { return PA; });
-/// return PreservedAnalyses::all();
-/// }
-/// };
-///
/// } // namespace
///
/// extern "C" LLVM_ATTRIBUTE_WEAK ::llvm::PassPluginLibraryInfo
/// llvmGetPassPluginInfo() {
/// return {LLVM_PLUGIN_API_VERSION, "DynamicDefaultAdvisor",
-/// LLVM_VERSION_STRING,
+/// LLVM_VERSION_STRING,
/// [](PassBuilder &PB) {
-/// PB.registerPipelineStartEPCallback(
-/// [](ModulePassManager &MPM, OptimizationLevel Level) {
-/// MPM.addPass(DefaultDynamicAdvisor());
+/// PB.registerAnalysisRegistrationCallback(
+/// [](ModuleAnalysisManager &MAM) {
+/// PluginInlineAdvisorAnalysis PA(defaultAdvisorFactory);
+/// MAM.registerPass([&] { return PA; });
/// });
/// }};
/// }
///
/// A plugin must implement an AdvisorFactory and register it with a
-/// PluginInlineAdvisorAnlysis to the provided ModuleanAlysisManager.
+/// PluginInlineAdvisorAnlysis to the provided ModuleAnalysisManager.
///
/// If such a plugin has been registered
/// InlineAdvisorAnalysis::Result::tryCreate will return the dynamically loaded
diff --git a/llvm/unittests/Analysis/InlineAdvisorPlugin/InlineAdvisorPlugin.cpp b/llvm/unittests/Analysis/InlineAdvisorPlugin/InlineAdvisorPlugin.cpp
index 6431fda86c9dc4..beefff2b3b1063 100644
--- a/llvm/unittests/Analysis/InlineAdvisorPlugin/InlineAdvisorPlugin.cpp
+++ b/llvm/unittests/Analysis/InlineAdvisorPlugin/InlineAdvisorPlugin.cpp
@@ -17,32 +17,16 @@ InlineAdvisor *DefaultAdvisorFactory(Module &M, FunctionAnalysisManager &FAM,
return new DefaultInlineAdvisor(M, FAM, Params, IC);
}
-struct DefaultDynamicAdvisor : PassInfoMixin<DefaultDynamicAdvisor> {
- PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM) {
- PluginInlineAdvisorAnalysis DA(DefaultAdvisorFactory);
- MAM.registerPass([&] { return DA; });
- return PreservedAnalyses::all();
- }
-};
-
} // namespace
/* New PM Registration */
llvm::PassPluginLibraryInfo getDefaultDynamicAdvisorPluginInfo() {
return {LLVM_PLUGIN_API_VERSION, "DynamicDefaultAdvisor", LLVM_VERSION_STRING,
[](PassBuilder &PB) {
- PB.registerPipelineStartEPCallback(
- [](ModulePassManager &MPM, OptimizationLevel Level) {
- MPM.addPass(DefaultDynamicAdvisor());
- });
- PB.registerPipelineParsingCallback(
- [](StringRef Name, ModulePassManager &PM,
- ArrayRef<PassBuilder::PipelineElement> InnerPipeline) {
- if (Name == "dynamic-inline-advisor") {
- PM.addPass(DefaultDynamicAdvisor());
- return true;
- }
- return false;
+ PB.registerAnalysisRegistrationCallback(
+ [](ModuleAnalysisManager &MAM) {
+ PluginInlineAdvisorAnalysis PA(DefaultAdvisorFactory);
+ MAM.registerPass([&] { return PA; });
});
}};
}
diff --git a/llvm/unittests/Analysis/PluginInlineAdvisorAnalysisTest.cpp b/llvm/unittests/Analysis/PluginInlineAdvisorAnalysisTest.cpp
index 92c0b1bcacb12b..ca4ea8b627e839 100644
--- a/llvm/unittests/Analysis/PluginInlineAdvisorAnalysisTest.cpp
+++ b/llvm/unittests/Analysis/PluginInlineAdvisorAnalysisTest.cpp
@@ -66,8 +66,6 @@ struct CompilerInstance {
Expected<PassPlugin> Plugin = PassPlugin::Load(PluginPath);
ASSERT_TRUE(!!Plugin) << "Plugin path: " << PluginPath;
Plugin->registerPassBuilderCallbacks(PB);
- ASSERT_THAT_ERROR(PB.parsePassPipeline(MPM, "dynamic-inline-advisor"),
- Succeeded());
}
// connect the FooOnlyInlineAdvisor to our compiler instance
More information about the llvm-commits
mailing list