Static Value-Flow Analysis
|
#include <ICFGEdge.h>
Public Member Functions | |
IntraCFGEdge (ICFGNode *s, ICFGNode *d) | |
Constructor. | |
const SVFVar * | getCondition () const |
s64_t | getSuccessorCondValue () const |
virtual const std::string | toString () const |
Public Member Functions inherited from SVF::ICFGEdge | |
ICFGEdge (ICFGNode *s, ICFGNode *d, GEdgeFlag k) | |
Constructor. | |
~ICFGEdge () | |
Destructor. | |
bool | isCFGEdge () const |
Get methods of the components. | |
bool | isCallCFGEdge () const |
bool | isRetCFGEdge () const |
bool | isIntraCFGEdge () const |
Public Member Functions inherited from SVF::GenericEdge< NodeTy > | |
GenericEdge (NodeTy *s, NodeTy *d, GEdgeFlag k) | |
Constructor. | |
virtual | ~GenericEdge () |
Destructor. | |
NodeID | getSrcID () const |
get methods of the components | |
NodeID | getDstID () const |
GEdgeKind | getEdgeKind () const |
GEdgeKind | getEdgeKindWithoutMask () const |
NodeType * | getSrcNode () const |
NodeType * | getDstNode () const |
virtual bool | operator== (const GenericEdge< NodeType > *rhs) const |
Static Public Member Functions | |
static bool | classof (const IntraCFGEdge *) |
Methods for support type inquiry through isa, cast, and dyn_cast: | |
static bool | classof (const ICFGEdge *edge) |
static bool | classof (const GenericICFGEdgeTy *edge) |
Static Public Member Functions inherited from SVF::ICFGEdge | |
static GEdgeFlag | makeEdgeFlagWithInvokeID (GEdgeKind k, CallSiteID cs) |
Compute the unique edgeFlag value from edge kind and CallSiteID. | |
Private Member Functions | |
void | setConditionVar (const SVFVar *c) |
void | setBranchCondVal (s64_t bVal) |
Private Attributes | |
const SVFVar * | conditionVar |
s64_t | branchCondVal |
Friends | |
class | SVFIRWriter |
class | SVFIRReader |
class | ICFG |
class | SVFIRBuilder |
Additional Inherited Members | |
Public Types inherited from SVF::ICFGEdge | |
enum | ICFGEdgeK { IntraCF , CallCF , RetCF } |
typedef ICFGEdgeK | SVFGEdgeK |
typedef GenericNode< ICFGNode, ICFGEdge >::GEdgeSetTy | ICFGEdgeSetTy |
typedef ICFGEdgeSetTy | SVFGEdgeSetTy |
Public Types inherited from SVF::GenericEdge< NodeTy > | |
typedef NodeTy | NodeType |
Node type. | |
typedef u64_t | GEdgeFlag |
typedef s64_t | GEdgeKind |
typedef struct SVF::GenericEdge::equalGEdge | equalGEdge |
Add the hash function for std::set (we also can overload operator< to implement this) | |
Static Protected Attributes inherited from SVF::GenericEdge< NodeTy > | |
static constexpr unsigned char | EdgeKindMaskBits = 8 |
We use the lower 8 bits to denote edge kind. | |
static constexpr u64_t | EdgeKindMask = (~0ULL) >> (64 - EdgeKindMaskBits) |
Intra ICFG edge representing control-flows between basic blocks within a function
Definition at line 113 of file ICFGEdge.h.
Constructor.
Definition at line 122 of file ICFGEdge.h.
|
inlinestatic |
Definition at line 136 of file ICFGEdge.h.
Definition at line 132 of file ICFGEdge.h.
|
inlinestatic |
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 128 of file ICFGEdge.h.
Definition at line 142 of file ICFGEdge.h.
|
inline |
Definition at line 147 of file ICFGEdge.h.
|
inlineprivate |
Definition at line 173 of file ICFGEdge.h.
Definition at line 168 of file ICFGEdge.h.
|
virtual |
Reimplemented from SVF::ICFGEdge.
Definition at line 165 of file ICFG.cpp.
Definition at line 117 of file ICFGEdge.h.
|
friend |
Definition at line 118 of file ICFGEdge.h.
|
friend |
Definition at line 116 of file ICFGEdge.h.
|
friend |
Definition at line 115 of file ICFGEdge.h.
|
private |
Definition at line 166 of file ICFGEdge.h.
conditionVar is a boolean (for if/else) or numeric condition variable (for switch). branchCondVal is the value when this condition should hold to execute this CFGEdge. E.g., Inst1: br cmp label 0, label 1, Inst2: label 0 Inst3: label 1; for edge between Inst1 and Inst 2, the first element is cmp and the second element is 0
Definition at line 165 of file ICFGEdge.h.