21 #ifndef LLVM_ANALYSIS_CALLGRAPHSCCPASS_H
22 #define LLVM_ANALYSIS_CALLGRAPHSCCPASS_H
41 const std::string &Banner)
const override;
85 std::vector<CallGraphNode*> Nodes;
94 unsigned size()
const {
return Nodes.size(); }
100 typedef std::vector<CallGraphNode*>::const_iterator
iterator;
Pass interface - Implemented by all 'passes'.
PassManagerType
Different types of internal pass managers.
std::vector< CallGraphNode * >::const_iterator iterator
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.
void getAnalysisUsage(AnalysisUsage &Info) const override
getAnalysisUsage - For this class, we declare that we require and preserve the call graph...
CallGraphSCCPass(char &pid)
virtual bool doFinalization(Module &)
doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes...
PMStack - This class implements a stack data structure of PMDataManager pointers. ...
This file provides interfaces used to build and manipulate a call graph, which is a very useful tool ...
virtual bool doInitialization(Module &)
doInitialization - Virtual method overridden by subclasses to do any necessary initialization before ...
Pass * createPrinterPass(raw_ostream &O, const std::string &Banner) const override
createPrinterPass - Get a pass that prints the Module corresponding to a CallGraph.
Represent the analysis usage information of a pass.
PassManagerType getPotentialPassManagerType() const override
Return what kind of Pass Manager can manage this pass.
void assignPassManager(PMStack &PMS, PassManagerType PMT) override
Assign pass manager to manager this pass.
CallGraphSCC(void *context)
The basic data container for the call graph of a Module of IR.
void ReplaceNode(CallGraphNode *Old, CallGraphNode *New)
ReplaceNode - This informs the SCC and the pass manager that the specified Old node has been deleted...
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...
void initialize(CallGraphNode *const *I, CallGraphNode *const *E)