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