Static Value-Flow Analysis
|
PTData implemented using points-to sets which are created once and updated continuously. More...
#include <MutablePointsToDS.h>
Public Types | |
typedef PTData< Key, KeySet, Data, DataSet > | BasePTData |
typedef BasePTData::PTDataTy | PTDataTy |
typedef Map< Key, DataSet > | PtsMap |
typedef Map< Data, KeySet > | RevPtsMap |
typedef PtsMap::iterator | PtsMapIter |
typedef PtsMap::const_iterator | PtsMapConstIter |
typedef DataSet::iterator | iterator |
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 | |
MutablePTData (bool reversePT=true, PTDataTy ty=PTDataTy::MutBase) | |
Constructor. | |
virtual | ~MutablePTData () |
virtual const PtsMap & | getPtsMap () const |
Return Points-to map. | |
virtual void | clear () override |
Clears all points-to sets as if nothing is stored. | |
virtual const DataSet & | getPts (const Key &var) override |
Get points-to set of var. | |
virtual const KeySet & | getRevPts (const Data &datum) override |
Get reverse points-to set of a datum. | |
virtual bool | addPts (const Key &dstKey, const Data &element) override |
Adds element to the points-to set associated with var. | |
virtual bool | unionPts (const Key &dstKey, const Key &srcKey) override |
Performs pts(dstVar) = pts(dstVar) U pts(srcVar). | |
virtual bool | unionPts (const Key &dstKey, const DataSet &srcDataSet) override |
Performs pts(dstVar) = pts(dstVar) U srcDataSet. | |
virtual void | dumpPTData () override |
Dump stored keys and points-to sets. | |
virtual void | clearPts (const Key &var, const Data &element) override |
Clears element from the points-to set of var. | |
virtual void | clearFullPts (const Key &var) override |
Fully clears the points-to set of var. | |
virtual void | remapAllPts (void) override |
Remaps all points-to sets to use the current mapping. | |
virtual 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 MutablePTData< Key, KeySet, Data, DataSet > *) |
static bool | classof (const PTData< Key, KeySet, Data, DataSet > *ptd) |
Protected Member Functions | |
virtual void | dumpPts (const PtsMap &ptsSet, OutStream &O=SVFUtil::outs()) const |
Protected Attributes | |
PtsMap | 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 | unionPts (DataSet &dstDataSet, const DataSet &srcDataSet) |
bool | addPts (DataSet &d, const Data &e) |
void | addSingleRevPts (KeySet &revData, const Key &tgr) |
void | addRevPts (const DataSet &ptsData, const Key &tgr) |
void | clearSingleRevPts (KeySet &revSet, const Key &k) |
void | clearRevPts (const DataSet &pts, const Key &k) |
Friends | |
class | MutableDFPTData< Key, KeySet, Data, DataSet > |
PTData implemented using points-to sets which are created once and updated continuously.
Definition at line 53 of file MutablePointsToDS.h.
typedef PTData<Key, KeySet, Data, DataSet> SVF::MutablePTData< Key, KeySet, Data, DataSet >::BasePTData |
Definition at line 57 of file MutablePointsToDS.h.
typedef DataSet::iterator SVF::MutablePTData< Key, KeySet, Data, DataSet >::iterator |
Definition at line 64 of file MutablePointsToDS.h.
typedef BasePTData::PTDataTy SVF::MutablePTData< Key, KeySet, Data, DataSet >::PTDataTy |
Definition at line 58 of file MutablePointsToDS.h.
Definition at line 60 of file MutablePointsToDS.h.
typedef PtsMap::const_iterator SVF::MutablePTData< Key, KeySet, Data, DataSet >::PtsMapConstIter |
Definition at line 63 of file MutablePointsToDS.h.
typedef PtsMap::iterator SVF::MutablePTData< Key, KeySet, Data, DataSet >::PtsMapIter |
Definition at line 62 of file MutablePointsToDS.h.
Definition at line 61 of file MutablePointsToDS.h.
|
inline |
Constructor.
Definition at line 67 of file MutablePointsToDS.h.
|
inlinevirtual |
Definition at line 69 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 94 of file MutablePointsToDS.h.
|
inlineprivate |
Definition at line 185 of file MutablePointsToDS.h.
|
inlineprivate |
Definition at line 196 of file MutablePointsToDS.h.
|
inlineprivate |
Definition at line 189 of file MutablePointsToDS.h.
|
inlinestatic |
Methods to support type inquiry through isa, cast, and dyn_cast:
Definition at line 149 of file MutablePointsToDS.h.
|
inlinestatic |
Definition at line 154 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 77 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Fully clears the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 123 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Clears element from the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 117 of file MutablePointsToDS.h.
|
inlineprivate |
Definition at line 211 of file MutablePointsToDS.h.
|
inlineprivate |
Definition at line 204 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Dump stored keys and points-to sets.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 112 of file MutablePointsToDS.h.
|
inlineprotectedvirtual |
Definition at line 161 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 135 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Get points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 83 of file MutablePointsToDS.h.
|
inlinevirtual |
Return Points-to map.
Definition at line 72 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Get reverse points-to set of a datum.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 88 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 130 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U srcDataSet.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 106 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U pts(srcVar).
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 100 of file MutablePointsToDS.h.
|
inlineprivate |
Internal union/add points-to helper methods.
Definition at line 181 of file MutablePointsToDS.h.
Definition at line 1 of file MutablePointsToDS.h.
|
protected |
Definition at line 221 of file MutablePointsToDS.h.
|
protected |
Definition at line 222 of file MutablePointsToDS.h.