PassRegistry.def revision 288943
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
19#ifndef MODULE_ANALYSIS
20#define MODULE_ANALYSIS(NAME, CREATE_PASS)
21#endif
22MODULE_ANALYSIS("lcg", LazyCallGraphAnalysis())
23MODULE_ANALYSIS("no-op-module", NoOpModuleAnalysis())
24MODULE_ANALYSIS("targetlibinfo", TargetLibraryAnalysis())
25#undef MODULE_ANALYSIS
26
27#ifndef MODULE_PASS
28#define MODULE_PASS(NAME, CREATE_PASS)
29#endif
30MODULE_PASS("invalidate<all>", InvalidateAllAnalysesPass())
31MODULE_PASS("no-op-module", NoOpModulePass())
32MODULE_PASS("print", PrintModulePass(dbgs()))
33MODULE_PASS("print-cg", LazyCallGraphPrinterPass(dbgs()))
34MODULE_PASS("verify", VerifierPass())
35#undef MODULE_PASS
36
37#ifndef CGSCC_ANALYSIS
38#define CGSCC_ANALYSIS(NAME, CREATE_PASS)
39#endif
40CGSCC_ANALYSIS("no-op-cgscc", NoOpCGSCCAnalysis())
41#undef CGSCC_ANALYSIS
42
43#ifndef CGSCC_PASS
44#define CGSCC_PASS(NAME, CREATE_PASS)
45#endif
46CGSCC_PASS("invalidate<all>", InvalidateAllAnalysesPass())
47CGSCC_PASS("no-op-cgscc", NoOpCGSCCPass())
48#undef CGSCC_PASS
49
50#ifndef FUNCTION_ANALYSIS
51#define FUNCTION_ANALYSIS(NAME, CREATE_PASS)
52#endif
53FUNCTION_ANALYSIS("assumptions", AssumptionAnalysis())
54FUNCTION_ANALYSIS("domtree", DominatorTreeAnalysis())
55FUNCTION_ANALYSIS("loops", LoopAnalysis())
56FUNCTION_ANALYSIS("no-op-function", NoOpFunctionAnalysis())
57FUNCTION_ANALYSIS("targetlibinfo", TargetLibraryAnalysis())
58FUNCTION_ANALYSIS("targetir",
59                  TM ? TM->getTargetIRAnalysis() : TargetIRAnalysis())
60#undef FUNCTION_ANALYSIS
61
62#ifndef FUNCTION_PASS
63#define FUNCTION_PASS(NAME, CREATE_PASS)
64#endif
65FUNCTION_PASS("early-cse", EarlyCSEPass())
66FUNCTION_PASS("instcombine", InstCombinePass())
67FUNCTION_PASS("invalidate<all>", InvalidateAllAnalysesPass())
68FUNCTION_PASS("no-op-function", NoOpFunctionPass())
69FUNCTION_PASS("lower-expect", LowerExpectIntrinsicPass())
70FUNCTION_PASS("print", PrintFunctionPass(dbgs()))
71FUNCTION_PASS("print<assumptions>", AssumptionPrinterPass(dbgs()))
72FUNCTION_PASS("print<domtree>", DominatorTreePrinterPass(dbgs()))
73FUNCTION_PASS("print<loops>", LoopPrinterPass(dbgs()))
74FUNCTION_PASS("simplify-cfg", SimplifyCFGPass())
75FUNCTION_PASS("verify", VerifierPass())
76FUNCTION_PASS("verify<domtree>", DominatorTreeVerifierPass())
77#undef FUNCTION_PASS
78