blob: f20b597a8f02f0600a8fae50aa3fae7ee713cfca [file] [log] [blame]
Chandler Carruth58944182014-04-21 08:08:50 +00001//===- PassRegistry.def - Registry of passes --------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file is used as the registry of passes that are part of the core LLVM
11// libraries. This file describes both transformation passes and analyses
12// Analyses are registered while transformation passes have names registered
13// that can be used when providing a textual pass pipeline.
14//
15//===----------------------------------------------------------------------===//
16
17// NOTE: NO INCLUDE GUARD DESIRED!
18
Chandler Carruth43173422014-04-21 08:20:10 +000019#ifndef MODULE_ANALYSIS
20#define MODULE_ANALYSIS(NAME, CREATE_PASS)
21#endif
Chandler Carruth4c660f72016-03-10 11:24:11 +000022MODULE_ANALYSIS("callgraph", CallGraphAnalysis())
Chandler Carruth43173422014-04-21 08:20:10 +000023MODULE_ANALYSIS("lcg", LazyCallGraphAnalysis())
Teresa Johnsonf93b2462016-08-12 13:53:02 +000024MODULE_ANALYSIS("module-summary", ModuleSummaryIndexAnalysis())
Chandler Carruth0b576b32015-01-06 02:50:06 +000025MODULE_ANALYSIS("no-op-module", NoOpModuleAnalysis())
Easwaran Raman019e0bf2016-06-03 22:54:26 +000026MODULE_ANALYSIS("profile-summary", ProfileSummaryAnalysis())
Vitaly Bukab8e6fa62018-11-26 23:05:48 +000027MODULE_ANALYSIS("stack-safety", StackSafetyGlobalAnalysis())
Chandler Carruth8ca43222015-01-15 11:39:46 +000028MODULE_ANALYSIS("targetlibinfo", TargetLibraryAnalysis())
Adrian Prantle3656182016-05-09 19:57:29 +000029MODULE_ANALYSIS("verify", VerifierAnalysis())
Fedor Sergeevee8d31c2018-09-20 17:08:45 +000030MODULE_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC))
Chandler Carruth45a9c202016-03-11 09:15:11 +000031
32#ifndef MODULE_ALIAS_ANALYSIS
George Burgess IVbfa401e2016-07-06 00:26:41 +000033#define MODULE_ALIAS_ANALYSIS(NAME, CREATE_PASS) \
Chandler Carruth45a9c202016-03-11 09:15:11 +000034 MODULE_ANALYSIS(NAME, CREATE_PASS)
35#endif
36MODULE_ALIAS_ANALYSIS("globals-aa", GlobalsAA())
37#undef MODULE_ALIAS_ANALYSIS
Chandler Carruth43173422014-04-21 08:20:10 +000038#undef MODULE_ANALYSIS
39
Chandler Carruth58944182014-04-21 08:08:50 +000040#ifndef MODULE_PASS
41#define MODULE_PASS(NAME, CREATE_PASS)
42#endif
Chandler Carruth67fc52f2016-08-17 02:56:20 +000043MODULE_PASS("always-inline", AlwaysInlinerPass())
Matthew Simpsoncb585582017-10-25 13:40:08 +000044MODULE_PASS("called-value-propagation", CalledValuePropagationPass())
Teresa Johnson853b9622019-01-04 19:04:54 +000045MODULE_PASS("canonicalize-aliases", CanonicalizeAliasesPass())
Michael J. Spencer7bb27672018-07-16 00:28:24 +000046MODULE_PASS("cg-profile", CGProfilePass())
Davide Italiano164b9bc2016-05-05 00:51:09 +000047MODULE_PASS("constmerge", ConstantMergePass())
Davide Italiano92b933a2016-07-09 03:25:35 +000048MODULE_PASS("cross-dso-cfi", CrossDSOCFIPass())
Sean Silvae3bb4572016-06-12 09:16:39 +000049MODULE_PASS("deadargelim", DeadArgumentEliminationPass())
Davide Italiano344e8382016-05-05 02:37:32 +000050MODULE_PASS("elim-avail-extern", EliminateAvailableExternallyPass())
Chandler Carruthf49f1a872015-12-27 08:13:45 +000051MODULE_PASS("forceattrs", ForceFunctionAttrsPass())
Teresa Johnson21241572016-07-18 21:22:24 +000052MODULE_PASS("function-import", FunctionImportPass())
Davide Italiano66228c42016-05-03 19:39:15 +000053MODULE_PASS("globaldce", GlobalDCEPass())
Justin Bogner1a075012016-04-26 00:28:01 +000054MODULE_PASS("globalopt", GlobalOptPass())
Davide Italiano2ae76dd2016-11-21 00:28:23 +000055MODULE_PASS("globalsplit", GlobalSplitPass())
Aditya Kumar9e20ade2018-10-03 05:55:20 +000056MODULE_PASS("hotcoldsplit", HotColdSplittingPass())
Chandler Carruth3a040e62015-12-27 08:41:34 +000057MODULE_PASS("inferattrs", InferFunctionAttrsPass())
Xinliang David Li64dbb292016-06-05 05:12:23 +000058MODULE_PASS("insert-gcov-profiling", GCOVProfilerPass())
Xinliang David Lie6b89292016-04-18 17:47:38 +000059MODULE_PASS("instrprof", InstrProfiling())
Xinliang David Lie537cbf2016-06-05 05:15:45 +000060MODULE_PASS("internalize", InternalizePass())
Chandler Carruth4e107caf2015-01-06 09:06:35 +000061MODULE_PASS("invalidate<all>", InvalidateAllAnalysesPass())
Davide Italianof54f2f02016-05-05 21:05:36 +000062MODULE_PASS("ipsccp", IPSCCPPass())
Teresa Johnson28023db2018-07-19 14:51:32 +000063MODULE_PASS("lowertypetests", LowerTypeTestsPass(nullptr, nullptr))
Mehdi Amini55b06532016-09-16 17:18:16 +000064MODULE_PASS("name-anon-globals", NameAnonGlobalPass())
Chandler Carrutha872f3f2015-01-06 02:37:55 +000065MODULE_PASS("no-op-module", NoOpModulePass())
Easwaran Raman1832bf62016-06-27 16:50:18 +000066MODULE_PASS("partial-inliner", PartialInlinerPass())
Xinliang David Lif3c7a352016-05-16 16:31:07 +000067MODULE_PASS("pgo-icall-prom", PGOIndirectCallPromotion())
Xinliang David Li8aebf442016-05-06 05:49:19 +000068MODULE_PASS("pgo-instr-gen", PGOInstrumentationGen())
Xinliang David Lida195582016-05-10 21:59:52 +000069MODULE_PASS("pgo-instr-use", PGOInstrumentationUse())
Michael Kuperstein82d5da52016-06-24 20:13:42 +000070MODULE_PASS("pre-isel-intrinsic-lowering", PreISelIntrinsicLoweringPass())
Easwaran Raman019e0bf2016-06-03 22:54:26 +000071MODULE_PASS("print-profile-summary", ProfileSummaryPrinterPass(dbgs()))
Easwaran Raman94edaaa2016-06-03 21:14:26 +000072MODULE_PASS("print-callgraph", CallGraphPrinterPass(dbgs()))
Easwaran Raman019e0bf2016-06-03 22:54:26 +000073MODULE_PASS("print", PrintModulePass(dbgs()))
Chandler Carruthb95def72016-03-10 11:24:06 +000074MODULE_PASS("print-lcg", LazyCallGraphPrinterPass(dbgs()))
Sean Silva7cb30662016-06-18 09:17:32 +000075MODULE_PASS("print-lcg-dot", LazyCallGraphDOTPrinterPass(dbgs()))
Vitaly Bukab8e6fa62018-11-26 23:05:48 +000076MODULE_PASS("print-stack-safety", StackSafetyGlobalPrinterPass(dbgs()))
Fedor Sergeev4b86d792017-12-15 09:32:11 +000077MODULE_PASS("rewrite-statepoints-for-gc", RewriteStatepointsForGC())
Michael Kuperstein39feb622016-07-25 20:52:00 +000078MODULE_PASS("rewrite-symbols", RewriteSymbolPass())
Sean Silvaf5080192016-06-12 07:48:51 +000079MODULE_PASS("rpo-functionattrs", ReversePostOrderFunctionAttrsPass())
Xinliang David Lid38392e2016-05-27 23:20:16 +000080MODULE_PASS("sample-profile", SampleProfileLoaderPass())
Justin Bogner21e15372015-10-30 23:28:12 +000081MODULE_PASS("strip-dead-prototypes", StripDeadPrototypesPass())
Easwaran Ramanbdf20262018-01-09 19:39:35 +000082MODULE_PASS("synthetic-counts-propagation", SyntheticCountsPropagation())
Teresa Johnson28023db2018-07-19 14:51:32 +000083MODULE_PASS("wholeprogramdevirt", WholeProgramDevirtPass(nullptr, nullptr))
Chandler Carruth9c31db42015-01-05 00:08:53 +000084MODULE_PASS("verify", VerifierPass())
Chandler Carruth58944182014-04-21 08:08:50 +000085#undef MODULE_PASS
86
Chandler Carruth572e3402014-04-21 11:12:00 +000087#ifndef CGSCC_ANALYSIS
88#define CGSCC_ANALYSIS(NAME, CREATE_PASS)
89#endif
Chandler Carruth0b576b32015-01-06 02:50:06 +000090CGSCC_ANALYSIS("no-op-cgscc", NoOpCGSCCAnalysis())
Chandler Carruth6b981642016-12-10 06:34:44 +000091CGSCC_ANALYSIS("fam-proxy", FunctionAnalysisManagerCGSCCProxy())
Fedor Sergeevee8d31c2018-09-20 17:08:45 +000092CGSCC_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC))
Chandler Carruth572e3402014-04-21 11:12:00 +000093#undef CGSCC_ANALYSIS
94
95#ifndef CGSCC_PASS
96#define CGSCC_PASS(NAME, CREATE_PASS)
97#endif
Chandler Carruthaddcda42017-02-09 23:46:27 +000098CGSCC_PASS("argpromotion", ArgumentPromotionPass())
Chandler Carruth4e107caf2015-01-06 09:06:35 +000099CGSCC_PASS("invalidate<all>", InvalidateAllAnalysesPass())
Chandler Carruth9c4ed172016-02-18 11:03:11 +0000100CGSCC_PASS("function-attrs", PostOrderFunctionAttrsPass())
Chandler Carruth1d963112016-12-20 03:15:32 +0000101CGSCC_PASS("inline", InlinerPass())
Chandler Carrutha872f3f2015-01-06 02:37:55 +0000102CGSCC_PASS("no-op-cgscc", NoOpCGSCCPass())
Chandler Carruth572e3402014-04-21 11:12:00 +0000103#undef CGSCC_PASS
104
Chandler Carruth43173422014-04-21 08:20:10 +0000105#ifndef FUNCTION_ANALYSIS
106#define FUNCTION_ANALYSIS(NAME, CREATE_PASS)
107#endif
Chandler Carruth6f5770b102016-02-13 23:32:00 +0000108FUNCTION_ANALYSIS("aa", AAManager())
Daniel Jasperaec2fa32016-12-19 08:22:17 +0000109FUNCTION_ANALYSIS("assumptions", AssumptionAnalysis())
Xinliang David Li28a93272016-05-05 21:13:27 +0000110FUNCTION_ANALYSIS("block-freq", BlockFrequencyAnalysis())
Xinliang David Li6e5dd412016-05-05 02:59:57 +0000111FUNCTION_ANALYSIS("branch-prob", BranchProbabilityAnalysis())
Chandler Carruth64764b42015-01-14 10:19:28 +0000112FUNCTION_ANALYSIS("domtree", DominatorTreeAnalysis())
Hongbin Zheng3f978402016-02-25 17:54:07 +0000113FUNCTION_ANALYSIS("postdomtree", PostDominatorTreeAnalysis())
Michael Kupersteinde16b442016-04-18 23:55:01 +0000114FUNCTION_ANALYSIS("demanded-bits", DemandedBitsAnalysis())
Hongbin Zheng751337f2016-02-25 17:54:15 +0000115FUNCTION_ANALYSIS("domfrontier", DominanceFrontierAnalysis())
Chandler Carruthaaf0b4c2015-01-20 10:58:50 +0000116FUNCTION_ANALYSIS("loops", LoopAnalysis())
Sean Silva687019f2016-06-13 22:01:25 +0000117FUNCTION_ANALYSIS("lazy-value-info", LazyValueAnalysis())
Chandler Carruth49c22192016-05-12 22:19:39 +0000118FUNCTION_ANALYSIS("da", DependenceAnalysis())
Chandler Carruth61440d22016-03-10 00:55:30 +0000119FUNCTION_ANALYSIS("memdep", MemoryDependenceAnalysis())
Geoff Berryb96d3b22016-06-01 21:30:40 +0000120FUNCTION_ANALYSIS("memoryssa", MemorySSAAnalysis())
John Brawnbdbbd832018-06-28 14:13:06 +0000121FUNCTION_ANALYSIS("phi-values", PhiValuesAnalysis())
Hongbin Zhengbc539772016-02-25 17:54:25 +0000122FUNCTION_ANALYSIS("regions", RegionInfoAnalysis())
Chandler Carruth0b576b32015-01-06 02:50:06 +0000123FUNCTION_ANALYSIS("no-op-function", NoOpFunctionAnalysis())
Adam Nemet79ac42a2016-07-18 16:29:21 +0000124FUNCTION_ANALYSIS("opt-remark-emit", OptimizationRemarkEmitterAnalysis())
Chandler Carruth2f1fd162015-08-17 02:08:17 +0000125FUNCTION_ANALYSIS("scalar-evolution", ScalarEvolutionAnalysis())
Vitaly Buka4493fe12018-11-26 21:57:47 +0000126FUNCTION_ANALYSIS("stack-safety-local", StackSafetyAnalysis())
Chandler Carruthc0291862015-01-24 02:06:09 +0000127FUNCTION_ANALYSIS("targetlibinfo", TargetLibraryAnalysis())
Chandler Carruthe0385522015-02-01 10:11:22 +0000128FUNCTION_ANALYSIS("targetir",
129 TM ? TM->getTargetIRAnalysis() : TargetIRAnalysis())
Adrian Prantle3656182016-05-09 19:57:29 +0000130FUNCTION_ANALYSIS("verify", VerifierAnalysis())
Fedor Sergeevee8d31c2018-09-20 17:08:45 +0000131FUNCTION_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC))
Chandler Carruthedf59962016-02-18 09:45:17 +0000132
133#ifndef FUNCTION_ALIAS_ANALYSIS
134#define FUNCTION_ALIAS_ANALYSIS(NAME, CREATE_PASS) \
135 FUNCTION_ANALYSIS(NAME, CREATE_PASS)
136#endif
137FUNCTION_ALIAS_ANALYSIS("basic-aa", BasicAA())
George Burgess IVbfa401e2016-07-06 00:26:41 +0000138FUNCTION_ALIAS_ANALYSIS("cfl-anders-aa", CFLAndersAA())
139FUNCTION_ALIAS_ANALYSIS("cfl-steens-aa", CFLSteensAA())
Chandler Carruth2b3d0442016-02-20 04:01:45 +0000140FUNCTION_ALIAS_ANALYSIS("scev-aa", SCEVAA())
Chandler Carruthd6091a02016-02-20 04:03:06 +0000141FUNCTION_ALIAS_ANALYSIS("scoped-noalias-aa", ScopedNoAliasAA())
Chandler Carruthc1dc3842016-02-20 04:04:52 +0000142FUNCTION_ALIAS_ANALYSIS("type-based-aa", TypeBasedAA())
Chandler Carruthedf59962016-02-18 09:45:17 +0000143#undef FUNCTION_ALIAS_ANALYSIS
Chandler Carruth43173422014-04-21 08:20:10 +0000144#undef FUNCTION_ANALYSIS
145
Chandler Carruth58944182014-04-21 08:08:50 +0000146#ifndef FUNCTION_PASS
147#define FUNCTION_PASS(NAME, CREATE_PASS)
148#endif
Chandler Carruth4f846a52016-02-20 03:46:03 +0000149FUNCTION_PASS("aa-eval", AAEvaluator())
Justin Bogner19b67992015-10-30 23:13:18 +0000150FUNCTION_PASS("adce", ADCEPass())
Xinliang David Li1eaecef2016-06-15 21:51:30 +0000151FUNCTION_PASS("add-discriminators", AddDiscriminatorsPass())
Amjad Aboudf1f57a32018-01-25 12:06:32 +0000152FUNCTION_PASS("aggressive-instcombine", AggressiveInstCombinePass())
Sean Silvaa4c2d152016-06-15 06:18:01 +0000153FUNCTION_PASS("alignment-from-assumptions", AlignmentFromAssumptionsPass())
Davide Italiano655a1452016-05-25 01:57:04 +0000154FUNCTION_PASS("bdce", BDCEPass())
Chandler Carruth00a301d2017-11-14 01:30:04 +0000155FUNCTION_PASS("bounds-checking", BoundsCheckingPass())
Wei Mie04d0ef2016-07-22 18:04:25 +0000156FUNCTION_PASS("break-crit-edges", BreakCriticalEdgesPass())
Jun Bum Lim0c990072017-11-03 20:41:16 +0000157FUNCTION_PASS("callsite-splitting", CallSiteSplittingPass())
Michael Kuperstein071d8302016-07-02 00:16:47 +0000158FUNCTION_PASS("consthoist", ConstantHoistingPass())
Hiroshi Yamauchi9775a622018-09-04 17:19:13 +0000159FUNCTION_PASS("chr", ControlHeightReductionPass())
Sean Silvab025d372016-07-06 23:26:29 +0000160FUNCTION_PASS("correlated-propagation", CorrelatedValuePropagationPass())
Justin Bogner395c2122016-04-22 19:40:41 +0000161FUNCTION_PASS("dce", DCEPass())
Sanjay Patel6fd43912017-09-09 13:38:18 +0000162FUNCTION_PASS("div-rem-pairs", DivRemPairsPass())
Justin Bogner594e07b2016-05-17 21:38:13 +0000163FUNCTION_PASS("dse", DSEPass())
Sean Fertilecd0d7632018-06-29 17:48:58 +0000164FUNCTION_PASS("dot-cfg", CFGPrinterPass())
165FUNCTION_PASS("dot-cfg-only", CFGOnlyPrinterPass())
Geoff Berry8d846052016-08-31 19:24:10 +0000166FUNCTION_PASS("early-cse", EarlyCSEPass(/*UseMemorySSA=*/false))
167FUNCTION_PASS("early-cse-memssa", EarlyCSEPass(/*UseMemorySSA=*/true))
Hans Wennborge1ecd612017-11-14 21:09:45 +0000168FUNCTION_PASS("ee-instrument", EntryExitInstrumenterPass(/*PostInlining=*/false))
Max Kazantsevb9e65cb2018-12-07 14:39:46 +0000169FUNCTION_PASS("make-guards-explicit", MakeGuardsExplicitPass())
Hans Wennborge1ecd612017-11-14 21:09:45 +0000170FUNCTION_PASS("post-inline-ee-instrument", EntryExitInstrumenterPass(/*PostInlining=*/true))
Sebastian Pop41774802016-07-15 13:45:20 +0000171FUNCTION_PASS("gvn-hoist", GVNHoistPass())
Chandler Carruth83ba2692015-01-24 04:19:17 +0000172FUNCTION_PASS("instcombine", InstCombinePass())
Chandler Carruth7c557f82018-06-29 23:36:03 +0000173FUNCTION_PASS("instsimplify", InstSimplifyPass())
Chandler Carruth4e107caf2015-01-06 09:06:35 +0000174FUNCTION_PASS("invalidate<all>", InvalidateAllAnalysesPass())
Michael Kuperstein83b753d2016-06-24 23:32:02 +0000175FUNCTION_PASS("float2int", Float2IntPass())
Chandler Carrutha872f3f2015-01-06 02:37:55 +0000176FUNCTION_PASS("no-op-function", NoOpFunctionPass())
Rong Xu1c0e9b92016-10-18 21:36:27 +0000177FUNCTION_PASS("libcalls-shrinkwrap", LibCallsShrinkWrapPass())
Davide Italiano99223442016-05-13 22:52:35 +0000178FUNCTION_PASS("loweratomic", LowerAtomicPass())
Chandler Carruth43e590e2015-01-24 11:13:02 +0000179FUNCTION_PASS("lower-expect", LowerExpectIntrinsicPass())
Michael Kupersteine45d4d92016-07-28 22:08:41 +0000180FUNCTION_PASS("lower-guard-intrinsic", LowerGuardIntrinsicPass())
Sanjoy Das083f3892016-05-18 22:55:34 +0000181FUNCTION_PASS("guard-widening", GuardWideningPass())
Chandler Carruth89c45a12016-03-11 08:50:55 +0000182FUNCTION_PASS("gvn", GVN())
Markus Lavin4dc4ebd2018-12-07 08:23:37 +0000183FUNCTION_PASS("load-store-vectorizer", LoadStoreVectorizerPass())
Davide Italianocd96cfd2016-07-09 03:03:01 +0000184FUNCTION_PASS("loop-simplify", LoopSimplifyPass())
Chandler Carruthe9b18e32017-01-20 08:42:19 +0000185FUNCTION_PASS("loop-sink", LoopSinkPass())
Michael Kuperstein31b83992016-08-12 17:28:27 +0000186FUNCTION_PASS("lowerinvoke", LowerInvokePass())
Davide Italianocccf4f02016-06-14 03:22:22 +0000187FUNCTION_PASS("mem2reg", PromotePass())
Sean Silva6347df02016-06-14 02:44:55 +0000188FUNCTION_PASS("memcpyopt", MemCpyOptPass())
Davide Italianob49aa5c2016-06-17 19:10:09 +0000189FUNCTION_PASS("mldst-motion", MergedLoadStoreMotionPass())
Wei Mi1cf58f82016-07-21 22:28:52 +0000190FUNCTION_PASS("nary-reassociate", NaryReassociatePass())
Davide Italianoe05e3302016-12-22 16:35:02 +0000191FUNCTION_PASS("newgvn", NewGVNPass())
Sean Silva46590d52016-06-14 00:51:09 +0000192FUNCTION_PASS("jump-threading", JumpThreadingPass())
Davide Italiano1021c682016-05-25 23:38:53 +0000193FUNCTION_PASS("partially-inline-libcalls", PartiallyInlineLibCallsPass())
Easwaran Ramane12c4872016-06-09 19:44:46 +0000194FUNCTION_PASS("lcssa", LCSSAPass())
Teresa Johnson1eca6bc2016-08-13 04:11:27 +0000195FUNCTION_PASS("loop-data-prefetch", LoopDataPrefetchPass())
Chandler Carruthbaabda92017-01-27 01:32:26 +0000196FUNCTION_PASS("loop-load-elim", LoopLoadEliminationPass())
Adam Nemetb2593f72016-07-18 16:29:27 +0000197FUNCTION_PASS("loop-distribute", LoopDistributePass())
Sean Silvadb90d4d2016-07-09 22:56:50 +0000198FUNCTION_PASS("loop-vectorize", LoopVectorizePass())
Rong Xu48596b62017-04-04 16:42:20 +0000199FUNCTION_PASS("pgo-memop-opt", PGOMemOPSizeOpt())
Chandler Carruth58944182014-04-21 08:08:50 +0000200FUNCTION_PASS("print", PrintFunctionPass(dbgs()))
Daniel Jasperaec2fa32016-12-19 08:22:17 +0000201FUNCTION_PASS("print<assumptions>", AssumptionPrinterPass(dbgs()))
Xinliang David Li28a93272016-05-05 21:13:27 +0000202FUNCTION_PASS("print<block-freq>", BlockFrequencyPrinterPass(dbgs()))
Xinliang David Li6e5dd412016-05-05 02:59:57 +0000203FUNCTION_PASS("print<branch-prob>", BranchProbabilityPrinterPass(dbgs()))
Chandler Carruth64764b42015-01-14 10:19:28 +0000204FUNCTION_PASS("print<domtree>", DominatorTreePrinterPass(dbgs()))
Hongbin Zheng3f978402016-02-25 17:54:07 +0000205FUNCTION_PASS("print<postdomtree>", PostDominatorTreePrinterPass(dbgs()))
Michael Kupersteinde16b442016-04-18 23:55:01 +0000206FUNCTION_PASS("print<demanded-bits>", DemandedBitsPrinterPass(dbgs()))
Hongbin Zheng751337f2016-02-25 17:54:15 +0000207FUNCTION_PASS("print<domfrontier>", DominanceFrontierPrinterPass(dbgs()))
Chandler Carruthaaf0b4c2015-01-20 10:58:50 +0000208FUNCTION_PASS("print<loops>", LoopPrinterPass(dbgs()))
Geoff Berryb96d3b22016-06-01 21:30:40 +0000209FUNCTION_PASS("print<memoryssa>", MemorySSAPrinterPass(dbgs()))
John Brawnbdbbd832018-06-28 14:13:06 +0000210FUNCTION_PASS("print<phi-values>", PhiValuesPrinterPass(dbgs()))
Hongbin Zhengbc539772016-02-25 17:54:25 +0000211FUNCTION_PASS("print<regions>", RegionInfoPrinterPass(dbgs()))
Chandler Carruth2f1fd162015-08-17 02:08:17 +0000212FUNCTION_PASS("print<scalar-evolution>", ScalarEvolutionPrinterPass(dbgs()))
Vitaly Buka4493fe12018-11-26 21:57:47 +0000213FUNCTION_PASS("print<stack-safety-local>", StackSafetyPrinterPass(dbgs()))
Justin Bognerc2bf63d2016-04-26 23:39:29 +0000214FUNCTION_PASS("reassociate", ReassociatePass())
Mikael Holmenb6f76002018-11-21 14:00:17 +0000215FUNCTION_PASS("scalarizer", ScalarizerPass())
Davide Italiano98f7e0e2016-05-18 15:18:25 +0000216FUNCTION_PASS("sccp", SCCPPass())
Chandler Carruthfdffd872015-02-01 11:34:21 +0000217FUNCTION_PASS("simplify-cfg", SimplifyCFGPass())
Justin Bognerb9394902016-04-22 19:54:10 +0000218FUNCTION_PASS("sink", SinkingPass())
Sean Silvae0a9e662016-06-15 08:43:40 +0000219FUNCTION_PASS("slp-vectorizer", SLPVectorizerPass())
Michael Kupersteinc4061862016-08-01 21:48:33 +0000220FUNCTION_PASS("speculative-execution", SpeculativeExecutionPass())
Chandler Carruthc34f7892017-11-28 11:32:31 +0000221FUNCTION_PASS("spec-phis", SpeculateAroundPHIsPass())
Chandler Carruth29a18a42015-09-12 09:09:14 +0000222FUNCTION_PASS("sroa", SROA())
Sean Silva59fe82f2016-07-06 23:48:41 +0000223FUNCTION_PASS("tailcallelim", TailCallElimPass())
Wei Mi90d195a2016-07-08 03:32:49 +0000224FUNCTION_PASS("unreachableblockelim", UnreachableBlockElimPass())
Teresa Johnsonecd90132017-08-02 20:35:29 +0000225FUNCTION_PASS("unroll", LoopUnrollPass())
Fedor Sergeev412ed342018-10-31 14:33:14 +0000226FUNCTION_PASS("unroll<peeling;no-runtime>",LoopUnrollPass(LoopUnrollOptions().setPeeling(true).setRuntime(false)))
Chandler Carruth9c31db42015-01-05 00:08:53 +0000227FUNCTION_PASS("verify", VerifierPass())
Chandler Carruth64764b42015-01-14 10:19:28 +0000228FUNCTION_PASS("verify<domtree>", DominatorTreeVerifierPass())
Sean Silvae3c18a52016-07-19 23:54:23 +0000229FUNCTION_PASS("verify<loops>", LoopVerifierPass())
Geoff Berryb96d3b22016-06-01 21:30:40 +0000230FUNCTION_PASS("verify<memoryssa>", MemorySSAVerifierPass())
Hongbin Zhengbc539772016-02-25 17:54:25 +0000231FUNCTION_PASS("verify<regions>", RegionInfoVerifierPass())
Sean Fertilecd0d7632018-06-29 17:48:58 +0000232FUNCTION_PASS("view-cfg", CFGViewerPass())
233FUNCTION_PASS("view-cfg-only", CFGOnlyViewerPass())
Michael Kruse72448522018-12-12 17:32:52 +0000234FUNCTION_PASS("transform-warning", WarnMissedTransformationsPass())
Philip Pfaffeb39a97c2019-01-03 13:42:44 +0000235FUNCTION_PASS("msan", MemorySanitizerPass())
Chandler Carruth58944182014-04-21 08:08:50 +0000236#undef FUNCTION_PASS
Justin Bognereecc3c82016-02-25 07:23:08 +0000237
238#ifndef LOOP_ANALYSIS
239#define LOOP_ANALYSIS(NAME, CREATE_PASS)
240#endif
241LOOP_ANALYSIS("no-op-loop", NoOpLoopAnalysis())
Xinliang David Li07e08fa2016-07-08 21:21:44 +0000242LOOP_ANALYSIS("access-info", LoopAccessAnalysis())
Dehao Chen1a444522016-07-16 22:51:33 +0000243LOOP_ANALYSIS("ivusers", IVUsersAnalysis())
Fedor Sergeevee8d31c2018-09-20 17:08:45 +0000244LOOP_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC))
Justin Bognereecc3c82016-02-25 07:23:08 +0000245#undef LOOP_ANALYSIS
246
247#ifndef LOOP_PASS
248#define LOOP_PASS(NAME, CREATE_PASS)
249#endif
250LOOP_PASS("invalidate<all>", InvalidateAllAnalysesPass())
Dehao Chenf400a092016-07-12 22:42:24 +0000251LOOP_PASS("licm", LICMPass())
Dehao Chenb9f8e292016-07-12 18:45:51 +0000252LOOP_PASS("loop-idiom", LoopIdiomRecognizePass())
Chandler Carruthe6c30fd2018-05-25 01:32:36 +0000253LOOP_PASS("loop-instsimplify", LoopInstSimplifyPass())
Justin Bognerd0d23412016-05-03 22:02:31 +0000254LOOP_PASS("rotate", LoopRotatePass())
Justin Bognereecc3c82016-02-25 07:23:08 +0000255LOOP_PASS("no-op-loop", NoOpLoopPass())
256LOOP_PASS("print", PrintLoopPass(dbgs()))
Jun Bum Limc837af32016-07-14 18:28:29 +0000257LOOP_PASS("loop-deletion", LoopDeletionPass())
Justin Bognerab6a5132016-05-03 21:47:32 +0000258LOOP_PASS("simplify-cfg", LoopSimplifyCFGPass())
Dehao Chen6132ee82016-07-18 21:41:50 +0000259LOOP_PASS("strength-reduce", LoopStrengthReducePass())
Sanjoy Das4d4339d2016-06-05 18:01:19 +0000260LOOP_PASS("indvars", IndVarSimplifyPass())
Fedor Sergeev194a4072018-03-15 11:01:19 +0000261LOOP_PASS("irce", IRCEPass())
David Green963401d2018-07-01 12:47:30 +0000262LOOP_PASS("unroll-and-jam", LoopUnrollAndJamPass())
Teresa Johnsonecd90132017-08-02 20:35:29 +0000263LOOP_PASS("unroll-full", LoopFullUnrollPass())
Chandler Carruth1353f9a2017-04-27 18:45:20 +0000264LOOP_PASS("unswitch", SimpleLoopUnswitchPass())
Xinliang David Li8a021312016-07-02 21:18:40 +0000265LOOP_PASS("print-access-info", LoopAccessInfoPrinterPass(dbgs()))
Dehao Chen1a444522016-07-16 22:51:33 +0000266LOOP_PASS("print<ivusers>", IVUsersPrinterPass(dbgs()))
Artur Pilipenko8fb3d572017-01-25 16:00:44 +0000267LOOP_PASS("loop-predication", LoopPredicationPass())
Justin Bognereecc3c82016-02-25 07:23:08 +0000268#undef LOOP_PASS