1283625Sdim//===- PassRegistry.def - Registry of passes --------------------*- C++ -*-===// 2283625Sdim// 3283625Sdim// The LLVM Compiler Infrastructure 4283625Sdim// 5283625Sdim// This file is distributed under the University of Illinois Open Source 6283625Sdim// License. See LICENSE.TXT for details. 7283625Sdim// 8283625Sdim//===----------------------------------------------------------------------===// 9283625Sdim// 10283625Sdim// This file is used as the registry of passes that are part of the core LLVM 11283625Sdim// libraries. This file describes both transformation passes and analyses 12283625Sdim// Analyses are registered while transformation passes have names registered 13283625Sdim// that can be used when providing a textual pass pipeline. 14283625Sdim// 15283625Sdim//===----------------------------------------------------------------------===// 16283625Sdim 17283625Sdim// NOTE: NO INCLUDE GUARD DESIRED! 18283625Sdim 19283625Sdim#ifndef MODULE_ANALYSIS 20283625Sdim#define MODULE_ANALYSIS(NAME, CREATE_PASS) 21283625Sdim#endif 22283625SdimMODULE_ANALYSIS("lcg", LazyCallGraphAnalysis()) 23283625SdimMODULE_ANALYSIS("no-op-module", NoOpModuleAnalysis()) 24283625SdimMODULE_ANALYSIS("targetlibinfo", TargetLibraryAnalysis()) 25283625Sdim#undef MODULE_ANALYSIS 26283625Sdim 27283625Sdim#ifndef MODULE_PASS 28283625Sdim#define MODULE_PASS(NAME, CREATE_PASS) 29283625Sdim#endif 30296417SdimMODULE_PASS("forceattrs", ForceFunctionAttrsPass()) 31296417SdimMODULE_PASS("inferattrs", InferFunctionAttrsPass()) 32283625SdimMODULE_PASS("invalidate<all>", InvalidateAllAnalysesPass()) 33283625SdimMODULE_PASS("no-op-module", NoOpModulePass()) 34283625SdimMODULE_PASS("print", PrintModulePass(dbgs())) 35283625SdimMODULE_PASS("print-cg", LazyCallGraphPrinterPass(dbgs())) 36296417SdimMODULE_PASS("strip-dead-prototypes", StripDeadPrototypesPass()) 37283625SdimMODULE_PASS("verify", VerifierPass()) 38283625Sdim#undef MODULE_PASS 39283625Sdim 40283625Sdim#ifndef CGSCC_ANALYSIS 41283625Sdim#define CGSCC_ANALYSIS(NAME, CREATE_PASS) 42283625Sdim#endif 43283625SdimCGSCC_ANALYSIS("no-op-cgscc", NoOpCGSCCAnalysis()) 44283625Sdim#undef CGSCC_ANALYSIS 45283625Sdim 46283625Sdim#ifndef CGSCC_PASS 47283625Sdim#define CGSCC_PASS(NAME, CREATE_PASS) 48283625Sdim#endif 49283625SdimCGSCC_PASS("invalidate<all>", InvalidateAllAnalysesPass()) 50283625SdimCGSCC_PASS("no-op-cgscc", NoOpCGSCCPass()) 51283625Sdim#undef CGSCC_PASS 52283625Sdim 53283625Sdim#ifndef FUNCTION_ANALYSIS 54283625Sdim#define FUNCTION_ANALYSIS(NAME, CREATE_PASS) 55283625Sdim#endif 56283625SdimFUNCTION_ANALYSIS("assumptions", AssumptionAnalysis()) 57283625SdimFUNCTION_ANALYSIS("domtree", DominatorTreeAnalysis()) 58283625SdimFUNCTION_ANALYSIS("loops", LoopAnalysis()) 59283625SdimFUNCTION_ANALYSIS("no-op-function", NoOpFunctionAnalysis()) 60296417SdimFUNCTION_ANALYSIS("scalar-evolution", ScalarEvolutionAnalysis()) 61283625SdimFUNCTION_ANALYSIS("targetlibinfo", TargetLibraryAnalysis()) 62283625SdimFUNCTION_ANALYSIS("targetir", 63283625Sdim TM ? TM->getTargetIRAnalysis() : TargetIRAnalysis()) 64283625Sdim#undef FUNCTION_ANALYSIS 65283625Sdim 66283625Sdim#ifndef FUNCTION_PASS 67283625Sdim#define FUNCTION_PASS(NAME, CREATE_PASS) 68283625Sdim#endif 69296417SdimFUNCTION_PASS("adce", ADCEPass()) 70283625SdimFUNCTION_PASS("early-cse", EarlyCSEPass()) 71283625SdimFUNCTION_PASS("instcombine", InstCombinePass()) 72283625SdimFUNCTION_PASS("invalidate<all>", InvalidateAllAnalysesPass()) 73283625SdimFUNCTION_PASS("no-op-function", NoOpFunctionPass()) 74283625SdimFUNCTION_PASS("lower-expect", LowerExpectIntrinsicPass()) 75283625SdimFUNCTION_PASS("print", PrintFunctionPass(dbgs())) 76283625SdimFUNCTION_PASS("print<assumptions>", AssumptionPrinterPass(dbgs())) 77283625SdimFUNCTION_PASS("print<domtree>", DominatorTreePrinterPass(dbgs())) 78283625SdimFUNCTION_PASS("print<loops>", LoopPrinterPass(dbgs())) 79296417SdimFUNCTION_PASS("print<scalar-evolution>", ScalarEvolutionPrinterPass(dbgs())) 80283625SdimFUNCTION_PASS("simplify-cfg", SimplifyCFGPass()) 81296417SdimFUNCTION_PASS("sroa", SROA()) 82283625SdimFUNCTION_PASS("verify", VerifierPass()) 83283625SdimFUNCTION_PASS("verify<domtree>", DominatorTreeVerifierPass()) 84283625Sdim#undef FUNCTION_PASS 85