LLVM: include/llvm/Analysis/CallGraphSCCPass.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20#ifndef LLVM_ANALYSIS_CALLGRAPHSCCPASS_H
21#define LLVM_ANALYSIS_CALLGRAPHSCCPASS_H
22
26#include
27
28namespace llvm {
29
34
36public:
38
39
40
42 const std::string &Banner) const override;
43
46
47
48
52
53
54
55
56
57
58
59
61
62
63
67
68
70
71
75
76
77
78
80};
81
82
84 const CallGraph &CG;
85 void *Context;
86 std::vector<CallGraphNode *> Nodes;
87
88public:
90
92 Nodes.assign(NewNodes.begin(), NewNodes.end());
93 }
94
95 bool isSingular() const { return Nodes.size() == 1; }
96 unsigned size() const { return Nodes.size(); }
97
98
99
101
102
103
105
106 using iterator = std::vector<CallGraphNode *>::const_iterator;
107
110
112};
113
115
116
117
119public:
121
126
128
132};
133
134}
135
136#endif
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,...
Definition CallGraphSCCPass.h:64
PassManagerType getPotentialPassManagerType() const override
Return what kind of Pass Manager can manage this pass.
Definition CallGraphSCCPass.h:72
CallGraphSCCPass(char &pid)
Definition CallGraphSCCPass.h:37
virtual bool runOnSCC(CallGraphSCC &SCC)=0
runOnSCC - This method should be implemented by the subclass to perform whatever action is necessary ...
virtual bool doInitialization(CallGraph &CG)
doInitialization - This method is called before the SCC's of the program has been processed,...
Definition CallGraphSCCPass.h:49
CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on.
Definition CallGraphSCCPass.h:83
bool isSingular() const
Definition CallGraphSCCPass.h:95
std::vector< CallGraphNode * >::const_iterator iterator
Definition CallGraphSCCPass.h:106
const CallGraph & getCallGraph()
Definition CallGraphSCCPass.h:111
LLVM_ABI void ReplaceNode(CallGraphNode *Old, CallGraphNode *New)
ReplaceNode - This informs the SCC and the pass manager that the specified Old node has been deleted,...
LLVM_ABI 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)
Definition CallGraphSCCPass.h:91
unsigned size() const
Definition CallGraphSCCPass.h:96
iterator begin() const
Definition CallGraphSCCPass.h:108
iterator end() const
Definition CallGraphSCCPass.h:109
CallGraphSCC(CallGraph &cg, void *context)
Definition CallGraphSCCPass.h:89
The basic data container for the call graph of a Module of IR.
DummyCGSCCPass()
Definition CallGraphSCCPass.h:122
static LLVM_ABI char ID
Definition CallGraphSCCPass.h:120
bool runOnSCC(CallGraphSCC &SCC) override
runOnSCC - This method should be implemented by the subclass to perform whatever action is necessary ...
Definition CallGraphSCCPass.h:127
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - For this class, we declare that we require and preserve the call graph.
Definition CallGraphSCCPass.h:129
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 LLVM_ABI PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
Pass interface - Implemented by all 'passes'.
Pass(PassKind K, char &pid)
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.
LLVM_ABI void initializeDummyCGSCCPassPass(PassRegistry &)