LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LinkAllPasses.h
Go to the documentation of this file.
1 //===- llvm/LinkAllPasses.h ------------ Reference All 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 header file pulls in all transformation and analysis passes for tools
11 // like opt and bugpoint that need this functionality.
12 //
13 //===----------------------------------------------------------------------===//
14 
15 #ifndef LLVM_LINKALLPASSES_H
16 #define LLVM_LINKALLPASSES_H
17 
23 #include "llvm/Analysis/Lint.h"
24 #include "llvm/Analysis/Passes.h"
30 #include "llvm/CodeGen/Passes.h"
31 #include "llvm/IR/Function.h"
32 #include "llvm/Transforms/IPO.h"
35 #include "llvm/Transforms/Scalar.h"
38 #include <cstdlib>
39 
40 namespace {
41  struct ForcePassLinking {
42  ForcePassLinking() {
43  // We must reference the passes in such a way that compilers will not
44  // delete it all as dead code, even with whole program optimization,
45  // yet is effectively a NO-OP. As the compiler isn't smart enough
46  // to know that getenv() never returns -1, this will do the job.
47  if (std::getenv("bar") != (char*) -1)
48  return;
49 
50  (void) llvm::createAAEvalPass();
84  (void) llvm::createIPSCCPPass();
88  (void) llvm::createLCSSAPass();
89  (void) llvm::createLICMPass();
102  (void) llvm::createNoAAPass();
110  (void) llvm::createPruneEHPass();
121  (void) llvm::createSCCPPass();
131  (void) llvm::createInstCountPass();
133  (void) llvm::createEarlyCSEPass();
134  (void) llvm::createGVNPass();
135  (void) llvm::createMemCpyOptPass();
137  (void) llvm::createPostDomTree();
142  (void) llvm::createPrintModulePass(0);
143  (void) llvm::createPrintFunctionPass("", 0);
147  (void) llvm::createLintPass();
148  (void) llvm::createSinkingPass();
151  (void) llvm::createMemDepPrinter();
157 
158  (void)new llvm::IntervalPartition();
159  (void)new llvm::FindUsedTypes();
160  (void)new llvm::ScalarEvolution();
161  ((llvm::Function*)0)->viewCFGOnly();
163  ((llvm::RegionPass*)0)->runOnRegion((llvm::Region*)0, RGM);
165  X.add((llvm::Value*)0, 0, 0); // for -print-alias-sets
166  }
167  } ForcePassLinking; // Force link by creating a global definition.
168 }
169 
170 #endif
FunctionPass * createInstCountPass()
FunctionPass * createGVNPass(bool NoLoads=false)
Definition: GVN.cpp:724
FunctionPass * createDomOnlyViewerPass()
Definition: DomPrinter.cpp:214
Pass * createLoopRerollPass()
ModulePass * createIPConstantPropagationPass()
Pass * createLoopSimplifyPass()
Pass * createLoopVectorizePass(bool NoUnrolling=false)
FunctionPass * createScalarEvolutionAliasAnalysisPass()
FunctionPass * createBoundsCheckingPass()
Pass * createLoopStrengthReducePass()
FunctionPass * createPostDomPrinterPass()
Definition: DomPrinter.cpp:218
FunctionPass * createLowerSwitchPass()
FunctionPass * createScalarReplAggregatesPass(signed Threshold=-1, bool UseDomTree=true, signed StructMemberThreshold=-1, signed ArrayElementThreshold=-1, signed ScalarLoadThreshold=-1)
Pass * createDeadInstEliminationPass()
ModulePass * createGCOVProfilerPass(const GCOVOptions &Options=GCOVOptions::getDefault())
ModulePass * createMergeFunctionsPass()
FunctionPass * createDependenceAnalysisPass()
ModulePass * createIPSCCPPass()
Definition: SCCP.cpp:1652
FunctionPass * createRegionInfoPass()
Definition: RegionInfo.cpp:861
Pass * createSingleLoopExtractorPass()
FunctionPass * createAAEvalPass()
ModulePass * createPrintModulePass(raw_ostream *OS, bool DeleteStream=false, const std::string &Banner="")
FunctionPass * createDemoteRegisterToMemoryPass()
Definition: Reg2Mem.cpp:131
Pass * createAlwaysInlinerPass()
Pass * createLoopRotatePass()
The pass manager to schedule RegionPasses.
Definition: RegionPass.h:83
FunctionPass * createRegionOnlyViewerPass()
ModulePass * createStripNonDebugSymbolsPass()
ImmutablePass * createNoAAPass()
Pass * createFunctionAttrsPass()
FunctionPass * createLibCallAliasAnalysisPass(LibCallInfo *LCI)
ModulePass * createStripDeadDebugInfoPass()
FunctionPass * createCodeGenPreparePass(const TargetMachine *TM=0)
FunctionPass * createDomViewerPass()
Definition: DomPrinter.cpp:210
FunctionPass * createConstantPropagationPass()
FunctionPass * createReassociatePass()
Pass * createArgumentPromotionPass(unsigned maxElements=3)
FunctionPass * createSinkingPass()
Definition: Sink.cpp:70
ModulePass * createAliasAnalysisCounterPass()
Pass * createObjCARCAPElimPass()
Pass * createGlobalsModRefPass()
FunctionPass * createDeadCodeEliminationPass()
Definition: DCE.cpp:131
Pass * createLoopUnswitchPass(bool OptimizeForSize=false)
ImmutablePass * createBasicAliasAnalysisPass()
FunctionPass * createRegionOnlyPrinterPass()
Pass * createUnifyFunctionExitNodesPass()
Pass * createLoopUnrollPass(int Threshold=-1, int Count=-1, int AllowPartial=-1, int Runtime=-1)
FunctionPass * createInstructionCombiningPass()
ModulePass * createGlobalDCEPass()
FunctionPass * createLazyValueInfoPass()
Pass * createCorrelatedValuePropagationPass()
FunctionPass * createDomPrinterPass()
FunctionPass * createMemDepPrinter()
ImmutablePass * createTypeBasedAliasAnalysisPass()
FunctionPass * createJumpThreadingPass()
Pass * createObjCARCExpandPass()
FunctionPass * createTailCallEliminationPass()
A pass that runs on each Region in a function.
Definition: RegionPass.h:34
A single entry single exit Region.
Definition: RegionInfo.h:202
ModulePass * createDeadArgEliminationPass()
Pass * createObjCARCContractPass()
FunctionPass * createBreakCriticalEdgesPass()
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang","erlang-compatible garbage collector")
FunctionPass * createMemCpyOptPass()
ModulePass * createConstantMergePass()
FunctionPass * createPrintFunctionPass(const std::string &Banner, raw_ostream *OS, bool DeleteStream=false)
FunctionPass * createEarlyCSEPass()
Definition: EarlyCSE.cpp:390
ModulePass * createGlobalOptimizerPass()
Definition: GlobalOpt.cpp:98
FunctionPass * createLowerInvokePass(const TargetMachine *TM=0, bool useExpensiveEHSupport=false)
FunctionPass * createRegionViewerPass()
FunctionPass * createLintPass()
Create a lint pass.
Definition: Lint.cpp:697
Pass * createLCSSAPass()
Definition: LCSSA.cpp:93
FunctionPass * createDomOnlyPrinterPass()
Definition: DomPrinter.cpp:206
FunctionPass * createDeadStoreEliminationPass()
ImmutablePass * createObjCARCAliasAnalysisPass()
Pass * createLowerAtomicPass()
FunctionPass * createRegionPrinterPass()
FunctionPass * createPostDomViewerPass()
Definition: DomPrinter.cpp:226
Pass * createLoopExtractorPass()
Pass * createLoopDeletionPass()
Pass * createLICMPass()
Definition: LICM.cpp:199
Pass * createObjCARCOptPass()
BasicBlockPass * createPrintBasicBlockPass(raw_ostream *OS, bool DeleteStream=false, const std::string &Banner="")
BasicBlockPass * createBBVectorizePass(const VectorizeConfig &C=VectorizeConfig())
FunctionPass * createCFGSimplificationPass()
Pass * createLoopIdiomPass()
ModulePass * createModuleDebugInfoPrinterPass()
FunctionPass * createSCCPPass()
FunctionPass * createPartiallyInlineLibCallsPass()
FunctionPass * createAggressiveDCEPass()
Definition: ADCE.cpp:95
ModulePass * createInternalizePass(ArrayRef< const char * > ExportList)
FunctionPass * createInstructionNamerPass()
FunctionPass * createPostDomOnlyViewerPass()
Definition: DomPrinter.cpp:230
FunctionPass * createCostModelAnalysisPass()
Definition: CostModel.cpp:73
Pass * createAliasDebugger()
FunctionPass * createPostDomOnlyPrinterPass()
Definition: DomPrinter.cpp:222
Pass * createSLPVectorizerPass()
FunctionPass * createPromoteMemoryToRegisterPass()
Definition: Mem2Reg.cpp:88
FunctionPass * createPostDomTree()
ModulePass * createPartialInliningPass()
Pass * createFunctionInliningPass()
Pass * createPruneEHPass()
Definition: PruneEH.cpp:58
LLVM Value Representation.
Definition: Value.h:66
ModulePass * createStripDeadPrototypesPass()
ModulePass * createStripSymbolsPass(bool OnlyDebugInfo=false)
Pass * createStructurizeCFGPass()
Create the pass.
FunctionPass * createInstructionSimplifierPass()
char *getenv(const char *name);
ModulePass * createCallGraphPrinterPass()
Definition: CallPrinter.cpp:85
ModulePass * createMetaRenamerPass()
Pass * createIndVarSimplifyPass()
FunctionPass * createLowerExpectIntrinsicPass()
ModulePass * createCallGraphViewerPass()