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

Public Member Functions

LPPassManager ()

bool

runOnFunction (Function &F) override

run - Execute all of the passes scheduled for execution.

void

getAnalysisUsage (AnalysisUsage &Info) const override

Pass Manager itself does not invalidate any analysis info.

StringRef

getPassName () const override

getPassName - Return a nice clean name for a pass.

PMDataManager *

getAsPMDataManager () override

Pass *

getAsPass () override

void

dumpPassStructure (unsigned Offset) override

Print passes managed by this manager.

LoopPass *

getContainedPass (unsigned N)

PassManagerType

getPassManagerType () const override

void

addLoop (Loop &L)

void

markLoopAsDeleted (Loop &L)

Public Member Functions inherited from llvm::FunctionPass

FunctionPass (char &pid)

Pass *

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

createPrinterPass - Get a function printer pass.

void

assignPassManager (PMStack &PMS, PassManagerType T) override

Find appropriate Function Pass Manager or Call Graph 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 bool

doInitialization (Module &)

doInitialization - Virtual method overridden by subclasses to do any necessary initialization before any pass is run.

virtual bool

doFinalization (Module &)

doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes have run.

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.

Definition at line 77 of file LoopPass.h.