| //===- PassRegistry.def - Registry of passes --------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file is used as the registry of passes that are part of the core LLVM |
| // libraries. This file describes both transformation passes and analyses |
| // Analyses are registered while transformation passes have names registered |
| // that can be used when providing a textual pass pipeline. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // NOTE: NO INCLUDE GUARD DESIRED! |
| |
| #ifndef MODULE_ANALYSIS |
| #define MODULE_ANALYSIS(NAME, CREATE_PASS) |
| #endif |
| MODULE_ANALYSIS("lcg", LazyCallGraphAnalysis()) |
| MODULE_ANALYSIS("no-op-module", NoOpModuleAnalysis()) |
| MODULE_ANALYSIS("targetlibinfo", TargetLibraryAnalysis()) |
| #undef MODULE_ANALYSIS |
| |
| #ifndef MODULE_PASS |
| #define MODULE_PASS(NAME, CREATE_PASS) |
| #endif |
| MODULE_PASS("invalidate<all>", InvalidateAllAnalysesPass()) |
| MODULE_PASS("no-op-module", NoOpModulePass()) |
| MODULE_PASS("print", PrintModulePass(dbgs())) |
| MODULE_PASS("print-cg", LazyCallGraphPrinterPass(dbgs())) |
| MODULE_PASS("verify", VerifierPass()) |
| #undef MODULE_PASS |
| |
| #ifndef CGSCC_ANALYSIS |
| #define CGSCC_ANALYSIS(NAME, CREATE_PASS) |
| #endif |
| CGSCC_ANALYSIS("no-op-cgscc", NoOpCGSCCAnalysis()) |
| #undef CGSCC_ANALYSIS |
| |
| #ifndef CGSCC_PASS |
| #define CGSCC_PASS(NAME, CREATE_PASS) |
| #endif |
| CGSCC_PASS("invalidate<all>", InvalidateAllAnalysesPass()) |
| CGSCC_PASS("no-op-cgscc", NoOpCGSCCPass()) |
| #undef CGSCC_PASS |
| |
| #ifndef FUNCTION_ANALYSIS |
| #define FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| #endif |
| FUNCTION_ANALYSIS("assumptions", AssumptionAnalysis()) |
| FUNCTION_ANALYSIS("domtree", DominatorTreeAnalysis()) |
| FUNCTION_ANALYSIS("loops", LoopAnalysis()) |
| FUNCTION_ANALYSIS("no-op-function", NoOpFunctionAnalysis()) |
| FUNCTION_ANALYSIS("targetlibinfo", TargetLibraryAnalysis()) |
| FUNCTION_ANALYSIS("targetir", |
| TM ? TM->getTargetIRAnalysis() : TargetIRAnalysis()) |
| #undef FUNCTION_ANALYSIS |
| |
| #ifndef FUNCTION_PASS |
| #define FUNCTION_PASS(NAME, CREATE_PASS) |
| #endif |
| FUNCTION_PASS("early-cse", EarlyCSEPass()) |
| FUNCTION_PASS("instcombine", InstCombinePass()) |
| FUNCTION_PASS("invalidate<all>", InvalidateAllAnalysesPass()) |
| FUNCTION_PASS("no-op-function", NoOpFunctionPass()) |
| FUNCTION_PASS("lower-expect", LowerExpectIntrinsicPass()) |
| FUNCTION_PASS("print", PrintFunctionPass(dbgs())) |
| FUNCTION_PASS("print<assumptions>", AssumptionPrinterPass(dbgs())) |
| FUNCTION_PASS("print<domtree>", DominatorTreePrinterPass(dbgs())) |
| FUNCTION_PASS("print<loops>", LoopPrinterPass(dbgs())) |
| FUNCTION_PASS("simplify-cfg", SimplifyCFGPass()) |
| FUNCTION_PASS("verify", VerifierPass()) |
| FUNCTION_PASS("verify<domtree>", DominatorTreeVerifierPass()) |
| #undef FUNCTION_PASS |