LLVM  mainline
Public Member Functions | Static Public Member Functions
llvm::PassManager< IRUnitT > Class Template Reference

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

#include <PassManager.h>

List of all members.

Public Member Functions

 PassManager (bool DebugLogging=false)
 Construct a pass manager.
 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.
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 ( ) [inline, static]

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: