[llvm] [PassBuilder] Add callback invoking to PassBuilder string API (PR #157153)

Min-Yih Hsu via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 15 09:37:19 PDT 2025


================
@@ -133,6 +133,42 @@ PB.registerPipelineParsingCallback([=](StringRef Name, LoopPassManager &PM,
   return false;
 });
 
+PB.registerPipelineParsingCallback([=](StringRef Name, ModulePassManager &PM,
+                                       ArrayRef<PassBuilder::PipelineElement>) {
+#define MODULE_CALLBACK(NAME, INVOKE) if (Name == NAME) { PB.INVOKE(PM, OptimizationLevel::O2); return true; }
+#include GET_PASS_REGISTRY
+#undef MODULE_CALLBACK
+#define MODULE_LTO_CALLBACK(NAME, INVOKE) if (Name == NAME) { PB.INVOKE(PM, OptimizationLevel::O2, ThinOrFullLTOPhase::None); return true; }
----------------
mshockwave wrote:

> This was the state I had it in a fork because there it was enough, but we probably want something like `VectorizerCallbacks<level=3>`?

Sorry I just realized my previous message was sanitized by HTML escaper: I was trying to suggest something like `VectorizerStartCallbacks<O3>` because we already have things like `lto<O3>` or `lto-pre-link<O3>` and it'd be great to keep the consistency.

https://github.com/llvm/llvm-project/pull/157153


More information about the llvm-commits mailing list