|
Static Value-Flow Analysis
|
#include <AbstractPointsToDS.h>
Public Types | |
| 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 | |
| DiffPTData (bool reversePT=true, PTDataTy ty=PTDataTy::Diff) | |
| virtual | ~DiffPTData () |
| virtual const DataSet & | getDiffPts (Key &var)=0 |
| Get diff points to. | |
| virtual bool | computeDiffPts (Key &var, const DataSet &all)=0 |
| virtual void | updatePropaPtsMap (Key &src, Key &dst)=0 |
| virtual void | clearPropaPts (Key &var)=0 |
| Clear propagated points-to set of var. | |
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. | |
| virtual void | clear ()=0 |
| Clears all points-to sets as if nothing is stored. | |
| virtual const DataSet & | getPts (const Key &var)=0 |
| Get points-to set of var. | |
| virtual const KeySet & | getRevPts (const Data &datum)=0 |
| Get reverse points-to set of a datum. | |
| virtual bool | addPts (const Key &var, const Data &element)=0 |
| Adds element to the points-to set associated with var. | |
| virtual bool | unionPts (const Key &dstVar, const Key &srcVar)=0 |
| Performs pts(dstVar) = pts(dstVar) U pts(srcVar). | |
| virtual bool | unionPts (const Key &dstVar, const DataSet &srcDataSet)=0 |
| Performs pts(dstVar) = pts(dstVar) U srcDataSet. | |
| virtual void | clearPts (const Key &var, const Data &element)=0 |
| Clears element from the points-to set of var. | |
| virtual void | clearFullPts (const Key &var)=0 |
| Fully clears the points-to set of var. | |
| virtual void | remapAllPts (void)=0 |
| Remaps all points-to sets to use the current mapping. | |
| virtual void | dumpPTData ()=0 |
| Dump stored keys and points-to sets. | |
| virtual Map< DataSet, unsigned > | getAllPts (bool liveOnly) const =0 |
Static Public Member Functions | |
| static bool | classof (const DiffPTData< Key, KeySet, Data, DataSet > *) |
| static bool | classof (const PTData< Key, KeySet, Data, DataSet > *ptd) |
Additional Inherited Members | |
Protected Attributes inherited from SVF::PTData< Key, KeySet, Data, DataSet > | |
| bool | rev |
| Whether we maintain reverse points-to sets or not. | |
| PTDataTy | ptdTy |
Abstract diff points-to data with cached information. This is an optimisation on top of the base points-to data structure. The points-to information is propagated incrementally only for the different parts.
Definition at line 149 of file AbstractPointsToDS.h.
| typedef PTData<Key, KeySet, Data, DataSet> SVF::DiffPTData< Key, KeySet, Data, DataSet >::BasePTData |
Definition at line 152 of file AbstractPointsToDS.h.
| typedef BasePTData::PTDataTy SVF::DiffPTData< Key, KeySet, Data, DataSet >::PTDataTy |
Definition at line 153 of file AbstractPointsToDS.h.
|
inline |
Definition at line 155 of file AbstractPointsToDS.h.
|
inlinevirtual |
Definition at line 157 of file AbstractPointsToDS.h.
|
inlinestatic |
Methods to support type inquiry through isa, cast, and dyn_cast:
Definition at line 176 of file AbstractPointsToDS.h.
|
inlinestatic |
Definition at line 180 of file AbstractPointsToDS.h.
Clear propagated points-to set of var.
Implemented in SVF::MutableDiffPTData< Key, KeySet, Data, DataSet >, and SVF::PersistentDiffPTData< Key, KeySet, Data, DataSet >.
|
pure virtual |
Compute diff points to. Return TRUE if diff is not empty.
Implemented in SVF::MutableDiffPTData< Key, KeySet, Data, DataSet >, and SVF::PersistentDiffPTData< Key, KeySet, Data, DataSet >.
|
pure virtual |
Get diff points to.
Implemented in SVF::MutableDiffPTData< Key, KeySet, Data, DataSet >, and SVF::PersistentDiffPTData< Key, KeySet, Data, DataSet >.
|
pure virtual |
Update dst's propagated points-to set with src's. The final result is the intersection of these two sets.
Implemented in SVF::MutableDiffPTData< Key, KeySet, Data, DataSet >, and SVF::PersistentDiffPTData< Key, KeySet, Data, DataSet >.