LLVM  13.0.0git
Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & > Class Reference

#include "llvm/Transforms/Scalar/LoopPassManager.h"

Inheritance diagram for llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >:
Inheritance graph
[legend]
Collaboration diagram for llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >:
Collaboration graph
[legend]

Public Member Functions

 PassManager ()
 
 PassManager (PassManager &&Arg)
 
PassManageroperator= (PassManager &&RHS)
 
PreservedAnalyses run (Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U)
 Add either a loop pass or a loop-nest pass to the pass manager. More...
 
template<typename PassT >
std::enable_if_t< is_detected< HasRunOnLoopT, PassT >::value > addPass (PassT Pass)
 
template<typename PassT >
std::enable_if_t<!is_detected< HasRunOnLoopT, PassT >::value > addPass (PassT Pass)
 
template<typename PassT >
std::enable_if_t< is_detected< HasRunOnLoopT, PassT >::value > addPass (RepeatedPass< PassT > Pass)
 
template<typename PassT >
std::enable_if_t<!is_detected< HasRunOnLoopT, PassT >::value > addPass (RepeatedPass< PassT > Pass)
 
bool isEmpty () const
 
size_t getNumLoopPasses () const
 
size_t getNumLoopNestPasses () const
 

Static Public Member Functions

static bool isRequired ()
 
- Static Public Member Functions inherited from llvm::PassInfoMixin< PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & > >
static StringRef name ()
 Gets the name of the pass we are mixed into. More...
 

Protected Types

using LoopPassConceptT = detail::PassConcept< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >
 
using LoopNestPassConceptT = detail::PassConcept< LoopNest, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >
 

Protected Member Functions

template<typename IRUnitT , typename PassT >
Optional< PreservedAnalysesrunSinglePass (IRUnitT &IR, PassT &Pass, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U, PassInstrumentation &PI)
 Run either a loop pass or a loop-nest pass. More...
 
PreservedAnalyses runWithLoopNestPasses (Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U)
 
PreservedAnalyses runWithoutLoopNestPasses (Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U)
 

Protected Attributes

BitVector IsLoopNestPass
 
std::vector< std::unique_ptr< LoopPassConceptT > > LoopPasses
 
std::vector< std::unique_ptr< LoopNestPassConceptT > > LoopNestPasses
 

Detailed Description

Definition at line 70 of file LoopPassManager.h.

Member Typedef Documentation

◆ LoopNestPassConceptT

Definition at line 163 of file LoopPassManager.h.

◆ LoopPassConceptT

Definition at line 160 of file LoopPassManager.h.

Constructor & Destructor Documentation

◆ PassManager() [1/2]

Definition at line 76 of file LoopPassManager.h.

◆ PassManager() [2/2]

Definition at line 82 of file LoopPassManager.h.

Member Function Documentation

◆ addPass() [1/4]

template<typename PassT >
std::enable_if_t<is_detected<HasRunOnLoopT, PassT>::value> llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::addPass ( PassT  Pass)
inline

◆ addPass() [2/4]

template<typename PassT >
std::enable_if_t<!is_detected<HasRunOnLoopT, PassT>::value> llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::addPass ( PassT  Pass)
inline

Definition at line 115 of file LoopPassManager.h.

References move.

◆ addPass() [3/4]

template<typename PassT >
std::enable_if_t<is_detected<HasRunOnLoopT, PassT>::value> llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::addPass ( RepeatedPass< PassT >  Pass)
inline

Definition at line 129 of file LoopPassManager.h.

References move.

◆ addPass() [4/4]

template<typename PassT >
std::enable_if_t<!is_detected<HasRunOnLoopT, PassT>::value> llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::addPass ( RepeatedPass< PassT >  Pass)
inline

Definition at line 140 of file LoopPassManager.h.

References move.

◆ getNumLoopNestPasses()

size_t llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::getNumLoopNestPasses ( ) const
inline

Definition at line 155 of file LoopPassManager.h.

◆ getNumLoopPasses()

◆ isEmpty()

Definition at line 150 of file LoopPassManager.h.

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

◆ isRequired()

static bool llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::isRequired ( )
inlinestatic

Definition at line 152 of file LoopPassManager.h.

◆ operator=()

Definition at line 87 of file LoopPassManager.h.

References move.

◆ run()

Add either a loop pass or a loop-nest pass to the pass manager.

Explicitly specialize the pass manager's run method to handle loop nest structure updates.

Append Pass to the list of loop passes if it has a dedicated loops and to the list of loop-nest passes if the

loop-nests instead. Also append whether Pass is loop-nest pass or not to the end of

Definition at line 28 of file LoopPassManager.cpp.

References llvm::LoopBase< BlockT, LoopT >::isOutermost(), and llvm::PreservedAnalyses::preserveSet().

◆ runSinglePass()

template<typename IRUnitT , typename PassT >
Optional< PreservedAnalyses > llvm::LoopPassManager::runSinglePass ( IRUnitT &  IR,
PassT &  Pass,
LoopAnalysisManager AM,
LoopStandardAnalysisResults AR,
LPMUpdater U,
PassInstrumentation PI 
)
protected

Run either a loop pass or a loop-nest pass.

Returns None if PassInstrumentation's BeforePass returns false. Otherwise, returns the preserved analyses of the pass.

Definition at line 358 of file LoopPassManager.h.

References IR, llvm::None, Pass, llvm::PassInstrumentation::runAfterPass(), llvm::PassInstrumentation::runAfterPassInvalidated(), and llvm::PassInstrumentation::runBeforePass().

◆ runWithLoopNestPasses()

PreservedAnalyses llvm::LoopPassManager::runWithLoopNestPasses ( Loop L,
LoopAnalysisManager AM,
LoopStandardAnalysisResults AR,
LPMUpdater U 
)
protected

◆ runWithoutLoopNestPasses()

PreservedAnalyses llvm::LoopPassManager::runWithoutLoopNestPasses ( Loop L,
LoopAnalysisManager AM,
LoopStandardAnalysisResults AR,
LPMUpdater U 
)
protected

Member Data Documentation

◆ IsLoopNestPass

Definition at line 167 of file LoopPassManager.h.

◆ LoopNestPasses

std::vector<std::unique_ptr<LoopNestPassConceptT> > llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::LoopNestPasses
protected

Definition at line 169 of file LoopPassManager.h.

◆ LoopPasses

std::vector<std::unique_ptr<LoopPassConceptT> > llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::LoopPasses
protected

Definition at line 168 of file LoopPassManager.h.


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