Static Value-Flow Analysis
|
PTData backed by a PersistentPointsToCache. More...
#include <PersistentPointsToDS.h>
Public Types | |
typedef PTData< Key, KeySet, Data, DataSet > | BasePTData |
typedef BasePTData::PTDataTy | PTDataTy |
typedef Map< Key, PointsToID > | KeyToIDMap |
typedef Map< Data, KeySet > | RevPtsMap |
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 | |
PersistentPTData (PersistentPointsToCache< DataSet > &cache, bool reversePT=true, PTDataTy ty=PTDataTy::PersBase) | |
Constructor. | |
~PersistentPTData () override=default | |
void | clear () override |
Clears all points-to sets as if nothing is stored. | |
const DataSet & | getPts (const Key &var) override |
Get points-to set of var. | |
const KeySet & | getRevPts (const Data &data) override |
Get reverse points-to set of a datum. | |
bool | addPts (const Key &dstKey, const Data &element) override |
Adds element to the points-to set associated with var. | |
bool | unionPts (const Key &dstKey, const Key &srcKey) override |
Performs pts(dstVar) = pts(dstVar) U pts(srcVar). | |
bool | unionPts (const Key &dstKey, const DataSet &srcData) override |
Performs pts(dstVar) = pts(dstVar) U srcDataSet. | |
void | dumpPTData () override |
Dump stored keys and points-to sets. | |
void | clearPts (const Key &var, const Data &element) override |
Clears element from the points-to set of var. | |
void | clearFullPts (const Key &var) override |
Fully clears the points-to set of var. | |
void | remapAllPts () override |
Remaps all points-to sets to use the current mapping. | |
Map< DataSet, unsigned > | getAllPts (bool liveOnly) const override |
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. | |
Static Public Member Functions | |
static bool | classof (const PersistentPTData< Key, KeySet, Data, DataSet > *) |
static bool | classof (const PTData< Key, KeySet, Data, DataSet > *ptd) |
Protected Attributes | |
PersistentPointsToCache< DataSet > & | ptCache |
KeyToIDMap | ptsMap |
RevPtsMap | revPtsMap |
Protected Attributes inherited from SVF::PTData< Key, KeySet, Data, DataSet > | |
bool | rev |
Whether we maintain reverse points-to sets or not. | |
PTDataTy | ptdTy |
Private Member Functions | |
bool | unionPtsFromId (const Key &dstKey, PointsToID srcId) |
void | clearSingleRevPts (KeySet &revSet, const Key &k) |
void | clearRevPts (const DataSet &pts, const Key &k) |
PTData backed by a PersistentPointsToCache.
Definition at line 34 of file PersistentPointsToDS.h.
typedef PTData<Key, KeySet, Data, DataSet> SVF::PersistentPTData< Key, KeySet, Data, DataSet >::BasePTData |
Definition at line 41 of file PersistentPointsToDS.h.
typedef Map<Key, PointsToID> SVF::PersistentPTData< Key, KeySet, Data, DataSet >::KeyToIDMap |
Definition at line 44 of file PersistentPointsToDS.h.
typedef BasePTData::PTDataTy SVF::PersistentPTData< Key, KeySet, Data, DataSet >::PTDataTy |
Definition at line 42 of file PersistentPointsToDS.h.
Definition at line 45 of file PersistentPointsToDS.h.
|
inlineexplicit |
Constructor.
Definition at line 48 of file PersistentPointsToDS.h.
|
overridedefault |
|
inlineoverridevirtual |
Adds element to the points-to set associated with var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 71 of file PersistentPointsToDS.h.
|
inlinestatic |
Methods to support type inquiry through isa, cast, and dyn_cast:
Definition at line 140 of file PersistentPointsToDS.h.
|
inlinestatic |
Definition at line 145 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Clears all points-to sets as if nothing is stored.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 53 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Fully clears the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 109 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Clears element from the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 95 of file PersistentPointsToDS.h.
|
inlineprivate |
Definition at line 184 of file PersistentPointsToDS.h.
|
inlineprivate |
Definition at line 176 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Dump stored keys and points-to sets.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 91 of file PersistentPointsToDS.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 120 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Get points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 59 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Get reverse points-to set of a datum.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 65 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Remaps all points-to sets to use the current mapping.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 115 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U srcDataSet.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 85 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U pts(srcVar).
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 79 of file PersistentPointsToDS.h.
|
inlineprivate |
Internal unionPts since other methods follow the same pattern. Renamed because PointsToID and Key may be the same type...
Definition at line 154 of file PersistentPointsToDS.h.
Definition at line 37 of file PersistentPointsToDS.h.
Definition at line 37 of file PersistentPointsToDS.h.
|
friend |
Definition at line 37 of file PersistentPointsToDS.h.
|
protected |
Definition at line 193 of file PersistentPointsToDS.h.
|
protected |
Definition at line 194 of file PersistentPointsToDS.h.
|
protected |
Definition at line 195 of file PersistentPointsToDS.h.