LLVM  3.7.0
Public Member Functions | Static Public Member Functions | List of all members
llvm::PassManager< IRUnitT > Class Template Reference

Manages a sequence of passes over units of IR. More...

#include <PassManager.h>

Public Member Functions

 PassManager (bool DebugLogging=false)
 Construct a pass manager. More...
 
 PassManager (PassManager &&Arg)
 
PassManageroperator= (PassManager &&RHS)
 
PreservedAnalyses run (IRUnitT &IR, AnalysisManager< IRUnitT > *AM=nullptr)
 Run all of the passes in this manager over the IR. More...
 
template<typename PassT >
void addPass (PassT Pass)
 

Static Public Member Functions

static StringRef name ()
 

Detailed Description

template<typename IRUnitT>
class llvm::PassManager< IRUnitT >

Manages a sequence of passes over units of IR.

A pass manager contains a sequence of passes to run over units of IR. It is itself a valid pass over that unit of IR, and when over some given IR will run each pass in sequence. This is the primary and most basic building block of a pass pipeline.

If it is run with an AnalysisManager<IRUnitT> argument, it will propagate that analysis manager to each pass it runs, as well as calling the analysis manager's invalidation routine with the PreservedAnalyses of each pass it runs.

Definition at line 180 of file PassManager.h.

Constructor & Destructor Documentation

template<typename IRUnitT >
llvm::PassManager< IRUnitT >::PassManager ( bool  DebugLogging = false)
inline

Construct a pass manager.

It can be passed a flag to get debug logging as the passes are run.

Definition at line 185 of file PassManager.h.

template<typename IRUnitT >
llvm::PassManager< IRUnitT >::PassManager ( PassManager< IRUnitT > &&  Arg)
inline

Definition at line 188 of file PassManager.h.

Member Function Documentation

template<typename IRUnitT >
template<typename PassT >
void llvm::PassManager< IRUnitT >::addPass ( PassT  Pass)
inline

Definition at line 235 of file PassManager.h.

Referenced by llvm::PassBuilder::parsePassPipeline().

template<typename IRUnitT >
static StringRef llvm::PassManager< IRUnitT >::name ( )
inlinestatic

Definition at line 240 of file PassManager.h.

template<typename IRUnitT >
PassManager& llvm::PassManager< IRUnitT >::operator= ( PassManager< IRUnitT > &&  RHS)
inline

Definition at line 191 of file PassManager.h.

template<typename IRUnitT >
PreservedAnalyses llvm::PassManager< IRUnitT >::run ( IRUnitT &  IR,
AnalysisManager< IRUnitT > *  AM = nullptr 
)
inline

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

Definition at line 198 of file PassManager.h.

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


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