1//===-- CodeGen.cpp -------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file implements the common initialization routines for the
10// CodeGen library.
11//
12//===----------------------------------------------------------------------===//
13
14#include "llvm/InitializePasses.h"
15#include "llvm/PassRegistry.h"
16
17using namespace llvm;
18
19/// initializeCodeGen - Initialize all passes linked into the CodeGen library.
20void llvm::initializeCodeGen(PassRegistry &Registry) {
21 initializeAssignmentTrackingAnalysisPass(Registry);
22 initializeAtomicExpandLegacyPass(Registry);
23 initializeBasicBlockMatchingAndInferencePass(Registry);
24 initializeBasicBlockPathCloningPass(Registry);
25 initializeBasicBlockSectionsPass(Registry);
26 initializeBasicBlockSectionsProfileReaderWrapperPassPass(Registry);
27 initializeBranchFolderLegacyPass(Registry);
28 initializeBranchRelaxationLegacyPass(Registry);
29 initializeBreakFalseDepsPass(Registry);
30 initializeCFGuardLongjmpPass(Registry);
31 initializeCFIFixupPass(Registry);
32 initializeCFIInstrInserterPass(Registry);
33 initializeCheckDebugMachineModulePass(Registry);
34 initializeCodeGenPrepareLegacyPassPass(Registry);
35 initializeComplexDeinterleavingLegacyPassPass(Registry);
36 initializeDeadMachineInstructionElimPass(Registry);
37 initializeDebugifyMachineModulePass(Registry);
38 initializeDetectDeadLanesLegacyPass(Registry);
39 initializeDummyCGSCCPassPass(Registry);
40 initializeDwarfEHPrepareLegacyPassPass(Registry);
41 initializeEHContGuardTargetsPass(Registry);
42 initializeEarlyIfConverterLegacyPass(Registry);
43 initializeEarlyIfPredicatorPass(Registry);
44 initializeEarlyMachineLICMPass(Registry);
45 initializeEarlyTailDuplicateLegacyPass(Registry);
46 initializeExpandIRInstsLegacyPassPass(Registry);
47 initializeExpandMemCmpLegacyPassPass(Registry);
48 initializeExpandPostRALegacyPass(Registry);
49 initializeExpandReductionsPass(Registry);
50 initializeFEntryInserterLegacyPass(Registry);
51 initializeFinalizeISelPass(Registry);
52 initializeFixupStatepointCallerSavedLegacyPass(Registry);
53 initializeFuncletLayoutPass(Registry);
54 initializeGCEmptyBasicBlocksLegacyPass(Registry);
55 initializeGCMachineCodeAnalysisPass(Registry);
56 initializeGCModuleInfoPass(Registry);
57 initializeGlobalMergePass(Registry);
58 initializeGlobalMergeFuncPassWrapperPass(Registry);
59 initializeHardwareLoopsLegacyPass(Registry);
60 initializeIfConverterPass(Registry);
61 initializeImplicitNullChecksPass(Registry);
62 initializeIndirectBrExpandLegacyPassPass(Registry);
63 initializeInsertCodePrefetchPass(Registry);
64 initializeInitUndefLegacyPass(Registry);
65 initializeInlineAsmPreparePass(Registry);
66 initializeInterleavedLoadCombinePass(Registry);
67 initializeInterleavedAccessPass(Registry);
68 initializeJMCInstrumenterPass(Registry);
69 initializeLazyMachineBlockFrequencyInfoPassPass(Registry);
70 initializeLibcallLoweringInfoWrapperPass(Registry);
71 initializeLiveDebugValuesLegacyPass(Registry);
72 initializeLiveDebugVariablesWrapperLegacyPass(Registry);
73 initializeLiveIntervalsWrapperPassPass(Registry);
74 initializeLiveRangeShrinkPass(Registry);
75 initializeLiveStacksWrapperLegacyPass(Registry);
76 initializeLiveVariablesWrapperPassPass(Registry);
77 initializeLocalStackSlotPassPass(Registry);
78 initializeLowerEmuTLSPass(Registry);
79 initializeLowerGlobalDtorsLegacyPassPass(Registry);
80 initializeLowerIntrinsicsPass(Registry);
81 initializeMIRAddFSDiscriminatorsPass(Registry);
82 initializeMIRCanonicalizerPass(Registry);
83 initializeMIRNamerPass(Registry);
84 initializeMIRProfileLoaderPassPass(Registry);
85 initializeMachineBlockFrequencyInfoWrapperPassPass(Registry);
86 initializeMachineBlockHashInfoPass(Registry);
87 initializeMachineBlockPlacementLegacyPass(Registry);
88 initializeMachineBlockPlacementStatsLegacyPass(Registry);
89 initializeMachineBranchProbabilityInfoWrapperPassPass(Registry);
90 initializeMachineCFGPrinterPass(Registry);
91 initializeMachineCSELegacyPass(Registry);
92 initializeMachineCombinerPass(Registry);
93 initializeMachineDominanceFrontierWrapperPassPass(Registry);
94 initializeMachineCopyPropagationLegacyPass(Registry);
95 initializeMachineCycleInfoPrinterLegacyPass(Registry);
96 initializeMachineCycleInfoWrapperPassPass(Registry);
97 initializeMachineDominatorTreeWrapperPassPass(Registry);
98 initializeMachineFunctionPrinterPassPass(Registry);
99 initializeMachineFunctionSplitterPass(Registry);
100 initializeMachineLateInstrsCleanupLegacyPass(Registry);
101 initializeMachineLICMPass(Registry);
102 initializeMachineLoopInfoWrapperPassPass(Registry);
103 initializeMachineModuleInfoWrapperPassPass(Registry);
104 initializeMachineOptimizationRemarkEmitterPassPass(Registry);
105 initializeMachineOutlinerPass(Registry);
106 initializeMachinePipelinerPass(Registry);
107 initializeMachineSanitizerBinaryMetadataLegacyPass(Registry);
108 initializeModuloScheduleTestPass(Registry);
109 initializeMachinePostDominatorTreeWrapperPassPass(Registry);
110 initializeMachineRegionInfoPassPass(Registry);
111 initializeMachineSchedulerLegacyPass(Registry);
112 initializeMachineSinkingLegacyPass(Registry);
113 initializeMachineUniformityAnalysisPassPass(Registry);
114 initializeMIR2VecVocabLegacyAnalysisPass(Registry);
115 initializeMIR2VecVocabPrinterLegacyPassPass(Registry);
116 initializeMIR2VecPrinterLegacyPassPass(Registry);
117 initializeMachineUniformityInfoPrinterPassPass(Registry);
118 initializeMachineVerifierLegacyPassPass(Registry);
119 initializeObjCARCContractLegacyPassPass(Registry);
120 initializeOptimizePHIsLegacyPass(Registry);
121 initializePEILegacyPass(Registry);
122 initializePHIEliminationPass(Registry);
123 initializePatchableFunctionLegacyPass(Registry);
124 initializePeepholeOptimizerLegacyPass(Registry);
125 initializePhysicalRegisterUsageInfoWrapperLegacyPass(Registry);
126 initializePostMachineSchedulerLegacyPass(Registry);
127 initializePostRAMachineSinkingLegacyPass(Registry);
128 initializePostRAHazardRecognizerLegacyPass(Registry);
129 initializePostRASchedulerLegacyPass(Registry);
130 initializePreISelIntrinsicLoweringLegacyPassPass(Registry);
131 initializeProcessImplicitDefsLegacyPass(Registry);
132 initializePseudoProbeInserterPass(Registry);
133 initializeRABasicPass(Registry);
134 initializeRAGreedyLegacyPass(Registry);
135 initializeReachingDefInfoWrapperPassPass(Registry);
136 initializeRegAllocFastPass(Registry);
137 initializeRegAllocScoringPass(Registry);
138 initializeRegUsageInfoCollectorLegacyPass(Registry);
139 initializeRegUsageInfoPropagationLegacyPass(Registry);
140 initializeRegisterCoalescerLegacyPass(Registry);
141 initializeRemoveLoadsIntoFakeUsesLegacyPass(Registry);
142 initializeRemoveRedundantDebugValuesLegacyPass(Registry);
143 initializeRenameIndependentSubregsLegacyPass(Registry);
144 initializeReplaceWithVeclibLegacyPass(Registry);
145 initializeSafeStackLegacyPassPass(Registry);
146 initializeSelectOptimizePass(Registry);
147 initializeShadowStackGCLoweringPass(Registry);
148 initializeShrinkWrapLegacyPass(Registry);
149 initializeSjLjEHPreparePass(Registry);
150 initializeSlotIndexesWrapperPassPass(Registry);
151 initializeStackColoringLegacyPass(Registry);
152 initializeStackFrameLayoutAnalysisLegacyPass(Registry);
153 initializeStackMapLivenessPass(Registry);
154 initializeStackProtectorPass(Registry);
155 initializeStackSlotColoringLegacyPass(Registry);
156 initializeStaticDataSplitterPass(Registry);
157 initializeStaticDataAnnotatorPass(Registry);
158 initializeStripDebugMachineModulePass(Registry);
159 initializeTailDuplicateLegacyPass(Registry);
160 initializeTargetPassConfigPass(Registry);
161 initializeTwoAddressInstructionLegacyPassPass(Registry);
162 initializeTypePromotionLegacyPass(Registry);
163 initializeUnpackMachineBundlesPass(Registry);
164 initializeUnreachableBlockElimLegacyPassPass(Registry);
165 initializeUnreachableMachineBlockElimLegacyPass(Registry);
166 initializeVirtRegMapWrapperLegacyPass(Registry);
167 initializeVirtRegRewriterLegacyPass(Registry);
168 initializeWasmEHPreparePass(Registry);
169 initializeWinEHPreparePass(Registry);
170 initializeWindowsSecureHotPatchingPass(Registry);
171 initializeXRayInstrumentationLegacyPass(Registry);
172}
173