LLVM  4.0.0
Public Member Functions | List of all members
llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs > Class Template Reference

Manages a sequence of passes over a particular unit of IR. More...

#include <PassManager.h>

Inheritance diagram for llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >:
[legend]
Collaboration diagram for llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >:
[legend]

Public Member Functions

 PassManager (bool DebugLogging=false)
 Construct a pass manager. More...
 
 PassManager (PassManager &&Arg)
 
PassManageroperator= (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)
 
template<>
PreservedAnalyses run (Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U)
 

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...
 

Detailed Description

template<typename IRUnitT, typename AnalysisManagerT = AnalysisManager<IRUnitT>, typename... ExtraArgTs>
class llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >

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 389 of file PassManager.h.

Constructor & Destructor Documentation

template<typename IRUnitT , typename AnalysisManagerT = AnalysisManager<IRUnitT>, typename... ExtraArgTs>
llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::PassManager ( bool  DebugLogging = false)
inlineexplicit

Construct a pass manager.

If DebugLogging is true, we'll log our progress to llvm::dbgs().

Definition at line 395 of file PassManager.h.

template<typename IRUnitT , typename AnalysisManagerT = AnalysisManager<IRUnitT>, typename... ExtraArgTs>
llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::PassManager ( PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs > &&  Arg)
inline

Definition at line 401 of file PassManager.h.

Member Function Documentation

template<typename IRUnitT , typename AnalysisManagerT = AnalysisManager<IRUnitT>, typename... ExtraArgTs>
template<typename PassT >
void llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::addPass ( PassT  Pass)
inline
template<typename IRUnitT , typename AnalysisManagerT = AnalysisManager<IRUnitT>, typename... ExtraArgTs>
PassManager& llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::operator= ( PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs > &&  RHS)
inline

Definition at line 405 of file PassManager.h.

template<typename IRUnitT , typename AnalysisManagerT = AnalysisManager<IRUnitT>, typename... ExtraArgTs>
PreservedAnalyses llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::run ( IRUnitT &  IR,
AnalysisManagerT &  AM,
ExtraArgTs...  ExtraArgs 
)
inline

Run all of the passes in this manager over the given unit of IR.

ExtraArgs are passed to each pass.

Definition at line 413 of file PassManager.h.

References llvm::PreservedAnalyses::all(), llvm::dbgs(), llvm::PreservedAnalyses::intersect(), and llvm::PreservedAnalyses::preserveSet().


The documentation for this class was generated from the following file: