class FunctionPass
Declaration
class FunctionPass : public Pass { /* full declaration omitted */ };
Description
FunctionPass class - This class is used to implement most global optimizations. Optimizations should subclass this class if they meet the following constraints: 1. Optimizations are organized globally, i.e., a function at a time 2. Optimizing a function does not cause the addition or removal of any functions in the module
Declared at: llvm/include/llvm/Pass.h:282
Inherits from: Pass
Method Overview
- public FunctionPass(char & pid)
- public void assignPassManager(llvm::PMStack & PMS, llvm::PassManagerType T)
- public llvm::Pass * createPrinterPass(llvm::raw_ostream & OS, const std::string & Banner) const
- public llvm::PassManagerType getPotentialPassManagerType() const
- public virtual bool runOnFunction(llvm::Function & F)
- protected bool skipFunction(const llvm::Function & F) const
Inherited from Pass:
- public assignPassManager
- public createPass
- public createPrinterPass
- public doFinalization
- public doInitialization
- public dump
- public dumpPassStructure
- public getAdjustedAnalysisPointer
- public getAnalysis
- public getAnalysis
- public getAnalysisID
- public getAnalysisID
- public getAnalysisIfAvailable
- public getAnalysisUsage
- public getAsImmutablePass
- public getAsPMDataManager
- public getPassID
- public getPassKind
- public getPassName
- public getPotentialPassManagerType
- public getResolver
- public lookupPassInfo
- public lookupPassInfo
- public mustPreserveAnalysisID
- public preparePassManager
- public print
- public releaseMemory
- public setResolver
- public verifyAnalysis
Methods
¶FunctionPass(char& pid)
FunctionPass(char& pid)
Declared at: llvm/include/llvm/Pass.h:284
Parameters
- char& pid
¶void assignPassManager(llvm::PMStack& PMS,
llvm::PassManagerType T)
void assignPassManager(llvm::PMStack& PMS,
llvm::PassManagerType T)
Description
Each pass is responsible for assigning a pass manager to itself. PMS is the stack of available pass manager.
Declared at: llvm/include/llvm/Pass.h:294
Parameters
- llvm::PMStack& PMS
- llvm::PassManagerType T
¶llvm::Pass* createPrinterPass(
llvm::raw_ostream& OS,
const std::string& Banner) const
llvm::Pass* createPrinterPass(
llvm::raw_ostream& OS,
const std::string& Banner) const
Description
createPrinterPass - Get a function printer pass.
Declared at: llvm/include/llvm/Pass.h:287
Parameters
- llvm::raw_ostream& OS
- const std::string& Banner
¶llvm::PassManagerType
getPotentialPassManagerType() const
llvm::PassManagerType
getPotentialPassManagerType() const
Description
Return what kind of Pass Manager can manage this pass.
Declared at: llvm/include/llvm/Pass.h:297
¶virtual bool runOnFunction(llvm::Function& F)
virtual bool runOnFunction(llvm::Function& F)
Description
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
Declared at: llvm/include/llvm/Pass.h:292
Parameters
¶bool skipFunction(const llvm::Function& F) const
bool skipFunction(const llvm::Function& F) const
Description
Optional passes call this function to check whether the pass should be skipped. This is the case when Attribute::OptimizeNone is set or when optimization bisect is over the limit.
Declared at: llvm/include/llvm/Pass.h:303
Parameters
- const llvm::Function& F