|
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 33 of file PersistentPointsToDS.h.
| typedef PTData<Key, KeySet, Data, DataSet> SVF::PersistentPTData< Key, KeySet, Data, DataSet >::BasePTData |
Definition at line 40 of file PersistentPointsToDS.h.
| typedef Map<Key, PointsToID> SVF::PersistentPTData< Key, KeySet, Data, DataSet >::KeyToIDMap |
Definition at line 43 of file PersistentPointsToDS.h.
| typedef BasePTData::PTDataTy SVF::PersistentPTData< Key, KeySet, Data, DataSet >::PTDataTy |
Definition at line 41 of file PersistentPointsToDS.h.
Definition at line 44 of file PersistentPointsToDS.h.
|
inlineexplicit |
Constructor.
Definition at line 47 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 70 of file PersistentPointsToDS.h.
|
inlinestatic |
Methods to support type inquiry through isa, cast, and dyn_cast:
Definition at line 139 of file PersistentPointsToDS.h.
|
inlinestatic |
Definition at line 144 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 52 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Fully clears the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 108 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Clears element from the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 94 of file PersistentPointsToDS.h.
|
inlineprivate |
Definition at line 183 of file PersistentPointsToDS.h.
|
inlineprivate |
Definition at line 175 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Dump stored keys and points-to sets.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 90 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 119 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Get points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 58 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Get reverse points-to set of a datum.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 64 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 114 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U srcDataSet.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 84 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U pts(srcVar).
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 78 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 153 of file PersistentPointsToDS.h.
Definition at line 36 of file PersistentPointsToDS.h.
Definition at line 36 of file PersistentPointsToDS.h.
|
friend |
Definition at line 36 of file PersistentPointsToDS.h.
|
protected |
Definition at line 192 of file PersistentPointsToDS.h.
|
protected |
Definition at line 193 of file PersistentPointsToDS.h.
|
protected |
Definition at line 194 of file PersistentPointsToDS.h.