LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
llvm::PMTopLevelManager Class Referenceabstract

#include <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)
 
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)
 
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 167 of file LegacyPassManagers.h.

Constructor & Destructor Documentation

PMTopLevelManager::PMTopLevelManager ( PMDataManager PMDM)
explicitprotected

Initialize top level manager. Create first pass manager.

Definition at line 503 of file LegacyPassManager.cpp.

References llvm::PMDataManager::setTopLevelManager().

PMTopLevelManager::~PMTopLevelManager ( )
virtual

Destructor.

Definition at line 803 of file LegacyPassManager.cpp.

References I, and PassManagers.

Member Function Documentation

void llvm::PMTopLevelManager::addImmutablePass ( ImmutablePass P)
inline

Add immutable pass and initialize it.

Definition at line 204 of file LegacyPassManagers.h.

References llvm::ImmutablePass::initializePass().

Referenced by schedulePass().

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

Definition at line 213 of file LegacyPassManagers.h.

References PassManagers.

void PMTopLevelManager::collectLastUses ( SmallVectorImpl< Pass * > &  LastUses,
Pass P 
)
void PMTopLevelManager::dumpArguments ( ) const
void PMTopLevelManager::dumpPasses ( ) const
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 698 of file LegacyPassManager.cpp.

References llvm::PassInfo::getInterfacesImplemented(), llvm::PassRegistry::getPassInfo(), llvm::PassRegistry::getPassRegistry(), I, P, and PassManagers.

Referenced by llvm::PMDataManager::findAnalysisPass(), and schedulePass().

AnalysisUsage * PMTopLevelManager::findAnalysisUsage ( Pass P)
SmallVectorImpl<ImmutablePass *>& llvm::PMTopLevelManager::getImmutablePasses ( )
inline
unsigned llvm::PMTopLevelManager::getNumContainedManagers ( ) const
inlineprotected
void PMTopLevelManager::initializeAllAnalysisInfo ( )
protected
void PMTopLevelManager::schedulePass ( Pass P)
void PMTopLevelManager::setLastUser ( ArrayRef< Pass * >  AnalysisPasses,
Pass P 
)

Member Data Documentation

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

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