Chandler Carruth | 5894418 | 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 | 4317342 | 2014-04-21 08:20:10 +0000 | [diff] [blame] | 19 | #ifndef MODULE_ANALYSIS |
| 20 | #define MODULE_ANALYSIS(NAME, CREATE_PASS) |
| 21 | #endif |
Chandler Carruth | 4c660f7 | 2016-03-10 11:24:11 +0000 | [diff] [blame] | 22 | MODULE_ANALYSIS("callgraph", CallGraphAnalysis()) |
Chandler Carruth | 4317342 | 2014-04-21 08:20:10 +0000 | [diff] [blame] | 23 | MODULE_ANALYSIS("lcg", LazyCallGraphAnalysis()) |
Teresa Johnson | f93b246 | 2016-08-12 13:53:02 +0000 | [diff] [blame] | 24 | MODULE_ANALYSIS("module-summary", ModuleSummaryIndexAnalysis()) |
Chandler Carruth | 0b576b3 | 2015-01-06 02:50:06 +0000 | [diff] [blame] | 25 | MODULE_ANALYSIS("no-op-module", NoOpModuleAnalysis()) |
Easwaran Raman | 019e0bf | 2016-06-03 22:54:26 +0000 | [diff] [blame] | 26 | MODULE_ANALYSIS("profile-summary", ProfileSummaryAnalysis()) |
Vitaly Buka | b8e6fa6 | 2018-11-26 23:05:48 +0000 | [diff] [blame] | 27 | MODULE_ANALYSIS("stack-safety", StackSafetyGlobalAnalysis()) |
Chandler Carruth | 8ca4322 | 2015-01-15 11:39:46 +0000 | [diff] [blame] | 28 | MODULE_ANALYSIS("targetlibinfo", TargetLibraryAnalysis()) |
Adrian Prantl | e365618 | 2016-05-09 19:57:29 +0000 | [diff] [blame] | 29 | MODULE_ANALYSIS("verify", VerifierAnalysis()) |
Fedor Sergeev | ee8d31c | 2018-09-20 17:08:45 +0000 | [diff] [blame] | 30 | MODULE_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC)) |
Chandler Carruth | 45a9c20 | 2016-03-11 09:15:11 +0000 | [diff] [blame] | 31 | |
| 32 | #ifndef MODULE_ALIAS_ANALYSIS |
George Burgess IV | bfa401e | 2016-07-06 00:26:41 +0000 | [diff] [blame] | 33 | #define MODULE_ALIAS_ANALYSIS(NAME, CREATE_PASS) \ |
Chandler Carruth | 45a9c20 | 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 | 4317342 | 2014-04-21 08:20:10 +0000 | [diff] [blame] | 38 | #undef MODULE_ANALYSIS |
| 39 | |
Chandler Carruth | 5894418 | 2014-04-21 08:08:50 +0000 | [diff] [blame] | 40 | #ifndef MODULE_PASS |
| 41 | #define MODULE_PASS(NAME, CREATE_PASS) |
| 42 | #endif |
Chandler Carruth | 67fc52f | 2016-08-17 02:56:20 +0000 | [diff] [blame] | 43 | MODULE_PASS("always-inline", AlwaysInlinerPass()) |
Matthew Simpson | cb58558 | 2017-10-25 13:40:08 +0000 | [diff] [blame] | 44 | MODULE_PASS("called-value-propagation", CalledValuePropagationPass()) |
Teresa Johnson | 853b962 | 2019-01-04 19:04:54 +0000 | [diff] [blame] | 45 | MODULE_PASS("canonicalize-aliases", CanonicalizeAliasesPass()) |
Michael J. Spencer | 7bb2767 | 2018-07-16 00:28:24 +0000 | [diff] [blame] | 46 | MODULE_PASS("cg-profile", CGProfilePass()) |
Davide Italiano | 164b9bc | 2016-05-05 00:51:09 +0000 | [diff] [blame] | 47 | MODULE_PASS("constmerge", ConstantMergePass()) |
Davide Italiano | 92b933a | 2016-07-09 03:25:35 +0000 | [diff] [blame] | 48 | MODULE_PASS("cross-dso-cfi", CrossDSOCFIPass()) |
Sean Silva | e3bb457 | 2016-06-12 09:16:39 +0000 | [diff] [blame] | 49 | MODULE_PASS("deadargelim", DeadArgumentEliminationPass()) |
Davide Italiano | 344e838 | 2016-05-05 02:37:32 +0000 | [diff] [blame] | 50 | MODULE_PASS("elim-avail-extern", EliminateAvailableExternallyPass()) |
Chandler Carruth | f49f1a87 | 2015-12-27 08:13:45 +0000 | [diff] [blame] | 51 | MODULE_PASS("forceattrs", ForceFunctionAttrsPass()) |
Teresa Johnson | 2124157 | 2016-07-18 21:22:24 +0000 | [diff] [blame] | 52 | MODULE_PASS("function-import", FunctionImportPass()) |
Davide Italiano | 66228c4 | 2016-05-03 19:39:15 +0000 | [diff] [blame] | 53 | MODULE_PASS("globaldce", GlobalDCEPass()) |
Justin Bogner | 1a07501 | 2016-04-26 00:28:01 +0000 | [diff] [blame] | 54 | MODULE_PASS("globalopt", GlobalOptPass()) |
Davide Italiano | 2ae76dd | 2016-11-21 00:28:23 +0000 | [diff] [blame] | 55 | MODULE_PASS("globalsplit", GlobalSplitPass()) |
Aditya Kumar | 9e20ade | 2018-10-03 05:55:20 +0000 | [diff] [blame] | 56 | MODULE_PASS("hotcoldsplit", HotColdSplittingPass()) |
Chandler Carruth | 3a040e6 | 2015-12-27 08:41:34 +0000 | [diff] [blame] | 57 | MODULE_PASS("inferattrs", InferFunctionAttrsPass()) |
Xinliang David Li | 64dbb29 | 2016-06-05 05:12:23 +0000 | [diff] [blame] | 58 | MODULE_PASS("insert-gcov-profiling", GCOVProfilerPass()) |
Xinliang David Li | e6b8929 | 2016-04-18 17:47:38 +0000 | [diff] [blame] | 59 | MODULE_PASS("instrprof", InstrProfiling()) |
Xinliang David Li | e537cbf | 2016-06-05 05:15:45 +0000 | [diff] [blame] | 60 | MODULE_PASS("internalize", InternalizePass()) |
Chandler Carruth | 4e107caf | 2015-01-06 09:06:35 +0000 | [diff] [blame] | 61 | MODULE_PASS("invalidate<all>", InvalidateAllAnalysesPass()) |
Davide Italiano | f54f2f0 | 2016-05-05 21:05:36 +0000 | [diff] [blame] | 62 | MODULE_PASS("ipsccp", IPSCCPPass()) |
Teresa Johnson | 28023db | 2018-07-19 14:51:32 +0000 | [diff] [blame] | 63 | MODULE_PASS("lowertypetests", LowerTypeTestsPass(nullptr, nullptr)) |
Mehdi Amini | 55b0653 | 2016-09-16 17:18:16 +0000 | [diff] [blame] | 64 | MODULE_PASS("name-anon-globals", NameAnonGlobalPass()) |
Chandler Carruth | a872f3f | 2015-01-06 02:37:55 +0000 | [diff] [blame] | 65 | MODULE_PASS("no-op-module", NoOpModulePass()) |
Easwaran Raman | 1832bf6 | 2016-06-27 16:50:18 +0000 | [diff] [blame] | 66 | MODULE_PASS("partial-inliner", PartialInlinerPass()) |
Xinliang David Li | f3c7a35 | 2016-05-16 16:31:07 +0000 | [diff] [blame] | 67 | MODULE_PASS("pgo-icall-prom", PGOIndirectCallPromotion()) |
Xinliang David Li | 8aebf44 | 2016-05-06 05:49:19 +0000 | [diff] [blame] | 68 | MODULE_PASS("pgo-instr-gen", PGOInstrumentationGen()) |
Xinliang David Li | da19558 | 2016-05-10 21:59:52 +0000 | [diff] [blame] | 69 | MODULE_PASS("pgo-instr-use", PGOInstrumentationUse()) |
Michael Kuperstein | 82d5da5 | 2016-06-24 20:13:42 +0000 | [diff] [blame] | 70 | MODULE_PASS("pre-isel-intrinsic-lowering", PreISelIntrinsicLoweringPass()) |
Easwaran Raman | 019e0bf | 2016-06-03 22:54:26 +0000 | [diff] [blame] | 71 | MODULE_PASS("print-profile-summary", ProfileSummaryPrinterPass(dbgs())) |
Easwaran Raman | 94edaaa | 2016-06-03 21:14:26 +0000 | [diff] [blame] | 72 | MODULE_PASS("print-callgraph", CallGraphPrinterPass(dbgs())) |
Easwaran Raman | 019e0bf | 2016-06-03 22:54:26 +0000 | [diff] [blame] | 73 | MODULE_PASS("print", PrintModulePass(dbgs())) |
Chandler Carruth | b95def7 | 2016-03-10 11:24:06 +0000 | [diff] [blame] | 74 | MODULE_PASS("print-lcg", LazyCallGraphPrinterPass(dbgs())) |
Sean Silva | 7cb3066 | 2016-06-18 09:17:32 +0000 | [diff] [blame] | 75 | MODULE_PASS("print-lcg-dot", LazyCallGraphDOTPrinterPass(dbgs())) |
Vitaly Buka | b8e6fa6 | 2018-11-26 23:05:48 +0000 | [diff] [blame] | 76 | MODULE_PASS("print-stack-safety", StackSafetyGlobalPrinterPass(dbgs())) |
Fedor Sergeev | 4b86d79 | 2017-12-15 09:32:11 +0000 | [diff] [blame] | 77 | MODULE_PASS("rewrite-statepoints-for-gc", RewriteStatepointsForGC()) |
Michael Kuperstein | 39feb62 | 2016-07-25 20:52:00 +0000 | [diff] [blame] | 78 | MODULE_PASS("rewrite-symbols", RewriteSymbolPass()) |
Sean Silva | f508019 | 2016-06-12 07:48:51 +0000 | [diff] [blame] | 79 | MODULE_PASS("rpo-functionattrs", ReversePostOrderFunctionAttrsPass()) |
Xinliang David Li | d38392e | 2016-05-27 23:20:16 +0000 | [diff] [blame] | 80 | MODULE_PASS("sample-profile", SampleProfileLoaderPass()) |
Justin Bogner | 21e1537 | 2015-10-30 23:28:12 +0000 | [diff] [blame] | 81 | MODULE_PASS("strip-dead-prototypes", StripDeadPrototypesPass()) |
Easwaran Raman | bdf2026 | 2018-01-09 19:39:35 +0000 | [diff] [blame] | 82 | MODULE_PASS("synthetic-counts-propagation", SyntheticCountsPropagation()) |
Teresa Johnson | 28023db | 2018-07-19 14:51:32 +0000 | [diff] [blame] | 83 | MODULE_PASS("wholeprogramdevirt", WholeProgramDevirtPass(nullptr, nullptr)) |
Chandler Carruth | 9c31db4 | 2015-01-05 00:08:53 +0000 | [diff] [blame] | 84 | MODULE_PASS("verify", VerifierPass()) |
Chandler Carruth | 5894418 | 2014-04-21 08:08:50 +0000 | [diff] [blame] | 85 | #undef MODULE_PASS |
| 86 | |
Chandler Carruth | 572e340 | 2014-04-21 11:12:00 +0000 | [diff] [blame] | 87 | #ifndef CGSCC_ANALYSIS |
| 88 | #define CGSCC_ANALYSIS(NAME, CREATE_PASS) |
| 89 | #endif |
Chandler Carruth | 0b576b3 | 2015-01-06 02:50:06 +0000 | [diff] [blame] | 90 | CGSCC_ANALYSIS("no-op-cgscc", NoOpCGSCCAnalysis()) |
Chandler Carruth | 6b98164 | 2016-12-10 06:34:44 +0000 | [diff] [blame] | 91 | CGSCC_ANALYSIS("fam-proxy", FunctionAnalysisManagerCGSCCProxy()) |
Fedor Sergeev | ee8d31c | 2018-09-20 17:08:45 +0000 | [diff] [blame] | 92 | CGSCC_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC)) |
Chandler Carruth | 572e340 | 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 | addcda4 | 2017-02-09 23:46:27 +0000 | [diff] [blame] | 98 | CGSCC_PASS("argpromotion", ArgumentPromotionPass()) |
Chandler Carruth | 4e107caf | 2015-01-06 09:06:35 +0000 | [diff] [blame] | 99 | CGSCC_PASS("invalidate<all>", InvalidateAllAnalysesPass()) |
Chandler Carruth | 9c4ed17 | 2016-02-18 11:03:11 +0000 | [diff] [blame] | 100 | CGSCC_PASS("function-attrs", PostOrderFunctionAttrsPass()) |
Chandler Carruth | 1d96311 | 2016-12-20 03:15:32 +0000 | [diff] [blame] | 101 | CGSCC_PASS("inline", InlinerPass()) |
Chandler Carruth | a872f3f | 2015-01-06 02:37:55 +0000 | [diff] [blame] | 102 | CGSCC_PASS("no-op-cgscc", NoOpCGSCCPass()) |
Chandler Carruth | 572e340 | 2014-04-21 11:12:00 +0000 | [diff] [blame] | 103 | #undef CGSCC_PASS |
| 104 | |
Chandler Carruth | 4317342 | 2014-04-21 08:20:10 +0000 | [diff] [blame] | 105 | #ifndef FUNCTION_ANALYSIS |
| 106 | #define FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| 107 | #endif |
Chandler Carruth | 6f5770b10 | 2016-02-13 23:32:00 +0000 | [diff] [blame] | 108 | FUNCTION_ANALYSIS("aa", AAManager()) |
Daniel Jasper | aec2fa3 | 2016-12-19 08:22:17 +0000 | [diff] [blame] | 109 | FUNCTION_ANALYSIS("assumptions", AssumptionAnalysis()) |
Xinliang David Li | 28a9327 | 2016-05-05 21:13:27 +0000 | [diff] [blame] | 110 | FUNCTION_ANALYSIS("block-freq", BlockFrequencyAnalysis()) |
Xinliang David Li | 6e5dd41 | 2016-05-05 02:59:57 +0000 | [diff] [blame] | 111 | FUNCTION_ANALYSIS("branch-prob", BranchProbabilityAnalysis()) |
Chandler Carruth | 64764b4 | 2015-01-14 10:19:28 +0000 | [diff] [blame] | 112 | FUNCTION_ANALYSIS("domtree", DominatorTreeAnalysis()) |
Hongbin Zheng | 3f97840 | 2016-02-25 17:54:07 +0000 | [diff] [blame] | 113 | FUNCTION_ANALYSIS("postdomtree", PostDominatorTreeAnalysis()) |
Michael Kuperstein | de16b44 | 2016-04-18 23:55:01 +0000 | [diff] [blame] | 114 | FUNCTION_ANALYSIS("demanded-bits", DemandedBitsAnalysis()) |
Hongbin Zheng | 751337f | 2016-02-25 17:54:15 +0000 | [diff] [blame] | 115 | FUNCTION_ANALYSIS("domfrontier", DominanceFrontierAnalysis()) |
Chandler Carruth | aaf0b4c | 2015-01-20 10:58:50 +0000 | [diff] [blame] | 116 | FUNCTION_ANALYSIS("loops", LoopAnalysis()) |
Sean Silva | 687019f | 2016-06-13 22:01:25 +0000 | [diff] [blame] | 117 | FUNCTION_ANALYSIS("lazy-value-info", LazyValueAnalysis()) |
Chandler Carruth | 49c2219 | 2016-05-12 22:19:39 +0000 | [diff] [blame] | 118 | FUNCTION_ANALYSIS("da", DependenceAnalysis()) |
Chandler Carruth | 61440d2 | 2016-03-10 00:55:30 +0000 | [diff] [blame] | 119 | FUNCTION_ANALYSIS("memdep", MemoryDependenceAnalysis()) |
Geoff Berry | b96d3b2 | 2016-06-01 21:30:40 +0000 | [diff] [blame] | 120 | FUNCTION_ANALYSIS("memoryssa", MemorySSAAnalysis()) |
John Brawn | bdbbd83 | 2018-06-28 14:13:06 +0000 | [diff] [blame] | 121 | FUNCTION_ANALYSIS("phi-values", PhiValuesAnalysis()) |
Hongbin Zheng | bc53977 | 2016-02-25 17:54:25 +0000 | [diff] [blame] | 122 | FUNCTION_ANALYSIS("regions", RegionInfoAnalysis()) |
Chandler Carruth | 0b576b3 | 2015-01-06 02:50:06 +0000 | [diff] [blame] | 123 | FUNCTION_ANALYSIS("no-op-function", NoOpFunctionAnalysis()) |
Adam Nemet | 79ac42a | 2016-07-18 16:29:21 +0000 | [diff] [blame] | 124 | FUNCTION_ANALYSIS("opt-remark-emit", OptimizationRemarkEmitterAnalysis()) |
Chandler Carruth | 2f1fd16 | 2015-08-17 02:08:17 +0000 | [diff] [blame] | 125 | FUNCTION_ANALYSIS("scalar-evolution", ScalarEvolutionAnalysis()) |
Vitaly Buka | 4493fe1 | 2018-11-26 21:57:47 +0000 | [diff] [blame] | 126 | FUNCTION_ANALYSIS("stack-safety-local", StackSafetyAnalysis()) |
Chandler Carruth | c029186 | 2015-01-24 02:06:09 +0000 | [diff] [blame] | 127 | FUNCTION_ANALYSIS("targetlibinfo", TargetLibraryAnalysis()) |
Chandler Carruth | e038552 | 2015-02-01 10:11:22 +0000 | [diff] [blame] | 128 | FUNCTION_ANALYSIS("targetir", |
| 129 | TM ? TM->getTargetIRAnalysis() : TargetIRAnalysis()) |
Adrian Prantl | e365618 | 2016-05-09 19:57:29 +0000 | [diff] [blame] | 130 | FUNCTION_ANALYSIS("verify", VerifierAnalysis()) |
Fedor Sergeev | ee8d31c | 2018-09-20 17:08:45 +0000 | [diff] [blame] | 131 | FUNCTION_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC)) |
Chandler Carruth | edf5996 | 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 | bfa401e | 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 | 2b3d044 | 2016-02-20 04:01:45 +0000 | [diff] [blame] | 140 | FUNCTION_ALIAS_ANALYSIS("scev-aa", SCEVAA()) |
Chandler Carruth | d6091a0 | 2016-02-20 04:03:06 +0000 | [diff] [blame] | 141 | FUNCTION_ALIAS_ANALYSIS("scoped-noalias-aa", ScopedNoAliasAA()) |
Chandler Carruth | c1dc384 | 2016-02-20 04:04:52 +0000 | [diff] [blame] | 142 | FUNCTION_ALIAS_ANALYSIS("type-based-aa", TypeBasedAA()) |
Chandler Carruth | edf5996 | 2016-02-18 09:45:17 +0000 | [diff] [blame] | 143 | #undef FUNCTION_ALIAS_ANALYSIS |
Chandler Carruth | 4317342 | 2014-04-21 08:20:10 +0000 | [diff] [blame] | 144 | #undef FUNCTION_ANALYSIS |
| 145 | |
Chandler Carruth | 5894418 | 2014-04-21 08:08:50 +0000 | [diff] [blame] | 146 | #ifndef FUNCTION_PASS |
| 147 | #define FUNCTION_PASS(NAME, CREATE_PASS) |
| 148 | #endif |
Chandler Carruth | 4f846a5 | 2016-02-20 03:46:03 +0000 | [diff] [blame] | 149 | FUNCTION_PASS("aa-eval", AAEvaluator()) |
Justin Bogner | 19b6799 | 2015-10-30 23:13:18 +0000 | [diff] [blame] | 150 | FUNCTION_PASS("adce", ADCEPass()) |
Xinliang David Li | 1eaecef | 2016-06-15 21:51:30 +0000 | [diff] [blame] | 151 | FUNCTION_PASS("add-discriminators", AddDiscriminatorsPass()) |
Amjad Aboud | f1f57a3 | 2018-01-25 12:06:32 +0000 | [diff] [blame] | 152 | FUNCTION_PASS("aggressive-instcombine", AggressiveInstCombinePass()) |
Sean Silva | a4c2d15 | 2016-06-15 06:18:01 +0000 | [diff] [blame] | 153 | FUNCTION_PASS("alignment-from-assumptions", AlignmentFromAssumptionsPass()) |
Davide Italiano | 655a145 | 2016-05-25 01:57:04 +0000 | [diff] [blame] | 154 | FUNCTION_PASS("bdce", BDCEPass()) |
Chandler Carruth | 00a301d | 2017-11-14 01:30:04 +0000 | [diff] [blame] | 155 | FUNCTION_PASS("bounds-checking", BoundsCheckingPass()) |
Wei Mi | e04d0ef | 2016-07-22 18:04:25 +0000 | [diff] [blame] | 156 | FUNCTION_PASS("break-crit-edges", BreakCriticalEdgesPass()) |
Jun Bum Lim | 0c99007 | 2017-11-03 20:41:16 +0000 | [diff] [blame] | 157 | FUNCTION_PASS("callsite-splitting", CallSiteSplittingPass()) |
Michael Kuperstein | 071d830 | 2016-07-02 00:16:47 +0000 | [diff] [blame] | 158 | FUNCTION_PASS("consthoist", ConstantHoistingPass()) |
Hiroshi Yamauchi | 9775a62 | 2018-09-04 17:19:13 +0000 | [diff] [blame] | 159 | FUNCTION_PASS("chr", ControlHeightReductionPass()) |
Sean Silva | b025d37 | 2016-07-06 23:26:29 +0000 | [diff] [blame] | 160 | FUNCTION_PASS("correlated-propagation", CorrelatedValuePropagationPass()) |
Justin Bogner | 395c212 | 2016-04-22 19:40:41 +0000 | [diff] [blame] | 161 | FUNCTION_PASS("dce", DCEPass()) |
Sanjay Patel | 6fd4391 | 2017-09-09 13:38:18 +0000 | [diff] [blame] | 162 | FUNCTION_PASS("div-rem-pairs", DivRemPairsPass()) |
Justin Bogner | 594e07b | 2016-05-17 21:38:13 +0000 | [diff] [blame] | 163 | FUNCTION_PASS("dse", DSEPass()) |
Sean Fertile | cd0d763 | 2018-06-29 17:48:58 +0000 | [diff] [blame] | 164 | FUNCTION_PASS("dot-cfg", CFGPrinterPass()) |
| 165 | FUNCTION_PASS("dot-cfg-only", CFGOnlyPrinterPass()) |
Geoff Berry | 8d84605 | 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 | e1ecd61 | 2017-11-14 21:09:45 +0000 | [diff] [blame] | 168 | FUNCTION_PASS("ee-instrument", EntryExitInstrumenterPass(/*PostInlining=*/false)) |
Max Kazantsev | b9e65cb | 2018-12-07 14:39:46 +0000 | [diff] [blame] | 169 | FUNCTION_PASS("make-guards-explicit", MakeGuardsExplicitPass()) |
Hans Wennborg | e1ecd61 | 2017-11-14 21:09:45 +0000 | [diff] [blame] | 170 | FUNCTION_PASS("post-inline-ee-instrument", EntryExitInstrumenterPass(/*PostInlining=*/true)) |
Sebastian Pop | 4177480 | 2016-07-15 13:45:20 +0000 | [diff] [blame] | 171 | FUNCTION_PASS("gvn-hoist", GVNHoistPass()) |
Chandler Carruth | 83ba269 | 2015-01-24 04:19:17 +0000 | [diff] [blame] | 172 | FUNCTION_PASS("instcombine", InstCombinePass()) |
Chandler Carruth | 7c557f8 | 2018-06-29 23:36:03 +0000 | [diff] [blame] | 173 | FUNCTION_PASS("instsimplify", InstSimplifyPass()) |
Chandler Carruth | 4e107caf | 2015-01-06 09:06:35 +0000 | [diff] [blame] | 174 | FUNCTION_PASS("invalidate<all>", InvalidateAllAnalysesPass()) |
Michael Kuperstein | 83b753d | 2016-06-24 23:32:02 +0000 | [diff] [blame] | 175 | FUNCTION_PASS("float2int", Float2IntPass()) |
Chandler Carruth | a872f3f | 2015-01-06 02:37:55 +0000 | [diff] [blame] | 176 | FUNCTION_PASS("no-op-function", NoOpFunctionPass()) |
Rong Xu | 1c0e9b9 | 2016-10-18 21:36:27 +0000 | [diff] [blame] | 177 | FUNCTION_PASS("libcalls-shrinkwrap", LibCallsShrinkWrapPass()) |
Davide Italiano | 9922344 | 2016-05-13 22:52:35 +0000 | [diff] [blame] | 178 | FUNCTION_PASS("loweratomic", LowerAtomicPass()) |
Chandler Carruth | 43e590e | 2015-01-24 11:13:02 +0000 | [diff] [blame] | 179 | FUNCTION_PASS("lower-expect", LowerExpectIntrinsicPass()) |
Michael Kuperstein | e45d4d9 | 2016-07-28 22:08:41 +0000 | [diff] [blame] | 180 | FUNCTION_PASS("lower-guard-intrinsic", LowerGuardIntrinsicPass()) |
Sanjoy Das | 083f389 | 2016-05-18 22:55:34 +0000 | [diff] [blame] | 181 | FUNCTION_PASS("guard-widening", GuardWideningPass()) |
Chandler Carruth | 89c45a1 | 2016-03-11 08:50:55 +0000 | [diff] [blame] | 182 | FUNCTION_PASS("gvn", GVN()) |
Markus Lavin | 4dc4ebd | 2018-12-07 08:23:37 +0000 | [diff] [blame] | 183 | FUNCTION_PASS("load-store-vectorizer", LoadStoreVectorizerPass()) |
Davide Italiano | cd96cfd | 2016-07-09 03:03:01 +0000 | [diff] [blame] | 184 | FUNCTION_PASS("loop-simplify", LoopSimplifyPass()) |
Chandler Carruth | e9b18e3 | 2017-01-20 08:42:19 +0000 | [diff] [blame] | 185 | FUNCTION_PASS("loop-sink", LoopSinkPass()) |
Michael Kuperstein | 31b8399 | 2016-08-12 17:28:27 +0000 | [diff] [blame] | 186 | FUNCTION_PASS("lowerinvoke", LowerInvokePass()) |
Davide Italiano | cccf4f0 | 2016-06-14 03:22:22 +0000 | [diff] [blame] | 187 | FUNCTION_PASS("mem2reg", PromotePass()) |
Sean Silva | 6347df0 | 2016-06-14 02:44:55 +0000 | [diff] [blame] | 188 | FUNCTION_PASS("memcpyopt", MemCpyOptPass()) |
Davide Italiano | b49aa5c | 2016-06-17 19:10:09 +0000 | [diff] [blame] | 189 | FUNCTION_PASS("mldst-motion", MergedLoadStoreMotionPass()) |
Wei Mi | 1cf58f8 | 2016-07-21 22:28:52 +0000 | [diff] [blame] | 190 | FUNCTION_PASS("nary-reassociate", NaryReassociatePass()) |
Davide Italiano | e05e330 | 2016-12-22 16:35:02 +0000 | [diff] [blame] | 191 | FUNCTION_PASS("newgvn", NewGVNPass()) |
Sean Silva | 46590d5 | 2016-06-14 00:51:09 +0000 | [diff] [blame] | 192 | FUNCTION_PASS("jump-threading", JumpThreadingPass()) |
Davide Italiano | 1021c68 | 2016-05-25 23:38:53 +0000 | [diff] [blame] | 193 | FUNCTION_PASS("partially-inline-libcalls", PartiallyInlineLibCallsPass()) |
Easwaran Raman | e12c487 | 2016-06-09 19:44:46 +0000 | [diff] [blame] | 194 | FUNCTION_PASS("lcssa", LCSSAPass()) |
Teresa Johnson | 1eca6bc | 2016-08-13 04:11:27 +0000 | [diff] [blame] | 195 | FUNCTION_PASS("loop-data-prefetch", LoopDataPrefetchPass()) |
Chandler Carruth | baabda9 | 2017-01-27 01:32:26 +0000 | [diff] [blame] | 196 | FUNCTION_PASS("loop-load-elim", LoopLoadEliminationPass()) |
Adam Nemet | b2593f7 | 2016-07-18 16:29:27 +0000 | [diff] [blame] | 197 | FUNCTION_PASS("loop-distribute", LoopDistributePass()) |
Sean Silva | db90d4d | 2016-07-09 22:56:50 +0000 | [diff] [blame] | 198 | FUNCTION_PASS("loop-vectorize", LoopVectorizePass()) |
Rong Xu | 48596b6 | 2017-04-04 16:42:20 +0000 | [diff] [blame] | 199 | FUNCTION_PASS("pgo-memop-opt", PGOMemOPSizeOpt()) |
Chandler Carruth | 5894418 | 2014-04-21 08:08:50 +0000 | [diff] [blame] | 200 | FUNCTION_PASS("print", PrintFunctionPass(dbgs())) |
Daniel Jasper | aec2fa3 | 2016-12-19 08:22:17 +0000 | [diff] [blame] | 201 | FUNCTION_PASS("print<assumptions>", AssumptionPrinterPass(dbgs())) |
Xinliang David Li | 28a9327 | 2016-05-05 21:13:27 +0000 | [diff] [blame] | 202 | FUNCTION_PASS("print<block-freq>", BlockFrequencyPrinterPass(dbgs())) |
Xinliang David Li | 6e5dd41 | 2016-05-05 02:59:57 +0000 | [diff] [blame] | 203 | FUNCTION_PASS("print<branch-prob>", BranchProbabilityPrinterPass(dbgs())) |
Chandler Carruth | 64764b4 | 2015-01-14 10:19:28 +0000 | [diff] [blame] | 204 | FUNCTION_PASS("print<domtree>", DominatorTreePrinterPass(dbgs())) |
Hongbin Zheng | 3f97840 | 2016-02-25 17:54:07 +0000 | [diff] [blame] | 205 | FUNCTION_PASS("print<postdomtree>", PostDominatorTreePrinterPass(dbgs())) |
Michael Kuperstein | de16b44 | 2016-04-18 23:55:01 +0000 | [diff] [blame] | 206 | FUNCTION_PASS("print<demanded-bits>", DemandedBitsPrinterPass(dbgs())) |
Hongbin Zheng | 751337f | 2016-02-25 17:54:15 +0000 | [diff] [blame] | 207 | FUNCTION_PASS("print<domfrontier>", DominanceFrontierPrinterPass(dbgs())) |
Chandler Carruth | aaf0b4c | 2015-01-20 10:58:50 +0000 | [diff] [blame] | 208 | FUNCTION_PASS("print<loops>", LoopPrinterPass(dbgs())) |
Geoff Berry | b96d3b2 | 2016-06-01 21:30:40 +0000 | [diff] [blame] | 209 | FUNCTION_PASS("print<memoryssa>", MemorySSAPrinterPass(dbgs())) |
John Brawn | bdbbd83 | 2018-06-28 14:13:06 +0000 | [diff] [blame] | 210 | FUNCTION_PASS("print<phi-values>", PhiValuesPrinterPass(dbgs())) |
Hongbin Zheng | bc53977 | 2016-02-25 17:54:25 +0000 | [diff] [blame] | 211 | FUNCTION_PASS("print<regions>", RegionInfoPrinterPass(dbgs())) |
Chandler Carruth | 2f1fd16 | 2015-08-17 02:08:17 +0000 | [diff] [blame] | 212 | FUNCTION_PASS("print<scalar-evolution>", ScalarEvolutionPrinterPass(dbgs())) |
Vitaly Buka | 4493fe1 | 2018-11-26 21:57:47 +0000 | [diff] [blame] | 213 | FUNCTION_PASS("print<stack-safety-local>", StackSafetyPrinterPass(dbgs())) |
Justin Bogner | c2bf63d | 2016-04-26 23:39:29 +0000 | [diff] [blame] | 214 | FUNCTION_PASS("reassociate", ReassociatePass()) |
Mikael Holmen | b6f7600 | 2018-11-21 14:00:17 +0000 | [diff] [blame] | 215 | FUNCTION_PASS("scalarizer", ScalarizerPass()) |
Davide Italiano | 98f7e0e | 2016-05-18 15:18:25 +0000 | [diff] [blame] | 216 | FUNCTION_PASS("sccp", SCCPPass()) |
Chandler Carruth | fdffd87 | 2015-02-01 11:34:21 +0000 | [diff] [blame] | 217 | FUNCTION_PASS("simplify-cfg", SimplifyCFGPass()) |
Justin Bogner | b939490 | 2016-04-22 19:54:10 +0000 | [diff] [blame] | 218 | FUNCTION_PASS("sink", SinkingPass()) |
Sean Silva | e0a9e66 | 2016-06-15 08:43:40 +0000 | [diff] [blame] | 219 | FUNCTION_PASS("slp-vectorizer", SLPVectorizerPass()) |
Michael Kuperstein | c406186 | 2016-08-01 21:48:33 +0000 | [diff] [blame] | 220 | FUNCTION_PASS("speculative-execution", SpeculativeExecutionPass()) |
Chandler Carruth | c34f789 | 2017-11-28 11:32:31 +0000 | [diff] [blame] | 221 | FUNCTION_PASS("spec-phis", SpeculateAroundPHIsPass()) |
Chandler Carruth | 29a18a4 | 2015-09-12 09:09:14 +0000 | [diff] [blame] | 222 | FUNCTION_PASS("sroa", SROA()) |
Sean Silva | 59fe82f | 2016-07-06 23:48:41 +0000 | [diff] [blame] | 223 | FUNCTION_PASS("tailcallelim", TailCallElimPass()) |
Wei Mi | 90d195a | 2016-07-08 03:32:49 +0000 | [diff] [blame] | 224 | FUNCTION_PASS("unreachableblockelim", UnreachableBlockElimPass()) |
Teresa Johnson | ecd9013 | 2017-08-02 20:35:29 +0000 | [diff] [blame] | 225 | FUNCTION_PASS("unroll", LoopUnrollPass()) |
Fedor Sergeev | 412ed34 | 2018-10-31 14:33:14 +0000 | [diff] [blame] | 226 | FUNCTION_PASS("unroll<peeling;no-runtime>",LoopUnrollPass(LoopUnrollOptions().setPeeling(true).setRuntime(false))) |
Chandler Carruth | 9c31db4 | 2015-01-05 00:08:53 +0000 | [diff] [blame] | 227 | FUNCTION_PASS("verify", VerifierPass()) |
Chandler Carruth | 64764b4 | 2015-01-14 10:19:28 +0000 | [diff] [blame] | 228 | FUNCTION_PASS("verify<domtree>", DominatorTreeVerifierPass()) |
Sean Silva | e3c18a5 | 2016-07-19 23:54:23 +0000 | [diff] [blame] | 229 | FUNCTION_PASS("verify<loops>", LoopVerifierPass()) |
Geoff Berry | b96d3b2 | 2016-06-01 21:30:40 +0000 | [diff] [blame] | 230 | FUNCTION_PASS("verify<memoryssa>", MemorySSAVerifierPass()) |
Hongbin Zheng | bc53977 | 2016-02-25 17:54:25 +0000 | [diff] [blame] | 231 | FUNCTION_PASS("verify<regions>", RegionInfoVerifierPass()) |
Sean Fertile | cd0d763 | 2018-06-29 17:48:58 +0000 | [diff] [blame] | 232 | FUNCTION_PASS("view-cfg", CFGViewerPass()) |
| 233 | FUNCTION_PASS("view-cfg-only", CFGOnlyViewerPass()) |
Michael Kruse | 7244852 | 2018-12-12 17:32:52 +0000 | [diff] [blame] | 234 | FUNCTION_PASS("transform-warning", WarnMissedTransformationsPass()) |
Philip Pfaffe | b39a97c | 2019-01-03 13:42:44 +0000 | [diff] [blame] | 235 | FUNCTION_PASS("msan", MemorySanitizerPass()) |
Chandler Carruth | 5894418 | 2014-04-21 08:08:50 +0000 | [diff] [blame] | 236 | #undef FUNCTION_PASS |
Justin Bogner | eecc3c8 | 2016-02-25 07:23:08 +0000 | [diff] [blame] | 237 | |
| 238 | #ifndef LOOP_ANALYSIS |
| 239 | #define LOOP_ANALYSIS(NAME, CREATE_PASS) |
| 240 | #endif |
| 241 | LOOP_ANALYSIS("no-op-loop", NoOpLoopAnalysis()) |
Xinliang David Li | 07e08fa | 2016-07-08 21:21:44 +0000 | [diff] [blame] | 242 | LOOP_ANALYSIS("access-info", LoopAccessAnalysis()) |
Dehao Chen | 1a44452 | 2016-07-16 22:51:33 +0000 | [diff] [blame] | 243 | LOOP_ANALYSIS("ivusers", IVUsersAnalysis()) |
Fedor Sergeev | ee8d31c | 2018-09-20 17:08:45 +0000 | [diff] [blame] | 244 | LOOP_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC)) |
Justin Bogner | eecc3c8 | 2016-02-25 07:23:08 +0000 | [diff] [blame] | 245 | #undef LOOP_ANALYSIS |
| 246 | |
| 247 | #ifndef LOOP_PASS |
| 248 | #define LOOP_PASS(NAME, CREATE_PASS) |
| 249 | #endif |
| 250 | LOOP_PASS("invalidate<all>", InvalidateAllAnalysesPass()) |
Dehao Chen | f400a09 | 2016-07-12 22:42:24 +0000 | [diff] [blame] | 251 | LOOP_PASS("licm", LICMPass()) |
Dehao Chen | b9f8e29 | 2016-07-12 18:45:51 +0000 | [diff] [blame] | 252 | LOOP_PASS("loop-idiom", LoopIdiomRecognizePass()) |
Chandler Carruth | e6c30fd | 2018-05-25 01:32:36 +0000 | [diff] [blame] | 253 | LOOP_PASS("loop-instsimplify", LoopInstSimplifyPass()) |
Justin Bogner | d0d2341 | 2016-05-03 22:02:31 +0000 | [diff] [blame] | 254 | LOOP_PASS("rotate", LoopRotatePass()) |
Justin Bogner | eecc3c8 | 2016-02-25 07:23:08 +0000 | [diff] [blame] | 255 | LOOP_PASS("no-op-loop", NoOpLoopPass()) |
| 256 | LOOP_PASS("print", PrintLoopPass(dbgs())) |
Jun Bum Lim | c837af3 | 2016-07-14 18:28:29 +0000 | [diff] [blame] | 257 | LOOP_PASS("loop-deletion", LoopDeletionPass()) |
Justin Bogner | ab6a513 | 2016-05-03 21:47:32 +0000 | [diff] [blame] | 258 | LOOP_PASS("simplify-cfg", LoopSimplifyCFGPass()) |
Dehao Chen | 6132ee8 | 2016-07-18 21:41:50 +0000 | [diff] [blame] | 259 | LOOP_PASS("strength-reduce", LoopStrengthReducePass()) |
Sanjoy Das | 4d4339d | 2016-06-05 18:01:19 +0000 | [diff] [blame] | 260 | LOOP_PASS("indvars", IndVarSimplifyPass()) |
Fedor Sergeev | 194a407 | 2018-03-15 11:01:19 +0000 | [diff] [blame] | 261 | LOOP_PASS("irce", IRCEPass()) |
David Green | 963401d | 2018-07-01 12:47:30 +0000 | [diff] [blame] | 262 | LOOP_PASS("unroll-and-jam", LoopUnrollAndJamPass()) |
Teresa Johnson | ecd9013 | 2017-08-02 20:35:29 +0000 | [diff] [blame] | 263 | LOOP_PASS("unroll-full", LoopFullUnrollPass()) |
Chandler Carruth | 1353f9a | 2017-04-27 18:45:20 +0000 | [diff] [blame] | 264 | LOOP_PASS("unswitch", SimpleLoopUnswitchPass()) |
Xinliang David Li | 8a02131 | 2016-07-02 21:18:40 +0000 | [diff] [blame] | 265 | LOOP_PASS("print-access-info", LoopAccessInfoPrinterPass(dbgs())) |
Dehao Chen | 1a44452 | 2016-07-16 22:51:33 +0000 | [diff] [blame] | 266 | LOOP_PASS("print<ivusers>", IVUsersPrinterPass(dbgs())) |
Artur Pilipenko | 8fb3d57 | 2017-01-25 16:00:44 +0000 | [diff] [blame] | 267 | LOOP_PASS("loop-predication", LoopPredicationPass()) |
Justin Bogner | eecc3c8 | 2016-02-25 07:23:08 +0000 | [diff] [blame] | 268 | #undef LOOP_PASS |