LLVM API Documentation

llvm::PMDataManager Class Reference

#include <PassManagers.h>

Inheritance diagram for llvm::PMDataManager:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

 PMDataManager (int Depth)
virtual ~PMDataManager ()
void recordAvailableAnalysis (Pass *P)
 Augment AvailableAnalysis by adding analysis made available by pass P.
void verifyPreservedAnalysis (Pass *P)
 verifyPreservedAnalysis -- Verify analysis presreved by pass P.
void verifyDomInfo (Pass &P, Function &F)
 verifyDomInfo -- Verify dominator information if it is available.
void removeNotPreservedAnalysis (Pass *P)
 Remove Analysis that is not preserved by the pass.
void removeDeadPasses (Pass *P, const char *Msg, enum PassDebuggingString)
 Remove dead passes.
void add (Pass *P, bool ProcessAnalysis=true)
virtual void addLowerLevelRequiredPass (Pass *P, Pass *RequiredPass)
virtual PassgetOnTheFlyPass (Pass *P, const PassInfo *PI, Function &F)
void initializeAnalysisInfo ()
 Initialize available analysis information.
bool preserveHigherLevelAnalysis (Pass *P)
void collectRequiredAnalysis (SmallVector< Pass *, 8 > &RequiredPasses, SmallVector< AnalysisID, 8 > &ReqPassNotAvailable, Pass *P)
void initializeAnalysisImpl (Pass *P)
PassfindAnalysisPass (AnalysisID AID, bool Direction)
PMTopLevelManagergetTopLevelManager ()
void setTopLevelManager (PMTopLevelManager *T)
unsigned getDepth () const
void dumpLastUses (Pass *P, unsigned Offset) const
void dumpPassArguments () const
void dumpPassInfo (Pass *P, enum PassDebuggingString S1, enum PassDebuggingString S2, const char *Msg)
void dumpRequiredSet (const Pass *P) const
void dumpPreservedSet (const Pass *P) const
virtual unsigned getNumContainedPasses () const
virtual PassManagerType getPassManagerType () const
std::map< AnalysisID, Pass * > * getAvailableAnalysis ()
void populateInheritedAnalysis (PMStack &PMS)

Protected Attributes

PMTopLevelManagerTPM
SmallVector< Pass *, 16 > PassVector
std::map< AnalysisID, Pass * > * InheritedAnalysis [PMT_Last]


Detailed Description

PMDataManager provides the common place to manage the analysis data used by pass managers.

Definition at line 242 of file PassManagers.h.


Constructor & Destructor Documentation

llvm::PMDataManager::PMDataManager ( int  Depth  )  [inline, explicit]

Definition at line 245 of file PassManagers.h.

References initializeAnalysisInfo().

PMDataManager::~PMDataManager (  )  [virtual]

Definition at line 1081 of file PassManager.cpp.

References E, and PassVector.


Member Function Documentation

void PMDataManager::recordAvailableAnalysis ( Pass P  ) 

Augment AvailableAnalysis by adding analysis made available by pass P.

Augement AvailableAnalysis by adding analysis made available by pass P.

Definition at line 622 of file PassManager.cpp.

References llvm::Pass::getPassInfo(), II, and PI.

Referenced by add(), llvm::PassManagerImpl::addTopLevelPass(), llvm::FunctionPassManagerImpl::addTopLevelPass(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::MPPassManager::runOnModule().

void PMDataManager::verifyPreservedAnalysis ( Pass P  ) 

verifyPreservedAnalysis -- Verify analysis presreved by pass P.

verifyPreservedAnalysis -- Verify analysis preserved by pass P.

Definition at line 659 of file PassManager.cpp.

References E, findAnalysisPass(), llvm::PMTopLevelManager::findAnalysisUsage(), llvm::AnalysisUsage::getPreservedSet(), and TPM.

Referenced by llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::MPPassManager::runOnModule().

void PMDataManager::verifyDomInfo ( Pass P,
Function F 
)

void PMDataManager::removeNotPreservedAnalysis ( Pass P  ) 

void PMDataManager::removeDeadPasses ( Pass P,
const char *  Msg,
enum PassDebuggingString  DBG_STR 
)

void PMDataManager::add ( Pass P,
bool  ProcessAnalysis = true 
)

void PMDataManager::addLowerLevelRequiredPass ( Pass P,
Pass RequiredPass 
) [virtual]

Add RequiredPass into list of lower level passes required by pass P. RequiredPass is run on the fly by Pass Manager when P requests it through getAnalysis interface.

Add RequiredPass into list of lower level passes required by pass P. RequiredPass is run on the fly by Pass Manager when P requests it through getAnalysis interface. This should be handled by specific pass manager.

Reimplemented in llvm::MPPassManager.

Definition at line 1058 of file PassManager.cpp.

References llvm::cerr(), llvm::PMTopLevelManager::dumpArguments(), llvm::PMTopLevelManager::dumpPasses(), llvm::Pass::getPassName(), and TPM.

Referenced by add().

virtual Pass* llvm::PMDataManager::getOnTheFlyPass ( Pass P,
const PassInfo PI,
Function F 
) [inline, virtual]

Reimplemented in llvm::MPPassManager.

Definition at line 275 of file PassManagers.h.

Referenced by llvm::AnalysisResolver::findImplPass().

void llvm::PMDataManager::initializeAnalysisInfo (  )  [inline]

Initialize available analysis information.

Definition at line 281 of file PassManagers.h.

References InheritedAnalysis, and llvm::PMT_Last.

Referenced by llvm::PMTopLevelManager::initializeAllAnalysisInfo(), PMDataManager(), and llvm::PMStack::pop().

bool PMDataManager::preserveHigherLevelAnalysis ( Pass P  ) 

void PMDataManager::collectRequiredAnalysis ( SmallVector< Pass *, 8 > &  RP,
SmallVector< AnalysisID, 8 > &  RP_NotAvail,
Pass P 
)

Populate RequiredPasses with analysis pass that are required by pass P and are available. Populate ReqPassNotAvailable with analysis pass that are required by pass P but are not available.

Populate RP with analysis pass that are required by pass P and are available. Populate RP_NotAvail with analysis pass that are required by pass P but are not available.

Definition at line 885 of file PassManager.cpp.

References E, findAnalysisPass(), llvm::PMTopLevelManager::findAnalysisUsage(), llvm::AnalysisUsage::getRequiredSet(), llvm::AnalysisUsage::getRequiredTransitiveSet(), llvm::SmallVectorImpl< T >::push_back(), and TPM.

Referenced by add().

void PMDataManager::initializeAnalysisImpl ( Pass P  ) 

All Required analyses should be available to the pass as it runs! Here we fill in the AnalysisImpls member of the pass so that it can successfully use the getAnalysis() method to retrieve the implementations it needs.

Definition at line 916 of file PassManager.cpp.

References llvm::AnalysisResolver::addAnalysisImplsPair(), E, findAnalysisPass(), llvm::PMTopLevelManager::findAnalysisUsage(), llvm::AnalysisUsage::getRequiredSet(), llvm::Pass::getResolver(), and TPM.

Referenced by llvm::PassManagerImpl::addTopLevelPass(), llvm::FunctionPassManagerImpl::addTopLevelPass(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::MPPassManager::runOnModule().

Pass * PMDataManager::findAnalysisPass ( AnalysisID  AID,
bool  SearchParent 
)

Find the pass that implements Analysis AID. If desired pass is not found then return NULL.

Find the pass that implements Analysis AID. If desired pass is not found then return NULL.

Definition at line 935 of file PassManager.cpp.

References llvm::PMTopLevelManager::findAnalysisPass(), if(), and TPM.

Referenced by collectRequiredAnalysis(), llvm::PMTopLevelManager::findAnalysisPass(), llvm::AnalysisResolver::getAnalysisToUpdate(), initializeAnalysisImpl(), and verifyPreservedAnalysis().

PMTopLevelManager* llvm::PMDataManager::getTopLevelManager (  )  [inline]

void llvm::PMDataManager::setTopLevelManager ( PMTopLevelManager T  )  [inline]

unsigned llvm::PMDataManager::getDepth (  )  const [inline]

Definition at line 313 of file PassManagers.h.

Referenced by add(), and dumpPassInfo().

void PMDataManager::dumpLastUses ( Pass P,
unsigned  Offset 
) const

void PMDataManager::dumpPassArguments (  )  const

Definition at line 968 of file PassManager.cpp.

References llvm::cerr(), E, PassVector, and PI.

Referenced by llvm::PMTopLevelManager::dumpArguments().

void PMDataManager::dumpPassInfo ( Pass P,
enum PassDebuggingString  S1,
enum PassDebuggingString  S2,
const char *  Msg 
)

void PMDataManager::dumpRequiredSet ( const Pass P  )  const

void PMDataManager::dumpPreservedSet ( const Pass P  )  const

virtual unsigned llvm::PMDataManager::getNumContainedPasses (  )  const [inline, virtual]

virtual PassManagerType llvm::PMDataManager::getPassManagerType (  )  const [inline, virtual]

std::map<AnalysisID, Pass*>* llvm::PMDataManager::getAvailableAnalysis (  )  [inline]

Definition at line 332 of file PassManagers.h.

void llvm::PMDataManager::populateInheritedAnalysis ( PMStack PMS  )  [inline]


Member Data Documentation

std::map<AnalysisID, Pass *>* llvm::PMDataManager::InheritedAnalysis[PMT_Last] [protected]


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



This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.