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;
Analysis containing CSE Info
Represent the analysis usage information of a pass.
void setPreservesAll()
Set by analyses that do not transform their input at all.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
A node in the call graph for a module.
virtual bool doFinalization(CallGraph &CG)
doFinalization - This method is called after the SCC's of the program has been processed,...
PassManagerType getPotentialPassManagerType() const override
Return what kind of Pass Manager can manage this pass.
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 runOnSCC(CallGraphSCC &SCC)=0
runOnSCC - This method should be implemented by the subclass to perform whatever action is necessary ...
void getAnalysisUsage(AnalysisUsage &Info) const override
getAnalysisUsage - For this class, we declare that we require and preserve the call graph.
bool skipSCC(CallGraphSCC &SCC) const
Optional passes call this function to check whether the pass should be skipped.
virtual bool doInitialization(CallGraph &CG)
doInitialization - This method is called before the SCC's of the program has been processed,...
void assignPassManager(PMStack &PMS, PassManagerType PMT) override
Assign pass manager to manager this pass.
CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on.
std::vector< CallGraphNode * >::const_iterator iterator
const CallGraph & getCallGraph()
void ReplaceNode(CallGraphNode *Old, CallGraphNode *New)
ReplaceNode - This informs the SCC and the pass manager that the specified Old node has been deleted,...
void DeleteNode(CallGraphNode *Old)
DeleteNode - This informs the SCC and the pass manager that the specified Old node has been deleted.
void initialize(ArrayRef< CallGraphNode * > NewNodes)
CallGraphSCC(CallGraph &cg, void *context)
The basic data container for the call graph of a Module of IR.
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 ...
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - For this class, we declare that we require and preserve the call graph.
PMStack - This class implements a stack data structure of PMDataManager pointers.
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
Pass interface - Implemented by all 'passes'.
virtual bool doInitialization(Module &)
doInitialization - Virtual method overridden by subclasses to do any necessary initialization before ...
virtual bool doFinalization(Module &)
doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes...
A global registry used in conjunction with static constructors to make pluggable components (like tar...
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
PassManagerType
Different types of internal pass managers.
@ PMT_CallGraphPassManager
CGPassManager.
void initializeDummyCGSCCPassPass(PassRegistry &)