-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[InlineAdvisor] Update documentation for PluginInlineAdvisorAnalysis
(NFC).
#116715
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[InlineAdvisor] Update documentation for PluginInlineAdvisorAnalysis
(NFC).
#116715
Conversation
@llvm/pr-subscribers-llvm-analysis Author: Michele Scandale (michele-scandale) ChangesThis commit updates the documentation for Full diff: https://github.com/llvm/llvm-project/pull/116715.diff 3 Files Affected:
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
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
@mtrofin fyi
…` (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.
0d70247
to
ffc1b77
Compare
This commit updates the documentation for
PluginInlineAdvisorAnalysis
based on the feedback in PR#114615 suggesting thatregisterAnalysisRegistrationCallback
should be the preferred method to register the plugin inline advisor analysis.