Chandler Carruth | a21cd04 | 2014-04-21 08:08:50 +0000 | [diff] [blame] | 1 | //===- 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 Carruth | 4d3682b | 2014-04-21 08:20:10 +0000 | [diff] [blame] | 19 | #ifndef MODULE_ANALYSIS |
| 20 | #define MODULE_ANALYSIS(NAME, CREATE_PASS) |
| 21 | #endif |
Chandler Carruth | f1b2c7b | 2016-03-10 11:24:11 +0000 | [diff] [blame] | 22 | MODULE_ANALYSIS("callgraph", CallGraphAnalysis()) |
Chandler Carruth | 4d3682b | 2014-04-21 08:20:10 +0000 | [diff] [blame] | 23 | MODULE_ANALYSIS("lcg", LazyCallGraphAnalysis()) |
Teresa Johnson | 3143f33 | 2016-08-12 13:53:02 +0000 | [diff] [blame] | 24 | MODULE_ANALYSIS("module-summary", ModuleSummaryIndexAnalysis()) |
Chandler Carruth | 5b12a2f | 2015-01-06 02:50:06 +0000 | [diff] [blame] | 25 | MODULE_ANALYSIS("no-op-module", NoOpModuleAnalysis()) |
Easwaran Raman | 7ef349f | 2016-06-03 22:54:26 +0000 | [diff] [blame] | 26 | MODULE_ANALYSIS("profile-summary", ProfileSummaryAnalysis()) |
Vitaly Buka | 54b4ae7 | 2018-11-26 23:05:48 +0000 | [diff] [blame] | 27 | MODULE_ANALYSIS("stack-safety", StackSafetyGlobalAnalysis()) |
Chandler Carruth | e2ffd02 | 2015-01-15 11:39:46 +0000 | [diff] [blame] | 28 | MODULE_ANALYSIS("targetlibinfo", TargetLibraryAnalysis()) |
Adrian Prantl | f68fb38 | 2016-05-09 19:57:29 +0000 | [diff] [blame] | 29 | MODULE_ANALYSIS("verify", VerifierAnalysis()) |
Fedor Sergeev | e6959a6 | 2018-09-20 17:08:45 +0000 | [diff] [blame] | 30 | MODULE_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC)) |
Chandler Carruth | f51faf0 | 2016-03-11 09:15:11 +0000 | [diff] [blame] | 31 | |
| 32 | #ifndef MODULE_ALIAS_ANALYSIS |
George Burgess IV | 3b5b98a | 2016-07-06 00:26:41 +0000 | [diff] [blame] | 33 | #define MODULE_ALIAS_ANALYSIS(NAME, CREATE_PASS) \ |
Chandler Carruth | f51faf0 | 2016-03-11 09:15:11 +0000 | [diff] [blame] | 34 | MODULE_ANALYSIS(NAME, CREATE_PASS) |
| 35 | #endif |
| 36 | MODULE_ALIAS_ANALYSIS("globals-aa", GlobalsAA()) |
| 37 | #undef MODULE_ALIAS_ANALYSIS |
Chandler Carruth | 4d3682b | 2014-04-21 08:20:10 +0000 | [diff] [blame] | 38 | #undef MODULE_ANALYSIS |
| 39 | |
Chandler Carruth | a21cd04 | 2014-04-21 08:08:50 +0000 | [diff] [blame] | 40 | #ifndef MODULE_PASS |
| 41 | #define MODULE_PASS(NAME, CREATE_PASS) |
| 42 | #endif |
Chandler Carruth | b699f7b | 2016-08-17 02:56:20 +0000 | [diff] [blame] | 43 | MODULE_PASS("always-inline", AlwaysInlinerPass()) |
Matthew Simpson | 7d6a3b6 | 2017-10-25 13:40:08 +0000 | [diff] [blame] | 44 | MODULE_PASS("called-value-propagation", CalledValuePropagationPass()) |
Teresa Johnson | 1f63024 | 2019-01-04 19:04:54 +0000 | [diff] [blame] | 45 | MODULE_PASS("canonicalize-aliases", CanonicalizeAliasesPass()) |
Michael J. Spencer | 3da6ce5 | 2018-07-16 00:28:24 +0000 | [diff] [blame] | 46 | MODULE_PASS("cg-profile", CGProfilePass()) |
Davide Italiano | 0a51771 | 2016-05-05 00:51:09 +0000 | [diff] [blame] | 47 | MODULE_PASS("constmerge", ConstantMergePass()) |
Davide Italiano | 0dd611b | 2016-07-09 03:25:35 +0000 | [diff] [blame] | 48 | MODULE_PASS("cross-dso-cfi", CrossDSOCFIPass()) |
Sean Silva | 466d0a3 | 2016-06-12 09:16:39 +0000 | [diff] [blame] | 49 | MODULE_PASS("deadargelim", DeadArgumentEliminationPass()) |
Davide Italiano | e44aed7 | 2016-05-05 02:37:32 +0000 | [diff] [blame] | 50 | MODULE_PASS("elim-avail-extern", EliminateAvailableExternallyPass()) |
Chandler Carruth | 6a1ce8e | 2015-12-27 08:13:45 +0000 | [diff] [blame] | 51 | MODULE_PASS("forceattrs", ForceFunctionAttrsPass()) |
Teresa Johnson | 385d706 | 2016-07-18 21:22:24 +0000 | [diff] [blame] | 52 | MODULE_PASS("function-import", FunctionImportPass()) |
Davide Italiano | 82cad6f | 2016-05-03 19:39:15 +0000 | [diff] [blame] | 53 | MODULE_PASS("globaldce", GlobalDCEPass()) |
Justin Bogner | 1a9ed30 | 2016-04-26 00:28:01 +0000 | [diff] [blame] | 54 | MODULE_PASS("globalopt", GlobalOptPass()) |
Davide Italiano | 02ca2cb | 2016-11-21 00:28:23 +0000 | [diff] [blame] | 55 | MODULE_PASS("globalsplit", GlobalSplitPass()) |
Aditya Kumar | f7ae0df | 2018-10-03 05:55:20 +0000 | [diff] [blame] | 56 | MODULE_PASS("hotcoldsplit", HotColdSplittingPass()) |
Chandler Carruth | d979642 | 2015-12-27 08:41:34 +0000 | [diff] [blame] | 57 | MODULE_PASS("inferattrs", InferFunctionAttrsPass()) |
Xinliang David Li | 6b28333 | 2016-06-05 05:12:23 +0000 | [diff] [blame] | 58 | MODULE_PASS("insert-gcov-profiling", GCOVProfilerPass()) |
Xinliang David Li | 6be977a | 2016-04-18 17:47:38 +0000 | [diff] [blame] | 59 | MODULE_PASS("instrprof", InstrProfiling()) |
Xinliang David Li | cb8e2c7 | 2016-06-05 05:15:45 +0000 | [diff] [blame] | 60 | MODULE_PASS("internalize", InternalizePass()) |
Chandler Carruth | 0df8905 | 2015-01-06 09:06:35 +0000 | [diff] [blame] | 61 | MODULE_PASS("invalidate<all>", InvalidateAllAnalysesPass()) |
Davide Italiano | 2d1483c | 2016-05-05 21:05:36 +0000 | [diff] [blame] | 62 | MODULE_PASS("ipsccp", IPSCCPPass()) |
Teresa Johnson | 2a478d4 | 2018-07-19 14:51:32 +0000 | [diff] [blame] | 63 | MODULE_PASS("lowertypetests", LowerTypeTestsPass(nullptr, nullptr)) |
Mehdi Amini | f15b3af | 2016-09-16 17:18:16 +0000 | [diff] [blame] | 64 | MODULE_PASS("name-anon-globals", NameAnonGlobalPass()) |
Chandler Carruth | 2e306ca | 2015-01-06 02:37:55 +0000 | [diff] [blame] | 65 | MODULE_PASS("no-op-module", NoOpModulePass()) |
Easwaran Raman | 78b1ab7 | 2016-06-27 16:50:18 +0000 | [diff] [blame] | 66 | MODULE_PASS("partial-inliner", PartialInlinerPass()) |
Xinliang David Li | 61ce277 | 2016-05-16 16:31:07 +0000 | [diff] [blame] | 67 | MODULE_PASS("pgo-icall-prom", PGOIndirectCallPromotion()) |
Xinliang David Li | ea2fb7d | 2016-05-06 05:49:19 +0000 | [diff] [blame] | 68 | MODULE_PASS("pgo-instr-gen", PGOInstrumentationGen()) |
Xinliang David Li | e052ee9 | 2016-05-10 21:59:52 +0000 | [diff] [blame] | 69 | MODULE_PASS("pgo-instr-use", PGOInstrumentationUse()) |
Michael Kuperstein | f3f8fc6 | 2016-06-24 20:13:42 +0000 | [diff] [blame] | 70 | MODULE_PASS("pre-isel-intrinsic-lowering", PreISelIntrinsicLoweringPass()) |
Easwaran Raman | 7ef349f | 2016-06-03 22:54:26 +0000 | [diff] [blame] | 71 | MODULE_PASS("print-profile-summary", ProfileSummaryPrinterPass(dbgs())) |
Easwaran Raman | b920b27 | 2016-06-03 21:14:26 +0000 | [diff] [blame] | 72 | MODULE_PASS("print-callgraph", CallGraphPrinterPass(dbgs())) |
Easwaran Raman | 7ef349f | 2016-06-03 22:54:26 +0000 | [diff] [blame] | 73 | MODULE_PASS("print", PrintModulePass(dbgs())) |
Chandler Carruth | c9fd765 | 2016-03-10 11:24:06 +0000 | [diff] [blame] | 74 | MODULE_PASS("print-lcg", LazyCallGraphPrinterPass(dbgs())) |
Sean Silva | 5e494bc | 2016-06-18 09:17:32 +0000 | [diff] [blame] | 75 | MODULE_PASS("print-lcg-dot", LazyCallGraphDOTPrinterPass(dbgs())) |
Vitaly Buka | 54b4ae7 | 2018-11-26 23:05:48 +0000 | [diff] [blame] | 76 | MODULE_PASS("print-stack-safety", StackSafetyGlobalPrinterPass(dbgs())) |
Fedor Sergeev | f1b0fdf | 2017-12-15 09:32:11 +0000 | [diff] [blame] | 77 | MODULE_PASS("rewrite-statepoints-for-gc", RewriteStatepointsForGC()) |
Michael Kuperstein | b339184 | 2016-07-25 20:52:00 +0000 | [diff] [blame] | 78 | MODULE_PASS("rewrite-symbols", RewriteSymbolPass()) |
Sean Silva | cc691dd | 2016-06-12 07:48:51 +0000 | [diff] [blame] | 79 | MODULE_PASS("rpo-functionattrs", ReversePostOrderFunctionAttrsPass()) |
Xinliang David Li | bc6df7a | 2016-05-27 23:20:16 +0000 | [diff] [blame] | 80 | MODULE_PASS("sample-profile", SampleProfileLoaderPass()) |
Justin Bogner | e39e3a4 | 2015-10-30 23:28:12 +0000 | [diff] [blame] | 81 | MODULE_PASS("strip-dead-prototypes", StripDeadPrototypesPass()) |
Easwaran Raman | 283d978 | 2018-01-09 19:39:35 +0000 | [diff] [blame] | 82 | MODULE_PASS("synthetic-counts-propagation", SyntheticCountsPropagation()) |
Teresa Johnson | 2a478d4 | 2018-07-19 14:51:32 +0000 | [diff] [blame] | 83 | MODULE_PASS("wholeprogramdevirt", WholeProgramDevirtPass(nullptr, nullptr)) |
Chandler Carruth | 51fa09d | 2015-01-05 00:08:53 +0000 | [diff] [blame] | 84 | MODULE_PASS("verify", VerifierPass()) |
Chandler Carruth | a21cd04 | 2014-04-21 08:08:50 +0000 | [diff] [blame] | 85 | #undef MODULE_PASS |
| 86 | |
Chandler Carruth | 57418d8 | 2014-04-21 11:12:00 +0000 | [diff] [blame] | 87 | #ifndef CGSCC_ANALYSIS |
| 88 | #define CGSCC_ANALYSIS(NAME, CREATE_PASS) |
| 89 | #endif |
Chandler Carruth | 5b12a2f | 2015-01-06 02:50:06 +0000 | [diff] [blame] | 90 | CGSCC_ANALYSIS("no-op-cgscc", NoOpCGSCCAnalysis()) |
Chandler Carruth | 8bf2780 | 2016-12-10 06:34:44 +0000 | [diff] [blame] | 91 | CGSCC_ANALYSIS("fam-proxy", FunctionAnalysisManagerCGSCCProxy()) |
Fedor Sergeev | e6959a6 | 2018-09-20 17:08:45 +0000 | [diff] [blame] | 92 | CGSCC_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC)) |
Chandler Carruth | 57418d8 | 2014-04-21 11:12:00 +0000 | [diff] [blame] | 93 | #undef CGSCC_ANALYSIS |
| 94 | |
| 95 | #ifndef CGSCC_PASS |
| 96 | #define CGSCC_PASS(NAME, CREATE_PASS) |
| 97 | #endif |
Chandler Carruth | 1648cea | 2017-02-09 23:46:27 +0000 | [diff] [blame] | 98 | CGSCC_PASS("argpromotion", ArgumentPromotionPass()) |
Chandler Carruth | 0df8905 | 2015-01-06 09:06:35 +0000 | [diff] [blame] | 99 | CGSCC_PASS("invalidate<all>", InvalidateAllAnalysesPass()) |
Chandler Carruth | e9afeb0 | 2016-02-18 11:03:11 +0000 | [diff] [blame] | 100 | CGSCC_PASS("function-attrs", PostOrderFunctionAttrsPass()) |
Chandler Carruth | 54cffa1 | 2016-12-20 03:15:32 +0000 | [diff] [blame] | 101 | CGSCC_PASS("inline", InlinerPass()) |
Chandler Carruth | 2e306ca | 2015-01-06 02:37:55 +0000 | [diff] [blame] | 102 | CGSCC_PASS("no-op-cgscc", NoOpCGSCCPass()) |
Chandler Carruth | 57418d8 | 2014-04-21 11:12:00 +0000 | [diff] [blame] | 103 | #undef CGSCC_PASS |
| 104 | |
Chandler Carruth | 4d3682b | 2014-04-21 08:20:10 +0000 | [diff] [blame] | 105 | #ifndef FUNCTION_ANALYSIS |
| 106 | #define FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| 107 | #endif |
Chandler Carruth | 26bf6ea | 2016-02-13 23:32:00 +0000 | [diff] [blame] | 108 | FUNCTION_ANALYSIS("aa", AAManager()) |
Daniel Jasper | 8de3a54 | 2016-12-19 08:22:17 +0000 | [diff] [blame] | 109 | FUNCTION_ANALYSIS("assumptions", AssumptionAnalysis()) |
Xinliang David Li | da713ca | 2016-05-05 21:13:27 +0000 | [diff] [blame] | 110 | FUNCTION_ANALYSIS("block-freq", BlockFrequencyAnalysis()) |
Xinliang David Li | 454f7fa | 2016-05-05 02:59:57 +0000 | [diff] [blame] | 111 | FUNCTION_ANALYSIS("branch-prob", BranchProbabilityAnalysis()) |
Chandler Carruth | 8c3a02f | 2015-01-14 10:19:28 +0000 | [diff] [blame] | 112 | FUNCTION_ANALYSIS("domtree", DominatorTreeAnalysis()) |
Hongbin Zheng | 5d7472e | 2016-02-25 17:54:07 +0000 | [diff] [blame] | 113 | FUNCTION_ANALYSIS("postdomtree", PostDominatorTreeAnalysis()) |
Michael Kuperstein | 3445cc7 | 2016-04-18 23:55:01 +0000 | [diff] [blame] | 114 | FUNCTION_ANALYSIS("demanded-bits", DemandedBitsAnalysis()) |
Hongbin Zheng | 1596922 | 2016-02-25 17:54:15 +0000 | [diff] [blame] | 115 | FUNCTION_ANALYSIS("domfrontier", DominanceFrontierAnalysis()) |
Chandler Carruth | a375120 | 2015-01-20 10:58:50 +0000 | [diff] [blame] | 116 | FUNCTION_ANALYSIS("loops", LoopAnalysis()) |
Sean Silva | 9ce41c3 | 2016-06-13 22:01:25 +0000 | [diff] [blame] | 117 | FUNCTION_ANALYSIS("lazy-value-info", LazyValueAnalysis()) |
Chandler Carruth | b6b8f76 | 2016-05-12 22:19:39 +0000 | [diff] [blame] | 118 | FUNCTION_ANALYSIS("da", DependenceAnalysis()) |
Chandler Carruth | c5266b5 | 2016-03-10 00:55:30 +0000 | [diff] [blame] | 119 | FUNCTION_ANALYSIS("memdep", MemoryDependenceAnalysis()) |
Geoff Berry | 783607f | 2016-06-01 21:30:40 +0000 | [diff] [blame] | 120 | FUNCTION_ANALYSIS("memoryssa", MemorySSAAnalysis()) |
John Brawn | 106ffb9 | 2018-06-28 14:13:06 +0000 | [diff] [blame] | 121 | FUNCTION_ANALYSIS("phi-values", PhiValuesAnalysis()) |
Hongbin Zheng | edc89ca | 2016-02-25 17:54:25 +0000 | [diff] [blame] | 122 | FUNCTION_ANALYSIS("regions", RegionInfoAnalysis()) |
Chandler Carruth | 5b12a2f | 2015-01-06 02:50:06 +0000 | [diff] [blame] | 123 | FUNCTION_ANALYSIS("no-op-function", NoOpFunctionAnalysis()) |
Adam Nemet | c7b8b5e | 2016-07-18 16:29:21 +0000 | [diff] [blame] | 124 | FUNCTION_ANALYSIS("opt-remark-emit", OptimizationRemarkEmitterAnalysis()) |
Chandler Carruth | bfe1f1c | 2015-08-17 02:08:17 +0000 | [diff] [blame] | 125 | FUNCTION_ANALYSIS("scalar-evolution", ScalarEvolutionAnalysis()) |
Vitaly Buka | c29e36f | 2018-11-26 21:57:47 +0000 | [diff] [blame] | 126 | FUNCTION_ANALYSIS("stack-safety-local", StackSafetyAnalysis()) |
Chandler Carruth | 6f409cb | 2015-01-24 02:06:09 +0000 | [diff] [blame] | 127 | FUNCTION_ANALYSIS("targetlibinfo", TargetLibraryAnalysis()) |
Chandler Carruth | 7724e8e | 2015-02-01 10:11:22 +0000 | [diff] [blame] | 128 | FUNCTION_ANALYSIS("targetir", |
| 129 | TM ? TM->getTargetIRAnalysis() : TargetIRAnalysis()) |
Adrian Prantl | f68fb38 | 2016-05-09 19:57:29 +0000 | [diff] [blame] | 130 | FUNCTION_ANALYSIS("verify", VerifierAnalysis()) |
Fedor Sergeev | e6959a6 | 2018-09-20 17:08:45 +0000 | [diff] [blame] | 131 | FUNCTION_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC)) |
Chandler Carruth | 67a41f0 | 2016-02-18 09:45:17 +0000 | [diff] [blame] | 132 | |
| 133 | #ifndef FUNCTION_ALIAS_ANALYSIS |
| 134 | #define FUNCTION_ALIAS_ANALYSIS(NAME, CREATE_PASS) \ |
| 135 | FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| 136 | #endif |
| 137 | FUNCTION_ALIAS_ANALYSIS("basic-aa", BasicAA()) |
George Burgess IV | 3b5b98a | 2016-07-06 00:26:41 +0000 | [diff] [blame] | 138 | FUNCTION_ALIAS_ANALYSIS("cfl-anders-aa", CFLAndersAA()) |
| 139 | FUNCTION_ALIAS_ANALYSIS("cfl-steens-aa", CFLSteensAA()) |
Chandler Carruth | 10ab5d9 | 2016-02-20 04:01:45 +0000 | [diff] [blame] | 140 | FUNCTION_ALIAS_ANALYSIS("scev-aa", SCEVAA()) |
Chandler Carruth | 580e466 | 2016-02-20 04:03:06 +0000 | [diff] [blame] | 141 | FUNCTION_ALIAS_ANALYSIS("scoped-noalias-aa", ScopedNoAliasAA()) |
Chandler Carruth | 3b19409 | 2016-02-20 04:04:52 +0000 | [diff] [blame] | 142 | FUNCTION_ALIAS_ANALYSIS("type-based-aa", TypeBasedAA()) |
Chandler Carruth | 67a41f0 | 2016-02-18 09:45:17 +0000 | [diff] [blame] | 143 | #undef FUNCTION_ALIAS_ANALYSIS |
Chandler Carruth | 4d3682b | 2014-04-21 08:20:10 +0000 | [diff] [blame] | 144 | #undef FUNCTION_ANALYSIS |
| 145 | |
Chandler Carruth | a21cd04 | 2014-04-21 08:08:50 +0000 | [diff] [blame] | 146 | #ifndef FUNCTION_PASS |
| 147 | #define FUNCTION_PASS(NAME, CREATE_PASS) |
| 148 | #endif |
Chandler Carruth | 89a08aa | 2016-02-20 03:46:03 +0000 | [diff] [blame] | 149 | FUNCTION_PASS("aa-eval", AAEvaluator()) |
Justin Bogner | af01998 | 2015-10-30 23:13:18 +0000 | [diff] [blame] | 150 | FUNCTION_PASS("adce", ADCEPass()) |
Xinliang David Li | 438355c | 2016-06-15 21:51:30 +0000 | [diff] [blame] | 151 | FUNCTION_PASS("add-discriminators", AddDiscriminatorsPass()) |
Amjad Aboud | c6483fb | 2018-01-25 12:06:32 +0000 | [diff] [blame] | 152 | FUNCTION_PASS("aggressive-instcombine", AggressiveInstCombinePass()) |
Sean Silva | 570b29d | 2016-06-15 06:18:01 +0000 | [diff] [blame] | 153 | FUNCTION_PASS("alignment-from-assumptions", AlignmentFromAssumptionsPass()) |
Davide Italiano | abf016e | 2016-05-25 01:57:04 +0000 | [diff] [blame] | 154 | FUNCTION_PASS("bdce", BDCEPass()) |
Chandler Carruth | 8dd352a | 2017-11-14 01:30:04 +0000 | [diff] [blame] | 155 | FUNCTION_PASS("bounds-checking", BoundsCheckingPass()) |
Wei Mi | a6c7a03 | 2016-07-22 18:04:25 +0000 | [diff] [blame] | 156 | FUNCTION_PASS("break-crit-edges", BreakCriticalEdgesPass()) |
Jun Bum Lim | f4beb75 | 2017-11-03 20:41:16 +0000 | [diff] [blame] | 157 | FUNCTION_PASS("callsite-splitting", CallSiteSplittingPass()) |
Michael Kuperstein | 3fae04d | 2016-07-02 00:16:47 +0000 | [diff] [blame] | 158 | FUNCTION_PASS("consthoist", ConstantHoistingPass()) |
Hiroshi Yamauchi | c38c850 | 2018-09-04 17:19:13 +0000 | [diff] [blame] | 159 | FUNCTION_PASS("chr", ControlHeightReductionPass()) |
Sean Silva | 9afbd6f | 2016-07-06 23:26:29 +0000 | [diff] [blame] | 160 | FUNCTION_PASS("correlated-propagation", CorrelatedValuePropagationPass()) |
Justin Bogner | 04d2814 | 2016-04-22 19:40:41 +0000 | [diff] [blame] | 161 | FUNCTION_PASS("dce", DCEPass()) |
Sanjay Patel | 193e898 | 2017-09-09 13:38:18 +0000 | [diff] [blame] | 162 | FUNCTION_PASS("div-rem-pairs", DivRemPairsPass()) |
Justin Bogner | 9c81a3f | 2016-05-17 21:38:13 +0000 | [diff] [blame] | 163 | FUNCTION_PASS("dse", DSEPass()) |
Sean Fertile | 551913f | 2018-06-29 17:48:58 +0000 | [diff] [blame] | 164 | FUNCTION_PASS("dot-cfg", CFGPrinterPass()) |
| 165 | FUNCTION_PASS("dot-cfg-only", CFGOnlyPrinterPass()) |
Geoff Berry | aa61209 | 2016-08-31 19:24:10 +0000 | [diff] [blame] | 166 | FUNCTION_PASS("early-cse", EarlyCSEPass(/*UseMemorySSA=*/false)) |
| 167 | FUNCTION_PASS("early-cse-memssa", EarlyCSEPass(/*UseMemorySSA=*/true)) |
Hans Wennborg | 5765d84 | 2017-11-14 21:09:45 +0000 | [diff] [blame] | 168 | FUNCTION_PASS("ee-instrument", EntryExitInstrumenterPass(/*PostInlining=*/false)) |
Max Kazantsev | c05ba54 | 2018-12-07 14:39:46 +0000 | [diff] [blame] | 169 | FUNCTION_PASS("make-guards-explicit", MakeGuardsExplicitPass()) |
Hans Wennborg | 5765d84 | 2017-11-14 21:09:45 +0000 | [diff] [blame] | 170 | FUNCTION_PASS("post-inline-ee-instrument", EntryExitInstrumenterPass(/*PostInlining=*/true)) |
Sebastian Pop | 9c2e9dc | 2016-07-15 13:45:20 +0000 | [diff] [blame] | 171 | FUNCTION_PASS("gvn-hoist", GVNHoistPass()) |
Chandler Carruth | 7a98df7 | 2015-01-24 04:19:17 +0000 | [diff] [blame] | 172 | FUNCTION_PASS("instcombine", InstCombinePass()) |
Chandler Carruth | b2b950d | 2018-06-29 23:36:03 +0000 | [diff] [blame] | 173 | FUNCTION_PASS("instsimplify", InstSimplifyPass()) |
Chandler Carruth | 0df8905 | 2015-01-06 09:06:35 +0000 | [diff] [blame] | 174 | FUNCTION_PASS("invalidate<all>", InvalidateAllAnalysesPass()) |
Michael Kuperstein | 840a0dd | 2016-06-24 23:32:02 +0000 | [diff] [blame] | 175 | FUNCTION_PASS("float2int", Float2IntPass()) |
Chandler Carruth | 2e306ca | 2015-01-06 02:37:55 +0000 | [diff] [blame] | 176 | FUNCTION_PASS("no-op-function", NoOpFunctionPass()) |
Rong Xu | fe89a6b | 2016-10-18 21:36:27 +0000 | [diff] [blame] | 177 | FUNCTION_PASS("libcalls-shrinkwrap", LibCallsShrinkWrapPass()) |
Davide Italiano | 7430989 | 2016-05-13 22:52:35 +0000 | [diff] [blame] | 178 | FUNCTION_PASS("loweratomic", LowerAtomicPass()) |
Chandler Carruth | d4f6d11 | 2015-01-24 11:13:02 +0000 | [diff] [blame] | 179 | FUNCTION_PASS("lower-expect", LowerExpectIntrinsicPass()) |
Michael Kuperstein | 093715a | 2016-07-28 22:08:41 +0000 | [diff] [blame] | 180 | FUNCTION_PASS("lower-guard-intrinsic", LowerGuardIntrinsicPass()) |
Sanjoy Das | 0266d5e | 2016-05-18 22:55:34 +0000 | [diff] [blame] | 181 | FUNCTION_PASS("guard-widening", GuardWideningPass()) |
Chandler Carruth | dd15ed0 | 2016-03-11 08:50:55 +0000 | [diff] [blame] | 182 | FUNCTION_PASS("gvn", GVN()) |
Markus Lavin | b2bc0c5 | 2018-12-07 08:23:37 +0000 | [diff] [blame] | 183 | FUNCTION_PASS("load-store-vectorizer", LoadStoreVectorizerPass()) |
Davide Italiano | fff81b2 | 2016-07-09 03:03:01 +0000 | [diff] [blame] | 184 | FUNCTION_PASS("loop-simplify", LoopSimplifyPass()) |
Chandler Carruth | 017c62c | 2017-01-20 08:42:19 +0000 | [diff] [blame] | 185 | FUNCTION_PASS("loop-sink", LoopSinkPass()) |
Michael Kuperstein | 69f0407 | 2016-08-12 17:28:27 +0000 | [diff] [blame] | 186 | FUNCTION_PASS("lowerinvoke", LowerInvokePass()) |
Davide Italiano | 84645e0 | 2016-06-14 03:22:22 +0000 | [diff] [blame] | 187 | FUNCTION_PASS("mem2reg", PromotePass()) |
Sean Silva | cf989e5 | 2016-06-14 02:44:55 +0000 | [diff] [blame] | 188 | FUNCTION_PASS("memcpyopt", MemCpyOptPass()) |
Davide Italiano | e92bed3 | 2016-06-17 19:10:09 +0000 | [diff] [blame] | 189 | FUNCTION_PASS("mldst-motion", MergedLoadStoreMotionPass()) |
Wei Mi | 3a4fa31 | 2016-07-21 22:28:52 +0000 | [diff] [blame] | 190 | FUNCTION_PASS("nary-reassociate", NaryReassociatePass()) |
Davide Italiano | ee1439d | 2016-12-22 16:35:02 +0000 | [diff] [blame] | 191 | FUNCTION_PASS("newgvn", NewGVNPass()) |
Sean Silva | 9897e75 | 2016-06-14 00:51:09 +0000 | [diff] [blame] | 192 | FUNCTION_PASS("jump-threading", JumpThreadingPass()) |
Davide Italiano | 613d807 | 2016-05-25 23:38:53 +0000 | [diff] [blame] | 193 | FUNCTION_PASS("partially-inline-libcalls", PartiallyInlineLibCallsPass()) |
Easwaran Raman | 33933df | 2016-06-09 19:44:46 +0000 | [diff] [blame] | 194 | FUNCTION_PASS("lcssa", LCSSAPass()) |
Teresa Johnson | f970c6e | 2016-08-13 04:11:27 +0000 | [diff] [blame] | 195 | FUNCTION_PASS("loop-data-prefetch", LoopDataPrefetchPass()) |
Chandler Carruth | 90fe7e7 | 2017-01-27 01:32:26 +0000 | [diff] [blame] | 196 | FUNCTION_PASS("loop-load-elim", LoopLoadEliminationPass()) |
Adam Nemet | 9b7ecbe | 2016-07-18 16:29:27 +0000 | [diff] [blame] | 197 | FUNCTION_PASS("loop-distribute", LoopDistributePass()) |
Sean Silva | 89419a6 | 2016-07-09 22:56:50 +0000 | [diff] [blame] | 198 | FUNCTION_PASS("loop-vectorize", LoopVectorizePass()) |
Rong Xu | 9e52f8e | 2017-04-04 16:42:20 +0000 | [diff] [blame] | 199 | FUNCTION_PASS("pgo-memop-opt", PGOMemOPSizeOpt()) |
Chandler Carruth | a21cd04 | 2014-04-21 08:08:50 +0000 | [diff] [blame] | 200 | FUNCTION_PASS("print", PrintFunctionPass(dbgs())) |
Daniel Jasper | 8de3a54 | 2016-12-19 08:22:17 +0000 | [diff] [blame] | 201 | FUNCTION_PASS("print<assumptions>", AssumptionPrinterPass(dbgs())) |
Xinliang David Li | da713ca | 2016-05-05 21:13:27 +0000 | [diff] [blame] | 202 | FUNCTION_PASS("print<block-freq>", BlockFrequencyPrinterPass(dbgs())) |
Xinliang David Li | 454f7fa | 2016-05-05 02:59:57 +0000 | [diff] [blame] | 203 | FUNCTION_PASS("print<branch-prob>", BranchProbabilityPrinterPass(dbgs())) |
Philip Pfaffe | d7b7319 | 2019-01-08 14:06:58 +0000 | [diff] [blame] | 204 | FUNCTION_PASS("print<da>", DependenceAnalysisPrinterPass(dbgs())) |
Chandler Carruth | 8c3a02f | 2015-01-14 10:19:28 +0000 | [diff] [blame] | 205 | FUNCTION_PASS("print<domtree>", DominatorTreePrinterPass(dbgs())) |
Hongbin Zheng | 5d7472e | 2016-02-25 17:54:07 +0000 | [diff] [blame] | 206 | FUNCTION_PASS("print<postdomtree>", PostDominatorTreePrinterPass(dbgs())) |
Michael Kuperstein | 3445cc7 | 2016-04-18 23:55:01 +0000 | [diff] [blame] | 207 | FUNCTION_PASS("print<demanded-bits>", DemandedBitsPrinterPass(dbgs())) |
Hongbin Zheng | 1596922 | 2016-02-25 17:54:15 +0000 | [diff] [blame] | 208 | FUNCTION_PASS("print<domfrontier>", DominanceFrontierPrinterPass(dbgs())) |
Chandler Carruth | a375120 | 2015-01-20 10:58:50 +0000 | [diff] [blame] | 209 | FUNCTION_PASS("print<loops>", LoopPrinterPass(dbgs())) |
Geoff Berry | 783607f | 2016-06-01 21:30:40 +0000 | [diff] [blame] | 210 | FUNCTION_PASS("print<memoryssa>", MemorySSAPrinterPass(dbgs())) |
John Brawn | 106ffb9 | 2018-06-28 14:13:06 +0000 | [diff] [blame] | 211 | FUNCTION_PASS("print<phi-values>", PhiValuesPrinterPass(dbgs())) |
Hongbin Zheng | edc89ca | 2016-02-25 17:54:25 +0000 | [diff] [blame] | 212 | FUNCTION_PASS("print<regions>", RegionInfoPrinterPass(dbgs())) |
Chandler Carruth | bfe1f1c | 2015-08-17 02:08:17 +0000 | [diff] [blame] | 213 | FUNCTION_PASS("print<scalar-evolution>", ScalarEvolutionPrinterPass(dbgs())) |
Vitaly Buka | c29e36f | 2018-11-26 21:57:47 +0000 | [diff] [blame] | 214 | FUNCTION_PASS("print<stack-safety-local>", StackSafetyPrinterPass(dbgs())) |
Justin Bogner | c943cfa | 2016-04-26 23:39:29 +0000 | [diff] [blame] | 215 | FUNCTION_PASS("reassociate", ReassociatePass()) |
Mikael Holmen | cdf701a | 2018-11-21 14:00:17 +0000 | [diff] [blame] | 216 | FUNCTION_PASS("scalarizer", ScalarizerPass()) |
Davide Italiano | d77d4c0 | 2016-05-18 15:18:25 +0000 | [diff] [blame] | 217 | FUNCTION_PASS("sccp", SCCPPass()) |
Chandler Carruth | 9a941b2 | 2015-02-01 11:34:21 +0000 | [diff] [blame] | 218 | FUNCTION_PASS("simplify-cfg", SimplifyCFGPass()) |
Justin Bogner | 9d0b7e9 | 2016-04-22 19:54:10 +0000 | [diff] [blame] | 219 | FUNCTION_PASS("sink", SinkingPass()) |
Sean Silva | 8847c18 | 2016-06-15 08:43:40 +0000 | [diff] [blame] | 220 | FUNCTION_PASS("slp-vectorizer", SLPVectorizerPass()) |
Michael Kuperstein | 3a6d437 | 2016-08-01 21:48:33 +0000 | [diff] [blame] | 221 | FUNCTION_PASS("speculative-execution", SpeculativeExecutionPass()) |
Chandler Carruth | 6efdd0f | 2017-11-28 11:32:31 +0000 | [diff] [blame] | 222 | FUNCTION_PASS("spec-phis", SpeculateAroundPHIsPass()) |
Chandler Carruth | e73e5b4 | 2015-09-12 09:09:14 +0000 | [diff] [blame] | 223 | FUNCTION_PASS("sroa", SROA()) |
Sean Silva | f79d978 | 2016-07-06 23:48:41 +0000 | [diff] [blame] | 224 | FUNCTION_PASS("tailcallelim", TailCallElimPass()) |
Wei Mi | 302c35d | 2016-07-08 03:32:49 +0000 | [diff] [blame] | 225 | FUNCTION_PASS("unreachableblockelim", UnreachableBlockElimPass()) |
Chandler Carruth | 51fa09d | 2015-01-05 00:08:53 +0000 | [diff] [blame] | 226 | FUNCTION_PASS("verify", VerifierPass()) |
Chandler Carruth | 8c3a02f | 2015-01-14 10:19:28 +0000 | [diff] [blame] | 227 | FUNCTION_PASS("verify<domtree>", DominatorTreeVerifierPass()) |
Sean Silva | d8c90ea | 2016-07-19 23:54:23 +0000 | [diff] [blame] | 228 | FUNCTION_PASS("verify<loops>", LoopVerifierPass()) |
Geoff Berry | 783607f | 2016-06-01 21:30:40 +0000 | [diff] [blame] | 229 | FUNCTION_PASS("verify<memoryssa>", MemorySSAVerifierPass()) |
Hongbin Zheng | edc89ca | 2016-02-25 17:54:25 +0000 | [diff] [blame] | 230 | FUNCTION_PASS("verify<regions>", RegionInfoVerifierPass()) |
Sean Fertile | 551913f | 2018-06-29 17:48:58 +0000 | [diff] [blame] | 231 | FUNCTION_PASS("view-cfg", CFGViewerPass()) |
| 232 | FUNCTION_PASS("view-cfg-only", CFGOnlyViewerPass()) |
Michael Kruse | 9a395de | 2018-12-12 17:32:52 +0000 | [diff] [blame] | 233 | FUNCTION_PASS("transform-warning", WarnMissedTransformationsPass()) |
Philip Pfaffe | 4956e30 | 2019-01-03 13:42:44 +0000 | [diff] [blame] | 234 | FUNCTION_PASS("msan", MemorySanitizerPass()) |
Philip Pfaffe | 6dbe225 | 2019-01-16 09:28:01 +0000 | [diff] [blame] | 235 | FUNCTION_PASS("tsan", ThreadSanitizerPass()) |
Chandler Carruth | a21cd04 | 2014-04-21 08:08:50 +0000 | [diff] [blame] | 236 | #undef FUNCTION_PASS |
Justin Bogner | da5e924 | 2016-02-25 07:23:08 +0000 | [diff] [blame] | 237 | |
Fedor Sergeev | 4f41c19 | 2019-01-10 10:01:53 +0000 | [diff] [blame] | 238 | #ifndef FUNCTION_PASS_WITH_PARAMS |
| 239 | #define FUNCTION_PASS_WITH_PARAMS(NAME, CREATE_PASS, PARSER) |
| 240 | #endif |
| 241 | FUNCTION_PASS_WITH_PARAMS("unroll", |
| 242 | [](LoopUnrollOptions Opts) { return LoopUnrollPass(Opts); }, |
| 243 | parseLoopUnrollOptions) |
| 244 | #undef FUNCTION_PASS_WITH_PARAMS |
| 245 | |
Justin Bogner | da5e924 | 2016-02-25 07:23:08 +0000 | [diff] [blame] | 246 | #ifndef LOOP_ANALYSIS |
| 247 | #define LOOP_ANALYSIS(NAME, CREATE_PASS) |
| 248 | #endif |
| 249 | LOOP_ANALYSIS("no-op-loop", NoOpLoopAnalysis()) |
Xinliang David Li | fd5a3b4 | 2016-07-08 21:21:44 +0000 | [diff] [blame] | 250 | LOOP_ANALYSIS("access-info", LoopAccessAnalysis()) |
Dehao Chen | 78ee4b6 | 2016-07-16 22:51:33 +0000 | [diff] [blame] | 251 | LOOP_ANALYSIS("ivusers", IVUsersAnalysis()) |
Fedor Sergeev | e6959a6 | 2018-09-20 17:08:45 +0000 | [diff] [blame] | 252 | LOOP_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC)) |
Justin Bogner | da5e924 | 2016-02-25 07:23:08 +0000 | [diff] [blame] | 253 | #undef LOOP_ANALYSIS |
| 254 | |
| 255 | #ifndef LOOP_PASS |
| 256 | #define LOOP_PASS(NAME, CREATE_PASS) |
| 257 | #endif |
| 258 | LOOP_PASS("invalidate<all>", InvalidateAllAnalysesPass()) |
Dehao Chen | e06fe02 | 2016-07-12 22:42:24 +0000 | [diff] [blame] | 259 | LOOP_PASS("licm", LICMPass()) |
Dehao Chen | 2ba4d7a | 2016-07-12 18:45:51 +0000 | [diff] [blame] | 260 | LOOP_PASS("loop-idiom", LoopIdiomRecognizePass()) |
Chandler Carruth | 7781850 | 2018-05-25 01:32:36 +0000 | [diff] [blame] | 261 | LOOP_PASS("loop-instsimplify", LoopInstSimplifyPass()) |
Justin Bogner | 0b059c1 | 2016-05-03 22:02:31 +0000 | [diff] [blame] | 262 | LOOP_PASS("rotate", LoopRotatePass()) |
Justin Bogner | da5e924 | 2016-02-25 07:23:08 +0000 | [diff] [blame] | 263 | LOOP_PASS("no-op-loop", NoOpLoopPass()) |
| 264 | LOOP_PASS("print", PrintLoopPass(dbgs())) |
Jun Bum Lim | fa907d3 | 2016-07-14 18:28:29 +0000 | [diff] [blame] | 265 | LOOP_PASS("loop-deletion", LoopDeletionPass()) |
Justin Bogner | cc5bcb5 | 2016-05-03 21:47:32 +0000 | [diff] [blame] | 266 | LOOP_PASS("simplify-cfg", LoopSimplifyCFGPass()) |
Dehao Chen | e7eb2d5 | 2016-07-18 21:41:50 +0000 | [diff] [blame] | 267 | LOOP_PASS("strength-reduce", LoopStrengthReducePass()) |
Sanjoy Das | a55495a | 2016-06-05 18:01:19 +0000 | [diff] [blame] | 268 | LOOP_PASS("indvars", IndVarSimplifyPass()) |
Fedor Sergeev | 116f1ad | 2018-03-15 11:01:19 +0000 | [diff] [blame] | 269 | LOOP_PASS("irce", IRCEPass()) |
David Green | e101271 | 2018-07-01 12:47:30 +0000 | [diff] [blame] | 270 | LOOP_PASS("unroll-and-jam", LoopUnrollAndJamPass()) |
Teresa Johnson | 99dd11f | 2017-08-02 20:35:29 +0000 | [diff] [blame] | 271 | LOOP_PASS("unroll-full", LoopFullUnrollPass()) |
Chandler Carruth | 1d4cf6e | 2017-04-27 18:45:20 +0000 | [diff] [blame] | 272 | LOOP_PASS("unswitch", SimpleLoopUnswitchPass()) |
Xinliang David Li | 10b22c8 | 2016-07-02 21:18:40 +0000 | [diff] [blame] | 273 | LOOP_PASS("print-access-info", LoopAccessInfoPrinterPass(dbgs())) |
Dehao Chen | 78ee4b6 | 2016-07-16 22:51:33 +0000 | [diff] [blame] | 274 | LOOP_PASS("print<ivusers>", IVUsersPrinterPass(dbgs())) |
Artur Pilipenko | 1dd101b | 2017-01-25 16:00:44 +0000 | [diff] [blame] | 275 | LOOP_PASS("loop-predication", LoopPredicationPass()) |
Justin Bogner | da5e924 | 2016-02-25 07:23:08 +0000 | [diff] [blame] | 276 | #undef LOOP_PASS |