21 #ifndef LLVM_ANALYSIS_CALLGRAPHSCCPASS_H 22 #define LLVM_ANALYSIS_CALLGRAPHSCCPASS_H 42 const std::string &Banner)
const override;
91 std::vector<CallGraphNode *> Nodes;
97 Nodes.assign(NewNodes.
begin(), NewNodes.
end());
101 unsigned size()
const {
return Nodes.size(); }
107 using iterator = std::vector<CallGraphNode *>::const_iterator;
137 #endif // LLVM_ANALYSIS_CALLGRAPHSCCPASS_H Pass interface - Implemented by all 'passes'.
PassManagerType
Different types of internal pass managers.
bool runOnSCC(CallGraphSCC &SCC) override
runOnSCC - This method should be implemented by the subclass to perform whatever action is necessary ...
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
This class represents lattice values for constants.
A global registry used in conjunction with static constructors to make pluggable components (like tar...
virtual bool doInitialization(CallGraph &CG)
doInitialization - This method is called before the SCC's of the program has been processed...
A node in the call graph for a module.
bool skipSCC(CallGraphSCC &SCC) const
Optional passes call this function to check whether the pass should be skipped.
void getAnalysisUsage(AnalysisUsage &Info) const override
getAnalysisUsage - For this class, we declare that we require and preserve the call graph...
CallGraphSCCPass(char &pid)
Pass * createPrinterPass(raw_ostream &OS, const std::string &Banner) const override
createPrinterPass - Get a pass that prints the Module corresponding to a CallGraph.
virtual bool doFinalization(Module &)
doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes...
const CallGraph & getCallGraph()
PMStack - This class implements a stack data structure of PMDataManager pointers. ...
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
Analysis containing CSE Info
virtual bool doInitialization(Module &)
doInitialization - Virtual method overridden by subclasses to do any necessary initialization before ...
This pass is required by interprocedural register allocation.
Represent the analysis usage information of a pass.
PassManagerType getPotentialPassManagerType() const override
Return what kind of Pass Manager can manage this pass.
void initialize(ArrayRef< CallGraphNode *> NewNodes)
void assignPassManager(PMStack &PMS, PassManagerType PMT) override
Assign pass manager to manager this pass.
void initializeDummyCGSCCPassPass(PassRegistry &)
void setPreservesAll()
Set by analyses that do not transform their input at all.
The basic data container for the call graph of a Module of IR.
std::vector< CallGraphNode * >::const_iterator iterator
CallGraphSCC(CallGraph &cg, void *context)
virtual bool doFinalization(CallGraph &CG)
doFinalization - This method is called after the SCC's of the program has been processed, allowing the pass to do final cleanup as necessary.
virtual bool runOnSCC(CallGraphSCC &SCC)=0
runOnSCC - This method should be implemented by the subclass to perform whatever action is necessary ...
CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on.
This class implements an extremely fast bulk output stream that can only output to a stream...
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - For this class, we declare that we require and preserve the call graph...