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

Rahul Joshi via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 9 09:45:59 PST 2026


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

Reverts llvm/llvm-project#180154

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

>From ff86dd086f7b8497dd5aff04f985e9f7d47446a0 Mon Sep 17 00:00:00 2001
From: Rahul Joshi <rjoshi at nvidia.com>
Date: Mon, 9 Feb 2026 09:45:12 -0800
Subject: [PATCH] =?UTF-8?q?Revert=20"[NFC][LLVM][IPO]=20Remove=20pass=20in?=
 =?UTF-8?q?itialization=20from=20pass=20constructors=20(#=E2=80=A6"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This reverts commit d62bc3ae0ea289e586e706332a364fa2f1114778.
---
 llvm/lib/Transforms/IPO/AlwaysInliner.cpp           | 4 +++-
 llvm/lib/Transforms/IPO/BarrierNoopPass.cpp         | 4 +++-
 llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp | 4 +++-
 llvm/lib/Transforms/IPO/GlobalDCE.cpp               | 4 +++-
 llvm/lib/Transforms/IPO/IPO.cpp                     | 5 ++---
 llvm/lib/Transforms/IPO/LoopExtractor.cpp           | 4 +++-
 llvm/tools/llc/llc.cpp                              | 1 -
 7 files changed, 17 insertions(+), 9 deletions(-)

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);



More information about the llvm-commits mailing list