104 virtual const std::string
toString()
const;
146 virtual const std::string
toString()
const;
194 edge->getDstNode()->addIncomingEdge(
edge);
195 edge->getSrcNode()->addOutgoingEdge(
edge);
static bool classof(const CallGraphEdge *)
ClassOf.
CallGraphEdge(CallGraphNode *s, CallGraphNode *d, const CallICFGNode *icfgNode)
Constructor.
void addDirectCallSite(const CallICFGNode *call)
Add direct callsite.
virtual ~CallGraphEdge()
Destructor.
GenericNode< CallGraphNode, CallGraphEdge >::GEdgeSetTy CallGraphEdgeSet
virtual const std::string toString() const
CallInstSet::const_iterator directCallsEnd() const
friend OutStream & operator<<(OutStream &o, const CallGraphEdge &edge)
Overloading operator << for dumping ICFG node ID.
Set< const CallICFGNode * > CallInstSet
CallInstSet::const_iterator directCallsBegin() const
Iterators for direct and indirect callsites.
static bool classof(const GenericICFGNodeTy *node)
const std::string & getName() const
CallGraphNode(NodeID i, const SVFFunction *f)
Constructor.
virtual const std::string toString() const
static bool classof(const SVFBaseNode *node)
const SVFFunction * getFunction() const
Get function of this call node.
friend OutStream & operator<<(OutStream &o, const CallGraphNode &node)
Overloading operator << for dumping ICFG node ID.
static bool classof(const CallGraphNode *)
Methods for support type inquiry through isa, cast, and dyn_cast:
CallInstToCallGraphEdgesMap callinstToCallGraphEdgesMap
Map a call instruction to its corresponding call edges.
Map< const CallICFGNode *, CallGraphEdgeSet > CallInstToCallGraphEdgesMap
Set< const SVFFunction * > FunctionSet
void addCallGraphNode(const SVFFunction *fun)
void addEdge(CallGraphEdge *edge)
Add call graph edge.
CallGraphNode * getCallGraphNode(const SVFFunction *fun) const
Map< const SVFFunction *, CallGraphNode * > FunToCallGraphNodeMap
void destroy()
Clean up memory.
FunToCallGraphNodeMap funToCallGraphNodeMap
Call Graph node map.
OrderedMap< const CallICFGNode *, FunctionSet > CallEdgeMap
CallGraphEdge::CallGraphEdgeSet CallGraphEdgeSet
CallGraphNode * getCallGraphNode(NodeID id) const
Get call graph node.
void view()
View the graph from the debugger.
void dump(const std::string &filename)
Dump the graph.
virtual ~CallGraph()
Destructor.
CallGraphEdge * hasGraphEdge(CallGraphNode *src, CallGraphNode *dst, const CallICFGNode *callIcfgNode) const
Whether we have already created this call graph edge.
void addDirectCallGraphEdge(const CallICFGNode *call, const SVFFunction *callerFun, const SVFFunction *calleeFun)
Add direct call edges.
const CallGraphNode * getCallGraphNode(const std::string &name)
NodeType * getGNode(NodeID id) const
Get a node.
OrderedSet< EdgeType *, typename EdgeType::equalGEdge > GEdgeSetTy
Edge kind.
GNodeK getNodeKind() const
Get node kind.
const std::string & getName() const
GenericGraph< CallGraphNode, CallGraphEdge > GenericCallGraphTy
llvm::IRBuilder IRBuilder
GenericNode< CallGraphNode, CallGraphEdge > GenericCallGraphNodeTy
GenericEdge< CallGraphNode > GenericCallGraphEdgeTy
SVF::CallGraphNode * NodeRef