LLVM 22.0.0git
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:
[legend]

Public Member Functions

void schedulePass (Pass *P)
 Schedule pass P for execution.
void setLastUser (ArrayRef< Pass * > AnalysisPasses, Pass *P)
 Set pass P as the last user of the given analysis passes.
void collectLastUses (SmallVectorImpl< Pass * > &LastUses, Pass *P)
 Collect passes whose last user is P.
PassfindAnalysisPass (AnalysisID AID)
 Find the pass that implements Analysis AID.
const PassInfofindAnalysisPassInfo (AnalysisID AID) const
 Retrieve the PassInfo for an analysis.
AnalysisUsagefindAnalysisUsage (Pass *P)
 Find analysis usage information for the pass P.
virtual ~PMTopLevelManager ()
 Destructor.
void addImmutablePass (ImmutablePass *P)
 Add immutable pass and initialize it.
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.
unsigned getNumContainedManagers () const
void initializeAllAnalysisInfo ()

Protected Attributes

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

Detailed Description

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

Definition at line 159 of file LegacyPassManagers.h.

Constructor & Destructor Documentation

◆ PMTopLevelManager()

PMTopLevelManager::PMTopLevelManager ( PMDataManager * PMDM)
explicitprotected

◆ ~PMTopLevelManager()

PMTopLevelManager::~PMTopLevelManager ( )
virtual

Destructor.

Definition at line 846 of file LegacyPassManager.cpp.

References P, and PassManagers.

Member Function Documentation

◆ addImmutablePass()

void PMTopLevelManager::addImmutablePass ( ImmutablePass * P)

Add immutable pass and initialize it.

Definition at line 791 of file LegacyPassManager.cpp.

References P.

Referenced by schedulePass().

◆ addIndirectPassManager()

◆ addPassManager()

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

Definition at line 205 of file LegacyPassManagers.h.

References PassManagers.

Referenced by PMTopLevelManager().

◆ collectLastUses()

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

Collect passes whose last user is P.

Definition at line 607 of file LegacyPassManager.cpp.

References llvm::SmallVectorImpl< T >::append(), and P.

◆ dumpArguments()

void PMTopLevelManager::dumpArguments ( ) const

◆ dumpPasses()

void PMTopLevelManager::dumpPasses ( ) const

◆ 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 761 of file LegacyPassManager.cpp.

References P, and PassManagers.

Referenced by schedulePass(), and setLastUser().

◆ findAnalysisPassInfo()

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

Retrieve the PassInfo for an analysis.

Definition at line 780 of file LegacyPassManager.cpp.

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

Referenced by dumpArguments(), and schedulePass().

◆ findAnalysisUsage()

AnalysisUsage * PMTopLevelManager::findAnalysisUsage ( Pass * P)

Find analysis usage information for the pass P.

Definition at line 617 of file LegacyPassManager.cpp.

References assert(), N, and P.

Referenced by schedulePass(), and setLastUser().

◆ getImmutablePasses()

◆ getNumContainedManagers()

◆ initializeAllAnalysisInfo()

void PMTopLevelManager::initializeAllAnalysisInfo ( )
protected

◆ schedulePass()

◆ setLastUser()

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

Member Data Documentation

◆ activeStack

PMStack llvm::PMTopLevelManager::activeStack

Definition at line 220 of file LegacyPassManagers.h.

Referenced by PMTopLevelManager(), and schedulePass().

◆ PassManagers


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