15 #ifndef LLVM_LINKALLPASSES_H
16 #define LLVM_LINKALLPASSES_H
55 struct ForcePassLinking {
61 if (std::getenv(
"bar") != (
char*) -1)
FunctionPass * createSpeculativeExecutionPass()
FunctionPass * createRegionViewerPass()
FunctionPass * createInstCountPass()
FunctionPass * createStraightLineStrengthReducePass()
FunctionPass * createGVNPass(bool NoLoads=false)
Create a legacy GVN pass.
FunctionPass * createCodeGenPreparePass(const TargetMachine *TM=nullptr)
createCodeGenPreparePass - Transform the code to expose more pattern matching during instruction sele...
FunctionPass * createDomOnlyViewerPass()
FunctionPass * createDependenceAnalysisWrapperPass()
createDependenceAnalysisPass - This creates an instance of the DependenceAnalysis wrapper pass...
Pass * createLoopRerollPass()
ModulePass * createIPConstantPropagationPass()
createIPConstantPropagationPass - This pass propagates constants from call sites into the bodies of f...
Pass * createLoopSimplifyPass()
ModulePass * createStripDeadPrototypesPass()
createStripDeadPrototypesPass - This pass removes any function declarations (prototypes) that are not...
ModulePass * createPGOInstrumentationGenLegacyPass()
FunctionPass * createBoundsCheckingPass()
Pass * createLoopStrengthReducePass()
FunctionPass * createPostDomPrinterPass()
This is the interface for LLVM's inclusion-based alias analysis implemented with CFL graph reachabili...
FunctionPass * createLowerSwitchPass()
This is the interface for a simple mod/ref and alias analysis over globals.
Pass * createDeadInstEliminationPass()
ModulePass * createGCOVProfilerPass(const GCOVOptions &Options=GCOVOptions::getDefault())
ModulePass * createMergeFunctionsPass()
createMergeFunctionsPass - This pass discovers identical functions and collapses them.
This file implements a simple N^2 alias analysis accuracy evaluator.
void viewCFGOnly() const
viewCFGOnly - This function is meant for use from the debugger.
This is the interface for a metadata-based scoped no-alias analysis.
FunctionPass * createPrintFunctionPass(raw_ostream &OS, const std::string &Banner="")
Create and return a pass that prints functions to the specified raw_ostream as they are processed...
ModulePass * createIPSCCPPass()
createIPSCCPPass - This pass propagates constants from call sites into the bodies of functions...
FunctionPass * createFloat2IntPass()
FunctionPass * createRegionInfoPass()
Externally visible function.
Implementation of the target library information.
Pass * createSingleLoopExtractorPass()
createSingleLoopExtractorPass - This pass extracts one natural loop from the program into a function ...
FunctionPass * createAAEvalPass()
Create a wrapper of the above for the legacy pass manager.
ModulePass * createEliminateAvailableExternallyPass()
This transform is designed to eliminate available external globals (functions or global variables) ...
FunctionPass * createGVNHoistPass()
FunctionPass * createDemoteRegisterToMemoryPass()
ModulePass * createInstrProfilingLegacyPass(const InstrProfOptions &Options=InstrProfOptions())
Insert frontend instrumentation based profiling.
The pass manager to schedule RegionPasses.
ImmutablePass * createScopedNoAliasAAWrapperPass()
FunctionPass * createAlignmentFromAssumptionsPass()
FunctionPass * createJumpThreadingPass(int Threshold=-1)
ModulePass * createCallGraphDOTPrinterPass()
FunctionPass * createRegionOnlyViewerPass()
ModulePass * createStripNonDebugSymbolsPass()
ModulePass * createStripDeadDebugInfoPass()
ModulePass * createPartialInliningPass()
createPartialInliningPass - This pass inlines parts of functions.
This is the interface for a SCEV-based alias analysis.
FunctionPass * createLowerInvokePass()
FunctionPass * createDomViewerPass()
Pass * createLoadStoreVectorizerPass()
FunctionPass * createDivergenceAnalysisPass()
FunctionPass * createConstantPropagationPass()
FunctionPass * createReassociatePass()
Pass * createArgumentPromotionPass(unsigned maxElements=3)
createArgumentPromotionPass - This pass promotes "by reference" arguments to be passed by value if th...
FunctionPass * createSinkingPass()
FunctionPass * createCountingFunctionInserterPass()
Insert mcount-like function calls.
FunctionPass * createSCCPPass()
FunctionPass * createPartiallyInlineLibCallsPass()
Pass * createObjCARCAPElimPass()
FunctionPass * createDeadCodeEliminationPass()
Pass * createObjCARCContractPass()
FunctionPass * createSCEVAAWrapperPass()
Creates an instance of SCEVAAWrapperPass.
Pass * createLoopUnswitchPass(bool OptimizeForSize=false)
Pass * createLoopVectorizePass(bool NoUnrolling=false, bool AlwaysVectorize=true)
FunctionPass * createRegionOnlyPrinterPass()
Pass * createUnifyFunctionExitNodesPass()
FunctionPass * createNewGVNPass()
FunctionPass * createInstructionCombiningPass(bool ExpensiveCombines=true)
ModulePass * createGlobalDCEPass()
createGlobalDCEPass - This transform is designed to eliminate unreachable internal globals (functions...
FunctionPass * createLazyValueInfoPass()
createLazyValueInfoPass - This creates an instance of the LazyValueInfo pass.
Pass * createCorrelatedValuePropagationPass()
This is the interface for LLVM's unification-based alias analysis implemented with CFL graph reachabi...
FunctionPass * createDomPrinterPass()
FunctionPass * createMemDepPrinter()
FunctionPass * createSeparateConstOffsetFromGEPPass(const TargetMachine *TM=nullptr, bool LowerGEP=false)
This is the interface for a metadata-based TBAA.
Pass * createObjCARCExpandPass()
FunctionPass * createTailCallEliminationPass()
Pass * createFunctionImportPass()
This pass performs iterative function importing from other modules.
This file provides the interface for LLVM's Global Value Numbering pass which eliminates fully redund...
FunctionPass * createPromoteMemoryToRegisterPass()
FunctionPass * createRegionPrinterPass()
ModulePass * createDeadArgEliminationPass()
createDeadArgEliminationPass - This pass removes arguments from functions which are not used by the b...
FunctionPass * createBreakCriticalEdgesPass()
FunctionPass * createCFGSimplificationPass(int Threshold=-1, std::function< bool(const Function &)> Ftor=nullptr)
FunctionPass * createDeadStoreEliminationPass()
ModulePass * createPGOInstrumentationUseLegacyPass(StringRef Filename=StringRef(""))
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang","erlang-compatible garbage collector")
ModulePass * createPGOIndirectCallPromotionLegacyPass(bool InLTO=false)
FunctionPass * createMemCpyOptPass()
The public interface to this file...
FunctionPass * createBitTrackingDCEPass()
Pass * createAlwaysInlinerLegacyPass(bool InsertLifetime=true)
Create a legacy pass manager instance of a pass to inline and remove functions marked as "always_inli...
ModulePass * createConstantMergePass()
createConstantMergePass - This function returns a new pass that merges duplicate global constants tog...
Pass * createLoopSinkPass()
FunctionPass * createSafeStackPass(const TargetMachine *TM=nullptr)
This pass splits the stack into a safe stack and an unsafe stack to protect against stack-based overf...
ModulePass * createGlobalOptimizerPass()
createGlobalOptimizerPass - This function returns a new pass that optimizes non-address taken interna...
Pass * createReversePostOrderFunctionAttrsPass()
createReversePostOrderFunctionAttrsPass - This pass walks SCCs of the call graph in RPO to deduce and...
Pass * createPostOrderFunctionAttrsLegacyPass()
Create a legacy pass manager instance of a pass to compute function attrs in post-order.
Pass * createLoopVersioningLICMPass()
FunctionPass * createLintPass()
Create a lint pass.
Provides passes to inlining "always_inline" functions.
FunctionPass * createDomOnlyPrinterPass()
Pass * createLoopInterchangePass()
ModulePass * createInternalizePass(std::function< bool(const GlobalValue &)> MustPreserveGV)
createInternalizePass - This pass loops over all of the functions in the input module, internalizing all globals (functions and variables) it can.
Provides information about what library functions are available for the current target.
A collection of metadata nodes that might be associated with a memory access used by the alias-analys...
Pass * createLoopUnrollPass(int Threshold=-1, int Count=-1, int AllowPartial=-1, int Runtime=-1, int UpperBound=-1)
Pass * createLoopSimplifyCFGPass()
Pass * createLowerAtomicPass()
BasicBlockPass * createPrintBasicBlockPass(raw_ostream &OS, const std::string &Banner="")
Create and return a pass that writes the BB to the specified raw_ostream.
FunctionPass * createSpeculativeExecutionIfHasBranchDivergencePass()
ModulePass * createRewriteSymbolsPass()
FunctionPass * createPostDomViewerPass()
Pass * createLoopExtractorPass()
createLoopExtractorPass - This pass extracts all natural loops from the program into a function if it...
FunctionPass * createMergedLoadStoreMotionPass()
createMergedLoadStoreMotionPass - The public interface to this file.
FunctionPass * createPAEvalPass()
FunctionPass * createLibCallsShrinkWrapPass()
Pass * createLoopDeletionPass()
FunctionPass * createBasicAAWrapperPass()
Pass * createObjCARCOptPass()
BasicBlockPass * createBBVectorizePass(const VectorizeConfig &C=VectorizeConfig())
Pass * createLoopIdiomPass()
ModulePass * createModuleDebugInfoPrinterPass()
ModulePass * createGlobalsAAWrapperPass()
FunctionPass * createSROAPass()
FunctionPass * createInstructionNamerPass()
Provides passes for computing function attributes based on interprocedural analyses.
ImmutablePass * createCFLSteensAAWrapperPass()
FunctionPass * createPostDomOnlyViewerPass()
FunctionPass * createCostModelAnalysisPass()
ImmutablePass * createTypeBasedAAWrapperPass()
FunctionPass * createPostDomOnlyPrinterPass()
Pass * createSLPVectorizerPass()
ModulePass * createPrintModulePass(raw_ostream &OS, const std::string &Banner="", bool ShouldPreserveUseListOrder=false)
Create and return a pass that writes the module to the specified raw_ostream.
This file defines passes to print out IR in various granularities.
FunctionPass * createPostDomTree()
A raw_ostream that writes to an std::string.
Pass * createFunctionInliningPass()
createFunctionInliningPass - Return a new pass object that uses a heuristic to inline direct function...
Pass * createPruneEHPass()
createPruneEHPass - Return a new pass object which transforms invoke instructions into calls...
ModulePass * createStripSymbolsPass(bool OnlyDebugInfo=false)
FunctionPass * createGuardWideningPass()
FunctionPass * createEarlyCSEPass(bool UseMemorySSA=false)
FunctionPass * createScalarizerPass()
This is the interface for LLVM's primary stateless and local alias analysis.
static Function * Create(FunctionType *Ty, LinkageTypes Linkage, const Twine &N="", Module *M=nullptr)
ImmutablePass * createCFLAndersAAWrapperPass()
FunctionPass * createInstructionSimplifierPass()
Pass * createStructurizeCFGPass(bool SkipUniformRegions=false)
When SkipUniformRegions is true the structizer will not structurize regions that only contain uniform...
FunctionPass * createMemDerefPrinter()
bool AreStatisticsEnabled()
Check if statistics are enabled.
ModulePass * createMetaRenamerPass()
Pass * createLoopRotatePass(int MaxHeaderSize=-1)
Pass * createIndVarSimplifyPass()
Pass * createInductiveRangeCheckEliminationPass()
FunctionPass * createAggressiveDCEPass()
FunctionPass * createLowerExpectIntrinsicPass()
ImmutablePass * createObjCARCAAWrapperPass()
ModulePass * createCallGraphViewerPass()
FunctionPass * createConstantHoistingPass()
FunctionPass * createNaryReassociatePass()