class CallGraphSCCPass
Declaration
class CallGraphSCCPass : public Pass { /* full declaration omitted */ };
Description
Pass interface - Implemented by all 'passes'. Subclass this if you are an interprocedural optimization or you do not fit into any of the more constrained passes described below.
Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:34
Inherits from: Pass
Method Overview
- public CallGraphSCCPass(char & pid)
- public void assignPassManager(llvm::PMStack & PMS, llvm::PassManagerType PMT)
- public llvm::Pass * createPrinterPass(llvm::raw_ostream & OS, const std::string & Banner) const
- public virtual bool doFinalization(llvm::CallGraph & CG)
- public virtual bool doInitialization(llvm::CallGraph & CG)
- public void getAnalysisUsage(llvm::AnalysisUsage & Info) const
- public llvm::PassManagerType getPotentialPassManagerType() const
- public virtual bool runOnSCC(llvm::CallGraphSCC & SCC)
- protected bool skipSCC(llvm::CallGraphSCC & SCC) 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
¶CallGraphSCCPass(char& pid)
CallGraphSCCPass(char& pid)
Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:36
Parameters
- char& pid
¶void assignPassManager(llvm::PMStack& PMS,
llvm::PassManagerType PMT)
void assignPassManager(llvm::PMStack& PMS,
llvm::PassManagerType PMT)
Description
Assign pass manager to manager this pass
Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:68
Parameters
- llvm::PMStack& PMS
- llvm::PassManagerType PMT
¶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 pass that prints the Module corresponding to a CallGraph.
Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:40
Parameters
- llvm::raw_ostream& OS
- const std::string& Banner
¶virtual bool doFinalization(llvm::CallGraph& CG)
virtual bool doFinalization(llvm::CallGraph& CG)
Description
doFinalization - This method is called after the SCC's of the program has been processed, allowing the pass to do final cleanup as necessary.
Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:63
Parameters
- llvm::CallGraph& CG
¶virtual bool doInitialization(llvm::CallGraph& CG)
virtual bool doInitialization(llvm::CallGraph& CG)
Description
doInitialization - This method is called before the SCC's of the program has been processed, allowing the pass to do initialization as necessary.
Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:48
Parameters
- llvm::CallGraph& CG
¶void getAnalysisUsage(
llvm::AnalysisUsage& Info) const
void getAnalysisUsage(
llvm::AnalysisUsage& Info) const
Description
getAnalysisUsage - For this class, we declare that we require and preserve the call graph. If the derived class implements this method, it should always explicitly call the implementation here.
Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:78
Parameters
- llvm::AnalysisUsage& Info
¶llvm::PassManagerType
getPotentialPassManagerType() const
llvm::PassManagerType
getPotentialPassManagerType() const
Description
Return what kind of Pass Manager can manage this pass.
Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:71
¶virtual bool runOnSCC(llvm::CallGraphSCC& SCC)
virtual bool runOnSCC(llvm::CallGraphSCC& SCC)
Description
runOnSCC - This method should be implemented by the subclass to perform whatever action is necessary for the specified SCC. Note that non-recursive (or only self-recursive) functions will have an SCC size of 1, where recursive portions of the call graph will have SCC size > 1. SCC passes that add or delete functions to the SCC are required to update the SCC list, otherwise stale pointers may be dereferenced.
Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:59
Parameters
- llvm::CallGraphSCC& SCC
¶bool skipSCC(llvm::CallGraphSCC& SCC) const
bool skipSCC(llvm::CallGraphSCC& SCC) const
Description
Optional passes call this function to check whether the pass should be skipped. This is the case when optimization bisect is over the limit.
Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:83
Parameters
- llvm::CallGraphSCC& SCC