LLVM: llvm::legacy::FunctionPassManagerImpl Class Reference (original) (raw)

FunctionPassManagerImpl manages FPPassManagers. More...

Public Member Functions
FunctionPassManagerImpl ()
void add (Pass *P)
Pass * createPrinterPass (raw_ostream &O, const std::string &Banner) const override
createPrinterPass - Get a function printer pass.
void releaseMemoryOnTheFly ()
bool run (Function &F)
run - Execute all of the passes scheduled for execution.
bool doInitialization (Module &M) override
doInitialization - Run all of the initializers for the function passes.
bool doFinalization (Module &M) override
doFinalization - Run all of the finalizers for the function passes.
PMDataManager * getAsPMDataManager () override
Pass * getAsPass () override
PassManagerType getTopLevelPassManagerType () override
void getAnalysisUsage (AnalysisUsage &Info) const override
Pass Manager itself does not invalidate any analysis info.
FPPassManager * getContainedManager (unsigned N)
void dumpPassStructure (unsigned Offset) override
Public Member Functions inherited from llvm::Pass
Pass (PassKind K, char &pid)
Pass (const Pass &)=delete
Pass & operator= (const Pass &)=delete
virtual ~Pass ()
PassKind getPassKind () const
virtual StringRef getPassName () const
getPassName - Return a nice clean name for a pass.
StringRef getPassArgument () const
Return a nice clean name for a pass corresponding to that used to enable the pass in opt.
AnalysisID getPassID () const
getPassID - Return the PassID number that corresponds to this pass.
virtual void print (raw_ostream &OS, const Module *M) const
print - Print out the internal state of the pass.
void dump () const
virtual void assignPassManager (PMStack &, PassManagerType)
Each pass is responsible for assigning a pass manager to itself.
virtual void preparePassManager (PMStack &)
Check if available pass managers are suitable for this pass or not.
virtual PassManagerType getPotentialPassManagerType () const
Return what kind of Pass Manager can manage this pass.
void setResolver (AnalysisResolver *AR)
AnalysisResolver * getResolver () const
virtual void releaseMemory ()
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed.
virtual ImmutablePass * getAsImmutablePass ()
virtual void verifyAnalysis () const
verifyAnalysis() - This member can be implemented by a analysis pass to check state of analysis information.
template
AnalysisType * getAnalysisIfAvailable () const
getAnalysisIfAvailable() - Subclasses use this function to get analysis information that might be around, for example to update it.
bool mustPreserveAnalysisID (char &AID) const
mustPreserveAnalysisID - This method serves the same function as getAnalysisIfAvailable, but works if you just have an AnalysisID.
template
AnalysisType & getAnalysis () const
getAnalysis() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function.
template
AnalysisType & getAnalysis (Function &F, bool *Changed=nullptr)
getAnalysis() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function.
template
AnalysisType & getAnalysisID (AnalysisID PI) const
template
AnalysisType & getAnalysisID (AnalysisID PI, Function &F, bool *Changed=nullptr)
Public Member Functions inherited from llvm::PMDataManager
PMDataManager ()
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 removeNotPreservedAnalysis (Pass *P)
Remove Analysis that is not preserved by the pass.
void removeDeadPasses (Pass *P, StringRef Msg, enum PassDebuggingString)
Remove dead passes used by P.
void freePass (Pass *P, StringRef Msg, enum PassDebuggingString)
Remove P.
void add (Pass *P, bool ProcessAnalysis=true)
Add pass P into the PassVector.
virtual void addLowerLevelRequiredPass (Pass *P, Pass *RequiredPass)
Add RequiredPass into list of lower level passes required by pass P.
virtual std::tuple< Pass *, bool > getOnTheFlyPass (Pass *P, AnalysisID PI, Function &F)
void initializeAnalysisInfo ()
Initialize available analysis information.
bool preserveHigherLevelAnalysis (Pass *P)
void collectRequiredAndUsedAnalyses (SmallVectorImpl< Pass * > &UsedPasses, SmallVectorImpl< AnalysisID > &ReqPassNotAvailable, Pass *P)
Populate UsedPasses with analysis pass that are used or required by pass P and are available.
void initializeAnalysisImpl (Pass *P)
All Required analyses should be available to the pass as it runs!
Pass * findAnalysisPass (AnalysisID AID, bool Direction)
Find the pass that implements Analysis AID.
PMTopLevelManager * getTopLevelManager ()
void setTopLevelManager (PMTopLevelManager *T)
unsigned getDepth () const
void setDepth (unsigned newDepth)
void dumpLastUses (Pass *P, unsigned Offset) const
void dumpPassArguments () const
void dumpPassInfo (Pass *P, enum PassDebuggingString S1, enum PassDebuggingString S2, StringRef Msg)
void dumpRequiredSet (const Pass *P) const
void dumpPreservedSet (const Pass *P) const
void dumpUsedSet (const Pass *P) const
unsigned getNumContainedPasses () const
virtual PassManagerType getPassManagerType () const
DenseMap< AnalysisID, Pass * > * getAvailableAnalysis ()
void populateInheritedAnalysis (PMStack &PMS)
unsigned initSizeRemarkInfo (Module &M, StringMap< std::pair< unsigned, unsigned > > &FunctionToInstrCount)
Set the initial size of the module if the user has specified that they want remarks for size.
void emitInstrCountChangedRemark (Pass *P, Module &M, int64_t Delta, unsigned CountBefore, StringMap< std::pair< unsigned, unsigned > > &FunctionToInstrCount, Function *F=nullptr)
Emit a remark signifying that the number of IR instructions in the module changed.
Public Member Functions inherited from llvm::PMTopLevelManager
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.
Pass * findAnalysisPass (AnalysisID AID)
Find the pass that implements Analysis AID.
const PassInfo * findAnalysisPassInfo (AnalysisID AID) const
Retrieve the PassInfo for an analysis.
AnalysisUsage * findAnalysisUsage (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
Static Public Attributes
static char ID = 0
Additional Inherited Members
Static Public Member Functions inherited from llvm::Pass
static const PassInfo * lookupPassInfo (const void *TI)
static const PassInfo * lookupPassInfo (StringRef Arg)
static Pass * createPass (AnalysisID ID)
Public Attributes inherited from llvm::PMTopLevelManager
PMStack activeStack
Protected Member Functions inherited from llvm::PMDataManager
bool isPassDebuggingExecutionsOrMore () const
isPassDebuggingExecutionsOrMore - Return true if -debug-pass=Executions or higher is specified.
Protected Member Functions inherited from llvm::PMTopLevelManager
PMTopLevelManager (PMDataManager *PMDM)
Initialize top level manager. Create first pass manager.
unsigned getNumContainedManagers () const
void initializeAllAnalysisInfo ()
Protected Attributes inherited from llvm::PMDataManager
PMTopLevelManager * TPM = nullptr
SmallVector< Pass *, 16 > PassVector
DenseMap< AnalysisID, Pass * > * InheritedAnalysis [PMT_Last]
Protected Attributes inherited from llvm::PMTopLevelManager
SmallVector< PMDataManager *, 8 > PassManagers
Collection of pass managers.

FunctionPassManagerImpl manages FPPassManagers.

Definition at line 242 of file LegacyPassManager.cpp.

llvm::legacy::FunctionPassManagerImpl::FunctionPassManagerImpl ( ) inlineexplicit

add()

void llvm::legacy::FunctionPassManagerImpl::add ( Pass * P) inline

createPrinterPass()

Pass * llvm::legacy::FunctionPassManagerImpl::createPrinterPass ( raw_ostream & O, const std::string & Banner ) const inlineoverridevirtual

doFinalization()

bool llvm::legacy::FunctionPassManagerImpl::doFinalization ( Module & M) overridevirtual

doInitialization()

bool llvm::legacy::FunctionPassManagerImpl::doInitialization ( Module & M) overridevirtual

dumpPassStructure()

void llvm::legacy::FunctionPassManagerImpl::dumpPassStructure ( unsigned Offset) inlineoverridevirtual

getAnalysisUsage()

void llvm::legacy::FunctionPassManagerImpl::getAnalysisUsage ( AnalysisUsage & Info) const inlineoverridevirtual

getAsPass()

Pass * llvm::legacy::FunctionPassManagerImpl::getAsPass ( ) inlineoverridevirtual

getAsPMDataManager()

PMDataManager * llvm::legacy::FunctionPassManagerImpl::getAsPMDataManager ( ) inlineoverridevirtual

getContainedManager()

getTopLevelPassManagerType()

PassManagerType llvm::legacy::FunctionPassManagerImpl::getTopLevelPassManagerType ( ) inlineoverridevirtual

releaseMemoryOnTheFly()

void llvm::legacy::FunctionPassManagerImpl::releaseMemoryOnTheFly ( )

run()

bool llvm::legacy::FunctionPassManagerImpl::run ( Function & F )

ID

char llvm::legacy::FunctionPassManagerImpl::ID = 0 static

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