LLVM
8.0.1
|
Manages a sequence of passes over a particular unit of IR. More...
#include "llvm/IR/PassManager.h"
Public Member Functions | |
PassManager (bool DebugLogging=false) | |
Construct a pass manager. More... | |
PassManager (PassManager &&Arg) | |
PassManager & | operator= (PassManager &&RHS) |
PreservedAnalyses | run (IRUnitT &IR, AnalysisManagerT &AM, ExtraArgTs... ExtraArgs) |
Run all of the passes in this manager over the given unit of IR. More... | |
template<typename PassT > | |
void | addPass (PassT Pass) |
template<> | |
PreservedAnalyses | run (LazyCallGraph::SCC &InitialC, CGSCCAnalysisManager &AM, LazyCallGraph &G, CGSCCUpdateResult &UR) |
template<> | |
PreservedAnalyses | run (Loop &InitialL, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AnalysisResults, LPMUpdater &U) |
template<> | |
PreservedAnalyses | run (LazyCallGraph::SCC &InitialC, CGSCCAnalysisManager &AM, LazyCallGraph &G, CGSCCUpdateResult &UR) |
Explicitly specialize the pass manager run method to handle call graph updates. More... | |
template<> | |
PreservedAnalyses | run (Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U) |
Explicitly specialize the pass manager's run method to handle loop nest structure updates. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::PassInfoMixin< PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs... > > | |
static StringRef | name () |
Gets the name of the pass we are mixed into. More... | |
Manages a sequence of passes over a particular unit of IR.
A pass manager contains a sequence of passes to run over a particular unit of IR (e.g. Functions, Modules). It is itself a valid pass over that unit of IR, and when run over some given IR will run each of its contained passes in sequence. Pass managers are the primary and most basic building block of a pass pipeline.
When you run a pass manager, you provide an AnalysisManager<IRUnitT>
argument. The pass manager will propagate that analysis manager to each pass it runs, and will call the analysis manager's invalidation routine with the PreservedAnalyses of each pass it runs.
Definition at line 458 of file PassManager.h.
|
inlineexplicit |
Construct a pass manager.
If DebugLogging
is true, we'll log our progress to llvm::dbgs().
Definition at line 464 of file PassManager.h.
|
inline |
Definition at line 470 of file PassManager.h.
|
inline |
Definition at line 542 of file PassManager.h.
Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildModuleOptimizationPipeline(), llvm::PassBuilder::buildModuleSimplificationPipeline(), llvm::PassBuilder::buildPerModuleDefaultPipeline(), llvm::PassBuilder::buildThinLTODefaultPipeline(), llvm::PassBuilder::buildThinLTOPreLinkDefaultPipeline(), eliminateDeadCode(), and llvm::parseAnalysisUtilityPasses().
|
inline |
Definition at line 474 of file PassManager.h.
PreservedAnalyses llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::run | ( | Loop & | L, |
LoopAnalysisManager & | AM, | ||
LoopStandardAnalysisResults & | AR, | ||
LPMUpdater & | U | ||
) |
Explicitly specialize the pass manager's run method to handle loop nest structure updates.
Definition at line 26 of file LoopPassManager.cpp.
PreservedAnalyses llvm::PassManager< LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & >::run | ( | LazyCallGraph::SCC & | InitialC, |
CGSCCAnalysisManager & | AM, | ||
LazyCallGraph & | G, | ||
CGSCCUpdateResult & | UR | ||
) |
Explicitly specialize the pass manager run method to handle call graph updates.
Definition at line 54 of file CGSCCPassManager.cpp.
PreservedAnalyses llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::run | ( | Loop & | InitialL, |
LoopAnalysisManager & | AM, | ||
LoopStandardAnalysisResults & | AnalysisResults, | ||
LPMUpdater & | U | ||
) |
PreservedAnalyses llvm::PassManager< LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & >::run | ( | LazyCallGraph::SCC & | InitialC, |
CGSCCAnalysisManager & | AM, | ||
LazyCallGraph & | G, | ||
CGSCCUpdateResult & | UR | ||
) |
|
inline |
Run all of the passes in this manager over the given unit of IR.
ExtraArgs are passed to each pass.
Definition at line 482 of file PassManager.h.
Referenced by eliminateDeadCode().