|
| ICFG () |
| Constructor.
|
|
| ~ICFG () override |
| Destructor.
|
|
ICFGNode * | getICFGNode (NodeID id) const |
| Get a ICFG node.
|
|
bool | hasICFGNode (NodeID id) const |
| Whether has the ICFGNode.
|
|
ICFGEdge * | hasIntraICFGEdge (ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind) |
| Whether we has a SVFG edge.
|
|
ICFGEdge * | hasInterICFGEdge (ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind) |
|
ICFGEdge * | hasThreadICFGEdge (ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind) |
|
ICFGEdge * | getICFGEdge (const ICFGNode *src, const ICFGNode *dst, ICFGEdge::ICFGEdgeK kind) |
| Get a SVFG edge according to src and dst.
|
|
void | dump (const std::string &file, bool simple=false) |
| Dump graph into dot file.
|
|
void | view () |
| View graph from the debugger.
|
|
void | updateCallGraph (PTACallGraph *callgraph) |
| update ICFG for indirect calls
|
|
bool | isInLoop (const ICFGNode *node) |
| Whether node is in a loop.
|
|
void | addNodeToSVFLoop (const ICFGNode *node, const SVFLoop *loop) |
| Insert (node, loop) to icfgNodeToSVFLoopVec.
|
|
SVFLoopVec & | getSVFLoops (const ICFGNode *node) |
| Get loops where a node resides.
|
|
const ICFGNodeToSVFLoopVec & | getIcfgNodeToSVFLoopVec () const |
|
FunEntryICFGNode * | getFunEntryICFGNode (const SVFFunction *fun) |
| Add a function entry node.
|
|
FunExitICFGNode * | getFunExitICFGNode (const SVFFunction *fun) |
| Add a function exit node.
|
|
GlobalICFGNode * | getGlobalICFGNode () const |
|
const std::vector< const ICFGNode * > & | getSubNodes (const ICFGNode *node) const |
|
const ICFGNode * | getRepNode (const ICFGNode *node) const |
|
void | updateSubAndRep (const ICFGNode *rep, const ICFGNode *sub) |
|
| GenericGraph () |
| Constructor.
|
|
virtual | ~GenericGraph () |
| Destructor.
|
|
void | destroy () |
| Release memory.
|
|
iterator | begin () |
| Iterators.
|
|
iterator | end () |
|
const_iterator | begin () const |
|
const_iterator | end () const |
|
void | addGNode (NodeID id, NodeType *node) |
| Add a Node.
|
|
NodeType * | getGNode (NodeID id) const |
| Get a node.
|
|
bool | hasGNode (NodeID id) const |
| Has a node.
|
|
void | removeGNode (NodeType *node) |
| Delete a node.
|
|
u32_t | getTotalNodeNum () const |
| Get total number of node/edge.
|
|
u32_t | getTotalEdgeNum () const |
|
void | incNodeNum () |
| Increase number of node/edge.
|
|
void | incEdgeNum () |
|
|
ICFGEdge * | addIntraEdge (ICFGNode *srcNode, ICFGNode *dstNode) |
| Add intraprocedural and interprocedural control-flow edges.
|
|
ICFGEdge * | addConditionalIntraEdge (ICFGNode *srcNode, ICFGNode *dstNode, s64_t branchCondVal) |
|
ICFGEdge * | addCallEdge (ICFGNode *srcNode, ICFGNode *dstNode) |
|
ICFGEdge * | addRetEdge (ICFGNode *srcNode, ICFGNode *dstNode) |
|
void | removeICFGEdge (ICFGEdge *edge) |
| Remove a ICFG edge.
|
|
void | removeICFGNode (ICFGNode *node) |
| Remove a ICFGNode.
|
|
void | checkIntraEdgeParents (const ICFGNode *srcNode, const ICFGNode *dstNode) |
| sanitize Intra edges, verify that both nodes belong to the same function.
|
|
virtual IntraICFGNode * | addIntraICFGNode (const SVFBasicBlock *bb, bool isRet) |
|
virtual CallICFGNode * | addCallICFGNode (const SVFBasicBlock *bb, const SVFType *ty, const SVFFunction *calledFunc, bool isVararg, bool isvcall, s32_t vcallIdx, const std::string &funNameOfVcall) |
|
virtual RetICFGNode * | addRetICFGNode (CallICFGNode *call) |
|
virtual FunEntryICFGNode * | addFunEntryICFGNode (const SVFFunction *svfFunc) |
|
virtual FunExitICFGNode * | addFunExitICFGNode (const SVFFunction *svfFunc) |
|
virtual void | addICFGNode (ICFGNode *node) |
| Add a ICFG node.
|
|
Definition at line 47 of file ICFG.h.