LLVM  8.0.1
Classes | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
llvm::PMTopLevelManager Class Referenceabstract

PMTopLevelManager manages LastUser info and collects common APIs used by top level pass managers. More...

#include "llvm/IR/LegacyPassManagers.h"

Inheritance diagram for llvm::PMTopLevelManager:
Inheritance graph
[legend]
Collaboration diagram for llvm::PMTopLevelManager:
Collaboration graph
[legend]

Public Member Functions

void schedulePass (Pass *P)
 Schedule pass P for execution. More...
 
void setLastUser (ArrayRef< Pass *> AnalysisPasses, Pass *P)
 Set pass P as the last user of the given analysis passes. More...
 
void collectLastUses (SmallVectorImpl< Pass *> &LastUses, Pass *P)
 Collect passes whose last user is P. More...
 
PassfindAnalysisPass (AnalysisID AID)
 Find the pass that implements Analysis AID. More...
 
const PassInfofindAnalysisPassInfo (AnalysisID AID) const
 Retrieve the PassInfo for an analysis. More...
 
AnalysisUsagefindAnalysisUsage (Pass *P)
 Find analysis usage information for the pass P. More...
 
virtual ~PMTopLevelManager ()
 Destructor. More...
 
void addImmutablePass (ImmutablePass *P)
 Add immutable pass and initialize it. More...
 
SmallVectorImpl< ImmutablePass * > & getImmutablePasses ()
 
void addPassManager (PMDataManager *Manager)
 
void addIndirectPassManager (PMDataManager *Manager)
 
void dumpPasses () const
 
void dumpArguments () const
 

Public Attributes

PMStack activeStack
 

Protected Member Functions

 PMTopLevelManager (PMDataManager *PMDM)
 Initialize top level manager. Create first pass manager. More...
 
unsigned getNumContainedManagers () const
 
void initializeAllAnalysisInfo ()
 

Protected Attributes

SmallVector< PMDataManager *, 8 > PassManagers
 Collection of pass managers. More...
 

Detailed Description

PMTopLevelManager manages LastUser info and collects common APIs used by top level pass managers.

Definition at line 166 of file LegacyPassManagers.h.

Constructor & Destructor Documentation

◆ PMTopLevelManager()

PMTopLevelManager::PMTopLevelManager ( PMDataManager PMDM)
explicitprotected

Initialize top level manager. Create first pass manager.

Definition at line 595 of file LegacyPassManager.cpp.

References llvm::PMDataManager::setTopLevelManager().

◆ ~PMTopLevelManager()

PMTopLevelManager::~PMTopLevelManager ( )
virtual

Destructor.

Definition at line 905 of file LegacyPassManager.cpp.

References P.

Member Function Documentation

◆ addImmutablePass()

void PMTopLevelManager::addImmutablePass ( ImmutablePass P)

Add immutable pass and initialize it.

Definition at line 836 of file LegacyPassManager.cpp.

References assert(), llvm::PassInfo::getInterfacesImplemented(), llvm::Pass::getPassID(), llvm::ImmutablePass::initializePass(), and P.

◆ addIndirectPassManager()

void llvm::PMTopLevelManager::addIndirectPassManager ( PMDataManager Manager)
inline

◆ addPassManager()

void llvm::PMTopLevelManager::addPassManager ( PMDataManager Manager)
inline

Definition at line 212 of file LegacyPassManagers.h.

◆ collectLastUses()

void PMTopLevelManager::collectLastUses ( SmallVectorImpl< Pass *> &  LastUses,
Pass P 
)

◆ dumpArguments()

void PMTopLevelManager::dumpArguments ( ) const

Definition at line 873 of file LegacyPassManager.cpp.

References Arguments, assert(), llvm::dbgs(), and P.

◆ dumpPasses()

void PMTopLevelManager::dumpPasses ( ) const

Definition at line 855 of file LegacyPassManager.cpp.

◆ findAnalysisPass()

Pass * PMTopLevelManager::findAnalysisPass ( AnalysisID  AID)

Find the pass that implements Analysis AID.

Search immutable passes and all pass managers. If desired pass is not found then return NULL.

Definition at line 806 of file LegacyPassManager.cpp.

References P.

◆ findAnalysisPassInfo()

const PassInfo * PMTopLevelManager::findAnalysisPassInfo ( AnalysisID  AID) const

Retrieve the PassInfo for an analysis.

Definition at line 825 of file LegacyPassManager.cpp.

References assert(), llvm::PassRegistry::getPassInfo(), getPassInfo(), and llvm::PassRegistry::getPassRegistry().

◆ findAnalysisUsage()

AnalysisUsage * PMTopLevelManager::findAnalysisUsage ( Pass P)

Find analysis usage information for the pass P.

Definition at line 666 of file LegacyPassManager.cpp.

References llvm::Pass::getAnalysisUsage().

◆ getImmutablePasses()

SmallVectorImpl<ImmutablePass *>& llvm::PMTopLevelManager::getImmutablePasses ( )
inline

Definition at line 208 of file LegacyPassManagers.h.

◆ getNumContainedManagers()

unsigned llvm::PMTopLevelManager::getNumContainedManagers ( ) const
inlineprotected

Definition at line 170 of file LegacyPassManagers.h.

References P.

◆ initializeAllAnalysisInfo()

void PMTopLevelManager::initializeAllAnalysisInfo ( )
protected

◆ schedulePass()

void PMTopLevelManager::schedulePass ( Pass P)

◆ setLastUser()

void PMTopLevelManager::setLastUser ( ArrayRef< Pass *>  AnalysisPasses,
Pass P 
)

Member Data Documentation

◆ activeStack

PMStack llvm::PMTopLevelManager::activeStack

◆ PassManagers

SmallVector<PMDataManager *, 8> llvm::PMTopLevelManager::PassManagers
protected

Collection of pass managers.

Definition at line 231 of file LegacyPassManagers.h.


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