Static Value-Flow Analysis
|
#include <MutablePointsToDS.h>
Public Types | |
typedef PTData< Key, KeySet, Data, DataSet > | BasePTData |
typedef VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet > | BaseVersionedPTData |
typedef BasePTData::PTDataTy | PTDataTy |
Public Types inherited from SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet > | |
typedef PTData< Key, KeySet, Data, DataSet > | BasePTData |
typedef BasePTData::PTDataTy | PTDataTy |
Public Types inherited from SVF::PTData< Key, KeySet, Data, DataSet > | |
enum | PTDataTy { Base , MutBase , Diff , MutDiff , DataFlow , MutDataFlow , MutIncDataFlow , Versioned , MutVersioned , PersBase , PersDiff , PersDataFlow , PersIncDataFlow , PersVersioned } |
Types of a points-to data structures. More... | |
Public Member Functions | |
MutableVersionedPTData (bool reversePT=true, PTDataTy ty=PTDataTy::MutVersioned) | |
virtual | ~MutableVersionedPTData () |
virtual void | clear () override |
Clears all points-to sets as if nothing is stored. More... | |
virtual const DataSet & | getPts (const Key &vk) override |
Get points-to set of var. More... | |
virtual const DataSet & | getPts (const VersionedKey &vk) override |
virtual const KeySet & | getRevPts (const Data &datum) override |
Get reverse points-to set of a datum. More... | |
virtual const VersionedKeySet & | getVersionedKeyRevPts (const Data &datum) override |
virtual bool | addPts (const Key &k, const Data &element) override |
Adds element to the points-to set associated with var. More... | |
virtual bool | addPts (const VersionedKey &vk, const Data &element) override |
virtual bool | unionPts (const Key &dstVar, const Key &srcVar) override |
Performs pts(dstVar) = pts(dstVar) U pts(srcVar). More... | |
virtual bool | unionPts (const VersionedKey &dstVar, const VersionedKey &srcVar) override |
virtual bool | unionPts (const VersionedKey &dstVar, const Key &srcVar) override |
virtual bool | unionPts (const Key &dstVar, const VersionedKey &srcVar) override |
virtual bool | unionPts (const Key &dstVar, const DataSet &srcDataSet) override |
Performs pts(dstVar) = pts(dstVar) U srcDataSet. More... | |
virtual bool | unionPts (const VersionedKey &dstVar, const DataSet &srcDataSet) override |
virtual void | clearPts (const Key &k, const Data &element) override |
Clears element from the points-to set of var. More... | |
virtual void | clearPts (const VersionedKey &vk, const Data &element) override |
virtual void | clearFullPts (const Key &k) override |
Fully clears the points-to set of var. More... | |
virtual void | clearFullPts (const VersionedKey &vk) override |
virtual void | remapAllPts (void) override |
Remaps all points-to sets to use the current mapping. More... | |
virtual Map< DataSet, unsigned > | getAllPts (bool liveOnly) const override |
virtual void | dumpPTData () override |
Dump stored keys and points-to sets. More... | |
Public Member Functions inherited from SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet > | |
VersionedPTData (bool reversePT=true, PTDataTy ty=PTDataTy::Versioned) | |
virtual | ~VersionedPTData () |
Public Member Functions inherited from SVF::PTData< Key, KeySet, Data, DataSet > | |
PTData (bool reversePT=true, PTDataTy ty=PTDataTy::Base) | |
virtual | ~PTData () |
PTDataTy | getPTDTY () const |
Get the type of points-to data structure that this is. More... | |
Static Public Member Functions | |
static bool | classof (const MutableVersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet > *) |
static bool | classof (const PTData< Key, KeySet, Data, DataSet > *ptd) |
Static Public Member Functions inherited from SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet > | |
static bool | classof (const VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet > *) |
static bool | classof (const PTData< Key, KeySet, Data, DataSet > *ptd) |
Private Attributes | |
MutablePTData< Key, KeySet, Data, DataSet > | tlPTData |
PTData for Keys (top-level pointers, generally). More... | |
MutablePTData< VersionedKey, VersionedKeySet, Data, DataSet > | atPTData |
PTData for VersionedKeys (address-taken objects, generally). More... | |
Additional Inherited Members | |
Protected Attributes inherited from SVF::PTData< Key, KeySet, Data, DataSet > | |
bool | rev |
Whether we maintain reverse points-to sets or not. More... | |
PTDataTy | ptdTy |
VersionedPTData implemented with mutable points-to set (DataSet). Implemented as a wrapper around two MutablePTDatas: one for Keys, one for VersionedKeys.
Definition at line 892 of file MutablePointsToDS.h.
typedef PTData<Key, KeySet, Data, DataSet> SVF::MutableVersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet >::BasePTData |
Definition at line 895 of file MutablePointsToDS.h.
typedef VersionedPTData<Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet> SVF::MutableVersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet >::BaseVersionedPTData |
Definition at line 896 of file MutablePointsToDS.h.
typedef BasePTData::PTDataTy SVF::MutableVersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet >::PTDataTy |
Definition at line 897 of file MutablePointsToDS.h.
|
inline |
Definition at line 899 of file MutablePointsToDS.h.
|
inlinevirtual |
Definition at line 902 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Adds element to the points-to set associated with var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 930 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet >.
Definition at line 934 of file MutablePointsToDS.h.
|
inlinestatic |
Methods to support type inquiry through isa, cast, and dyn_cast:
Definition at line 1005 of file MutablePointsToDS.h.
|
inlinestatic |
Definition at line 1010 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Clears all points-to sets as if nothing is stored.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 904 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Fully clears the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 973 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet >.
Definition at line 977 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Clears element from the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 964 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet >.
Definition at line 968 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Dump stored keys and points-to sets.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 995 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Returns a mapping of points-to sets to the number of times they are stored. liveOnly indicates whether to include only points-to sets which correspond to a variable (matters when dealing with non-GC persistent PT).
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 988 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Get points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 910 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet >.
Definition at line 914 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Get reverse points-to set of a datum.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 919 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet >.
Definition at line 924 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Remaps all points-to sets to use the current mapping.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 982 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U srcDataSet.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 955 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U pts(srcVar).
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 939 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet >.
Definition at line 951 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet >.
Definition at line 959 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet >.
Definition at line 947 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet >.
Definition at line 943 of file MutablePointsToDS.h.
|
private |
PTData for VersionedKeys (address-taken objects, generally).
Definition at line 1020 of file MutablePointsToDS.h.
|
private |
PTData for Keys (top-level pointers, generally).
Definition at line 1018 of file MutablePointsToDS.h.