Pass manager that schedules and runs LoopPasses on a function.

Synopsis

Declared in <llvm/Analysis/LoopPass.h>

class LPPassManager
    : public FunctionPass
    , public PMDataManager

Base Classes

Name

Description

FunctionPass

FunctionPass class ‐ This class is used to implement most global optimizations. Optimizations should subclass this class if they meet the following constraints:

PMDataManager

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

Member Functions

Name

Description

LPPassManager [constructor]

Construct a loop pass manager.

operator= [deleted]

Passes are not assignable.

add

Add pass P into the PassVector.

addLoop

Add a new loop into the loop queue.

addLowerLevelRequiredPass [virtual]

Add RequiredPass into list of lower level passes required by pass P.

assignPassManager [virtual]

Find or create a FunctionPassManager on PMS and register this pass.

collectRequiredAndUsedAnalyses

Collect available used analyses and missing required analyses for P.

createPrinterPass [virtual]

createPrinterPass ‐ Get a function printer pass.

doFinalization [virtual]

Perform any cleanup needed after all passes have run.

doInitialization [virtual]

Perform any initialization needed before any pass is run.

dump

Print this pass's state to stderr for debugging.

dumpLastUses

Print last‐use information for pass P.

dumpPassArguments

Print command‐line arguments for passes managed here.

dumpPassInfo

Print debug‐pass status for pass P.

dumpPassStructure [virtual]

Print passes managed by this manager.

dumpPreservedSet

Print the preserved analysis set for pass P.

dumpRequiredSet

Print the required analysis set for pass P.

dumpUsedSet

Print the used analysis set for pass P.

emitInstrCountChangedRemark

Emit a remark when the module's IR instruction count changes.

findAnalysisPass

Find the pass that implements Analysis AID.

freePass

Remove P.

getAnalysis

getAnalysis overloads

getAnalysisID

getAnalysisID overloads

getAnalysisIfAvailable

Get an optional analysis result that may already be available.

getAnalysisUsage [virtual]

Collect analysis usage for this pass manager.

getAsImmutablePass [virtual]

Return this pass as an ImmutablePass, or null if it is not one.

getAsPMDataManager [virtual]

Return this manager as a PMDataManager.

getAsPass [virtual]

Return this manager as a Pass.

getAvailableAnalysis

Return the map of analyses currently available to this manager.

getContainedPass

Return the contained loop pass at index N.

getDepth

Return the nesting depth of this pass manager.

getNumContainedPasses

Return the number of passes contained by this manager.

getOnTheFlyPass [virtual]

Return an on‐the‐fly analysis pass instance for P.

getPassArgument

Return a nice clean name for a pass corresponding to that used to enable the pass in opt.

getPassID

getPassID ‐ Return the PassID number that corresponds to this pass.

getPassKind

Return the kind of pass (module, function, loop, etc.).

getPassManagerType [virtual]

Return the type of this pass manager.

getPassName [virtual]

Return the name of this pass.

getPotentialPassManagerType [virtual]

Return what kind of Pass Manager can manage this pass.

getResolver

Return the analysis resolver installed for this pass.

getTopLevelManager

Return the top‐level manager that owns this data manager.

initSizeRemarkInfo

Set the initial size of the module if the user has specified that they want remarks for size.

initializeAnalysisImpl

Fill P's AnalysisImpls from currently available required analyses.

initializeAnalysisInfo

Initialize available analysis information.

markLoopAsDeleted

Mark loop L as deleted.

mustPreserveAnalysisID

Report whether the analysis identified by AID must be preserved.

populateInheritedAnalysis

Collect AvailableAnalysis from all the active Pass Managers.

preparePassManager [virtual]

Check whether available pass managers are suitable for this pass.

preserveHigherLevelAnalysis

Return true if P preserves higher‐level analysis used by this manager.

print [virtual]

Print the internal state of this pass for analysis dumping.

printIRUnit [virtual]

Serialize the IR unit this pass operates on for ‐‐print‐changed.

recordAvailableAnalysis

Augment AvailableAnalysis by adding analysis made available by pass P.

releaseMemory [virtual]

Release memory held by this pass when it is no longer needed.

removeDeadPasses

Remove dead passes used by P.

removeNotPreservedAnalysis

Remove Analysis that is not preserved by the pass.

runOnFunction [virtual]

Execute all of the passes scheduled for execution.

setDepth

Set the nesting depth of this pass manager.

setResolver

Install the analysis resolver used to satisfy this pass's dependencies.

setTopLevelManager

Set the top‐level manager that owns this data manager.

verifyAnalysis [virtual]

verifyAnalysis() ‐ This member can be implemented by a analysis pass to check state of analysis information.

verifyPreservedAnalysis

Verify analysis preserved by pass P.

Static Member Functions

Name

Description

createPass

Construct a new instance of the pass identified by ID.

lookupPassInfo

lookupPassInfo overloads

Static Data Members

Name

Description

ID

Pass identification, replacement for typeid.

Protected Member Functions

Name

Description

isPassDebuggingExecutionsOrMore

isPassDebuggingExecutionsOrMore ‐ Return true if ‐debug‐pass=Executions or higher is specified.

skipFunction

Check whether this optional pass should be skipped for F.

Protected Data Members

Name

Description

InheritedAnalysis

Analysis maps inherited from parent pass managers on the active stack.

PassVector

Collection of passes managed by this manager.

TPM

Top level manager that owns this data manager.

Non-Member Functions

Name

Description

getBestSimplifyQuery

Build a SimplifyQuery from analyses currently valid in a pass.

getPassTimer

Request the timer for this legacy‐pass‐manager's pass instance.

isBitcodeWriterPass

Check whether a pass is a BitcodeWriterPass.

isIRPrintingPass

Return true if a pass is for IR printing.

Created with MrDocs