|
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 333 of file PersistentPointsToDS.h.
| typedef DFPTData<Key, KeySet, Data, DataSet> SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::BaseDFPTData |
Definition at line 338 of file PersistentPointsToDS.h.
| typedef PersistentPTData<Key, KeySet, Data, DataSet> SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::BasePersPTData |
Definition at line 339 of file PersistentPointsToDS.h.
| typedef PTData<Key, KeySet, Data, DataSet> SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::BasePTData |
Definition at line 336 of file PersistentPointsToDS.h.
| typedef Map<LocID, KeyToIDMap> SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::DFKeyToIDMap |
Definition at line 343 of file PersistentPointsToDS.h.
| typedef BasePersPTData::KeyToIDMap SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::KeyToIDMap |
Definition at line 342 of file PersistentPointsToDS.h.
| typedef BaseDFPTData::LocID SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::LocID |
Definition at line 341 of file PersistentPointsToDS.h.
| typedef BasePTData::PTDataTy SVF::PersistentDFPTData< Key, KeySet, Data, DataSet >::PTDataTy |
Definition at line 337 of file PersistentPointsToDS.h.
|
inlineexplicit |
Definition at line 345 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 378 of file PersistentPointsToDS.h.
|
inlinestatic |
Methods to support type inquiry through isa, cast, and dyn_cast:
Definition at line 535 of file PersistentPointsToDS.h.
|
inlinestatic |
Definition at line 540 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 350 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::PersistentIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 485 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Fully clears the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 388 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Clears element from the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 383 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Dump stored keys and points-to sets.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 398 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 500 of file PersistentPointsToDS.h.
|
inlineprotected |
Definition at line 555 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 429 of file PersistentPointsToDS.h.
|
inlineprotected |
Definition at line 560 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 435 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Get points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 357 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Get reverse points-to set of a datum.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 362 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 403 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 413 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 408 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 421 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 393 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U srcDataSet.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 373 of file PersistentPointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U pts(srcVar).
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 368 of file PersistentPointsToDS.h.
|
inlineprotected |
Definition at line 548 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 446 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 456 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 466 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 495 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 441 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 451 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 461 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 490 of file PersistentPointsToDS.h.
|
protected |
Address-taken points-to sets in IN-sets.
Definition at line 572 of file PersistentPointsToDS.h.
|
protected |
Address-taken points-to sets in OUT-sets.
Definition at line 574 of file PersistentPointsToDS.h.
|
protected |
PTData for top-level pointers. We will also use its cache for address-taken pointers.
Definition at line 569 of file PersistentPointsToDS.h.
|
protected |
Definition at line 566 of file PersistentPointsToDS.h.