[llvm] [LLVM][CodeGen] Remove pass initialization calls from pass constructors (PR #173061)

Rahul Joshi via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 14 16:45:06 PST 2026


https://github.com/jurahul updated https://github.com/llvm/llvm-project/pull/173061

>From f9ea885b5234d231c49ad4dd345e3ae4f92ac257 Mon Sep 17 00:00:00 2001
From: Rahul Joshi <rjoshi at nvidia.com>
Date: Thu, 18 Dec 2025 16:27:41 -0800
Subject: [PATCH] [LLVM][CodeGen] Remove pass initialization calls from pass
 constructors

---
 llvm/include/llvm/Analysis/CallGraphSCCPass.h   |  7 +------
 .../CodeGen/BasicBlockSectionsProfileReader.h   | 10 ++--------
 llvm/include/llvm/CodeGen/CFIFixup.h            |  4 +---
 .../CodeGen/GlobalISel/GISelValueTracking.h     |  5 +----
 llvm/include/llvm/CodeGen/LiveStacks.h          |  4 +---
 llvm/include/llvm/CodeGen/LiveVariables.h       |  5 +----
 llvm/include/llvm/CodeGen/MachinePipeliner.h    |  5 +----
 llvm/include/llvm/CodeGen/RegisterUsageInfo.h   |  6 +-----
 llvm/include/llvm/CodeGen/ReplaceWithVeclib.h   |  5 +----
 llvm/include/llvm/InitializePasses.h            |  1 +
 llvm/lib/Analysis/CallGraphSCCPass.cpp          |  1 +
 llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp |  4 +---
 llvm/lib/CodeGen/AtomicExpandPass.cpp           |  4 +---
 .../CodeGen/BasicBlockMatchingAndInference.cpp  |  5 +----
 llvm/lib/CodeGen/BasicBlockPathCloning.cpp      |  4 +---
 llvm/lib/CodeGen/BasicBlockSections.cpp         |  4 +---
 llvm/lib/CodeGen/BreakFalseDeps.cpp             |  4 +---
 llvm/lib/CodeGen/CFGuardLongjmp.cpp             |  4 +---
 llvm/lib/CodeGen/CFIInstrInserter.cpp           |  4 +---
 llvm/lib/CodeGen/CodeGen.cpp                    | 17 +++++++++++++++++
 llvm/lib/CodeGen/CodeGenPrepare.cpp             |  4 +---
 llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp  |  5 +----
 llvm/lib/CodeGen/DeadMachineInstructionElim.cpp |  4 +---
 llvm/lib/CodeGen/EHContGuardTargets.cpp         |  4 +---
 llvm/lib/CodeGen/ExpandIRInsts.cpp              |  4 +---
 llvm/lib/CodeGen/ExpandMemCmp.cpp               |  4 +---
 llvm/lib/CodeGen/ExpandPostRAPseudos.cpp        |  4 +---
 llvm/lib/CodeGen/ExpandReductions.cpp           |  4 +---
 llvm/lib/CodeGen/FEntryInserter.cpp             |  4 +---
 llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp |  5 +----
 llvm/lib/CodeGen/FuncletLayout.cpp              |  4 +---
 llvm/lib/CodeGen/GCEmptyBasicBlocks.cpp         |  3 +++
 llvm/lib/CodeGen/GCMetadata.cpp                 |  4 +---
 llvm/lib/CodeGen/GCRootLowering.cpp             |  4 +---
 llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp         | 10 +++-------
 .../CodeGen/GlobalISel/GISelValueTracking.cpp   |  1 +
 llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp      |  2 ++
 llvm/lib/CodeGen/GlobalMerge.cpp                |  2 --
 llvm/lib/CodeGen/HardwareLoops.cpp              |  4 +---
 llvm/lib/CodeGen/IfConversion.cpp               |  4 +---
 llvm/lib/CodeGen/ImplicitNullChecks.cpp         |  4 +---
 llvm/lib/CodeGen/IndirectBrExpandPass.cpp       |  4 +---
 llvm/lib/CodeGen/InterleavedAccessPass.cpp      |  4 +---
 llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp |  4 +---
 llvm/lib/CodeGen/JMCInstrumenter.cpp            |  4 +---
 .../CodeGen/LazyMachineBlockFrequencyInfo.cpp   |  5 +----
 .../CodeGen/LiveDebugValues/LiveDebugValues.cpp |  4 +---
 llvm/lib/CodeGen/LiveDebugVariables.cpp         |  5 +----
 llvm/lib/CodeGen/LiveIntervals.cpp              |  6 +++---
 llvm/lib/CodeGen/LiveRangeShrink.cpp            |  4 +---
 llvm/lib/CodeGen/LiveVariables.cpp              |  1 +
 llvm/lib/CodeGen/LocalStackSlotAllocation.cpp   |  4 +---
 llvm/lib/CodeGen/LowerEmuTLS.cpp                |  4 +---
 llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp     |  4 +---
 llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp  |  5 +----
 llvm/lib/CodeGen/MachineBlockHashInfo.cpp       |  4 +---
 llvm/lib/CodeGen/MachineBlockPlacement.cpp      |  9 ++-------
 .../CodeGen/MachineBranchProbabilityInfo.cpp    |  5 +----
 llvm/lib/CodeGen/MachineCFGPrinter.cpp          |  4 +---
 llvm/lib/CodeGen/MachineCSE.cpp                 |  4 +---
 llvm/lib/CodeGen/MachineCombiner.cpp            |  4 +---
 llvm/lib/CodeGen/MachineCycleAnalysis.cpp       |  8 ++------
 llvm/lib/CodeGen/MachineDominanceFrontier.cpp   |  5 ++---
 llvm/lib/CodeGen/MachineDominators.cpp          |  6 +-----
 llvm/lib/CodeGen/MachineFunctionSplitter.cpp    |  4 +---
 llvm/lib/CodeGen/MachineInstrBundle.cpp         |  4 +---
 llvm/lib/CodeGen/MachineLICM.cpp                |  8 ++------
 llvm/lib/CodeGen/MachineLateInstrsCleanup.cpp   |  5 +----
 llvm/lib/CodeGen/MachineLoopInfo.cpp            |  5 +----
 llvm/lib/CodeGen/MachineModuleInfo.cpp          |  8 ++------
 .../MachineOptimizationRemarkEmitter.cpp        |  5 +----
 llvm/lib/CodeGen/MachineOutliner.cpp            |  4 +---
 llvm/lib/CodeGen/MachinePipeliner.cpp           |  1 +
 llvm/lib/CodeGen/MachinePostDominators.cpp      |  5 +----
 llvm/lib/CodeGen/MachineRegionInfo.cpp          |  4 +---
 llvm/lib/CodeGen/MachineScheduler.cpp           |  8 ++------
 llvm/lib/CodeGen/MachineSink.cpp                |  4 +---
 llvm/lib/CodeGen/MachineUniformityAnalysis.cpp  |  9 ++-------
 llvm/lib/CodeGen/MachineVerifier.cpp            |  4 +---
 llvm/lib/CodeGen/ModuloSchedule.cpp             |  4 +---
 llvm/lib/CodeGen/OptimizePHIs.cpp               |  4 +---
 llvm/lib/CodeGen/PHIElimination.cpp             |  5 ++---
 llvm/lib/CodeGen/PatchableFunction.cpp          |  4 +---
 llvm/lib/CodeGen/PeepholeOptimizer.cpp          |  4 +---
 llvm/lib/CodeGen/ProcessImplicitDefs.cpp        |  4 +---
 llvm/lib/CodeGen/PrologEpilogInserter.cpp       |  4 +---
 llvm/lib/CodeGen/PseudoProbeInserter.cpp        |  4 +---
 llvm/lib/CodeGen/ReachingDefAnalysis.cpp        |  4 +---
 llvm/lib/CodeGen/RegAllocGreedy.cpp             |  4 +---
 llvm/lib/CodeGen/RegAllocPBQP.cpp               |  7 +------
 llvm/lib/CodeGen/RegUsageInfoCollector.cpp      |  5 ++---
 llvm/lib/CodeGen/RegUsageInfoPropagate.cpp      |  6 ++----
 llvm/lib/CodeGen/RegisterCoalescer.cpp          |  4 +---
 llvm/lib/CodeGen/RegisterUsageInfo.cpp          |  1 +
 llvm/lib/CodeGen/RemoveLoadsIntoFakeUses.cpp    |  5 +----
 llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp |  5 +----
 llvm/lib/CodeGen/ReplaceWithVeclib.cpp          |  1 +
 llvm/lib/CodeGen/SafeStack.cpp                  |  4 +---
 llvm/lib/CodeGen/SanitizerBinaryMetadata.cpp    |  5 +----
 llvm/lib/CodeGen/SelectOptimize.cpp             |  4 +---
 .../CodeGen/SelectionDAG/SelectionDAGISel.cpp   |  2 --
 llvm/lib/CodeGen/ShadowStackGCLowering.cpp      |  4 +---
 llvm/lib/CodeGen/ShrinkWrap.cpp                 |  4 +---
 llvm/lib/CodeGen/SlotIndexes.cpp                |  4 +---
 llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp   |  4 +---
 llvm/lib/CodeGen/StackProtector.cpp             |  4 +---
 llvm/lib/CodeGen/StackSlotColoring.cpp          |  4 +---
 llvm/lib/CodeGen/StaticDataAnnotator.cpp        |  4 +---
 llvm/lib/CodeGen/StaticDataSplitter.cpp         |  4 +---
 llvm/lib/CodeGen/TailDuplication.cpp            |  9 ++-------
 llvm/lib/CodeGen/TwoAddressInstructionPass.cpp  |  6 ++----
 llvm/lib/CodeGen/UnreachableBlockElim.cpp       |  5 +----
 llvm/lib/CodeGen/WindowsSecureHotPatching.cpp   |  4 +---
 llvm/lib/CodeGen/XRayInstrumentation.cpp        |  4 +---
 .../Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp   |  1 +
 llvm/lib/Target/PowerPC/PPCCTRLoops.cpp         |  1 +
 .../lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp |  1 +
 llvm/lib/Target/PowerPC/PPCMIPeephole.cpp       |  1 +
 llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp |  1 +
 llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp   |  1 +
 llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp     |  1 +
 llvm/lib/Target/X86/X86TargetMachine.cpp        |  1 -
 llvm/tools/llc/llc.cpp                          |  4 ----
 123 files changed, 155 insertions(+), 379 deletions(-)

diff --git a/llvm/include/llvm/Analysis/CallGraphSCCPass.h b/llvm/include/llvm/Analysis/CallGraphSCCPass.h
index cf6fd1946668b..4ef38cbbcbd64 100644
--- a/llvm/include/llvm/Analysis/CallGraphSCCPass.h
+++ b/llvm/include/llvm/Analysis/CallGraphSCCPass.h
@@ -111,18 +111,13 @@ class CallGraphSCC {
   const CallGraph &getCallGraph() { return CG; }
 };
 
-LLVM_ABI void initializeDummyCGSCCPassPass(PassRegistry &);
-
 /// This pass is required by interprocedural register allocation. It forces
 /// codegen to follow bottom up order on call graph.
 class DummyCGSCCPass : public CallGraphSCCPass {
 public:
   LLVM_ABI static char ID;
 
-  DummyCGSCCPass() : CallGraphSCCPass(ID) {
-    PassRegistry &Registry = *PassRegistry::getPassRegistry();
-    initializeDummyCGSCCPassPass(Registry);
-  }
+  DummyCGSCCPass() : CallGraphSCCPass(ID) {}
 
   bool runOnSCC(CallGraphSCC &SCC) override { return false; }
 
diff --git a/llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h b/llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h
index 4237ef09a993a..b28a55e5be28c 100644
--- a/llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h
+++ b/llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h
@@ -223,16 +223,10 @@ class BasicBlockSectionsProfileReaderWrapperPass : public ImmutablePass {
   BasicBlockSectionsProfileReader BBSPR;
 
   BasicBlockSectionsProfileReaderWrapperPass(const MemoryBuffer *Buf)
-      : ImmutablePass(ID), BBSPR(BasicBlockSectionsProfileReader(Buf)) {
-    initializeBasicBlockSectionsProfileReaderWrapperPassPass(
-        *PassRegistry::getPassRegistry());
-  };
+      : ImmutablePass(ID), BBSPR(BasicBlockSectionsProfileReader(Buf)) {}
 
   BasicBlockSectionsProfileReaderWrapperPass()
-      : ImmutablePass(ID), BBSPR(BasicBlockSectionsProfileReader()) {
-    initializeBasicBlockSectionsProfileReaderWrapperPassPass(
-        *PassRegistry::getPassRegistry());
-  }
+      : ImmutablePass(ID), BBSPR(BasicBlockSectionsProfileReader()) {}
 
   StringRef getPassName() const override {
     return "Basic Block Sections Profile Reader";
diff --git a/llvm/include/llvm/CodeGen/CFIFixup.h b/llvm/include/llvm/CodeGen/CFIFixup.h
index 40e535106751c..d3e4131e3551d 100644
--- a/llvm/include/llvm/CodeGen/CFIFixup.h
+++ b/llvm/include/llvm/CodeGen/CFIFixup.h
@@ -22,9 +22,7 @@ class CFIFixup : public MachineFunctionPass {
 public:
   static char ID;
 
-  CFIFixup() : MachineFunctionPass(ID) {
-    initializeCFIFixupPass(*PassRegistry::getPassRegistry());
-  }
+  CFIFixup() : MachineFunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.setPreservesAll();
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/GISelValueTracking.h b/llvm/include/llvm/CodeGen/GlobalISel/GISelValueTracking.h
index 17d656abdab34..2ce085b8da7b6 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/GISelValueTracking.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/GISelValueTracking.h
@@ -165,10 +165,7 @@ class LLVM_ABI GISelValueTrackingAnalysisLegacy : public MachineFunctionPass {
 
 public:
   static char ID;
-  GISelValueTrackingAnalysisLegacy() : MachineFunctionPass(ID) {
-    initializeGISelValueTrackingAnalysisLegacyPass(
-        *PassRegistry::getPassRegistry());
-  }
+  GISelValueTrackingAnalysisLegacy() : MachineFunctionPass(ID) {}
   GISelValueTracking &get(MachineFunction &MF);
   void getAnalysisUsage(AnalysisUsage &AU) const override;
   bool runOnMachineFunction(MachineFunction &MF) override;
diff --git a/llvm/include/llvm/CodeGen/LiveStacks.h b/llvm/include/llvm/CodeGen/LiveStacks.h
index 02c640bfc4a93..04ff4584182b8 100644
--- a/llvm/include/llvm/CodeGen/LiveStacks.h
+++ b/llvm/include/llvm/CodeGen/LiveStacks.h
@@ -99,9 +99,7 @@ class LiveStacksWrapperLegacy : public MachineFunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  LiveStacksWrapperLegacy() : MachineFunctionPass(ID) {
-    initializeLiveStacksWrapperLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  LiveStacksWrapperLegacy() : MachineFunctionPass(ID) {}
 
   LiveStacks &getLS() { return Impl; }
   const LiveStacks &getLS() const { return Impl; }
diff --git a/llvm/include/llvm/CodeGen/LiveVariables.h b/llvm/include/llvm/CodeGen/LiveVariables.h
index dbf736ad65a99..f51834f44baad 100644
--- a/llvm/include/llvm/CodeGen/LiveVariables.h
+++ b/llvm/include/llvm/CodeGen/LiveVariables.h
@@ -37,7 +37,6 @@
 #include "llvm/CodeGen/MachineInstr.h"
 #include "llvm/CodeGen/MachinePassManager.h"
 #include "llvm/CodeGen/TargetRegisterInfo.h"
-#include "llvm/InitializePasses.h"
 #include "llvm/PassRegistry.h"
 #include "llvm/Support/Compiler.h"
 
@@ -327,9 +326,7 @@ class LLVM_ABI LiveVariablesWrapperPass : public MachineFunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  LiveVariablesWrapperPass() : MachineFunctionPass(ID) {
-    initializeLiveVariablesWrapperPassPass(*PassRegistry::getPassRegistry());
-  }
+  LiveVariablesWrapperPass() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &MF) override {
     LV.analyze(MF);
diff --git a/llvm/include/llvm/CodeGen/MachinePipeliner.h b/llvm/include/llvm/CodeGen/MachinePipeliner.h
index c90ff4f3daa47..6326fd4862d92 100644
--- a/llvm/include/llvm/CodeGen/MachinePipeliner.h
+++ b/llvm/include/llvm/CodeGen/MachinePipeliner.h
@@ -51,7 +51,6 @@
 #include "llvm/CodeGen/ScheduleDAGMutation.h"
 #include "llvm/CodeGen/TargetInstrInfo.h"
 #include "llvm/CodeGen/WindowScheduler.h"
-#include "llvm/InitializePasses.h"
 
 #include <deque>
 
@@ -96,9 +95,7 @@ class MachinePipeliner : public MachineFunctionPass {
 
   static char ID;
 
-  MachinePipeliner() : MachineFunctionPass(ID) {
-    initializeMachinePipelinerPass(*PassRegistry::getPassRegistry());
-  }
+  MachinePipeliner() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &MF) override;
 
diff --git a/llvm/include/llvm/CodeGen/RegisterUsageInfo.h b/llvm/include/llvm/CodeGen/RegisterUsageInfo.h
index 9b0d30426f1d3..9a1d9a4a47120 100644
--- a/llvm/include/llvm/CodeGen/RegisterUsageInfo.h
+++ b/llvm/include/llvm/CodeGen/RegisterUsageInfo.h
@@ -21,7 +21,6 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/IR/PassManager.h"
-#include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
 #include "llvm/PassRegistry.h"
 #include <cstdint>
@@ -68,10 +67,7 @@ class PhysicalRegisterUsageInfoWrapperLegacy : public ImmutablePass {
 
 public:
   static char ID;
-  PhysicalRegisterUsageInfoWrapperLegacy() : ImmutablePass(ID) {
-    initializePhysicalRegisterUsageInfoWrapperLegacyPass(
-        *PassRegistry::getPassRegistry());
-  }
+  PhysicalRegisterUsageInfoWrapperLegacy() : ImmutablePass(ID) {}
 
   PhysicalRegisterUsageInfo &getPRUI() { return *PRUI; }
   const PhysicalRegisterUsageInfo &getPRUI() const { return *PRUI; }
diff --git a/llvm/include/llvm/CodeGen/ReplaceWithVeclib.h b/llvm/include/llvm/CodeGen/ReplaceWithVeclib.h
index 6b7b731ad4301..785d298a8c5f1 100644
--- a/llvm/include/llvm/CodeGen/ReplaceWithVeclib.h
+++ b/llvm/include/llvm/CodeGen/ReplaceWithVeclib.h
@@ -15,7 +15,6 @@
 #define LLVM_CODEGEN_REPLACEWITHVECLIB_H
 
 #include "llvm/IR/PassManager.h"
-#include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
 #include "llvm/PassRegistry.h"
 #include "llvm/Support/Compiler.h"
@@ -29,9 +28,7 @@ struct ReplaceWithVeclib : public PassInfoMixin<ReplaceWithVeclib> {
 // Legacy pass
 struct LLVM_ABI ReplaceWithVeclibLegacy : public FunctionPass {
   static char ID;
-  ReplaceWithVeclibLegacy() : FunctionPass(ID) {
-    initializeReplaceWithVeclibLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  ReplaceWithVeclibLegacy() : FunctionPass(ID) {}
   void getAnalysisUsage(AnalysisUsage &AU) const override;
   bool runOnFunction(Function &F) override;
 };
diff --git a/llvm/include/llvm/InitializePasses.h b/llvm/include/llvm/InitializePasses.h
index e9e3ca3cc93a0..0531dd85bace0 100644
--- a/llvm/include/llvm/InitializePasses.h
+++ b/llvm/include/llvm/InitializePasses.h
@@ -104,6 +104,7 @@ LLVM_ABI void initializeDomPrinterWrapperPassPass(PassRegistry &);
 LLVM_ABI void initializeDomViewerWrapperPassPass(PassRegistry &);
 LLVM_ABI void initializeDominanceFrontierWrapperPassPass(PassRegistry &);
 LLVM_ABI void initializeDominatorTreeWrapperPassPass(PassRegistry &);
+LLVM_ABI void initializeDummyCGSCCPassPass(PassRegistry &);
 LLVM_ABI void initializeDwarfEHPrepareLegacyPassPass(PassRegistry &);
 LLVM_ABI void initializeEarlyCSELegacyPassPass(PassRegistry &);
 LLVM_ABI void initializeEarlyCSEMemSSALegacyPassPass(PassRegistry &);
diff --git a/llvm/lib/Analysis/CallGraphSCCPass.cpp b/llvm/lib/Analysis/CallGraphSCCPass.cpp
index de64fdb9548e6..1228d5b4b78be 100644
--- a/llvm/lib/Analysis/CallGraphSCCPass.cpp
+++ b/llvm/lib/Analysis/CallGraphSCCPass.cpp
@@ -28,6 +28,7 @@
 #include "llvm/IR/Module.h"
 #include "llvm/IR/PassTimingInfo.h"
 #include "llvm/IR/PrintPasses.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/Debug.h"
diff --git a/llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp b/llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp
index 95de4949b21cf..7297905a85f60 100644
--- a/llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp
+++ b/llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp
@@ -33,9 +33,7 @@ INITIALIZE_PASS_END(LazyBranchProbabilityInfoPass, DEBUG_TYPE,
 char LazyBranchProbabilityInfoPass::ID = 0;
 
 LazyBranchProbabilityInfoPass::LazyBranchProbabilityInfoPass()
-    : FunctionPass(ID) {
-  initializeLazyBranchProbabilityInfoPassPass(*PassRegistry::getPassRegistry());
-}
+    : FunctionPass(ID) {}
 
 void LazyBranchProbabilityInfoPass::print(raw_ostream &OS,
                                           const Module *) const {
diff --git a/llvm/lib/CodeGen/AtomicExpandPass.cpp b/llvm/lib/CodeGen/AtomicExpandPass.cpp
index 6d05888709944..1061009878b3d 100644
--- a/llvm/lib/CodeGen/AtomicExpandPass.cpp
+++ b/llvm/lib/CodeGen/AtomicExpandPass.cpp
@@ -139,9 +139,7 @@ class AtomicExpandLegacy : public FunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  AtomicExpandLegacy() : FunctionPass(ID) {
-    initializeAtomicExpandLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  AtomicExpandLegacy() : FunctionPass(ID) {}
 
   bool runOnFunction(Function &F) override;
 };
diff --git a/llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp b/llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp
index 07b7b067e49b5..bba4c4a220d9e 100644
--- a/llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp
+++ b/llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp
@@ -85,10 +85,7 @@ INITIALIZE_PASS_END(BasicBlockMatchingAndInference, "machine-block-match-infer",
 char BasicBlockMatchingAndInference::ID = 0;
 
 BasicBlockMatchingAndInference::BasicBlockMatchingAndInference()
-    : MachineFunctionPass(ID) {
-  initializeBasicBlockMatchingAndInferencePass(
-      *PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 void BasicBlockMatchingAndInference::getAnalysisUsage(AnalysisUsage &AU) const {
   AU.addRequired<MachineBlockHashInfo>();
diff --git a/llvm/lib/CodeGen/BasicBlockPathCloning.cpp b/llvm/lib/CodeGen/BasicBlockPathCloning.cpp
index 47b7a8879dd60..6d0d232454994 100644
--- a/llvm/lib/CodeGen/BasicBlockPathCloning.cpp
+++ b/llvm/lib/CodeGen/BasicBlockPathCloning.cpp
@@ -214,9 +214,7 @@ class BasicBlockPathCloning : public MachineFunctionPass {
 
   BasicBlockSectionsProfileReaderWrapperPass *BBSectionsProfileReader = nullptr;
 
-  BasicBlockPathCloning() : MachineFunctionPass(ID) {
-    initializeBasicBlockPathCloningPass(*PassRegistry::getPassRegistry());
-  }
+  BasicBlockPathCloning() : MachineFunctionPass(ID) {}
 
   StringRef getPassName() const override { return "Basic Block Path Cloning"; }
 
diff --git a/llvm/lib/CodeGen/BasicBlockSections.cpp b/llvm/lib/CodeGen/BasicBlockSections.cpp
index 0c59ddbbbf298..583e755fc1e15 100644
--- a/llvm/lib/CodeGen/BasicBlockSections.cpp
+++ b/llvm/lib/CodeGen/BasicBlockSections.cpp
@@ -110,9 +110,7 @@ class BasicBlockSections : public MachineFunctionPass {
 
   BasicBlockSectionsProfileReaderWrapperPass *BBSectionsProfileReader = nullptr;
 
-  BasicBlockSections() : MachineFunctionPass(ID) {
-    initializeBasicBlockSectionsPass(*PassRegistry::getPassRegistry());
-  }
+  BasicBlockSections() : MachineFunctionPass(ID) {}
 
   StringRef getPassName() const override {
     return "Basic Block Sections Analysis";
diff --git a/llvm/lib/CodeGen/BreakFalseDeps.cpp b/llvm/lib/CodeGen/BreakFalseDeps.cpp
index fead3ee250841..9e16897fe7768 100644
--- a/llvm/lib/CodeGen/BreakFalseDeps.cpp
+++ b/llvm/lib/CodeGen/BreakFalseDeps.cpp
@@ -51,9 +51,7 @@ class BreakFalseDeps : public MachineFunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  BreakFalseDeps() : MachineFunctionPass(ID) {
-    initializeBreakFalseDepsPass(*PassRegistry::getPassRegistry());
-  }
+  BreakFalseDeps() : MachineFunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.setPreservesAll();
diff --git a/llvm/lib/CodeGen/CFGuardLongjmp.cpp b/llvm/lib/CodeGen/CFGuardLongjmp.cpp
index 04de011400568..cbd9fba306a21 100644
--- a/llvm/lib/CodeGen/CFGuardLongjmp.cpp
+++ b/llvm/lib/CodeGen/CFGuardLongjmp.cpp
@@ -39,9 +39,7 @@ class CFGuardLongjmp : public MachineFunctionPass {
 public:
   static char ID;
 
-  CFGuardLongjmp() : MachineFunctionPass(ID) {
-    initializeCFGuardLongjmpPass(*PassRegistry::getPassRegistry());
-  }
+  CFGuardLongjmp() : MachineFunctionPass(ID) {}
 
   StringRef getPassName() const override {
     return "Control Flow Guard longjmp targets";
diff --git a/llvm/lib/CodeGen/CFIInstrInserter.cpp b/llvm/lib/CodeGen/CFIInstrInserter.cpp
index 0fd082129e3a2..76f54db7d4c99 100644
--- a/llvm/lib/CodeGen/CFIInstrInserter.cpp
+++ b/llvm/lib/CodeGen/CFIInstrInserter.cpp
@@ -39,9 +39,7 @@ class CFIInstrInserter : public MachineFunctionPass {
  public:
   static char ID;
 
-  CFIInstrInserter() : MachineFunctionPass(ID) {
-    initializeCFIInstrInserterPass(*PassRegistry::getPassRegistry());
-  }
+  CFIInstrInserter() : MachineFunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.setPreservesAll();
diff --git a/llvm/lib/CodeGen/CodeGen.cpp b/llvm/lib/CodeGen/CodeGen.cpp
index 3550eea13979a..29b76129200f7 100644
--- a/llvm/lib/CodeGen/CodeGen.cpp
+++ b/llvm/lib/CodeGen/CodeGen.cpp
@@ -20,8 +20,10 @@ using namespace llvm;
 void llvm::initializeCodeGen(PassRegistry &Registry) {
   initializeAssignmentTrackingAnalysisPass(Registry);
   initializeAtomicExpandLegacyPass(Registry);
+  initializeBasicBlockMatchingAndInferencePass(Registry);
   initializeBasicBlockPathCloningPass(Registry);
   initializeBasicBlockSectionsPass(Registry);
+  initializeBasicBlockSectionsProfileReaderWrapperPassPass(Registry);
   initializeBranchFolderLegacyPass(Registry);
   initializeBranchRelaxationLegacyPass(Registry);
   initializeBreakFalseDepsPass(Registry);
@@ -31,10 +33,13 @@ void llvm::initializeCodeGen(PassRegistry &Registry) {
   initializeCFIInstrInserterPass(Registry);
   initializeCheckDebugMachineModulePass(Registry);
   initializeCodeGenPrepareLegacyPassPass(Registry);
+  initializeComplexDeinterleavingLegacyPassPass(Registry);
   initializeDeadMachineInstructionElimPass(Registry);
   initializeDebugifyMachineModulePass(Registry);
   initializeDetectDeadLanesLegacyPass(Registry);
+  initializeDummyCGSCCPassPass(Registry);
   initializeDwarfEHPrepareLegacyPassPass(Registry);
+  initializeEHContGuardTargetsPass(Registry);
   initializeEarlyIfConverterLegacyPass(Registry);
   initializeEarlyIfPredicatorPass(Registry);
   initializeEarlyMachineLICMPass(Registry);
@@ -42,12 +47,14 @@ void llvm::initializeCodeGen(PassRegistry &Registry) {
   initializeExpandIRInstsLegacyPassPass(Registry);
   initializeExpandMemCmpLegacyPassPass(Registry);
   initializeExpandPostRALegacyPass(Registry);
+  initializeExpandReductionsPass(Registry);
   initializeFEntryInserterLegacyPass(Registry);
   initializeFinalizeISelPass(Registry);
   initializeFixupStatepointCallerSavedLegacyPass(Registry);
   initializeFuncletLayoutPass(Registry);
   initializeGCMachineCodeAnalysisPass(Registry);
   initializeGCModuleInfoPass(Registry);
+  initializeGlobalMergePass(Registry);
   initializeHardwareLoopsLegacyPass(Registry);
   initializeIfConverterPass(Registry);
   initializeImplicitNullChecksPass(Registry);
@@ -56,6 +63,7 @@ void llvm::initializeCodeGen(PassRegistry &Registry) {
   initializeInterleavedLoadCombinePass(Registry);
   initializeInterleavedAccessPass(Registry);
   initializeJMCInstrumenterPass(Registry);
+  initializeLazyMachineBlockFrequencyInfoPassPass(Registry);
   initializeLibcallLoweringInfoWrapperPass(Registry);
   initializeLiveDebugValuesLegacyPass(Registry);
   initializeLiveDebugVariablesWrapperLegacyPass(Registry);
@@ -64,6 +72,7 @@ void llvm::initializeCodeGen(PassRegistry &Registry) {
   initializeLiveStacksWrapperLegacyPass(Registry);
   initializeLiveVariablesWrapperPassPass(Registry);
   initializeLocalStackSlotPassPass(Registry);
+  initializeLowerEmuTLSPass(Registry);
   initializeLowerGlobalDtorsLegacyPassPass(Registry);
   initializeLowerIntrinsicsPass(Registry);
   initializeMIRAddFSDiscriminatorsPass(Registry);
@@ -71,11 +80,14 @@ void llvm::initializeCodeGen(PassRegistry &Registry) {
   initializeMIRNamerPass(Registry);
   initializeMIRProfileLoaderPassPass(Registry);
   initializeMachineBlockFrequencyInfoWrapperPassPass(Registry);
+  initializeMachineBlockHashInfoPass(Registry);
   initializeMachineBlockPlacementLegacyPass(Registry);
   initializeMachineBlockPlacementStatsLegacyPass(Registry);
+  initializeMachineBranchProbabilityInfoWrapperPassPass(Registry);
   initializeMachineCFGPrinterPass(Registry);
   initializeMachineCSELegacyPass(Registry);
   initializeMachineCombinerPass(Registry);
+  initializeMachineDominanceFrontierPass(Registry);
   initializeMachineCopyPropagationLegacyPass(Registry);
   initializeMachineCycleInfoPrinterLegacyPass(Registry);
   initializeMachineCycleInfoWrapperPassPass(Registry);
@@ -107,22 +119,26 @@ void llvm::initializeCodeGen(PassRegistry &Registry) {
   initializePHIEliminationPass(Registry);
   initializePatchableFunctionLegacyPass(Registry);
   initializePeepholeOptimizerLegacyPass(Registry);
+  initializePhysicalRegisterUsageInfoWrapperLegacyPass(Registry);
   initializePostMachineSchedulerLegacyPass(Registry);
   initializePostRAMachineSinkingLegacyPass(Registry);
   initializePostRAHazardRecognizerLegacyPass(Registry);
   initializePostRASchedulerLegacyPass(Registry);
   initializePreISelIntrinsicLoweringLegacyPassPass(Registry);
   initializeProcessImplicitDefsLegacyPass(Registry);
+  initializePseudoProbeInserterPass(Registry);
   initializeRABasicPass(Registry);
   initializeRAGreedyLegacyPass(Registry);
   initializeReachingDefInfoWrapperPassPass(Registry);
   initializeRegAllocFastPass(Registry);
+  initializeRegAllocScoringPass(Registry);
   initializeRegUsageInfoCollectorLegacyPass(Registry);
   initializeRegUsageInfoPropagationLegacyPass(Registry);
   initializeRegisterCoalescerLegacyPass(Registry);
   initializeRemoveLoadsIntoFakeUsesLegacyPass(Registry);
   initializeRemoveRedundantDebugValuesLegacyPass(Registry);
   initializeRenameIndependentSubregsLegacyPass(Registry);
+  initializeReplaceWithVeclibLegacyPass(Registry);
   initializeSafeStackLegacyPassPass(Registry);
   initializeSelectOptimizePass(Registry);
   initializeShadowStackGCLoweringPass(Registry);
@@ -148,5 +164,6 @@ void llvm::initializeCodeGen(PassRegistry &Registry) {
   initializeVirtRegRewriterLegacyPass(Registry);
   initializeWasmEHPreparePass(Registry);
   initializeWinEHPreparePass(Registry);
+  initializeWindowsSecureHotPatchingPass(Registry);
   initializeXRayInstrumentationLegacyPass(Registry);
 }
diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp
index 28662665e86fa..eb8567ff2f9de 100644
--- a/llvm/lib/CodeGen/CodeGenPrepare.cpp
+++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp
@@ -485,9 +485,7 @@ class CodeGenPrepareLegacyPass : public FunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  CodeGenPrepareLegacyPass() : FunctionPass(ID) {
-    initializeCodeGenPrepareLegacyPassPass(*PassRegistry::getPassRegistry());
-  }
+  CodeGenPrepareLegacyPass() : FunctionPass(ID) {}
 
   bool runOnFunction(Function &F) override;
 
diff --git a/llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp b/llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
index 87ada87b4d32f..a169eb5e58c02 100644
--- a/llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
+++ b/llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
@@ -158,10 +158,7 @@ class ComplexDeinterleavingLegacyPass : public FunctionPass {
   static char ID;
 
   ComplexDeinterleavingLegacyPass(const TargetMachine *TM = nullptr)
-      : FunctionPass(ID), TM(TM) {
-    initializeComplexDeinterleavingLegacyPassPass(
-        *PassRegistry::getPassRegistry());
-  }
+      : FunctionPass(ID), TM(TM) {}
 
   StringRef getPassName() const override {
     return "Complex Deinterleaving Pass";
diff --git a/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp b/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp
index 836a912a5e983..8783afadbf097 100644
--- a/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp
+++ b/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp
@@ -45,9 +45,7 @@ class DeadMachineInstructionElim : public MachineFunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  DeadMachineInstructionElim() : MachineFunctionPass(ID) {
-    initializeDeadMachineInstructionElimPass(*PassRegistry::getPassRegistry());
-  }
+  DeadMachineInstructionElim() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &MF) override {
     if (skipFunction(MF.getFunction()))
diff --git a/llvm/lib/CodeGen/EHContGuardTargets.cpp b/llvm/lib/CodeGen/EHContGuardTargets.cpp
index 94d3b42b7b90b..9ad3f671798c9 100644
--- a/llvm/lib/CodeGen/EHContGuardTargets.cpp
+++ b/llvm/lib/CodeGen/EHContGuardTargets.cpp
@@ -37,9 +37,7 @@ class EHContGuardTargets : public MachineFunctionPass {
 public:
   static char ID;
 
-  EHContGuardTargets() : MachineFunctionPass(ID) {
-    initializeEHContGuardTargetsPass(*PassRegistry::getPassRegistry());
-  }
+  EHContGuardTargets() : MachineFunctionPass(ID) {}
 
   StringRef getPassName() const override {
     return "EH Cont Guard catchret targets";
diff --git a/llvm/lib/CodeGen/ExpandIRInsts.cpp b/llvm/lib/CodeGen/ExpandIRInsts.cpp
index 1d09000fbca6b..23c7aac42f323 100644
--- a/llvm/lib/CodeGen/ExpandIRInsts.cpp
+++ b/llvm/lib/CodeGen/ExpandIRInsts.cpp
@@ -1139,9 +1139,7 @@ class ExpandIRInstsLegacyPass : public FunctionPass {
   static char ID;
 
   ExpandIRInstsLegacyPass(CodeGenOptLevel OptLevel)
-      : FunctionPass(ID), OptLevel(OptLevel) {
-    initializeExpandIRInstsLegacyPassPass(*PassRegistry::getPassRegistry());
-  }
+      : FunctionPass(ID), OptLevel(OptLevel) {}
 
   ExpandIRInstsLegacyPass() : ExpandIRInstsLegacyPass(CodeGenOptLevel::None) {};
 
diff --git a/llvm/lib/CodeGen/ExpandMemCmp.cpp b/llvm/lib/CodeGen/ExpandMemCmp.cpp
index 1cccd2f66395c..7ebfca4aa2b1d 100644
--- a/llvm/lib/CodeGen/ExpandMemCmp.cpp
+++ b/llvm/lib/CodeGen/ExpandMemCmp.cpp
@@ -909,9 +909,7 @@ class ExpandMemCmpLegacyPass : public FunctionPass {
 public:
   static char ID;
 
-  ExpandMemCmpLegacyPass() : FunctionPass(ID) {
-    initializeExpandMemCmpLegacyPassPass(*PassRegistry::getPassRegistry());
-  }
+  ExpandMemCmpLegacyPass() : FunctionPass(ID) {}
 
   bool runOnFunction(Function &F) override {
     if (skipFunction(F)) return false;
diff --git a/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp b/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp
index c4ba4195f307f..a94b609532c82 100644
--- a/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp
+++ b/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp
@@ -41,9 +41,7 @@ struct ExpandPostRA {
 
 struct ExpandPostRALegacy : public MachineFunctionPass {
   static char ID;
-  ExpandPostRALegacy() : MachineFunctionPass(ID) {
-    initializeExpandPostRALegacyPass(*PassRegistry::getPassRegistry());
-  }
+  ExpandPostRALegacy() : MachineFunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.setPreservesCFG();
diff --git a/llvm/lib/CodeGen/ExpandReductions.cpp b/llvm/lib/CodeGen/ExpandReductions.cpp
index d6778ec666cbe..f4a07e1988747 100644
--- a/llvm/lib/CodeGen/ExpandReductions.cpp
+++ b/llvm/lib/CodeGen/ExpandReductions.cpp
@@ -156,9 +156,7 @@ bool expandReductions(Function &F, const TargetTransformInfo *TTI) {
 class ExpandReductions : public FunctionPass {
 public:
   static char ID;
-  ExpandReductions() : FunctionPass(ID) {
-    initializeExpandReductionsPass(*PassRegistry::getPassRegistry());
-  }
+  ExpandReductions() : FunctionPass(ID) {}
 
   bool runOnFunction(Function &F) override {
     const auto *TTI =&getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F);
diff --git a/llvm/lib/CodeGen/FEntryInserter.cpp b/llvm/lib/CodeGen/FEntryInserter.cpp
index 79949dac51448..80639b5f162e1 100644
--- a/llvm/lib/CodeGen/FEntryInserter.cpp
+++ b/llvm/lib/CodeGen/FEntryInserter.cpp
@@ -29,9 +29,7 @@ struct FEntryInserter {
 
 struct FEntryInserterLegacy : public MachineFunctionPass {
   static char ID; // Pass identification, replacement for typeid
-  FEntryInserterLegacy() : MachineFunctionPass(ID) {
-    initializeFEntryInserterLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  FEntryInserterLegacy() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &F) override {
     return FEntryInserter().run(F);
diff --git a/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp b/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
index c23cac7974d51..8d2f9bfb6c5cb 100644
--- a/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
+++ b/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
@@ -67,10 +67,7 @@ class FixupStatepointCallerSavedLegacy : public MachineFunctionPass {
 public:
   static char ID;
 
-  FixupStatepointCallerSavedLegacy() : MachineFunctionPass(ID) {
-    initializeFixupStatepointCallerSavedLegacyPass(
-        *PassRegistry::getPassRegistry());
-  }
+  FixupStatepointCallerSavedLegacy() : MachineFunctionPass(ID) {}
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.setPreservesCFG();
     MachineFunctionPass::getAnalysisUsage(AU);
diff --git a/llvm/lib/CodeGen/FuncletLayout.cpp b/llvm/lib/CodeGen/FuncletLayout.cpp
index f2dd3937bb5a0..75839c2511adf 100644
--- a/llvm/lib/CodeGen/FuncletLayout.cpp
+++ b/llvm/lib/CodeGen/FuncletLayout.cpp
@@ -23,9 +23,7 @@ namespace {
 class FuncletLayout : public MachineFunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
-  FuncletLayout() : MachineFunctionPass(ID) {
-    initializeFuncletLayoutPass(*PassRegistry::getPassRegistry());
-  }
+  FuncletLayout() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &F) override;
   MachineFunctionProperties getRequiredProperties() const override {
diff --git a/llvm/lib/CodeGen/GCEmptyBasicBlocks.cpp b/llvm/lib/CodeGen/GCEmptyBasicBlocks.cpp
index 53f804588287e..578eaf136a28b 100644
--- a/llvm/lib/CodeGen/GCEmptyBasicBlocks.cpp
+++ b/llvm/lib/CodeGen/GCEmptyBasicBlocks.cpp
@@ -43,6 +43,9 @@ class GCEmptyBasicBlocksLegacy : public MachineFunctionPass {
   static char ID;
 
   GCEmptyBasicBlocksLegacy() : MachineFunctionPass(ID) {
+    // TODO: Move this call to llvm::initializeCodeGen() once
+    // `gc-empty-basic-blocks` command line alias in TargetPassConfig.cpp has
+    // been removed.
     initializeGCEmptyBasicBlocksLegacyPass(*PassRegistry::getPassRegistry());
   }
 
diff --git a/llvm/lib/CodeGen/GCMetadata.cpp b/llvm/lib/CodeGen/GCMetadata.cpp
index 85e07efcdcfc7..eb6faf0aa2d2e 100644
--- a/llvm/lib/CodeGen/GCMetadata.cpp
+++ b/llvm/lib/CodeGen/GCMetadata.cpp
@@ -88,9 +88,7 @@ bool GCFunctionInfo::invalidate(Function &F, const PreservedAnalyses &PA,
 
 char GCModuleInfo::ID = 0;
 
-GCModuleInfo::GCModuleInfo() : ImmutablePass(ID) {
-  initializeGCModuleInfoPass(*PassRegistry::getPassRegistry());
-}
+GCModuleInfo::GCModuleInfo() : ImmutablePass(ID) {}
 
 GCFunctionInfo &GCModuleInfo::getFunctionInfo(const Function &F) {
   assert(!F.isDeclaration() && "Can only get GCFunctionInfo for a definition!");
diff --git a/llvm/lib/CodeGen/GCRootLowering.cpp b/llvm/lib/CodeGen/GCRootLowering.cpp
index 700714d539847..c919f3bbac8df 100644
--- a/llvm/lib/CodeGen/GCRootLowering.cpp
+++ b/llvm/lib/CodeGen/GCRootLowering.cpp
@@ -107,9 +107,7 @@ FunctionPass *llvm::createGCLoweringPass() { return new LowerIntrinsics(); }
 char LowerIntrinsics::ID = 0;
 char &llvm::GCLoweringID = LowerIntrinsics::ID;
 
-LowerIntrinsics::LowerIntrinsics() : FunctionPass(ID) {
-  initializeLowerIntrinsicsPass(*PassRegistry::getPassRegistry());
-}
+LowerIntrinsics::LowerIntrinsics() : FunctionPass(ID) {}
 
 StringRef LowerIntrinsics::getPassName() const {
   return "Lower Garbage Collection Instructions";
diff --git a/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp b/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp
index fd89e40a5a1ee..d8bb6700188d4 100644
--- a/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp
@@ -18,13 +18,9 @@
 using namespace llvm;
 char llvm::GISelCSEAnalysisWrapperPass::ID = 0;
 GISelCSEAnalysisWrapperPass::GISelCSEAnalysisWrapperPass()
-    : MachineFunctionPass(ID) {
-  initializeGISelCSEAnalysisWrapperPassPass(*PassRegistry::getPassRegistry());
-}
-INITIALIZE_PASS_BEGIN(GISelCSEAnalysisWrapperPass, DEBUG_TYPE,
-                      "Analysis containing CSE Info", false, true)
-INITIALIZE_PASS_END(GISelCSEAnalysisWrapperPass, DEBUG_TYPE,
-                    "Analysis containing CSE Info", false, true)
+    : MachineFunctionPass(ID) {}
+INITIALIZE_PASS(GISelCSEAnalysisWrapperPass, DEBUG_TYPE,
+                "Analysis containing CSE Info", false, true)
 
 /// -------- UniqueMachineInstr -------------//
 
diff --git a/llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp b/llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
index 7a13334099008..34692f0b4c4ee 100644
--- a/llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
@@ -33,6 +33,7 @@
 #include "llvm/IR/ConstantRange.h"
 #include "llvm/IR/DerivedTypes.h"
 #include "llvm/IR/FMF.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/MC/TargetRegistry.h"
 #include "llvm/Support/KnownBits.h"
 #include "llvm/Support/KnownFPClass.h"
diff --git a/llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp b/llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp
index efcc40641ea80..5c0d8282a0add 100644
--- a/llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp
@@ -21,4 +21,6 @@ void llvm::initializeGlobalISel(PassRegistry &Registry) {
   initializeLocalizerPass(Registry);
   initializeRegBankSelectPass(Registry);
   initializeInstructionSelectPass(Registry);
+  initializeGISelValueTrackingAnalysisLegacyPass(Registry);
+  initializeGISelCSEAnalysisWrapperPassPass(Registry);
 }
diff --git a/llvm/lib/CodeGen/GlobalMerge.cpp b/llvm/lib/CodeGen/GlobalMerge.cpp
index 653c4e8ee4389..ece80e049926b 100644
--- a/llvm/lib/CodeGen/GlobalMerge.cpp
+++ b/llvm/lib/CodeGen/GlobalMerge.cpp
@@ -200,7 +200,6 @@ class GlobalMerge : public FunctionPass {
     Opt.MaxOffset = GlobalMergeMaxOffset;
     Opt.MergeConstantGlobals = EnableGlobalMergeOnConst;
     Opt.MergeConstAggressive = GlobalMergeAllConst;
-    initializeGlobalMergePass(*PassRegistry::getPassRegistry());
   }
 
   explicit GlobalMerge(const TargetMachine *TM, unsigned MaximalOffset,
@@ -212,7 +211,6 @@ class GlobalMerge : public FunctionPass {
     Opt.MergeExternal = MergeExternalGlobals;
     Opt.MergeConstantGlobals = MergeConstantGlobals;
     Opt.MergeConstAggressive = MergeConstAggressive;
-    initializeGlobalMergePass(*PassRegistry::getPassRegistry());
   }
 
   bool doInitialization(Module &M) override {
diff --git a/llvm/lib/CodeGen/HardwareLoops.cpp b/llvm/lib/CodeGen/HardwareLoops.cpp
index 7a2340a9313f6..5c0252614e281 100644
--- a/llvm/lib/CodeGen/HardwareLoops.cpp
+++ b/llvm/lib/CodeGen/HardwareLoops.cpp
@@ -120,9 +120,7 @@ namespace {
   public:
     static char ID;
 
-    HardwareLoopsLegacy() : FunctionPass(ID) {
-      initializeHardwareLoopsLegacyPass(*PassRegistry::getPassRegistry());
-    }
+    HardwareLoopsLegacy() : FunctionPass(ID) {}
 
     bool runOnFunction(Function &F) override;
 
diff --git a/llvm/lib/CodeGen/IfConversion.cpp b/llvm/lib/CodeGen/IfConversion.cpp
index f9045d1dccc34..40d66f5fa4ec4 100644
--- a/llvm/lib/CodeGen/IfConversion.cpp
+++ b/llvm/lib/CodeGen/IfConversion.cpp
@@ -210,9 +210,7 @@ namespace {
     static char ID;
 
     IfConverter(std::function<bool(const MachineFunction &)> Ftor = nullptr)
-        : MachineFunctionPass(ID), PredicateFtor(std::move(Ftor)) {
-      initializeIfConverterPass(*PassRegistry::getPassRegistry());
-    }
+        : MachineFunctionPass(ID), PredicateFtor(std::move(Ftor)) {}
 
     void getAnalysisUsage(AnalysisUsage &AU) const override {
       AU.addRequired<MachineBlockFrequencyInfoWrapperPass>();
diff --git a/llvm/lib/CodeGen/ImplicitNullChecks.cpp b/llvm/lib/CodeGen/ImplicitNullChecks.cpp
index b585ce491f62a..c0f5bc81c9cf0 100644
--- a/llvm/lib/CodeGen/ImplicitNullChecks.cpp
+++ b/llvm/lib/CodeGen/ImplicitNullChecks.cpp
@@ -214,9 +214,7 @@ class ImplicitNullChecks : public MachineFunctionPass {
 public:
   static char ID;
 
-  ImplicitNullChecks() : MachineFunctionPass(ID) {
-    initializeImplicitNullChecksPass(*PassRegistry::getPassRegistry());
-  }
+  ImplicitNullChecks() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &MF) override;
 
diff --git a/llvm/lib/CodeGen/IndirectBrExpandPass.cpp b/llvm/lib/CodeGen/IndirectBrExpandPass.cpp
index 84f385888b0c7..0b625be36e776 100644
--- a/llvm/lib/CodeGen/IndirectBrExpandPass.cpp
+++ b/llvm/lib/CodeGen/IndirectBrExpandPass.cpp
@@ -53,9 +53,7 @@ class IndirectBrExpandLegacyPass : public FunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  IndirectBrExpandLegacyPass() : FunctionPass(ID) {
-    initializeIndirectBrExpandLegacyPassPass(*PassRegistry::getPassRegistry());
-  }
+  IndirectBrExpandLegacyPass() : FunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.addPreserved<DominatorTreeWrapperPass>();
diff --git a/llvm/lib/CodeGen/InterleavedAccessPass.cpp b/llvm/lib/CodeGen/InterleavedAccessPass.cpp
index eac6fbd492024..24394addfa44a 100644
--- a/llvm/lib/CodeGen/InterleavedAccessPass.cpp
+++ b/llvm/lib/CodeGen/InterleavedAccessPass.cpp
@@ -141,9 +141,7 @@ class InterleavedAccess : public FunctionPass {
 public:
   static char ID;
 
-  InterleavedAccess() : FunctionPass(ID) {
-    initializeInterleavedAccessPass(*PassRegistry::getPassRegistry());
-  }
+  InterleavedAccess() : FunctionPass(ID) {}
 
   StringRef getPassName() const override { return "Interleaved Access Pass"; }
 
diff --git a/llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp b/llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
index c08479edef1d3..aaba0d14994e5 100644
--- a/llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
+++ b/llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
@@ -1306,9 +1306,7 @@ namespace {
 struct InterleavedLoadCombine : public FunctionPass {
   static char ID;
 
-  InterleavedLoadCombine() : FunctionPass(ID) {
-    initializeInterleavedLoadCombinePass(*PassRegistry::getPassRegistry());
-  }
+  InterleavedLoadCombine() : FunctionPass(ID) {}
 
   StringRef getPassName() const override {
     return "Interleaved Load Combine Pass";
diff --git a/llvm/lib/CodeGen/JMCInstrumenter.cpp b/llvm/lib/CodeGen/JMCInstrumenter.cpp
index e2aaebedf5a4f..2ff0fdfdc55e3 100644
--- a/llvm/lib/CodeGen/JMCInstrumenter.cpp
+++ b/llvm/lib/CodeGen/JMCInstrumenter.cpp
@@ -46,9 +46,7 @@ static bool runImpl(Module &M);
 namespace {
 struct JMCInstrumenter : public ModulePass {
   static char ID;
-  JMCInstrumenter() : ModulePass(ID) {
-    initializeJMCInstrumenterPass(*PassRegistry::getPassRegistry());
-  }
+  JMCInstrumenter() : ModulePass(ID) {}
   bool runOnModule(Module &M) override { return runImpl(M); }
 };
 char JMCInstrumenter::ID = 0;
diff --git a/llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp b/llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp
index 6fd84646009be..64e906ad8198c 100644
--- a/llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp
+++ b/llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp
@@ -31,10 +31,7 @@ INITIALIZE_PASS_END(LazyMachineBlockFrequencyInfoPass, DEBUG_TYPE,
 char LazyMachineBlockFrequencyInfoPass::ID = 0;
 
 LazyMachineBlockFrequencyInfoPass::LazyMachineBlockFrequencyInfoPass()
-    : MachineFunctionPass(ID) {
-  initializeLazyMachineBlockFrequencyInfoPassPass(
-      *PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 void LazyMachineBlockFrequencyInfoPass::getAnalysisUsage(
     AnalysisUsage &AU) const {
diff --git a/llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp b/llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp
index 94e3a8273e843..27fbed36cf1de 100644
--- a/llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp
+++ b/llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp
@@ -101,9 +101,7 @@ INITIALIZE_PASS(LiveDebugValuesLegacy, DEBUG_TYPE, "Live DEBUG_VALUE analysis",
                 false, false)
 
 /// Default construct and initialize the pass.
-LiveDebugValuesLegacy::LiveDebugValuesLegacy() : MachineFunctionPass(ID) {
-  initializeLiveDebugValuesLegacyPass(*PassRegistry::getPassRegistry());
-}
+LiveDebugValuesLegacy::LiveDebugValuesLegacy() : MachineFunctionPass(ID) {}
 
 LiveDebugValues::LiveDebugValues() {
   InstrRefImpl =
diff --git a/llvm/lib/CodeGen/LiveDebugVariables.cpp b/llvm/lib/CodeGen/LiveDebugVariables.cpp
index 001ba5250f77e..fb90032131491 100644
--- a/llvm/lib/CodeGen/LiveDebugVariables.cpp
+++ b/llvm/lib/CodeGen/LiveDebugVariables.cpp
@@ -93,10 +93,7 @@ void LiveDebugVariablesWrapperLegacy::getAnalysisUsage(
 }
 
 LiveDebugVariablesWrapperLegacy::LiveDebugVariablesWrapperLegacy()
-    : MachineFunctionPass(ID) {
-  initializeLiveDebugVariablesWrapperLegacyPass(
-      *PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 enum : unsigned { UndefLocNo = ~0U };
 
diff --git a/llvm/lib/CodeGen/LiveIntervals.cpp b/llvm/lib/CodeGen/LiveIntervals.cpp
index 2e8756565c8f7..a8269a79b544e 100644
--- a/llvm/lib/CodeGen/LiveIntervals.cpp
+++ b/llvm/lib/CodeGen/LiveIntervals.cpp
@@ -40,6 +40,7 @@
 #include "llvm/Config/llvm-config.h"
 #include "llvm/IR/ProfileSummary.h"
 #include "llvm/IR/Statepoint.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/MC/LaneBitmask.h"
 #include "llvm/MC/MCRegisterInfo.h"
 #include "llvm/Pass.h"
@@ -117,9 +118,8 @@ void LiveIntervalsWrapperPass::getAnalysisUsage(AnalysisUsage &AU) const {
   MachineFunctionPass::getAnalysisUsage(AU);
 }
 
-LiveIntervalsWrapperPass::LiveIntervalsWrapperPass() : MachineFunctionPass(ID) {
-  initializeLiveIntervalsWrapperPassPass(*PassRegistry::getPassRegistry());
-}
+LiveIntervalsWrapperPass::LiveIntervalsWrapperPass()
+    : MachineFunctionPass(ID) {}
 
 LiveIntervals::~LiveIntervals() { clear(); }
 
diff --git a/llvm/lib/CodeGen/LiveRangeShrink.cpp b/llvm/lib/CodeGen/LiveRangeShrink.cpp
index 555e36edd0249..3e4725eb0dbe6 100644
--- a/llvm/lib/CodeGen/LiveRangeShrink.cpp
+++ b/llvm/lib/CodeGen/LiveRangeShrink.cpp
@@ -44,9 +44,7 @@ class LiveRangeShrink : public MachineFunctionPass {
 public:
   static char ID;
 
-  LiveRangeShrink() : MachineFunctionPass(ID) {
-    initializeLiveRangeShrinkPass(*PassRegistry::getPassRegistry());
-  }
+  LiveRangeShrink() : MachineFunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.setPreservesCFG();
diff --git a/llvm/lib/CodeGen/LiveVariables.cpp b/llvm/lib/CodeGen/LiveVariables.cpp
index c5dfddaa21e66..246d538332af7 100644
--- a/llvm/lib/CodeGen/LiveVariables.cpp
+++ b/llvm/lib/CodeGen/LiveVariables.cpp
@@ -35,6 +35,7 @@
 #include "llvm/CodeGen/MachineRegisterInfo.h"
 #include "llvm/CodeGen/Passes.h"
 #include "llvm/Config/llvm-config.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp b/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp
index d316f8d804f53..e77bae11dea46 100644
--- a/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp
+++ b/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp
@@ -100,9 +100,7 @@ namespace {
   public:
     static char ID; // Pass identification, replacement for typeid
 
-    explicit LocalStackSlotPass() : MachineFunctionPass(ID) {
-      initializeLocalStackSlotPassPass(*PassRegistry::getPassRegistry());
-    }
+    explicit LocalStackSlotPass() : MachineFunctionPass(ID) {}
 
     bool runOnMachineFunction(MachineFunction &MF) override {
       return LocalStackSlotImpl().runOnMachineFunction(MF);
diff --git a/llvm/lib/CodeGen/LowerEmuTLS.cpp b/llvm/lib/CodeGen/LowerEmuTLS.cpp
index c81f0184cf213..3bcf1fad53a42 100644
--- a/llvm/lib/CodeGen/LowerEmuTLS.cpp
+++ b/llvm/lib/CodeGen/LowerEmuTLS.cpp
@@ -35,9 +35,7 @@ namespace {
 class LowerEmuTLS : public ModulePass {
 public:
   static char ID; // Pass identification, replacement for typeid
-  LowerEmuTLS() : ModulePass(ID) {
-    initializeLowerEmuTLSPass(*PassRegistry::getPassRegistry());
-  }
+  LowerEmuTLS() : ModulePass(ID) {}
 
   bool runOnModule(Module &M) override;
 };
diff --git a/llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp b/llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
index 34531dd7ab17f..2f2ee6f535f40 100644
--- a/llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
+++ b/llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
@@ -97,9 +97,7 @@ class RegAllocScoring : public MachineFunctionPass {
 public:
   static char ID;
 
-  RegAllocScoring() : MachineFunctionPass(ID) {
-    initializeRegAllocScoringPass(*PassRegistry::getPassRegistry());
-  }
+  RegAllocScoring() : MachineFunctionPass(ID) {}
 
   ~RegAllocScoring() override = default;
 
diff --git a/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp b/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
index 26eb10f2475d2..968e0e26b9213 100644
--- a/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
+++ b/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
@@ -187,10 +187,7 @@ INITIALIZE_PASS_END(MachineBlockFrequencyInfoWrapperPass, DEBUG_TYPE,
 char MachineBlockFrequencyInfoWrapperPass::ID = 0;
 
 MachineBlockFrequencyInfoWrapperPass::MachineBlockFrequencyInfoWrapperPass()
-    : MachineFunctionPass(ID) {
-  initializeMachineBlockFrequencyInfoWrapperPassPass(
-      *PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 MachineBlockFrequencyInfo::MachineBlockFrequencyInfo() = default;
 
diff --git a/llvm/lib/CodeGen/MachineBlockHashInfo.cpp b/llvm/lib/CodeGen/MachineBlockHashInfo.cpp
index c4d9c0f27fbf9..73dfc7c62a95c 100644
--- a/llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+++ b/llvm/lib/CodeGen/MachineBlockHashInfo.cpp
@@ -47,9 +47,7 @@ INITIALIZE_PASS(MachineBlockHashInfo, "machine-block-hash",
 
 char MachineBlockHashInfo::ID = 0;
 
-MachineBlockHashInfo::MachineBlockHashInfo() : MachineFunctionPass(ID) {
-  initializeMachineBlockHashInfoPass(*PassRegistry::getPassRegistry());
-}
+MachineBlockHashInfo::MachineBlockHashInfo() : MachineFunctionPass(ID) {}
 
 void MachineBlockHashInfo::getAnalysisUsage(AnalysisUsage &AU) const {
   AU.setPreservesAll();
diff --git a/llvm/lib/CodeGen/MachineBlockPlacement.cpp b/llvm/lib/CodeGen/MachineBlockPlacement.cpp
index f8176e225d313..b328c920125cf 100644
--- a/llvm/lib/CodeGen/MachineBlockPlacement.cpp
+++ b/llvm/lib/CodeGen/MachineBlockPlacement.cpp
@@ -638,9 +638,7 @@ class MachineBlockPlacementLegacy : public MachineFunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  MachineBlockPlacementLegacy() : MachineFunctionPass(ID) {
-    initializeMachineBlockPlacementLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  MachineBlockPlacementLegacy() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &MF) override {
     if (skipFunction(MF.getFunction()))
@@ -3867,10 +3865,7 @@ class MachineBlockPlacementStatsLegacy : public MachineFunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  MachineBlockPlacementStatsLegacy() : MachineFunctionPass(ID) {
-    initializeMachineBlockPlacementStatsLegacyPass(
-        *PassRegistry::getPassRegistry());
-  }
+  MachineBlockPlacementStatsLegacy() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &F) override {
     auto *MBPI =
diff --git a/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp b/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp
index 7ca4582e78162..f447f4a3699a6 100644
--- a/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp
+++ b/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp
@@ -58,10 +58,7 @@ char MachineBranchProbabilityInfoWrapperPass::ID = 0;
 
 MachineBranchProbabilityInfoWrapperPass::
     MachineBranchProbabilityInfoWrapperPass()
-    : ImmutablePass(ID) {
-  PassRegistry &Registry = *PassRegistry::getPassRegistry();
-  initializeMachineBranchProbabilityInfoWrapperPassPass(Registry);
-}
+    : ImmutablePass(ID) {}
 
 void MachineBranchProbabilityInfoWrapperPass::anchor() {}
 
diff --git a/llvm/lib/CodeGen/MachineCFGPrinter.cpp b/llvm/lib/CodeGen/MachineCFGPrinter.cpp
index 7bfb817713808..19f9297600e34 100644
--- a/llvm/lib/CodeGen/MachineCFGPrinter.cpp
+++ b/llvm/lib/CodeGen/MachineCFGPrinter.cpp
@@ -80,9 +80,7 @@ INITIALIZE_PASS(MachineCFGPrinter, DEBUG_TYPE, "Machine CFG Printer Pass",
                 false, true)
 
 /// Default construct and initialize the pass.
-MachineCFGPrinter::MachineCFGPrinter() : MachineFunctionPass(ID) {
-  initializeMachineCFGPrinterPass(*PassRegistry::getPassRegistry());
-}
+MachineCFGPrinter::MachineCFGPrinter() : MachineFunctionPass(ID) {}
 
 bool MachineCFGPrinter::runOnMachineFunction(MachineFunction &MF) {
   if (!MCFGFuncName.empty() && !MF.getName().contains(MCFGFuncName))
diff --git a/llvm/lib/CodeGen/MachineCSE.cpp b/llvm/lib/CodeGen/MachineCSE.cpp
index 780ed92bc8581..3dc936ce07531 100644
--- a/llvm/lib/CodeGen/MachineCSE.cpp
+++ b/llvm/lib/CodeGen/MachineCSE.cpp
@@ -136,9 +136,7 @@ class MachineCSELegacy : public MachineFunctionPass {
 public:
   static char ID; // Pass identification
 
-  MachineCSELegacy() : MachineFunctionPass(ID) {
-    initializeMachineCSELegacyPass(*PassRegistry::getPassRegistry());
-  }
+  MachineCSELegacy() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &MF) override;
 
diff --git a/llvm/lib/CodeGen/MachineCombiner.cpp b/llvm/lib/CodeGen/MachineCombiner.cpp
index 205c79e71854f..a4b3dcafb5f80 100644
--- a/llvm/lib/CodeGen/MachineCombiner.cpp
+++ b/llvm/lib/CodeGen/MachineCombiner.cpp
@@ -79,9 +79,7 @@ class MachineCombiner : public MachineFunctionPass {
 
 public:
   static char ID;
-  MachineCombiner() : MachineFunctionPass(ID) {
-    initializeMachineCombinerPass(*PassRegistry::getPassRegistry());
-  }
+  MachineCombiner() : MachineFunctionPass(ID) {}
   void getAnalysisUsage(AnalysisUsage &AU) const override;
   bool runOnMachineFunction(MachineFunction &MF) override;
   StringRef getPassName() const override { return "Machine InstCombiner"; }
diff --git a/llvm/lib/CodeGen/MachineCycleAnalysis.cpp b/llvm/lib/CodeGen/MachineCycleAnalysis.cpp
index 33a5b664826b3..218833ae94bb8 100644
--- a/llvm/lib/CodeGen/MachineCycleAnalysis.cpp
+++ b/llvm/lib/CodeGen/MachineCycleAnalysis.cpp
@@ -22,9 +22,7 @@ template class llvm::GenericCycle<llvm::MachineSSAContext>;
 char MachineCycleInfoWrapperPass::ID = 0;
 
 MachineCycleInfoWrapperPass::MachineCycleInfoWrapperPass()
-    : MachineFunctionPass(ID) {
-  initializeMachineCycleInfoWrapperPassPass(*PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 INITIALIZE_PASS_BEGIN(MachineCycleInfoWrapperPass, "machine-cycles",
                       "Machine Cycle Info Analysis", true, true)
@@ -79,9 +77,7 @@ class MachineCycleInfoPrinterLegacy : public MachineFunctionPass {
 char MachineCycleInfoPrinterLegacy::ID = 0;
 
 MachineCycleInfoPrinterLegacy::MachineCycleInfoPrinterLegacy()
-    : MachineFunctionPass(ID) {
-  initializeMachineCycleInfoPrinterLegacyPass(*PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 INITIALIZE_PASS_BEGIN(MachineCycleInfoPrinterLegacy, "print-machine-cycles",
                       "Print Machine Cycle Info Analysis", true, true)
diff --git a/llvm/lib/CodeGen/MachineDominanceFrontier.cpp b/llvm/lib/CodeGen/MachineDominanceFrontier.cpp
index ed69ed931c5cb..4d35ba89afe31 100644
--- a/llvm/lib/CodeGen/MachineDominanceFrontier.cpp
+++ b/llvm/lib/CodeGen/MachineDominanceFrontier.cpp
@@ -30,9 +30,8 @@ INITIALIZE_PASS_DEPENDENCY(MachineDominatorTreeWrapperPass)
 INITIALIZE_PASS_END(MachineDominanceFrontier, "machine-domfrontier",
                 "Machine Dominance Frontier Construction", true, true)
 
-MachineDominanceFrontier::MachineDominanceFrontier() : MachineFunctionPass(ID) {
-  initializeMachineDominanceFrontierPass(*PassRegistry::getPassRegistry());
-}
+MachineDominanceFrontier::MachineDominanceFrontier()
+    : MachineFunctionPass(ID) {}
 
 char &llvm::MachineDominanceFrontierID = MachineDominanceFrontier::ID;
 
diff --git a/llvm/lib/CodeGen/MachineDominators.cpp b/llvm/lib/CodeGen/MachineDominators.cpp
index b221fa8b6de84..f1cb2b04d25d7 100644
--- a/llvm/lib/CodeGen/MachineDominators.cpp
+++ b/llvm/lib/CodeGen/MachineDominators.cpp
@@ -15,7 +15,6 @@
 #include "llvm/CodeGen/Passes.h"
 #include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
-#include "llvm/PassRegistry.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/Compiler.h"
 #include "llvm/Support/GenericDomTreeConstruction.h"
@@ -95,10 +94,7 @@ INITIALIZE_PASS(MachineDominatorTreeWrapperPass, "machinedomtree",
                 "MachineDominator Tree Construction", true, true)
 
 MachineDominatorTreeWrapperPass::MachineDominatorTreeWrapperPass()
-    : MachineFunctionPass(ID) {
-  initializeMachineDominatorTreeWrapperPassPass(
-      *PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 char &llvm::MachineDominatorsID = MachineDominatorTreeWrapperPass::ID;
 
diff --git a/llvm/lib/CodeGen/MachineFunctionSplitter.cpp b/llvm/lib/CodeGen/MachineFunctionSplitter.cpp
index b5d3092ee84d8..6adda8a345cf4 100644
--- a/llvm/lib/CodeGen/MachineFunctionSplitter.cpp
+++ b/llvm/lib/CodeGen/MachineFunctionSplitter.cpp
@@ -72,9 +72,7 @@ namespace {
 class MachineFunctionSplitter : public MachineFunctionPass {
 public:
   static char ID;
-  MachineFunctionSplitter() : MachineFunctionPass(ID) {
-    initializeMachineFunctionSplitterPass(*PassRegistry::getPassRegistry());
-  }
+  MachineFunctionSplitter() : MachineFunctionPass(ID) {}
 
   StringRef getPassName() const override {
     return "Machine Function Splitter Transformation";
diff --git a/llvm/lib/CodeGen/MachineInstrBundle.cpp b/llvm/lib/CodeGen/MachineInstrBundle.cpp
index 52b3528345072..c9f01e30483bf 100644
--- a/llvm/lib/CodeGen/MachineInstrBundle.cpp
+++ b/llvm/lib/CodeGen/MachineInstrBundle.cpp
@@ -28,9 +28,7 @@ namespace {
     static char ID; // Pass identification
     UnpackMachineBundles(
         std::function<bool(const MachineFunction &)> Ftor = nullptr)
-        : MachineFunctionPass(ID), PredicateFtor(std::move(Ftor)) {
-      initializeUnpackMachineBundlesPass(*PassRegistry::getPassRegistry());
-    }
+        : MachineFunctionPass(ID), PredicateFtor(std::move(Ftor)) {}
 
     bool runOnMachineFunction(MachineFunction &MF) override;
 
diff --git a/llvm/lib/CodeGen/MachineLICM.cpp b/llvm/lib/CodeGen/MachineLICM.cpp
index 0a4b04d60aedc..e5c4408749e81 100644
--- a/llvm/lib/CodeGen/MachineLICM.cpp
+++ b/llvm/lib/CodeGen/MachineLICM.cpp
@@ -310,17 +310,13 @@ namespace {
   class MachineLICM : public MachineLICMBase {
   public:
     static char ID;
-    MachineLICM() : MachineLICMBase(ID, false) {
-      initializeMachineLICMPass(*PassRegistry::getPassRegistry());
-    }
+    MachineLICM() : MachineLICMBase(ID, false) {}
   };
 
   class EarlyMachineLICM : public MachineLICMBase {
   public:
     static char ID;
-    EarlyMachineLICM() : MachineLICMBase(ID, true) {
-      initializeEarlyMachineLICMPass(*PassRegistry::getPassRegistry());
-    }
+    EarlyMachineLICM() : MachineLICMBase(ID, true) {}
   };
 
 } // end anonymous namespace
diff --git a/llvm/lib/CodeGen/MachineLateInstrsCleanup.cpp b/llvm/lib/CodeGen/MachineLateInstrsCleanup.cpp
index 26b6f5af5c49b..4f281fa1361ca 100644
--- a/llvm/lib/CodeGen/MachineLateInstrsCleanup.cpp
+++ b/llvm/lib/CodeGen/MachineLateInstrsCleanup.cpp
@@ -68,10 +68,7 @@ class MachineLateInstrsCleanupLegacy : public MachineFunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  MachineLateInstrsCleanupLegacy() : MachineFunctionPass(ID) {
-    initializeMachineLateInstrsCleanupLegacyPass(
-        *PassRegistry::getPassRegistry());
-  }
+  MachineLateInstrsCleanupLegacy() : MachineFunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.setPreservesCFG();
diff --git a/llvm/lib/CodeGen/MachineLoopInfo.cpp b/llvm/lib/CodeGen/MachineLoopInfo.cpp
index fdb1a470493ce..9479b41f57b17 100644
--- a/llvm/lib/CodeGen/MachineLoopInfo.cpp
+++ b/llvm/lib/CodeGen/MachineLoopInfo.cpp
@@ -21,7 +21,6 @@
 #include "llvm/Config/llvm-config.h"
 #include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
-#include "llvm/PassRegistry.h"
 #include "llvm/Support/Compiler.h"
 #include "llvm/Support/GenericLoopInfoImpl.h"
 
@@ -51,9 +50,7 @@ MachineLoopPrinterPass::run(MachineFunction &MF,
 
 char MachineLoopInfoWrapperPass::ID = 0;
 MachineLoopInfoWrapperPass::MachineLoopInfoWrapperPass()
-    : MachineFunctionPass(ID) {
-  initializeMachineLoopInfoWrapperPassPass(*PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 INITIALIZE_PASS_BEGIN(MachineLoopInfoWrapperPass, "machine-loops",
                       "Machine Natural Loop Construction", true, true)
 INITIALIZE_PASS_DEPENDENCY(MachineDominatorTreeWrapperPass)
diff --git a/llvm/lib/CodeGen/MachineModuleInfo.cpp b/llvm/lib/CodeGen/MachineModuleInfo.cpp
index 6167e99aecf03..b3d0c0ea1b9e2 100644
--- a/llvm/lib/CodeGen/MachineModuleInfo.cpp
+++ b/llvm/lib/CodeGen/MachineModuleInfo.cpp
@@ -152,15 +152,11 @@ FunctionPass *llvm::createFreeMachineFunctionPass() {
 
 MachineModuleInfoWrapperPass::MachineModuleInfoWrapperPass(
     const TargetMachine *TM)
-    : ImmutablePass(ID), MMI(TM) {
-  initializeMachineModuleInfoWrapperPassPass(*PassRegistry::getPassRegistry());
-}
+    : ImmutablePass(ID), MMI(TM) {}
 
 MachineModuleInfoWrapperPass::MachineModuleInfoWrapperPass(
     const TargetMachine *TM, MCContext *ExtContext)
-    : ImmutablePass(ID), MMI(TM, ExtContext) {
-  initializeMachineModuleInfoWrapperPassPass(*PassRegistry::getPassRegistry());
-}
+    : ImmutablePass(ID), MMI(TM, ExtContext) {}
 
 // Handle the Pass registration stuff necessary to use DataLayout's.
 INITIALIZE_PASS(MachineModuleInfoWrapperPass, "machinemoduleinfo",
diff --git a/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp b/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp
index 039f07f2e5e3f..f51f70a8cac23 100644
--- a/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp
+++ b/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp
@@ -69,10 +69,7 @@ void MachineOptimizationRemarkEmitter::emit(
 }
 
 MachineOptimizationRemarkEmitterPass::MachineOptimizationRemarkEmitterPass()
-    : MachineFunctionPass(ID) {
-  initializeMachineOptimizationRemarkEmitterPassPass(
-      *PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 bool MachineOptimizationRemarkEmitterPass::runOnMachineFunction(
     MachineFunction &MF) {
diff --git a/llvm/lib/CodeGen/MachineOutliner.cpp b/llvm/lib/CodeGen/MachineOutliner.cpp
index 9f95c5ee9cbc6..245f97a17ea8d 100644
--- a/llvm/lib/CodeGen/MachineOutliner.cpp
+++ b/llvm/lib/CodeGen/MachineOutliner.cpp
@@ -488,9 +488,7 @@ struct MachineOutliner : public ModulePass {
     ModulePass::getAnalysisUsage(AU);
   }
 
-  MachineOutliner() : ModulePass(ID) {
-    initializeMachineOutlinerPass(*PassRegistry::getPassRegistry());
-  }
+  MachineOutliner() : ModulePass(ID) {}
 
   /// Remark output explaining that not outlining a set of candidates would be
   /// better than outlining that set.
diff --git a/llvm/lib/CodeGen/MachinePipeliner.cpp b/llvm/lib/CodeGen/MachinePipeliner.cpp
index 59ead74da6fb6..7b321db59a9a1 100644
--- a/llvm/lib/CodeGen/MachinePipeliner.cpp
+++ b/llvm/lib/CodeGen/MachinePipeliner.cpp
@@ -72,6 +72,7 @@
 #include "llvm/Config/llvm-config.h"
 #include "llvm/IR/Attributes.h"
 #include "llvm/IR/Function.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/MC/LaneBitmask.h"
 #include "llvm/MC/MCInstrDesc.h"
 #include "llvm/MC/MCInstrItineraries.h"
diff --git a/llvm/lib/CodeGen/MachinePostDominators.cpp b/llvm/lib/CodeGen/MachinePostDominators.cpp
index d6b5ee0e46d74..383a46c9cae7c 100644
--- a/llvm/lib/CodeGen/MachinePostDominators.cpp
+++ b/llvm/lib/CodeGen/MachinePostDominators.cpp
@@ -66,10 +66,7 @@ INITIALIZE_PASS(MachinePostDominatorTreeWrapperPass, "machinepostdomtree",
                 "MachinePostDominator Tree Construction", true, true)
 
 MachinePostDominatorTreeWrapperPass::MachinePostDominatorTreeWrapperPass()
-    : MachineFunctionPass(ID), PDT() {
-  initializeMachinePostDominatorTreeWrapperPassPass(
-      *PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID), PDT() {}
 
 bool MachinePostDominatorTreeWrapperPass::runOnMachineFunction(
     MachineFunction &F) {
diff --git a/llvm/lib/CodeGen/MachineRegionInfo.cpp b/llvm/lib/CodeGen/MachineRegionInfo.cpp
index 366755af08e49..d522d5b76a222 100644
--- a/llvm/lib/CodeGen/MachineRegionInfo.cpp
+++ b/llvm/lib/CodeGen/MachineRegionInfo.cpp
@@ -76,9 +76,7 @@ void MachineRegionInfo::recalculate(MachineFunction &F,
 // MachineRegionInfoPass implementation
 //
 
-MachineRegionInfoPass::MachineRegionInfoPass() : MachineFunctionPass(ID) {
-  initializeMachineRegionInfoPassPass(*PassRegistry::getPassRegistry());
-}
+MachineRegionInfoPass::MachineRegionInfoPass() : MachineFunctionPass(ID) {}
 
 MachineRegionInfoPass::~MachineRegionInfoPass() = default;
 
diff --git a/llvm/lib/CodeGen/MachineScheduler.cpp b/llvm/lib/CodeGen/MachineScheduler.cpp
index de29a9fab876e..13f134b59b59c 100644
--- a/llvm/lib/CodeGen/MachineScheduler.cpp
+++ b/llvm/lib/CodeGen/MachineScheduler.cpp
@@ -418,9 +418,7 @@ INITIALIZE_PASS_DEPENDENCY(LiveIntervalsWrapperPass)
 INITIALIZE_PASS_END(MachineSchedulerLegacy, DEBUG_TYPE,
                     "Machine Instruction Scheduler", false, false)
 
-MachineSchedulerLegacy::MachineSchedulerLegacy() : MachineFunctionPass(ID) {
-  initializeMachineSchedulerLegacyPass(*PassRegistry::getPassRegistry());
-}
+MachineSchedulerLegacy::MachineSchedulerLegacy() : MachineFunctionPass(ID) {}
 
 void MachineSchedulerLegacy::getAnalysisUsage(AnalysisUsage &AU) const {
   AU.setPreservesCFG();
@@ -448,9 +446,7 @@ INITIALIZE_PASS_END(PostMachineSchedulerLegacy, "postmisched",
                     "PostRA Machine Instruction Scheduler", false, false)
 
 PostMachineSchedulerLegacy::PostMachineSchedulerLegacy()
-    : MachineFunctionPass(ID) {
-  initializePostMachineSchedulerLegacyPass(*PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 void PostMachineSchedulerLegacy::getAnalysisUsage(AnalysisUsage &AU) const {
   AU.setPreservesCFG();
diff --git a/llvm/lib/CodeGen/MachineSink.cpp b/llvm/lib/CodeGen/MachineSink.cpp
index 0ceeda4eb16d2..efba571098a00 100644
--- a/llvm/lib/CodeGen/MachineSink.cpp
+++ b/llvm/lib/CodeGen/MachineSink.cpp
@@ -293,9 +293,7 @@ class MachineSinkingLegacy : public MachineFunctionPass {
 public:
   static char ID;
 
-  MachineSinkingLegacy() : MachineFunctionPass(ID) {
-    initializeMachineSinkingLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  MachineSinkingLegacy() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &MF) override;
 
diff --git a/llvm/lib/CodeGen/MachineUniformityAnalysis.cpp b/llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
index 238d29d386574..dbadb67e1e6d2 100644
--- a/llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
+++ b/llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
@@ -210,9 +210,7 @@ MachineUniformityPrinterPass::run(MachineFunction &MF,
 char MachineUniformityAnalysisPass::ID = 0;
 
 MachineUniformityAnalysisPass::MachineUniformityAnalysisPass()
-    : MachineFunctionPass(ID) {
-  initializeMachineUniformityAnalysisPassPass(*PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 INITIALIZE_PASS_BEGIN(MachineUniformityAnalysisPass, "machine-uniformity",
                       "Machine Uniformity Info Analysis", false, true)
@@ -248,10 +246,7 @@ void MachineUniformityAnalysisPass::print(raw_ostream &OS,
 char MachineUniformityInfoPrinterPass::ID = 0;
 
 MachineUniformityInfoPrinterPass::MachineUniformityInfoPrinterPass()
-    : MachineFunctionPass(ID) {
-  initializeMachineUniformityInfoPrinterPassPass(
-      *PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 INITIALIZE_PASS_BEGIN(MachineUniformityInfoPrinterPass,
                       "print-machine-uniformity",
diff --git a/llvm/lib/CodeGen/MachineVerifier.cpp b/llvm/lib/CodeGen/MachineVerifier.cpp
index 5ce7606b051a5..4f21b8150d879 100644
--- a/llvm/lib/CodeGen/MachineVerifier.cpp
+++ b/llvm/lib/CodeGen/MachineVerifier.cpp
@@ -366,9 +366,7 @@ struct MachineVerifierLegacyPass : public MachineFunctionPass {
   const std::string Banner;
 
   MachineVerifierLegacyPass(std::string banner = std::string())
-      : MachineFunctionPass(ID), Banner(std::move(banner)) {
-    initializeMachineVerifierLegacyPassPass(*PassRegistry::getPassRegistry());
-  }
+      : MachineFunctionPass(ID), Banner(std::move(banner)) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.addUsedIfAvailable<LiveStacksWrapperLegacy>();
diff --git a/llvm/lib/CodeGen/ModuloSchedule.cpp b/llvm/lib/CodeGen/ModuloSchedule.cpp
index a8bc4dd62290b..36db54cc516e7 100644
--- a/llvm/lib/CodeGen/ModuloSchedule.cpp
+++ b/llvm/lib/CodeGen/ModuloSchedule.cpp
@@ -2779,9 +2779,7 @@ class ModuloScheduleTest : public MachineFunctionPass {
 public:
   static char ID;
 
-  ModuloScheduleTest() : MachineFunctionPass(ID) {
-    initializeModuloScheduleTestPass(*PassRegistry::getPassRegistry());
-  }
+  ModuloScheduleTest() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &MF) override;
   void runOnLoop(MachineFunction &MF, MachineLoop &L);
diff --git a/llvm/lib/CodeGen/OptimizePHIs.cpp b/llvm/lib/CodeGen/OptimizePHIs.cpp
index cf879979d6a34..c27f2c4cc577c 100644
--- a/llvm/lib/CodeGen/OptimizePHIs.cpp
+++ b/llvm/lib/CodeGen/OptimizePHIs.cpp
@@ -53,9 +53,7 @@ class OptimizePHIs {
 class OptimizePHIsLegacy : public MachineFunctionPass {
 public:
   static char ID;
-  OptimizePHIsLegacy() : MachineFunctionPass(ID) {
-    initializeOptimizePHIsLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  OptimizePHIsLegacy() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &MF) override {
     if (skipFunction(MF.getFunction()))
diff --git a/llvm/lib/CodeGen/PHIElimination.cpp b/llvm/lib/CodeGen/PHIElimination.cpp
index 74e46121e65c7..dc610b7ff98c7 100644
--- a/llvm/lib/CodeGen/PHIElimination.cpp
+++ b/llvm/lib/CodeGen/PHIElimination.cpp
@@ -37,6 +37,7 @@
 #include "llvm/CodeGen/TargetOpcodes.h"
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/CodeGen/TargetSubtargetInfo.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/Debug.h"
@@ -149,9 +150,7 @@ class PHIElimination : public MachineFunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  PHIElimination() : MachineFunctionPass(ID) {
-    initializePHIEliminationPass(*PassRegistry::getPassRegistry());
-  }
+  PHIElimination() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &MF) override {
     PHIEliminationImpl Impl(this);
diff --git a/llvm/lib/CodeGen/PatchableFunction.cpp b/llvm/lib/CodeGen/PatchableFunction.cpp
index 405b9fd3388c8..7c997676e21e5 100644
--- a/llvm/lib/CodeGen/PatchableFunction.cpp
+++ b/llvm/lib/CodeGen/PatchableFunction.cpp
@@ -30,9 +30,7 @@ struct PatchableFunction {
 
 struct PatchableFunctionLegacy : public MachineFunctionPass {
   static char ID;
-  PatchableFunctionLegacy() : MachineFunctionPass(ID) {
-    initializePatchableFunctionLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  PatchableFunctionLegacy() : MachineFunctionPass(ID) {}
   bool runOnMachineFunction(MachineFunction &F) override {
     return PatchableFunction().run(F);
   }
diff --git a/llvm/lib/CodeGen/PeepholeOptimizer.cpp b/llvm/lib/CodeGen/PeepholeOptimizer.cpp
index 493d8dfa8c00a..10621f8b1a4c4 100644
--- a/llvm/lib/CodeGen/PeepholeOptimizer.cpp
+++ b/llvm/lib/CodeGen/PeepholeOptimizer.cpp
@@ -558,9 +558,7 @@ class PeepholeOptimizerLegacy : public MachineFunctionPass {
 public:
   static char ID; // Pass identification
 
-  PeepholeOptimizerLegacy() : MachineFunctionPass(ID) {
-    initializePeepholeOptimizerLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  PeepholeOptimizerLegacy() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &MF) override;
 
diff --git a/llvm/lib/CodeGen/ProcessImplicitDefs.cpp b/llvm/lib/CodeGen/ProcessImplicitDefs.cpp
index 37a9e6203af7b..6b58b6574f5bd 100644
--- a/llvm/lib/CodeGen/ProcessImplicitDefs.cpp
+++ b/llvm/lib/CodeGen/ProcessImplicitDefs.cpp
@@ -31,9 +31,7 @@ class ProcessImplicitDefsLegacy : public MachineFunctionPass {
 public:
   static char ID;
 
-  ProcessImplicitDefsLegacy() : MachineFunctionPass(ID) {
-    initializeProcessImplicitDefsLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  ProcessImplicitDefsLegacy() : MachineFunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override;
 
diff --git a/llvm/lib/CodeGen/PrologEpilogInserter.cpp b/llvm/lib/CodeGen/PrologEpilogInserter.cpp
index 44cfaef944da7..68fd54cf00146 100644
--- a/llvm/lib/CodeGen/PrologEpilogInserter.cpp
+++ b/llvm/lib/CodeGen/PrologEpilogInserter.cpp
@@ -128,9 +128,7 @@ class PEILegacy : public MachineFunctionPass {
 public:
   static char ID;
 
-  PEILegacy() : MachineFunctionPass(ID) {
-    initializePEILegacyPass(*PassRegistry::getPassRegistry());
-  }
+  PEILegacy() : MachineFunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override;
 
diff --git a/llvm/lib/CodeGen/PseudoProbeInserter.cpp b/llvm/lib/CodeGen/PseudoProbeInserter.cpp
index 49c6886312277..521792a591a86 100644
--- a/llvm/lib/CodeGen/PseudoProbeInserter.cpp
+++ b/llvm/lib/CodeGen/PseudoProbeInserter.cpp
@@ -32,9 +32,7 @@ class PseudoProbeInserter : public MachineFunctionPass {
 public:
   static char ID;
 
-  PseudoProbeInserter() : MachineFunctionPass(ID) {
-    initializePseudoProbeInserterPass(*PassRegistry::getPassRegistry());
-  }
+  PseudoProbeInserter() : MachineFunctionPass(ID) {}
 
   StringRef getPassName() const override { return "Pseudo Probe Inserter"; }
 
diff --git a/llvm/lib/CodeGen/ReachingDefAnalysis.cpp b/llvm/lib/CodeGen/ReachingDefAnalysis.cpp
index 82374110406ff..114a114807043 100644
--- a/llvm/lib/CodeGen/ReachingDefAnalysis.cpp
+++ b/llvm/lib/CodeGen/ReachingDefAnalysis.cpp
@@ -48,9 +48,7 @@ INITIALIZE_PASS(ReachingDefInfoWrapperPass, DEBUG_TYPE,
 char ReachingDefInfoWrapperPass::ID = 0;
 
 ReachingDefInfoWrapperPass::ReachingDefInfoWrapperPass()
-    : MachineFunctionPass(ID) {
-  initializeReachingDefInfoWrapperPassPass(*PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 ReachingDefInfo::ReachingDefInfo() = default;
 ReachingDefInfo::ReachingDefInfo(ReachingDefInfo &&) = default;
diff --git a/llvm/lib/CodeGen/RegAllocGreedy.cpp b/llvm/lib/CodeGen/RegAllocGreedy.cpp
index a059cb55371a3..26149f8137cac 100644
--- a/llvm/lib/CodeGen/RegAllocGreedy.cpp
+++ b/llvm/lib/CodeGen/RegAllocGreedy.cpp
@@ -169,9 +169,7 @@ class RAGreedyLegacy : public MachineFunctionPass {
 } // end anonymous namespace
 
 RAGreedyLegacy::RAGreedyLegacy(const RegAllocFilterFunc F)
-    : MachineFunctionPass(ID), F(std::move(F)) {
-  initializeRAGreedyLegacyPass(*PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID), F(std::move(F)) {}
 
 struct RAGreedy::RequiredAnalyses {
   VirtRegMap *VRM = nullptr;
diff --git a/llvm/lib/CodeGen/RegAllocPBQP.cpp b/llvm/lib/CodeGen/RegAllocPBQP.cpp
index 048cd21db062d..12bc63d172d0f 100644
--- a/llvm/lib/CodeGen/RegAllocPBQP.cpp
+++ b/llvm/lib/CodeGen/RegAllocPBQP.cpp
@@ -118,12 +118,7 @@ class RegAllocPBQP : public MachineFunctionPass {
 
   /// Construct a PBQP register allocator.
   RegAllocPBQP(char *cPassID = nullptr)
-      : MachineFunctionPass(ID), customPassID(cPassID) {
-    initializeSlotIndexesWrapperPassPass(*PassRegistry::getPassRegistry());
-    initializeLiveIntervalsWrapperPassPass(*PassRegistry::getPassRegistry());
-    initializeLiveStacksWrapperLegacyPass(*PassRegistry::getPassRegistry());
-    initializeVirtRegMapWrapperLegacyPass(*PassRegistry::getPassRegistry());
-  }
+      : MachineFunctionPass(ID), customPassID(cPassID) {}
 
   /// Return the pass name.
   StringRef getPassName() const override { return "PBQP Register Allocator"; }
diff --git a/llvm/lib/CodeGen/RegUsageInfoCollector.cpp b/llvm/lib/CodeGen/RegUsageInfoCollector.cpp
index 07b4bc7ffd3ec..291edf28c4bbb 100644
--- a/llvm/lib/CodeGen/RegUsageInfoCollector.cpp
+++ b/llvm/lib/CodeGen/RegUsageInfoCollector.cpp
@@ -26,6 +26,7 @@
 #include "llvm/CodeGen/RegisterUsageInfo.h"
 #include "llvm/CodeGen/TargetFrameLowering.h"
 #include "llvm/IR/Function.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/raw_ostream.h"
 
@@ -53,9 +54,7 @@ class RegUsageInfoCollector {
 class RegUsageInfoCollectorLegacy : public MachineFunctionPass {
 public:
   static char ID;
-  RegUsageInfoCollectorLegacy() : MachineFunctionPass(ID) {
-    initializeRegUsageInfoCollectorLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  RegUsageInfoCollectorLegacy() : MachineFunctionPass(ID) {}
 
   StringRef getPassName() const override {
     return "Register Usage Information Collector Pass";
diff --git a/llvm/lib/CodeGen/RegUsageInfoPropagate.cpp b/llvm/lib/CodeGen/RegUsageInfoPropagate.cpp
index 55331d20563a4..0e7757e843666 100644
--- a/llvm/lib/CodeGen/RegUsageInfoPropagate.cpp
+++ b/llvm/lib/CodeGen/RegUsageInfoPropagate.cpp
@@ -28,6 +28,7 @@
 #include "llvm/CodeGen/RegisterUsageInfo.h"
 #include "llvm/IR/Analysis.h"
 #include "llvm/IR/Module.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/raw_ostream.h"
@@ -66,10 +67,7 @@ class RegUsageInfoPropagation {
 class RegUsageInfoPropagationLegacy : public MachineFunctionPass {
 public:
   static char ID;
-  RegUsageInfoPropagationLegacy() : MachineFunctionPass(ID) {
-    PassRegistry &Registry = *PassRegistry::getPassRegistry();
-    initializeRegUsageInfoPropagationLegacyPass(Registry);
-  }
+  RegUsageInfoPropagationLegacy() : MachineFunctionPass(ID) {}
 
   StringRef getPassName() const override { return RUIP_NAME; }
 
diff --git a/llvm/lib/CodeGen/RegisterCoalescer.cpp b/llvm/lib/CodeGen/RegisterCoalescer.cpp
index ffbdff4f45150..971813d1c22a7 100644
--- a/llvm/lib/CodeGen/RegisterCoalescer.cpp
+++ b/llvm/lib/CodeGen/RegisterCoalescer.cpp
@@ -392,9 +392,7 @@ class RegisterCoalescerLegacy : public MachineFunctionPass {
 public:
   static char ID; ///< Class identification, replacement for typeinfo
 
-  RegisterCoalescerLegacy() : MachineFunctionPass(ID) {
-    initializeRegisterCoalescerLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  RegisterCoalescerLegacy() : MachineFunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override;
 
diff --git a/llvm/lib/CodeGen/RegisterUsageInfo.cpp b/llvm/lib/CodeGen/RegisterUsageInfo.cpp
index 0e7e9b4c40120..38e4c30ceb634 100644
--- a/llvm/lib/CodeGen/RegisterUsageInfo.cpp
+++ b/llvm/lib/CodeGen/RegisterUsageInfo.cpp
@@ -20,6 +20,7 @@
 #include "llvm/IR/Function.h"
 #include "llvm/IR/Module.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/lib/CodeGen/RemoveLoadsIntoFakeUses.cpp b/llvm/lib/CodeGen/RemoveLoadsIntoFakeUses.cpp
index ea0ea0221a4f8..98d531c9982a0 100644
--- a/llvm/lib/CodeGen/RemoveLoadsIntoFakeUses.cpp
+++ b/llvm/lib/CodeGen/RemoveLoadsIntoFakeUses.cpp
@@ -47,10 +47,7 @@ class RemoveLoadsIntoFakeUsesLegacy : public MachineFunctionPass {
 public:
   static char ID;
 
-  RemoveLoadsIntoFakeUsesLegacy() : MachineFunctionPass(ID) {
-    initializeRemoveLoadsIntoFakeUsesLegacyPass(
-        *PassRegistry::getPassRegistry());
-  }
+  RemoveLoadsIntoFakeUsesLegacy() : MachineFunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.setPreservesCFG();
diff --git a/llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp b/llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp
index e9ea50160b7df..11468245f8400 100644
--- a/llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp
+++ b/llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp
@@ -67,10 +67,7 @@ INITIALIZE_PASS(RemoveRedundantDebugValuesLegacy, DEBUG_TYPE,
 
 /// Default construct and initialize the pass.
 RemoveRedundantDebugValuesLegacy::RemoveRedundantDebugValuesLegacy()
-    : MachineFunctionPass(ID) {
-  initializeRemoveRedundantDebugValuesLegacyPass(
-      *PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 // This analysis aims to remove redundant DBG_VALUEs by going forward
 // in the basic block by considering the first DBG_VALUE as a valid
diff --git a/llvm/lib/CodeGen/ReplaceWithVeclib.cpp b/llvm/lib/CodeGen/ReplaceWithVeclib.cpp
index a87c2063b1e35..38c7cf93451cf 100644
--- a/llvm/lib/CodeGen/ReplaceWithVeclib.cpp
+++ b/llvm/lib/CodeGen/ReplaceWithVeclib.cpp
@@ -26,6 +26,7 @@
 #include "llvm/IR/InstIterator.h"
 #include "llvm/IR/IntrinsicInst.h"
 #include "llvm/IR/VFABIDemangler.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/Support/TypeSize.h"
 #include "llvm/Transforms/Utils/ModuleUtils.h"
 
diff --git a/llvm/lib/CodeGen/SafeStack.cpp b/llvm/lib/CodeGen/SafeStack.cpp
index 1c109a1f9fed1..4874b0f6a180f 100644
--- a/llvm/lib/CodeGen/SafeStack.cpp
+++ b/llvm/lib/CodeGen/SafeStack.cpp
@@ -871,9 +871,7 @@ class SafeStackLegacyPass : public FunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid..
 
-  SafeStackLegacyPass() : FunctionPass(ID) {
-    initializeSafeStackLegacyPassPass(*PassRegistry::getPassRegistry());
-  }
+  SafeStackLegacyPass() : FunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.addRequired<TargetPassConfig>();
diff --git a/llvm/lib/CodeGen/SanitizerBinaryMetadata.cpp b/llvm/lib/CodeGen/SanitizerBinaryMetadata.cpp
index 67059f19578e7..7acc3203d7224 100644
--- a/llvm/lib/CodeGen/SanitizerBinaryMetadata.cpp
+++ b/llvm/lib/CodeGen/SanitizerBinaryMetadata.cpp
@@ -51,10 +51,7 @@ char &llvm::MachineSanitizerBinaryMetadataID =
     MachineSanitizerBinaryMetadataLegacy::ID;
 
 MachineSanitizerBinaryMetadataLegacy::MachineSanitizerBinaryMetadataLegacy()
-    : MachineFunctionPass(ID) {
-  initializeMachineSanitizerBinaryMetadataLegacyPass(
-      *PassRegistry::getPassRegistry());
-}
+    : MachineFunctionPass(ID) {}
 
 bool MachineSanitizerBinaryMetadataLegacy::runOnMachineFunction(
     MachineFunction &MF) {
diff --git a/llvm/lib/CodeGen/SelectOptimize.cpp b/llvm/lib/CodeGen/SelectOptimize.cpp
index 6c92b4b78b177..714100f8f3c67 100644
--- a/llvm/lib/CodeGen/SelectOptimize.cpp
+++ b/llvm/lib/CodeGen/SelectOptimize.cpp
@@ -308,9 +308,7 @@ class SelectOptimize : public FunctionPass {
 public:
   static char ID;
 
-  SelectOptimize() : FunctionPass(ID) {
-    initializeSelectOptimizePass(*PassRegistry::getPassRegistry());
-  }
+  SelectOptimize() : FunctionPass(ID) {}
 
   bool runOnFunction(Function &F) override {
     if (skipFunction(F))
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index e092061fb5e04..910a2bbb88e4e 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -364,7 +364,6 @@ void TargetLowering::AdjustInstrPostInstrSelection(MachineInstr &MI,
 SelectionDAGISelLegacy::SelectionDAGISelLegacy(
     char &ID, std::unique_ptr<SelectionDAGISel> S)
     : MachineFunctionPass(ID), Selector(std::move(S)) {
-  initializeGCModuleInfoPass(*PassRegistry::getPassRegistry());
   initializeBranchProbabilityInfoWrapperPassPass(
       *PassRegistry::getPassRegistry());
   initializeAAResultsWrapperPassPass(*PassRegistry::getPassRegistry());
@@ -408,7 +407,6 @@ SelectionDAGISel::SelectionDAGISel(TargetMachine &tm, CodeGenOptLevel OL)
       SDB(std::make_unique<SelectionDAGBuilder>(*CurDAG, *FuncInfo, *SwiftError,
                                                 OL)),
       OptLevel(OL) {
-  initializeGCModuleInfoPass(*PassRegistry::getPassRegistry());
   initializeBranchProbabilityInfoWrapperPassPass(
       *PassRegistry::getPassRegistry());
   initializeAAResultsWrapperPassPass(*PassRegistry::getPassRegistry());
diff --git a/llvm/lib/CodeGen/ShadowStackGCLowering.cpp b/llvm/lib/CodeGen/ShadowStackGCLowering.cpp
index 1f9beb84ef62d..6097468626e0a 100644
--- a/llvm/lib/CodeGen/ShadowStackGCLowering.cpp
+++ b/llvm/lib/CodeGen/ShadowStackGCLowering.cpp
@@ -141,9 +141,7 @@ INITIALIZE_PASS_END(ShadowStackGCLowering, DEBUG_TYPE,
 
 FunctionPass *llvm::createShadowStackGCLoweringPass() { return new ShadowStackGCLowering(); }
 
-ShadowStackGCLowering::ShadowStackGCLowering() : FunctionPass(ID) {
-  initializeShadowStackGCLoweringPass(*PassRegistry::getPassRegistry());
-}
+ShadowStackGCLowering::ShadowStackGCLowering() : FunctionPass(ID) {}
 
 Constant *ShadowStackGCLoweringImpl::GetFrameMap(Function &F) {
   // doInitialization creates the abstract type of this value.
diff --git a/llvm/lib/CodeGen/ShrinkWrap.cpp b/llvm/lib/CodeGen/ShrinkWrap.cpp
index d83bbc2c31b6d..0cf21b261fdbb 100644
--- a/llvm/lib/CodeGen/ShrinkWrap.cpp
+++ b/llvm/lib/CodeGen/ShrinkWrap.cpp
@@ -260,9 +260,7 @@ class ShrinkWrapLegacy : public MachineFunctionPass {
 public:
   static char ID;
 
-  ShrinkWrapLegacy() : MachineFunctionPass(ID) {
-    initializeShrinkWrapLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  ShrinkWrapLegacy() : MachineFunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.setPreservesAll();
diff --git a/llvm/lib/CodeGen/SlotIndexes.cpp b/llvm/lib/CodeGen/SlotIndexes.cpp
index eecc379776ea0..62e7f86a846ac 100644
--- a/llvm/lib/CodeGen/SlotIndexes.cpp
+++ b/llvm/lib/CodeGen/SlotIndexes.cpp
@@ -35,9 +35,7 @@ SlotIndexesPrinterPass::run(MachineFunction &MF,
 }
 char SlotIndexesWrapperPass::ID = 0;
 
-SlotIndexesWrapperPass::SlotIndexesWrapperPass() : MachineFunctionPass(ID) {
-  initializeSlotIndexesWrapperPassPass(*PassRegistry::getPassRegistry());
-}
+SlotIndexesWrapperPass::SlotIndexesWrapperPass() : MachineFunctionPass(ID) {}
 
 SlotIndexes::~SlotIndexes() {
   // The indexList's nodes are all allocated in the BumpPtrAllocator.
diff --git a/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp b/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp
index 462d9e0f4cf48..8f5aa280e60f9 100644
--- a/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp
+++ b/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp
@@ -87,9 +87,7 @@ INITIALIZE_PASS(StackMapLiveness, "stackmap-liveness",
                 "StackMap Liveness Analysis", false, false)
 
 /// Default construct and initialize the pass.
-StackMapLiveness::StackMapLiveness() : MachineFunctionPass(ID) {
-  initializeStackMapLivenessPass(*PassRegistry::getPassRegistry());
-}
+StackMapLiveness::StackMapLiveness() : MachineFunctionPass(ID) {}
 
 /// Tell the pass manager which passes we depend on and what information we
 /// preserve.
diff --git a/llvm/lib/CodeGen/StackProtector.cpp b/llvm/lib/CodeGen/StackProtector.cpp
index 9ddd61b0f20ef..20275d7f2ceaa 100644
--- a/llvm/lib/CodeGen/StackProtector.cpp
+++ b/llvm/lib/CodeGen/StackProtector.cpp
@@ -150,9 +150,7 @@ PreservedAnalyses StackProtectorPass::run(Function &F,
 
 char StackProtector::ID = 0;
 
-StackProtector::StackProtector() : FunctionPass(ID) {
-  initializeStackProtectorPass(*PassRegistry::getPassRegistry());
-}
+StackProtector::StackProtector() : FunctionPass(ID) {}
 
 INITIALIZE_PASS_BEGIN(StackProtector, DEBUG_TYPE,
                       "Insert stack protectors", false, true)
diff --git a/llvm/lib/CodeGen/StackSlotColoring.cpp b/llvm/lib/CodeGen/StackSlotColoring.cpp
index 2f81bea4e86ba..dfe613fb42ad6 100644
--- a/llvm/lib/CodeGen/StackSlotColoring.cpp
+++ b/llvm/lib/CodeGen/StackSlotColoring.cpp
@@ -161,9 +161,7 @@ class StackSlotColoringLegacy : public MachineFunctionPass {
 public:
   static char ID; // Pass identification
 
-  StackSlotColoringLegacy() : MachineFunctionPass(ID) {
-    initializeStackSlotColoringLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  StackSlotColoringLegacy() : MachineFunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.setPreservesCFG();
diff --git a/llvm/lib/CodeGen/StaticDataAnnotator.cpp b/llvm/lib/CodeGen/StaticDataAnnotator.cpp
index eac2012017087..196963ffa2b41 100644
--- a/llvm/lib/CodeGen/StaticDataAnnotator.cpp
+++ b/llvm/lib/CodeGen/StaticDataAnnotator.cpp
@@ -49,9 +49,7 @@ class StaticDataAnnotator : public ModulePass {
   StaticDataProfileInfo *SDPI = nullptr;
   const ProfileSummaryInfo *PSI = nullptr;
 
-  StaticDataAnnotator() : ModulePass(ID) {
-    initializeStaticDataAnnotatorPass(*PassRegistry::getPassRegistry());
-  }
+  StaticDataAnnotator() : ModulePass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.addRequired<StaticDataProfileInfoWrapperPass>();
diff --git a/llvm/lib/CodeGen/StaticDataSplitter.cpp b/llvm/lib/CodeGen/StaticDataSplitter.cpp
index 1593a401bcb24..7e87ec248e781 100644
--- a/llvm/lib/CodeGen/StaticDataSplitter.cpp
+++ b/llvm/lib/CodeGen/StaticDataSplitter.cpp
@@ -75,9 +75,7 @@ class StaticDataSplitter : public MachineFunctionPass {
 public:
   static char ID;
 
-  StaticDataSplitter() : MachineFunctionPass(ID) {
-    initializeStaticDataSplitterPass(*PassRegistry::getPassRegistry());
-  }
+  StaticDataSplitter() : MachineFunctionPass(ID) {}
 
   StringRef getPassName() const override { return "Static Data Splitter"; }
 
diff --git a/llvm/lib/CodeGen/TailDuplication.cpp b/llvm/lib/CodeGen/TailDuplication.cpp
index bcec318a85409..20eee9847110c 100644
--- a/llvm/lib/CodeGen/TailDuplication.cpp
+++ b/llvm/lib/CodeGen/TailDuplication.cpp
@@ -24,7 +24,6 @@
 #include "llvm/IR/Analysis.h"
 #include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
-#include "llvm/PassRegistry.h"
 
 using namespace llvm;
 
@@ -53,17 +52,13 @@ class TailDuplicateBaseLegacy : public MachineFunctionPass {
 class TailDuplicateLegacy : public TailDuplicateBaseLegacy {
 public:
   static char ID;
-  TailDuplicateLegacy() : TailDuplicateBaseLegacy(ID, false) {
-    initializeTailDuplicateLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  TailDuplicateLegacy() : TailDuplicateBaseLegacy(ID, false) {}
 };
 
 class EarlyTailDuplicateLegacy : public TailDuplicateBaseLegacy {
 public:
   static char ID;
-  EarlyTailDuplicateLegacy() : TailDuplicateBaseLegacy(ID, true) {
-    initializeEarlyTailDuplicateLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  EarlyTailDuplicateLegacy() : TailDuplicateBaseLegacy(ID, true) {}
 
   MachineFunctionProperties getClearedProperties() const override {
     return MachineFunctionProperties().setNoPHIs();
diff --git a/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp b/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
index dbad06623754c..62b55fbefce61 100644
--- a/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
+++ b/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
@@ -51,6 +51,7 @@
 #include "llvm/CodeGen/TargetOpcodes.h"
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/CodeGen/TargetSubtargetInfo.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/MC/MCInstrDesc.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/CodeGen.h"
@@ -199,10 +200,7 @@ class TwoAddressInstructionLegacyPass : public MachineFunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  TwoAddressInstructionLegacyPass() : MachineFunctionPass(ID) {
-    initializeTwoAddressInstructionLegacyPassPass(
-        *PassRegistry::getPassRegistry());
-  }
+  TwoAddressInstructionLegacyPass() : MachineFunctionPass(ID) {}
 
   /// Pass entry point.
   bool runOnMachineFunction(MachineFunction &MF) override {
diff --git a/llvm/lib/CodeGen/UnreachableBlockElim.cpp b/llvm/lib/CodeGen/UnreachableBlockElim.cpp
index 09d00e32dcaa4..1445f9cdce832 100644
--- a/llvm/lib/CodeGen/UnreachableBlockElim.cpp
+++ b/llvm/lib/CodeGen/UnreachableBlockElim.cpp
@@ -45,10 +45,7 @@ class UnreachableBlockElimLegacyPass : public FunctionPass {
 
 public:
   static char ID; // Pass identification, replacement for typeid
-  UnreachableBlockElimLegacyPass() : FunctionPass(ID) {
-    initializeUnreachableBlockElimLegacyPassPass(
-        *PassRegistry::getPassRegistry());
-  }
+  UnreachableBlockElimLegacyPass() : FunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.addPreserved<DominatorTreeWrapperPass>();
diff --git a/llvm/lib/CodeGen/WindowsSecureHotPatching.cpp b/llvm/lib/CodeGen/WindowsSecureHotPatching.cpp
index dab1416d254a2..4a4d911844584 100644
--- a/llvm/lib/CodeGen/WindowsSecureHotPatching.cpp
+++ b/llvm/lib/CodeGen/WindowsSecureHotPatching.cpp
@@ -177,9 +177,7 @@ class WindowsSecureHotPatching : public ModulePass {
 public:
   static char ID;
 
-  WindowsSecureHotPatching() : ModulePass(ID) {
-    initializeWindowsSecureHotPatchingPass(*PassRegistry::getPassRegistry());
-  }
+  WindowsSecureHotPatching() : ModulePass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.setPreservesCFG();
diff --git a/llvm/lib/CodeGen/XRayInstrumentation.cpp b/llvm/lib/CodeGen/XRayInstrumentation.cpp
index d2f40581ecebf..55ce7c831ab68 100644
--- a/llvm/lib/CodeGen/XRayInstrumentation.cpp
+++ b/llvm/lib/CodeGen/XRayInstrumentation.cpp
@@ -50,9 +50,7 @@ struct InstrumentationOptions {
 struct XRayInstrumentationLegacy : public MachineFunctionPass {
   static char ID;
 
-  XRayInstrumentationLegacy() : MachineFunctionPass(ID) {
-    initializeXRayInstrumentationLegacyPass(*PassRegistry::getPassRegistry());
-  }
+  XRayInstrumentationLegacy() : MachineFunctionPass(ID) {}
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.setPreservesCFG();
diff --git a/llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp b/llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp
index 41402bd5278c6..610a835ec3303 100644
--- a/llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp
+++ b/llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp
@@ -81,6 +81,7 @@
 #include "llvm/CodeGen/MachineLoopInfo.h"
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/IR/Dominators.h"
+#include "llvm/InitializePasses.h"
 
 using namespace llvm;
 
diff --git a/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp b/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp
index e63b1e9f0a7f2..6e01c21daba2a 100644
--- a/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp
+++ b/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp
@@ -39,6 +39,7 @@
 #include "llvm/CodeGen/MachineOperand.h"
 #include "llvm/CodeGen/MachineRegisterInfo.h"
 #include "llvm/CodeGen/Register.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cassert>
diff --git a/llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp b/llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp
index 0473eac69c1d8..c8f96bf6f3044 100644
--- a/llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp
+++ b/llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp
@@ -94,6 +94,7 @@
 #include "llvm/IR/IntrinsicsPowerPC.h"
 #include "llvm/IR/Type.h"
 #include "llvm/IR/Value.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/Casting.h"
 #include "llvm/Support/CommandLine.h"
diff --git a/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp b/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
index 94d06422c12be..c6d66fefa8734 100644
--- a/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
+++ b/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
@@ -43,6 +43,7 @@
 #include "llvm/CodeGen/MachinePostDominators.h"
 #include "llvm/CodeGen/MachineRegisterInfo.h"
 #include "llvm/IR/GlobalVariable.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/DebugCounter.h"
 
diff --git a/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp b/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp
index 74bce436b53e7..a59da9897fe8a 100644
--- a/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp
+++ b/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp
@@ -24,6 +24,7 @@
 #include "llvm/CodeGen/MachineInstrBuilder.h"
 #include "llvm/CodeGen/MachineRegisterInfo.h"
 #include "llvm/Config/llvm-config.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/Support/Debug.h"
 
 using namespace llvm;
diff --git a/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp b/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp
index f4c32f6cea890..9b6ea276e1303 100644
--- a/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp
+++ b/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp
@@ -27,6 +27,7 @@
 #include "llvm/CodeGen/MachineFrameInfo.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/MachineInstrBuilder.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/raw_ostream.h"
 
diff --git a/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp b/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp
index 5b09bbd3f32b7..9d7f2c4175ab6 100644
--- a/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp
+++ b/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp
@@ -25,6 +25,7 @@
 #include "llvm/CodeGen/PseudoSourceValue.h"
 #include "llvm/CodeGen/ScheduleDAG.h"
 #include "llvm/CodeGen/SlotIndexes.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/MC/TargetRegistry.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/Debug.h"
diff --git a/llvm/lib/Target/X86/X86TargetMachine.cpp b/llvm/lib/Target/X86/X86TargetMachine.cpp
index b904c26ad92f8..fd2c2dc80fcdb 100644
--- a/llvm/lib/Target/X86/X86TargetMachine.cpp
+++ b/llvm/lib/Target/X86/X86TargetMachine.cpp
@@ -97,7 +97,6 @@ extern "C" LLVM_C_ABI void LLVMInitializeX86Target() {
   initializeX86LoadValueInjectionRetHardeningPassPass(PR);
   initializeX86OptimizeLEAsLegacyPass(PR);
   initializeX86PartialReductionLegacyPass(PR);
-  initializePseudoProbeInserterPass(PR);
   initializeX86ReturnThunksPass(PR);
   initializeX86DAGToDAGISelLegacyPass(PR);
   initializeX86ArgumentStackSlotLegacyPass(PR);
diff --git a/llvm/tools/llc/llc.cpp b/llvm/tools/llc/llc.cpp
index 6ee615db60a1e..fe9f299ad2048 100644
--- a/llvm/tools/llc/llc.cpp
+++ b/llvm/tools/llc/llc.cpp
@@ -385,17 +385,13 @@ int main(int argc, char **argv) {
   initializeCore(*Registry);
   initializeCodeGen(*Registry);
   initializeLoopStrengthReducePass(*Registry);
-  initializeLowerIntrinsicsPass(*Registry);
   initializePostInlineEntryExitInstrumenterPass(*Registry);
   initializeUnreachableBlockElimLegacyPassPass(*Registry);
   initializeConstantHoistingLegacyPassPass(*Registry);
   initializeScalarOpts(*Registry);
   initializeVectorization(*Registry);
   initializeScalarizeMaskedMemIntrinLegacyPassPass(*Registry);
-  initializeExpandReductionsPass(*Registry);
-  initializeHardwareLoopsLegacyPass(*Registry);
   initializeTransformUtils(*Registry);
-  initializeReplaceWithVeclibLegacyPass(*Registry);
 
   // Initialize debugging passes.
   initializeScavengerTestPass(*Registry);



More information about the llvm-commits mailing list