Static Value-Flow Analysis
|
DFPTData backed by a PersistentPointsToCache. More...
#include <PersistentPointsToDS.h>
Public Types | |
typedef PTData< Key, KeySet, Data, DataSet > | BasePTData |
typedef BasePTData::PTDataTy | PTDataTy |
typedef DFPTData< Key, KeySet, Data, DataSet > | BaseDFPTData |
typedef PersistentPTData< Key, KeySet, Data, DataSet > | BasePersPTData |
typedef BaseDFPTData::LocID | LocID |
typedef BasePersPTData::KeyToIDMap | KeyToIDMap |
typedef Map< LocID, KeyToIDMap > | DFKeyToIDMap |
Public Types inherited from SVF::DFPTData< Key, KeySet, Data, DataSet > | |
typedef PTData< Key, KeySet, Data, DataSet > | BasePTData |
typedef BasePTData::PTDataTy | PTDataTy |
typedef NodeID | LocID |
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... | |
Static Public Member Functions | |
static bool | classof (const PersistentDFPTData< Key, KeySet, Data, DataSet > *) |
static bool | classof (const PTData< Key, KeySet, Data, DataSet > *ptd) |
Static Public Member Functions inherited from SVF::DFPTData< Key, KeySet, Data, DataSet > | |
static bool | classof (const DFPTData< Key, KeySet, Data, DataSet > *) |
static bool | classof (const PTData< Key, KeySet, Data, DataSet > *ptd) |
Protected Member Functions | |
bool | unionPtsThroughIds (PointsToID &dst, PointsToID &src) |
PointsToID & | getDFInPtIdRef (LocID loc, const Key &var) |
PointsToID & | getDFOutPtIdRef (LocID loc, const Key &var) |
Protected Attributes | |
PersistentPointsToCache< DataSet > & | ptCache |
PersistentPTData< Key, KeySet, Data, DataSet > | persPTData |
PTData for top-level pointers. We will also use its cache for address-taken pointers. | |
DFKeyToIDMap | dfInPtsMap |
Address-taken points-to sets in IN-sets. | |
DFKeyToIDMap | dfOutPtsMap |
Address-taken points-to sets in OUT-sets. | |
Protected Attributes inherited from SVF::PTData< Key, KeySet, Data, DataSet > | |
bool | rev |
Whether we maintain reverse points-to sets or not. | |
PTDataTy | ptdTy |
DFPTData backed by a PersistentPointsToCache.
Definition at line 334 of file PersistentPointsToDS.h.
typedef DFPTData<Key, KeySet, Data, DataSet> SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::BaseDFPTData |
Definition at line 339 of file PersistentPointsToDS.h.
typedef PersistentPTData<Key, KeySet, Data, DataSet> SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::BasePersPTData |
Definition at line 340 of file PersistentPointsToDS.h.
typedef PTData<Key, KeySet, Data, DataSet> SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::BasePTData |
Definition at line 337 of file PersistentPointsToDS.h.
typedef Map<LocID, KeyToIDMap> SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::DFKeyToIDMap |
Definition at line 344 of file PersistentPointsToDS.h.
typedef BasePersPTData::KeyToIDMap SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::KeyToIDMap |
Definition at line 343 of file PersistentPointsToDS.h.
typedef BaseDFPTData::LocID SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::LocID |
Definition at line 342 of file PersistentPointsToDS.h.
typedef BasePTData::PTDataTy SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::PTDataTy |
Definition at line 338 of file PersistentPointsToDS.h.
|
inlineexplicit |
Definition at line 346 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 379 of file PersistentPointsToDS.h.
|
inlinestatic |
Methods to support type inquiry through isa, cast, and dyn_cast:
Definition at line 536 of file PersistentPointsToDS.h.
|
inlinestatic |
Definition at line 541 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Clears all points-to sets as if nothing is stored.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::PersistentIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 351 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::PersistentIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 486 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Fully clears the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 389 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Clears element from the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 384 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Dump stored keys and points-to sets.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 399 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 501 of file PersistentPointsToDS.h.
|
inlineprotected |
Definition at line 556 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 430 of file PersistentPointsToDS.h.
|
inlineprotected |
Definition at line 561 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 436 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Get points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 358 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Get reverse points-to set of a datum.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 363 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Determine whether the DF IN/OUT sets have points-to sets.
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 404 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 414 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 409 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Access points-to set from data-flow IN/OUT set.
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 422 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 394 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U srcDataSet.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 374 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U pts(srcVar).
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 369 of file PersistentPointsToDS.h.
|
inlineprotected |
Definition at line 549 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Union (IN[dstLoc::dstVar], IN[srcLoc:srcVar]. There is no flag check, unlike the above.
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::PersistentIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 447 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Union (IN[dstLoc::dstVar], OUT[srcLoc:srcVar]. There is no flag check, unlike the above.
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::PersistentIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 457 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
For each variable var in IN at loc, do updateDFOutFromIn(loc, var, loc, var).
Enable strong updates if required.
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::PersistentIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 467 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Update address-taken variables OUT[dstLoc:dstVar] with points-to of top-level pointers.
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::PersistentIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 496 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Update points-to for IN/OUT set IN[loc:var] represents the points-to of variable var in the IN set of location loc. union(ptsDst, ptsSrc) represents ptsDst = ptsDst U ptsSrc.
Union (IN[dstLoc:dstVar], IN[srcLoc:srcVar]).
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::PersistentIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 442 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Union (IN[dstLoc:dstVar], OUT[srcLoc:srcVar]).
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::PersistentIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 452 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Union (OUT[dstLoc:dstVar], IN[srcLoc:srcVar]).
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::PersistentIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 462 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Update points-to set of top-level pointers with IN[srcLoc:srcVar].
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::PersistentIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 491 of file PersistentPointsToDS.h.
|
protected |
Address-taken points-to sets in IN-sets.
Definition at line 573 of file PersistentPointsToDS.h.
|
protected |
Address-taken points-to sets in OUT-sets.
Definition at line 575 of file PersistentPointsToDS.h.
|
protected |
PTData for top-level pointers. We will also use its cache for address-taken pointers.
Definition at line 570 of file PersistentPointsToDS.h.
|
protected |
Definition at line 567 of file PersistentPointsToDS.h.