xref: /aosp_15_r20/external/llvm/lib/Passes/PassRegistry.def (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker//===- PassRegistry.def - Registry of passes --------------------*- C++ -*-===//
2*9880d681SAndroid Build Coastguard Worker//
3*9880d681SAndroid Build Coastguard Worker//                     The LLVM Compiler Infrastructure
4*9880d681SAndroid Build Coastguard Worker//
5*9880d681SAndroid Build Coastguard Worker// This file is distributed under the University of Illinois Open Source
6*9880d681SAndroid Build Coastguard Worker// License. See LICENSE.TXT for details.
7*9880d681SAndroid Build Coastguard Worker//
8*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
9*9880d681SAndroid Build Coastguard Worker//
10*9880d681SAndroid Build Coastguard Worker// This file is used as the registry of passes that are part of the core LLVM
11*9880d681SAndroid Build Coastguard Worker// libraries. This file describes both transformation passes and analyses
12*9880d681SAndroid Build Coastguard Worker// Analyses are registered while transformation passes have names registered
13*9880d681SAndroid Build Coastguard Worker// that can be used when providing a textual pass pipeline.
14*9880d681SAndroid Build Coastguard Worker//
15*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Worker// NOTE: NO INCLUDE GUARD DESIRED!
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Worker#ifndef MODULE_ANALYSIS
20*9880d681SAndroid Build Coastguard Worker#define MODULE_ANALYSIS(NAME, CREATE_PASS)
21*9880d681SAndroid Build Coastguard Worker#endif
22*9880d681SAndroid Build Coastguard WorkerMODULE_ANALYSIS("callgraph", CallGraphAnalysis())
23*9880d681SAndroid Build Coastguard WorkerMODULE_ANALYSIS("lcg", LazyCallGraphAnalysis())
24*9880d681SAndroid Build Coastguard WorkerMODULE_ANALYSIS("no-op-module", NoOpModuleAnalysis())
25*9880d681SAndroid Build Coastguard WorkerMODULE_ANALYSIS("profile-summary", ProfileSummaryAnalysis())
26*9880d681SAndroid Build Coastguard WorkerMODULE_ANALYSIS("targetlibinfo", TargetLibraryAnalysis())
27*9880d681SAndroid Build Coastguard WorkerMODULE_ANALYSIS("verify", VerifierAnalysis())
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Worker#ifndef MODULE_ALIAS_ANALYSIS
30*9880d681SAndroid Build Coastguard Worker#define MODULE_ALIAS_ANALYSIS(NAME, CREATE_PASS)                               \
31*9880d681SAndroid Build Coastguard Worker  MODULE_ANALYSIS(NAME, CREATE_PASS)
32*9880d681SAndroid Build Coastguard Worker#endif
33*9880d681SAndroid Build Coastguard WorkerMODULE_ALIAS_ANALYSIS("globals-aa", GlobalsAA())
34*9880d681SAndroid Build Coastguard Worker#undef MODULE_ALIAS_ANALYSIS
35*9880d681SAndroid Build Coastguard Worker#undef MODULE_ANALYSIS
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Worker#ifndef MODULE_PASS
38*9880d681SAndroid Build Coastguard Worker#define MODULE_PASS(NAME, CREATE_PASS)
39*9880d681SAndroid Build Coastguard Worker#endif
40*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("constmerge", ConstantMergePass())
41*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("cross-dso-cfi", CrossDSOCFIPass())
42*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("deadargelim", DeadArgumentEliminationPass())
43*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("elim-avail-extern", EliminateAvailableExternallyPass())
44*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("forceattrs", ForceFunctionAttrsPass())
45*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("globaldce", GlobalDCEPass())
46*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("globalopt", GlobalOptPass())
47*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("inferattrs", InferFunctionAttrsPass())
48*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("insert-gcov-profiling", GCOVProfilerPass())
49*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("instrprof", InstrProfiling())
50*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("internalize", InternalizePass())
51*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("invalidate<all>", InvalidateAllAnalysesPass())
52*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("ipsccp", IPSCCPPass())
53*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("lowertypetests", LowerTypeTestsPass())
54*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("no-op-module", NoOpModulePass())
55*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("partial-inliner", PartialInlinerPass())
56*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("pgo-icall-prom", PGOIndirectCallPromotion())
57*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("pgo-instr-gen", PGOInstrumentationGen())
58*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("pgo-instr-use", PGOInstrumentationUse())
59*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("pre-isel-intrinsic-lowering", PreISelIntrinsicLoweringPass())
60*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("print-profile-summary", ProfileSummaryPrinterPass(dbgs()))
61*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("print-callgraph", CallGraphPrinterPass(dbgs()))
62*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("print", PrintModulePass(dbgs()))
63*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("print-lcg", LazyCallGraphPrinterPass(dbgs()))
64*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("print-lcg-dot", LazyCallGraphDOTPrinterPass(dbgs()))
65*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("rpo-functionattrs", ReversePostOrderFunctionAttrsPass())
66*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("sample-profile", SampleProfileLoaderPass())
67*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("strip-dead-prototypes", StripDeadPrototypesPass())
68*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("wholeprogramdevirt", WholeProgramDevirtPass())
69*9880d681SAndroid Build Coastguard WorkerMODULE_PASS("verify", VerifierPass())
70*9880d681SAndroid Build Coastguard Worker#undef MODULE_PASS
71*9880d681SAndroid Build Coastguard Worker
72*9880d681SAndroid Build Coastguard Worker#ifndef CGSCC_ANALYSIS
73*9880d681SAndroid Build Coastguard Worker#define CGSCC_ANALYSIS(NAME, CREATE_PASS)
74*9880d681SAndroid Build Coastguard Worker#endif
75*9880d681SAndroid Build Coastguard WorkerCGSCC_ANALYSIS("no-op-cgscc", NoOpCGSCCAnalysis())
76*9880d681SAndroid Build Coastguard Worker#undef CGSCC_ANALYSIS
77*9880d681SAndroid Build Coastguard Worker
78*9880d681SAndroid Build Coastguard Worker#ifndef CGSCC_PASS
79*9880d681SAndroid Build Coastguard Worker#define CGSCC_PASS(NAME, CREATE_PASS)
80*9880d681SAndroid Build Coastguard Worker#endif
81*9880d681SAndroid Build Coastguard WorkerCGSCC_PASS("invalidate<all>", InvalidateAllAnalysesPass())
82*9880d681SAndroid Build Coastguard WorkerCGSCC_PASS("function-attrs", PostOrderFunctionAttrsPass())
83*9880d681SAndroid Build Coastguard WorkerCGSCC_PASS("no-op-cgscc", NoOpCGSCCPass())
84*9880d681SAndroid Build Coastguard Worker#undef CGSCC_PASS
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Worker#ifndef FUNCTION_ANALYSIS
87*9880d681SAndroid Build Coastguard Worker#define FUNCTION_ANALYSIS(NAME, CREATE_PASS)
88*9880d681SAndroid Build Coastguard Worker#endif
89*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("aa", AAManager())
90*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("assumptions", AssumptionAnalysis())
91*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("block-freq", BlockFrequencyAnalysis())
92*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("branch-prob", BranchProbabilityAnalysis())
93*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("domtree", DominatorTreeAnalysis())
94*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("postdomtree", PostDominatorTreeAnalysis())
95*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("demanded-bits", DemandedBitsAnalysis())
96*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("domfrontier", DominanceFrontierAnalysis())
97*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("loops", LoopAnalysis())
98*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("lazy-value-info", LazyValueAnalysis())
99*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("da", DependenceAnalysis())
100*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("memdep", MemoryDependenceAnalysis())
101*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("memoryssa", MemorySSAAnalysis())
102*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("regions", RegionInfoAnalysis())
103*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("no-op-function", NoOpFunctionAnalysis())
104*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("scalar-evolution", ScalarEvolutionAnalysis())
105*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("targetlibinfo", TargetLibraryAnalysis())
106*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("targetir",
107*9880d681SAndroid Build Coastguard Worker                  TM ? TM->getTargetIRAnalysis() : TargetIRAnalysis())
108*9880d681SAndroid Build Coastguard WorkerFUNCTION_ANALYSIS("verify", VerifierAnalysis())
109*9880d681SAndroid Build Coastguard Worker
110*9880d681SAndroid Build Coastguard Worker#ifndef FUNCTION_ALIAS_ANALYSIS
111*9880d681SAndroid Build Coastguard Worker#define FUNCTION_ALIAS_ANALYSIS(NAME, CREATE_PASS)                             \
112*9880d681SAndroid Build Coastguard Worker  FUNCTION_ANALYSIS(NAME, CREATE_PASS)
113*9880d681SAndroid Build Coastguard Worker#endif
114*9880d681SAndroid Build Coastguard WorkerFUNCTION_ALIAS_ANALYSIS("basic-aa", BasicAA())
115*9880d681SAndroid Build Coastguard WorkerFUNCTION_ALIAS_ANALYSIS("cfl-anders-aa", CFLAndersAA())
116*9880d681SAndroid Build Coastguard WorkerFUNCTION_ALIAS_ANALYSIS("cfl-steens-aa", CFLSteensAA())
117*9880d681SAndroid Build Coastguard WorkerFUNCTION_ALIAS_ANALYSIS("scev-aa", SCEVAA())
118*9880d681SAndroid Build Coastguard WorkerFUNCTION_ALIAS_ANALYSIS("scoped-noalias-aa", ScopedNoAliasAA())
119*9880d681SAndroid Build Coastguard WorkerFUNCTION_ALIAS_ANALYSIS("type-based-aa", TypeBasedAA())
120*9880d681SAndroid Build Coastguard Worker#undef FUNCTION_ALIAS_ANALYSIS
121*9880d681SAndroid Build Coastguard Worker#undef FUNCTION_ANALYSIS
122*9880d681SAndroid Build Coastguard Worker
123*9880d681SAndroid Build Coastguard Worker#ifndef FUNCTION_PASS
124*9880d681SAndroid Build Coastguard Worker#define FUNCTION_PASS(NAME, CREATE_PASS)
125*9880d681SAndroid Build Coastguard Worker#endif
126*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("aa-eval", AAEvaluator())
127*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("adce", ADCEPass())
128*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("add-discriminators", AddDiscriminatorsPass())
129*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("alignment-from-assumptions", AlignmentFromAssumptionsPass())
130*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("bdce", BDCEPass())
131*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("consthoist", ConstantHoistingPass())
132*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("correlated-propagation", CorrelatedValuePropagationPass())
133*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("dce", DCEPass())
134*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("dse", DSEPass())
135*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("early-cse", EarlyCSEPass())
136*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("instcombine", InstCombinePass())
137*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("instsimplify", InstSimplifierPass())
138*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("invalidate<all>", InvalidateAllAnalysesPass())
139*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("float2int", Float2IntPass())
140*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("no-op-function", NoOpFunctionPass())
141*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("loweratomic", LowerAtomicPass())
142*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("lower-expect", LowerExpectIntrinsicPass())
143*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("guard-widening", GuardWideningPass())
144*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("gvn", GVN())
145*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("loop-simplify", LoopSimplifyPass())
146*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("mem2reg", PromotePass())
147*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("memcpyopt", MemCpyOptPass())
148*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("mldst-motion", MergedLoadStoreMotionPass())
149*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("jump-threading", JumpThreadingPass())
150*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("partially-inline-libcalls", PartiallyInlineLibCallsPass())
151*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("lcssa", LCSSAPass())
152*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("loop-vectorize", LoopVectorizePass())
153*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("print", PrintFunctionPass(dbgs()))
154*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("print<assumptions>", AssumptionPrinterPass(dbgs()))
155*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("print<block-freq>", BlockFrequencyPrinterPass(dbgs()))
156*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("print<branch-prob>", BranchProbabilityPrinterPass(dbgs()))
157*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("print<domtree>", DominatorTreePrinterPass(dbgs()))
158*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("print<postdomtree>", PostDominatorTreePrinterPass(dbgs()))
159*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("print<demanded-bits>", DemandedBitsPrinterPass(dbgs()))
160*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("print<domfrontier>", DominanceFrontierPrinterPass(dbgs()))
161*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("print<loops>", LoopPrinterPass(dbgs()))
162*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("print<memoryssa>", MemorySSAPrinterPass(dbgs()))
163*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("print<regions>", RegionInfoPrinterPass(dbgs()))
164*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("print<scalar-evolution>", ScalarEvolutionPrinterPass(dbgs()))
165*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("reassociate", ReassociatePass())
166*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("sccp", SCCPPass())
167*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("simplify-cfg", SimplifyCFGPass())
168*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("sink", SinkingPass())
169*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("slp-vectorizer", SLPVectorizerPass())
170*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("sroa", SROA())
171*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("tailcallelim", TailCallElimPass())
172*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("unreachableblockelim", UnreachableBlockElimPass())
173*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("verify", VerifierPass())
174*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("verify<domtree>", DominatorTreeVerifierPass())
175*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("verify<memoryssa>", MemorySSAVerifierPass())
176*9880d681SAndroid Build Coastguard WorkerFUNCTION_PASS("verify<regions>", RegionInfoVerifierPass())
177*9880d681SAndroid Build Coastguard Worker#undef FUNCTION_PASS
178*9880d681SAndroid Build Coastguard Worker
179*9880d681SAndroid Build Coastguard Worker#ifndef LOOP_ANALYSIS
180*9880d681SAndroid Build Coastguard Worker#define LOOP_ANALYSIS(NAME, CREATE_PASS)
181*9880d681SAndroid Build Coastguard Worker#endif
182*9880d681SAndroid Build Coastguard WorkerLOOP_ANALYSIS("no-op-loop", NoOpLoopAnalysis())
183*9880d681SAndroid Build Coastguard WorkerLOOP_ANALYSIS("access-info", LoopAccessAnalysis())
184*9880d681SAndroid Build Coastguard Worker#undef LOOP_ANALYSIS
185*9880d681SAndroid Build Coastguard Worker
186*9880d681SAndroid Build Coastguard Worker#ifndef LOOP_PASS
187*9880d681SAndroid Build Coastguard Worker#define LOOP_PASS(NAME, CREATE_PASS)
188*9880d681SAndroid Build Coastguard Worker#endif
189*9880d681SAndroid Build Coastguard WorkerLOOP_PASS("invalidate<all>", InvalidateAllAnalysesPass())
190*9880d681SAndroid Build Coastguard WorkerLOOP_PASS("licm", LICMPass())
191*9880d681SAndroid Build Coastguard WorkerLOOP_PASS("loop-idiom", LoopIdiomRecognizePass())
192*9880d681SAndroid Build Coastguard WorkerLOOP_PASS("rotate", LoopRotatePass())
193*9880d681SAndroid Build Coastguard WorkerLOOP_PASS("no-op-loop", NoOpLoopPass())
194*9880d681SAndroid Build Coastguard WorkerLOOP_PASS("print", PrintLoopPass(dbgs()))
195*9880d681SAndroid Build Coastguard WorkerLOOP_PASS("loop-deletion", LoopDeletionPass())
196*9880d681SAndroid Build Coastguard WorkerLOOP_PASS("simplify-cfg", LoopSimplifyCFGPass())
197*9880d681SAndroid Build Coastguard WorkerLOOP_PASS("indvars", IndVarSimplifyPass())
198*9880d681SAndroid Build Coastguard WorkerLOOP_PASS("print-access-info", LoopAccessInfoPrinterPass(dbgs()))
199*9880d681SAndroid Build Coastguard Worker#undef LOOP_PASS
200