|
SVF
|
#include <PAGEdge.h>
Public Types | |
| enum | PEDGEK { Addr, Copy, Store, Load, Call, Ret, NormalGep, VariantGep, ThreadFork, ThreadJoin, Cmp, BinaryOp, UnaryOp } |
| typedef GenericNode< PAGNode, PAGEdge >::GEdgeSetTy | PAGEdgeSetTy |
| typedef Map< EdgeID, PAGEdgeSetTy > | PAGEdgeToSetMapTy |
| typedef PAGEdgeToSetMapTy | PAGKindToEdgeSetMapTy |
Public Types inherited from SVF::GenericEdge< NodeTy > | |
| typedef NodeTy | NodeType |
| Node type. More... | |
| typedef u64_t | GEdgeFlag |
| typedef s32_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 | |
| PAGEdge (PAGNode *s, PAGNode *d, GEdgeFlag k) | |
| Constructor. More... | |
| ~PAGEdge () | |
| Destructor. More... | |
| EdgeID | getEdgeID () const |
| Return Edge ID. More... | |
| bool | isPTAEdge () const |
| Whether src and dst nodes are both of pointer type. More... | |
| virtual const std::string | toString () const |
| const Instruction * | getInst () const |
| Get/set methods for llvm instruction. More... | |
| void | setValue (const Value *val) |
| const Value * | getValue () const |
| void | setBB (const BasicBlock *bb) |
| const BasicBlock * | 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 |
| NodeType * | getSrcNode () const |
| NodeType * | getDstNode () const |
| bool | operator== (const GenericEdge< NodeType > *rhs) const |
Static Public Member Functions | |
| static GEdgeFlag | makeEdgeFlagWithCallInst (GEdgeKind k, const ICFGNode *cs) |
| Compute the unique edgeFlag value from edge kind and call site Instruction. More... | |
| static GEdgeFlag | makeEdgeFlagWithStoreInst (GEdgeKind k, const ICFGNode *store) |
| static bool | classof (const PAGEdge *) |
| ClassOf. More... | |
| static bool | classof (const GenericPAGEdgeTy *edge) |
Static Public Attributes | |
| static Size_t | totalEdgeNum |
| Total edge number. More... | |
Private Types | |
| typedef Map< const ICFGNode *, u32_t > | Inst2LabelMap |
Private Attributes | |
| const Value * | value |
| LLVM value. More... | |
| const BasicBlock * | basicBlock |
| LLVM BasicBlock. More... | |
| ICFGNode * | icfgNode |
| ICFGNode. More... | |
| EdgeID | edgeId |
| Edge ID. More... | |
Static Private Attributes | |
| static Inst2LabelMap | inst2LabelMap |
| Call site Instruction to label map. More... | |
| static u64_t | callEdgeLabelCounter = 0 |
| Call site Instruction counter. More... | |
| static u64_t | storeEdgeLabelCounter = 0 |
| Store Instruction counter. More... | |
Friends | |
| raw_ostream & | operator<< (raw_ostream &o, const PAGEdge &edge) |
| Overloading operator << for dumping PAGNode value. More... | |
Additional Inherited Members | |
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) |
|
private |
| typedef GenericNode<PAGNode,PAGEdge>::GEdgeSetTy SVF::PAGEdge::PAGEdgeSetTy |
| typedef Map<EdgeID, PAGEdgeSetTy> SVF::PAGEdge::PAGEdgeToSetMapTy |
| enum SVF::PAGEdge::PEDGEK |
Thirteen kinds of PAG edges Gep represents offset edge for field sensitivity ThreadFork/ThreadJoin is to model parameter passings between thread spawners and spawnees.
| Enumerator | |
|---|---|
| Addr | |
| Copy | |
| Store | |
| Load | |
| Call | |
| Ret | |
| NormalGep | |
| VariantGep | |
| ThreadFork | |
| ThreadJoin | |
| Cmp | |
| BinaryOp | |
| UnaryOp | |
Definition at line 54 of file PAGEdge.h.
|
inlinestatic |
|
inlinestatic |
Definition at line 80 of file PAGEdge.h.
|
inline |
|
inline |
Return Edge ID.
|
inline |
Get/set methods for llvm instruction.
Definition at line 108 of file PAGEdge.h.
| bool PAGEdge::isPTAEdge | ( | ) | const |
|
inlinestatic |
Compute the unique edgeFlag value from edge kind and call site Instruction.
Definition at line 139 of file PAGEdge.h.
|
inlinestatic |
Compute the unique edgeFlag value from edge kind and store Instruction. Two store instructions may share the same StorePAGEdge
Definition at line 149 of file PAGEdge.h.
|
inline |
|
virtual |
Reimplemented in SVF::TDJoinPE, SVF::TDForkPE, SVF::RetPE, SVF::CallPE, SVF::VariantGepPE, SVF::NormalGepPE, SVF::GepPE, SVF::LoadPE, SVF::StorePE, SVF::UnaryOPPE, SVF::BinaryOPPE, SVF::CmpPE, SVF::CopyPE, and SVF::AddrPE.
Definition at line 200 of file PAG.cpp.
|
friend |
|
private |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
static |
1.8.13