Static Value-Flow Analysis
|
#include <MutablePointsToDS.h>
Static Public Member Functions | |
static bool | classof (const MutableDFPTData< 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 | unionPts (DataSet &dstDataSet, const DataSet &srcDataSet) |
bool | addPts (DataSet &d, const Data &e) |
Protected Attributes | |
DFPtsMap | dfInPtsMap |
Data-flow IN set. | |
DFPtsMap | dfOutPtsMap |
Data-flow OUT set. | |
MutablePTData< Key, KeySet, Data, DataSet > | mutPTData |
Protected Attributes inherited from SVF::PTData< Key, KeySet, Data, DataSet > | |
bool | rev |
Whether we maintain reverse points-to sets or not. | |
PTDataTy | ptdTy |
Definition at line 363 of file MutablePointsToDS.h.
typedef DFPTData<Key, KeySet, Data, DataSet> SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::BaseDFPTData |
Definition at line 368 of file MutablePointsToDS.h.
typedef MutablePTData<Key, KeySet, Data, DataSet> SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::BaseMutPTData |
Definition at line 367 of file MutablePointsToDS.h.
typedef PTData<Key, KeySet, Data, DataSet> SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::BasePTData |
Definition at line 366 of file MutablePointsToDS.h.
Data-flow point-to map.
Definition at line 374 of file MutablePointsToDS.h.
typedef DFPtsMap::const_iterator SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::DFPtsMapconstIter |
Definition at line 376 of file MutablePointsToDS.h.
typedef DFPtsMap::iterator SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::DFPtsMapIter |
Definition at line 375 of file MutablePointsToDS.h.
typedef BaseDFPTData::LocID SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::LocID |
Definition at line 371 of file MutablePointsToDS.h.
typedef BasePTData::PTDataTy SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::PTDataTy |
Definition at line 369 of file MutablePointsToDS.h.
typedef BaseMutPTData::PtsMap SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::PtsMap |
Definition at line 372 of file MutablePointsToDS.h.
typedef BaseMutPTData::PtsMapConstIter SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::PtsMapConstIter |
Definition at line 373 of file MutablePointsToDS.h.
|
inline |
Constructor.
Definition at line 379 of file MutablePointsToDS.h.
|
inlinevirtual |
Definition at line 381 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Override the methods defined in PTData. Union/add points-to without adding reverse points-to, used internally
Definition at line 526 of file MutablePointsToDS.h.
|
inlineprotected |
Definition at line 603 of file MutablePointsToDS.h.
|
inlinestatic |
Methods to support type inquiry through isa, cast, and dyn_cast:
Definition at line 585 of file MutablePointsToDS.h.
|
inlinestatic |
Definition at line 589 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 388 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 519 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Fully clears the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 542 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Clears element from the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 538 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Dump the DF IN/OUT set information for debugging purpose
dump points-to of top-level pointers
dump points-to of address-taken variables
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 612 of file MutablePointsToDS.h.
|
inlinevirtual |
Definition at line 655 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 561 of file MutablePointsToDS.h.
Definition at line 454 of file MutablePointsToDS.h.
|
inline |
Get internal flow-sensitive data structures.
Definition at line 446 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 432 of file MutablePointsToDS.h.
Definition at line 458 of file MutablePointsToDS.h.
|
inline |
Definition at line 450 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 438 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Get points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 393 of file MutablePointsToDS.h.
|
inlinevirtual |
Definition at line 383 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Get reverse points-to set of a datum.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 398 of file MutablePointsToDS.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 MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 414 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 409 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Access points-to set from data-flow IN/OUT set.
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 423 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 546 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U srcDataSet.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 534 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U pts(srcVar).
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 530 of file MutablePointsToDS.h.
|
inlineprotected |
Internal union/add points-to helper methods.
Definition at line 599 of file MutablePointsToDS.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::MutableIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 484 of file MutablePointsToDS.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::MutableIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 479 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
For each variable var in IN at loc, do updateDFOutFromIn(loc, var, loc, var).
Only variables has new pts from IN set need to be updated.
Enable strong updates if it is required to do so
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 489 of file MutablePointsToDS.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::MutableIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 514 of file MutablePointsToDS.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::MutableIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 464 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Union (IN[dstLoc:dstVar], OUT[srcLoc:srcVar]).
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 469 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Union (OUT[dstLoc:dstVar], IN[srcLoc:srcVar]).
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 474 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Update points-to set of top-level pointers with IN[srcLoc:srcVar].
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 509 of file MutablePointsToDS.h.
|
protected |
Data-flow IN set.
Definition at line 672 of file MutablePointsToDS.h.
|
protected |
Data-flow OUT set.
Definition at line 674 of file MutablePointsToDS.h.
|
protected |
Backing to implement the basic PTData methods which are not overridden. This allows us to avoid multiple-inheritance.
Definition at line 677 of file MutablePointsToDS.h.