|
Static Value-Flow Analysis
|
#include <SVFStatements.h>
Public Types | |
| typedef std::vector< const ICFGNode * > | OpICFGNodeVec |
Public Types inherited from SVF::MultiOpndStmt | |
| typedef std::vector< SVFVar * > | OPVars |
Public Types inherited from SVF::SVFStmt | |
| enum | PEDGEK { Addr , Copy , Store , Load , Call , Ret , Gep , Phi , Select , Cmp , BinaryOp , UnaryOp , Branch , ThreadFork , ThreadJoin } |
| typedef GenericNode< SVFVar, SVFStmt >::GEdgeSetTy | SVFStmtSetTy |
| typedef Map< EdgeID, SVFStmtSetTy > | PAGEdgeToSetMapTy |
| typedef PAGEdgeToSetMapTy | KindToSVFStmtMapTy |
| typedef SVFStmtSetTy | PAGEdgeSetTy |
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 Public Member Functions | |
| static bool | classof (const PhiStmt *) |
| Methods for support type inquiry through isa, cast, and dyn_cast: | |
| static bool | classof (const SVFStmt *edge) |
| static bool | classof (const MultiOpndStmt *edge) |
| static bool | classof (const GenericPAGEdgeTy *edge) |
Static Public Member Functions inherited from SVF::MultiOpndStmt | |
| static bool | classof (const MultiOpndStmt *) |
| Methods for support type inquiry through isa, cast, and dyn_cast: | |
| static bool | classof (const SVFStmt *node) |
| static bool | classof (const GenericPAGEdgeTy *node) |
Static Public Member Functions inherited from SVF::SVFStmt | |
| static bool | classof (const SVFStmt *) |
| ClassOf. | |
| static bool | classof (const GenericPAGEdgeTy *edge) |
| static GEdgeFlag | makeEdgeFlagWithAddionalOpnd (GEdgeKind k, const SVFVar *var) |
| static GEdgeFlag | makeEdgeFlagWithCallInst (GEdgeKind k, const ICFGNode *cs) |
| static GEdgeFlag | makeEdgeFlagWithStoreInst (GEdgeKind k, const ICFGNode *store) |
Private Member Functions | |
| PhiStmt (const PhiStmt &) | |
| place holder | |
| void | operator= (const PhiStmt &) |
| place holder | |
Private Attributes | |
| OpICFGNodeVec | opICFGNodes |
Additional Inherited Members | |
Static Public Attributes inherited from SVF::SVFStmt | |
| static u32_t | totalEdgeNum |
| Total edge number. | |
Protected Member Functions inherited from SVF::MultiOpndStmt | |
| MultiOpndStmt (SVFVar *r, const OPVars &opnds, GEdgeFlag k) | |
| Constructor, only used by subclasses but not external users. | |
Protected Member Functions inherited from SVF::SVFStmt | |
| SVFStmt (GEdgeFlag k) | |
| Private constructor for reading SVFIR from file without side-effect. | |
Protected Attributes inherited from SVF::MultiOpndStmt | |
| OPVars | opVars |
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) |
Phi statement (e.g., p = phi(q,r) which receives values from variables q and r from different paths) it is typically at a joint point of the control-flow graph
Definition at line 775 of file SVFStatements.h.
| typedef std::vector<const ICFGNode*> SVF::PhiStmt::OpICFGNodeVec |
Definition at line 779 of file SVFStatements.h.
|
inline |
constructor
Definition at line 809 of file SVFStatements.h.
Definition at line 815 of file SVFStatements.h.
|
inlinestatic |
Definition at line 802 of file SVFStatements.h.
|
inlinestatic |
Definition at line 798 of file SVFStatements.h.
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 790 of file SVFStatements.h.
Definition at line 794 of file SVFStatements.h.
Return the corresponding ICFGNode of this operand.
Definition at line 824 of file SVFStatements.h.
| bool PhiStmt::isFunctionRetPhi | ( | ) | const |
Return true if this is a phi at the function exit to receive one or multiple return values of this function
Definition at line 305 of file SVFStatements.cpp.
|
overridevirtual |
Reimplemented from SVF::SVFStmt.
Definition at line 100 of file SVFStatements.cpp.
|
private |
Definition at line 785 of file SVFStatements.h.