Static Value-Flow Analysis
|
#include <SVFStatements.h>
Public Types | |
enum | Predicate : unsigned { FCMP_FALSE = 0 , FCMP_OEQ = 1 , FCMP_OGT = 2 , FCMP_OGE = 3 , FCMP_OLT = 4 , FCMP_OLE = 5 , FCMP_ONE = 6 , FCMP_ORD = 7 , FCMP_UNO = 8 , FCMP_UEQ = 9 , FCMP_UGT = 10 , FCMP_UGE = 11 , FCMP_ULT = 12 , FCMP_ULE = 13 , FCMP_UNE = 14 , FCMP_TRUE = 15 , FIRST_FCMP_PREDICATE = FCMP_FALSE , LAST_FCMP_PREDICATE = FCMP_TRUE , BAD_FCMP_PREDICATE = FCMP_TRUE + 1 , ICMP_EQ = 32 , ICMP_NE = 33 , ICMP_UGT = 34 , ICMP_UGE = 35 , ICMP_ULT = 36 , ICMP_ULE = 37 , ICMP_SGT = 38 , ICMP_SGE = 39 , ICMP_SLT = 40 , ICMP_SLE = 41 , FIRST_ICMP_PREDICATE = ICMP_EQ , LAST_ICMP_PREDICATE = ICMP_SLE , BAD_ICMP_PREDICATE = ICMP_SLE + 1 } |
OpCode for CmpStmt, enum value is same to llvm CmpInst. More... | |
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. More... | |
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) More... | |
Public Member Functions | |
CmpStmt (SVFVar *s, const OPVars &opnds, u32_t pre) | |
constructor More... | |
u32_t | getPredicate () const |
virtual const std::string | toString () const override |
Public Member Functions inherited from SVF::MultiOpndStmt | |
const SVFVar * | getOpVar (u32_t pos) const |
Operand SVFVars. More... | |
const SVFVar * | getRes () const |
Result SVFVar. More... | |
NodeID | getOpVarID (u32_t pos) const |
NodeID | getResID () const |
u32_t | getOpVarNum () const |
const OPVars & | getOpndVars () const |
OPVars::const_iterator | opVarBegin () const |
OPVars::const_iterator | opVerEnd () const |
Public Member Functions inherited from SVF::SVFStmt | |
SVFStmt (SVFVar *s, SVFVar *d, GEdgeFlag k, bool real=true) | |
Constructor. More... | |
~SVFStmt () | |
Destructor. More... | |
EdgeID | getEdgeID () const |
Return Edge ID. More... | |
bool | isPTAEdge () const |
Whether src and dst nodes are both of pointer type. More... | |
const SVFInstruction * | getInst () const |
Get/set methods for llvm instruction. More... | |
void | setValue (const SVFValue *val) |
const SVFValue * | getValue () const |
void | setBB (const SVFBasicBlock *bb) |
const SVFBasicBlock * | getBB () const |
void | setICFGNode (ICFGNode *node) |
ICFGNode * | getICFGNode () const |
Public Member Functions inherited from SVF::GenericEdge< NodeTy > | |
GenericEdge (NodeTy *s, NodeTy *d, GEdgeFlag k) | |
Constructor. More... | |
virtual | ~GenericEdge () |
Destructor. More... | |
NodeID | getSrcID () const |
get methods of the components More... | |
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 CmpStmt *) |
Methods for support type inquiry through isa, cast, and dyn_cast: More... | |
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: More... | |
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. More... | |
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 | |
CmpStmt () | |
Constructs empty CmpStmt (for SVFIRReader/serialization) More... | |
CmpStmt (const CmpStmt &) | |
place holder More... | |
void | operator= (const CmpStmt &) |
place holder More... | |
Private Attributes | |
u32_t | predicate |
Friends | |
class | SVFIRWriter |
class | SVFIRReader |
Additional Inherited Members | |
Static Public Attributes inherited from SVF::SVFStmt | |
static u32_t | totalEdgeNum |
Total edge number. More... | |
Protected Member Functions inherited from SVF::MultiOpndStmt | |
MultiOpndStmt (SVFVar *r, const OPVars &opnds, GEdgeFlag k) | |
Constructor, only used by subclasses but not external users. More... | |
MultiOpndStmt (GEdgeFlag k) | |
Constructs empty MultiOpndStmt (for SVFIRReader/serialization) More... | |
Protected Member Functions inherited from SVF::SVFStmt | |
SVFStmt (GEdgeFlag k) | |
Private constructor for reading SVFIR from file without side-effect. More... | |
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. More... | |
static constexpr u64_t | EdgeKindMask = (~0ULL) >> (64 - EdgeKindMaskBits) |
Comparison statement
Definition at line 937 of file SVFStatements.h.
enum SVF::CmpStmt::Predicate : unsigned |
OpCode for CmpStmt, enum value is same to llvm CmpInst.
Definition at line 952 of file SVFStatements.h.
|
inlineprivate |
Constructs empty CmpStmt (for SVFIRReader/serialization)
Definition at line 944 of file SVFStatements.h.
|
private |
place holder
constructor
Definition at line 350 of file SVFStatements.cpp.
|
inlinestatic |
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 991 of file SVFStatements.h.
|
inlinestatic |
Definition at line 1003 of file SVFStatements.h.
|
inlinestatic |
Definition at line 999 of file SVFStatements.h.
|
inlinestatic |
Definition at line 995 of file SVFStatements.h.
|
inline |
Definition at line 1012 of file SVFStatements.h.
|
private |
place holder
|
overridevirtual |
Reimplemented from SVF::SVFStmt.
Definition at line 132 of file SVFStatements.cpp.
|
friend |
Definition at line 940 of file SVFStatements.h.
|
friend |
Definition at line 939 of file SVFStatements.h.
|
private |
Definition at line 948 of file SVFStatements.h.