[llvm] Revert "[NFC][LLVM][IPO] Remove pass initialization from pass constructors" (PR #180571)

via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 9 09:50:11 PST 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-llvm-transforms

Author: Rahul Joshi (jurahul)

<details>
<summary>Changes</summary>

Reverts llvm/llvm-project#<!-- -->180154

It seems to cause llc build failures, likely due to missing `ipo` dependency.

---
Full diff: https://github.com/llvm/llvm-project/pull/180571.diff


7 Files Affected:

- (modified) llvm/lib/Transforms/IPO/AlwaysInliner.cpp (+3-1) 
- (modified) llvm/lib/Transforms/IPO/BarrierNoopPass.cpp (+3-1) 
- (modified) llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp (+3-1) 
- (modified) llvm/lib/Transforms/IPO/GlobalDCE.cpp (+3-1) 
- (modified) llvm/lib/Transforms/IPO/IPO.cpp (+2-3) 
- (modified) llvm/lib/Transforms/IPO/LoopExtractor.cpp (+3-1) 
- (modified) llvm/tools/llc/llc.cpp (-1) 


``````````diff
diff --git a/llvm/lib/Transforms/IPO/AlwaysInliner.cpp b/llvm/lib/Transforms/IPO/AlwaysInliner.cpp
index 4fba4475767f6..921fe8c18aa72 100644
--- a/llvm/lib/Transforms/IPO/AlwaysInliner.cpp
+++ b/llvm/lib/Transforms/IPO/AlwaysInliner.cpp
@@ -122,7 +122,9 @@ struct AlwaysInlinerLegacyPass : public ModulePass {
       : AlwaysInlinerLegacyPass(/*InsertLifetime*/ true) {}
 
   AlwaysInlinerLegacyPass(bool InsertLifetime)
-      : ModulePass(ID), InsertLifetime(InsertLifetime) {}
+      : ModulePass(ID), InsertLifetime(InsertLifetime) {
+    initializeAlwaysInlinerLegacyPassPass(*PassRegistry::getPassRegistry());
+  }
 
   /// Main run interface method.
   bool runOnModule(Module &M) override {
diff --git a/llvm/lib/Transforms/IPO/BarrierNoopPass.cpp b/llvm/lib/Transforms/IPO/BarrierNoopPass.cpp
index 2f0dddcab56cf..b49a92ad16b3a 100644
--- a/llvm/lib/Transforms/IPO/BarrierNoopPass.cpp
+++ b/llvm/lib/Transforms/IPO/BarrierNoopPass.cpp
@@ -32,7 +32,9 @@ class BarrierNoop : public ModulePass {
 public:
   static char ID; // Pass identification.
 
-  BarrierNoop() : ModulePass(ID) {}
+  BarrierNoop() : ModulePass(ID) {
+    initializeBarrierNoopPass(*PassRegistry::getPassRegistry());
+  }
 
   bool runOnModule(Module &M) override { return false; }
 };
diff --git a/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp b/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
index 65800835ad498..d32b829e2ad79 100644
--- a/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
+++ b/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
@@ -71,7 +71,9 @@ class DAE : public ModulePass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  DAE() : ModulePass(ID) {}
+  DAE() : ModulePass(ID) {
+    initializeDAEPass(*PassRegistry::getPassRegistry());
+  }
 
   bool runOnModule(Module &M) override {
     if (skipModule(M))
diff --git a/llvm/lib/Transforms/IPO/GlobalDCE.cpp b/llvm/lib/Transforms/IPO/GlobalDCE.cpp
index d6b19bd4e204e..c576fbc92f709 100644
--- a/llvm/lib/Transforms/IPO/GlobalDCE.cpp
+++ b/llvm/lib/Transforms/IPO/GlobalDCE.cpp
@@ -36,7 +36,9 @@ namespace {
 class GlobalDCELegacyPass : public ModulePass {
 public:
   static char ID; // Pass identification, replacement for typeid
-  GlobalDCELegacyPass() : ModulePass(ID) {}
+  GlobalDCELegacyPass() : ModulePass(ID) {
+    initializeGlobalDCELegacyPassPass(*PassRegistry::getPassRegistry());
+  }
   bool runOnModule(Module &M) override {
     if (skipModule(M))
       return false;
diff --git a/llvm/lib/Transforms/IPO/IPO.cpp b/llvm/lib/Transforms/IPO/IPO.cpp
index 4132ba667f806..fdc0ed330b4ed 100644
--- a/llvm/lib/Transforms/IPO/IPO.cpp
+++ b/llvm/lib/Transforms/IPO/IPO.cpp
@@ -17,11 +17,10 @@
 using namespace llvm;
 
 void llvm::initializeIPO(PassRegistry &Registry) {
-  initializeAlwaysInlinerLegacyPassPass(Registry);
-  initializeBarrierNoopPass(Registry);
   initializeDAEPass(Registry);
   initializeDAHPass(Registry);
-  initializeGlobalDCELegacyPassPass(Registry);
+  initializeAlwaysInlinerLegacyPassPass(Registry);
   initializeLoopExtractorLegacyPassPass(Registry);
   initializeSingleLoopExtractorPass(Registry);
+  initializeBarrierNoopPass(Registry);
 }
diff --git a/llvm/lib/Transforms/IPO/LoopExtractor.cpp b/llvm/lib/Transforms/IPO/LoopExtractor.cpp
index 557f1f5a73a13..24b3c42518076 100644
--- a/llvm/lib/Transforms/IPO/LoopExtractor.cpp
+++ b/llvm/lib/Transforms/IPO/LoopExtractor.cpp
@@ -39,7 +39,9 @@ struct LoopExtractorLegacyPass : public ModulePass {
   unsigned NumLoops;
 
   explicit LoopExtractorLegacyPass(unsigned NumLoops = ~0)
-      : ModulePass(ID), NumLoops(NumLoops) {}
+      : ModulePass(ID), NumLoops(NumLoops) {
+    initializeLoopExtractorLegacyPassPass(*PassRegistry::getPassRegistry());
+  }
 
   bool runOnModule(Module &M) override;
 
diff --git a/llvm/tools/llc/llc.cpp b/llvm/tools/llc/llc.cpp
index 34ce2bc0622a6..02d7e980f394d 100644
--- a/llvm/tools/llc/llc.cpp
+++ b/llvm/tools/llc/llc.cpp
@@ -389,7 +389,6 @@ int main(int argc, char **argv) {
   initializeUnreachableBlockElimLegacyPassPass(*Registry);
   initializeConstantHoistingLegacyPassPass(*Registry);
   initializeScalarOpts(*Registry);
-  initializeIPO(*Registry);
   initializeVectorization(*Registry);
   initializeScalarizeMaskedMemIntrinLegacyPassPass(*Registry);
   initializeTransformUtils(*Registry);

``````````

</details>


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


More information about the llvm-commits mailing list