PassRegistry.def revision 296417
18198Sjoerg//===- PassRegistry.def - Registry of passes --------------------*- C++ -*-===// 28198Sjoerg// 38198Sjoerg// The LLVM Compiler Infrastructure 48198Sjoerg// 58198Sjoerg// This file is distributed under the University of Illinois Open Source 68198Sjoerg// License. See LICENSE.TXT for details. 78198Sjoerg// 88198Sjoerg//===----------------------------------------------------------------------===// 98198Sjoerg// 108198Sjoerg// This file is used as the registry of passes that are part of the core LLVM 118198Sjoerg// libraries. This file describes both transformation passes and analyses 128198Sjoerg// Analyses are registered while transformation passes have names registered 138198Sjoerg// that can be used when providing a textual pass pipeline. 148198Sjoerg// 158198Sjoerg//===----------------------------------------------------------------------===// 168198Sjoerg 178198Sjoerg// NOTE: NO INCLUDE GUARD DESIRED! 188198Sjoerg 198198Sjoerg#ifndef MODULE_ANALYSIS 208198Sjoerg#define MODULE_ANALYSIS(NAME, CREATE_PASS) 218198Sjoerg#endif 228198SjoergMODULE_ANALYSIS("lcg", LazyCallGraphAnalysis()) 238198SjoergMODULE_ANALYSIS("no-op-module", NoOpModuleAnalysis()) 248198SjoergMODULE_ANALYSIS("targetlibinfo", TargetLibraryAnalysis()) 258198Sjoerg#undef MODULE_ANALYSIS 2650476Speter 27195656Strasz#ifndef MODULE_PASS 28206622Suqs#define MODULE_PASS(NAME, CREATE_PASS) 298198Sjoerg#endif 308198SjoergMODULE_PASS("forceattrs", ForceFunctionAttrsPass()) 318198SjoergMODULE_PASS("inferattrs", InferFunctionAttrsPass()) 3213754SmppMODULE_PASS("invalidate<all>", InvalidateAllAnalysesPass()) 3359460SphantomMODULE_PASS("no-op-module", NoOpModulePass()) 3459460SphantomMODULE_PASS("print", PrintModulePass(dbgs())) 358198SjoergMODULE_PASS("print-cg", LazyCallGraphPrinterPass(dbgs())) 3684306SruMODULE_PASS("strip-dead-prototypes", StripDeadPrototypesPass()) 3784306SruMODULE_PASS("verify", VerifierPass()) 388198Sjoerg#undef MODULE_PASS 3924009Sbde 408198Sjoerg#ifndef CGSCC_ANALYSIS 418198Sjoerg#define CGSCC_ANALYSIS(NAME, CREATE_PASS) 428198Sjoerg#endif 438198SjoergCGSCC_ANALYSIS("no-op-cgscc", NoOpCGSCCAnalysis()) 44195656Strasz#undef CGSCC_ANALYSIS 458198Sjoerg 468198Sjoerg#ifndef CGSCC_PASS 478198Sjoerg#define CGSCC_PASS(NAME, CREATE_PASS) 488198Sjoerg#endif 498198SjoergCGSCC_PASS("invalidate<all>", InvalidateAllAnalysesPass()) 508198SjoergCGSCC_PASS("no-op-cgscc", NoOpCGSCCPass()) 518198Sjoerg#undef CGSCC_PASS 528198Sjoerg 538198Sjoerg#ifndef FUNCTION_ANALYSIS 548198Sjoerg#define FUNCTION_ANALYSIS(NAME, CREATE_PASS) 558198Sjoerg#endif 56131504SruFUNCTION_ANALYSIS("assumptions", AssumptionAnalysis()) 57131504SruFUNCTION_ANALYSIS("domtree", DominatorTreeAnalysis()) 588198SjoergFUNCTION_ANALYSIS("loops", LoopAnalysis()) 598198SjoergFUNCTION_ANALYSIS("no-op-function", NoOpFunctionAnalysis()) 608198SjoergFUNCTION_ANALYSIS("scalar-evolution", ScalarEvolutionAnalysis()) 618198SjoergFUNCTION_ANALYSIS("targetlibinfo", TargetLibraryAnalysis()) 628198SjoergFUNCTION_ANALYSIS("targetir", 638198Sjoerg TM ? TM->getTargetIRAnalysis() : TargetIRAnalysis()) 648198Sjoerg#undef FUNCTION_ANALYSIS 658198Sjoerg 668198Sjoerg#ifndef FUNCTION_PASS 67276006Sbrueffer#define FUNCTION_PASS(NAME, CREATE_PASS) 688198Sjoerg#endif 69276006SbruefferFUNCTION_PASS("adce", ADCEPass()) 708198SjoergFUNCTION_PASS("early-cse", EarlyCSEPass()) 718198SjoergFUNCTION_PASS("instcombine", InstCombinePass()) 728198SjoergFUNCTION_PASS("invalidate<all>", InvalidateAllAnalysesPass()) 7316091SjoergFUNCTION_PASS("no-op-function", NoOpFunctionPass()) 748198SjoergFUNCTION_PASS("lower-expect", LowerExpectIntrinsicPass()) 7534669ScharnierFUNCTION_PASS("print", PrintFunctionPass(dbgs())) 76267774SbaptFUNCTION_PASS("print<assumptions>", AssumptionPrinterPass(dbgs())) 778198SjoergFUNCTION_PASS("print<domtree>", DominatorTreePrinterPass(dbgs())) 7816091SjoergFUNCTION_PASS("print<loops>", LoopPrinterPass(dbgs())) 798198SjoergFUNCTION_PASS("print<scalar-evolution>", ScalarEvolutionPrinterPass(dbgs())) 808198SjoergFUNCTION_PASS("simplify-cfg", SimplifyCFGPass()) 8116091SjoergFUNCTION_PASS("sroa", SROA()) 828198SjoergFUNCTION_PASS("verify", VerifierPass()) 8318718SwoschFUNCTION_PASS("verify<domtree>", DominatorTreeVerifierPass()) 84#undef FUNCTION_PASS 85