LLVM: llvm::FPPassManager Class Reference (original) (raw)

Public Member Functions

FPPassManager ()

bool

runOnFunction (Function &F)

run - Execute all of the passes scheduled for execution.

bool

runOnModule (Module &M) override

runOnModule - Virtual method overriden by subclasses to process the module being operated on.

void

cleanup ()

cleanup - After running all passes, clean up pass manager cache.

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

void

getAnalysisUsage (AnalysisUsage &Info) const override

Pass Manager itself does not invalidate any analysis info.

void

dumpPassStructure (unsigned Offset) override

Print passes managed by this manager.

StringRef

getPassName () const override

getPassName - Return a nice clean name for a pass.

FunctionPass *

getContainedPass (unsigned N)

PassManagerType

getPassManagerType () const override

Public Member Functions inherited from llvm::ModulePass

ModulePass (char &pid)

~ModulePass () override

Pass *

createPrinterPass (raw_ostream &OS, const std::string &Banner) const override

createPrinterPass - Get a module printer pass.

void

assignPassManager (PMStack &PMS, PassManagerType T) override

Find appropriate Module Pass Manager in the PM Stack and add self into that manager.

PassManagerType

getPotentialPassManagerType () const override

Return what kind of Pass Manager can manage this pass.

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

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

preparePassManager (PMStack &)

Check if available pass managers are suitable for this pass or not.

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

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.

FPPassManager manages BBPassManagers and FunctionPasses.

It batches all function passes and basic block pass managers together and sequence them to process one function at a time before processing next function.

Definition at line 457 of file LegacyPassManagers.h.

run - Execute all of the passes scheduled for execution.

Execute all of the passes scheduled for execution by invoking runOnFunction method.

Keep track of whether any of the passes modifies the module, and if so, return true.

Keep track of whether any of the passes modifies the function, and if so, return true.

Definition at line 1356 of file LegacyPassManager.cpp.

References Changed, llvm::PMDataManager::dumpPassInfo(), llvm::PMDataManager::dumpPreservedSet(), llvm::PMDataManager::dumpRequiredSet(), llvm::PMDataManager::dumpUsedSet(), llvm::PMDataManager::emitInstrCountChangedRemark(), llvm::errs(), llvm::EXECUTION_MSG, F, FP, getContainedPass(), llvm::PMDataManager::getNumContainedPasses(), llvm::getPassTimer(), llvm::PMDataManager::initializeAnalysisImpl(), llvm::PMDataManager::initSizeRemarkInfo(), InstrCount, llvm_unreachable, llvm::MODIFICATION_MSG, llvm::ON_FUNCTION_MSG, llvm::PMDataManager::populateInheritedAnalysis(), llvm::PMDataManager::recordAvailableAnalysis(), llvm::PMDataManager::removeDeadPasses(), llvm::PMDataManager::removeNotPreservedAnalysis(), llvm::PMDataManager::TPM, llvm::PMDataManager::verifyPreservedAnalysis(), and X.

Referenced by llvm::legacy::FunctionPassManagerImpl::run(), and runOnModule().