|
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. | |
| bool | hasReversePts () const |
| Whether we maintain reverse points-to sets. | |
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) |
Friends | |
| template<typename K, typename KS, typename D, typename DS, typename VK, typename VKS> | |
| class | PersistentVersionedPTData |
| class | PersistentDFPTData< Key, KeySet, Data, DataSet > |
| class | PersistentIncDFPTData< Key, KeySet, Data, DataSet > |
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.
| typedef Map<Data, KeySet> SVF::PersistentPTData< Key, KeySet, Data, DataSet >::RevPtsMap |
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.
|
friend |
Definition at line 36 of file PersistentPointsToDS.h.
|
friend |
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.