|
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 362 of file MutablePointsToDS.h.
| typedef DFPTData<Key, KeySet, Data, DataSet> SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::BaseDFPTData |
Definition at line 367 of file MutablePointsToDS.h.
| typedef MutablePTData<Key, KeySet, Data, DataSet> SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::BaseMutPTData |
Definition at line 366 of file MutablePointsToDS.h.
| typedef PTData<Key, KeySet, Data, DataSet> SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::BasePTData |
Definition at line 365 of file MutablePointsToDS.h.
Data-flow point-to map.
Definition at line 373 of file MutablePointsToDS.h.
| typedef DFPtsMap::const_iterator SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::DFPtsMapconstIter |
Definition at line 375 of file MutablePointsToDS.h.
| typedef DFPtsMap::iterator SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::DFPtsMapIter |
Definition at line 374 of file MutablePointsToDS.h.
| typedef BaseDFPTData::LocID SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::LocID |
Definition at line 370 of file MutablePointsToDS.h.
| typedef BasePTData::PTDataTy SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::PTDataTy |
Definition at line 368 of file MutablePointsToDS.h.
| typedef BaseMutPTData::PtsMap SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::PtsMap |
Definition at line 371 of file MutablePointsToDS.h.
| typedef BaseMutPTData::PtsMapConstIter SVF::MutableDFPTData< Key, KeySet, Data, DataSet >::PtsMapConstIter |
Definition at line 372 of file MutablePointsToDS.h.
|
inline |
Constructor.
Definition at line 378 of file MutablePointsToDS.h.
|
inlinevirtual |
Definition at line 380 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 525 of file MutablePointsToDS.h.
|
inlineprotected |
Definition at line 602 of file MutablePointsToDS.h.
|
inlinestatic |
Methods to support type inquiry through isa, cast, and dyn_cast:
Definition at line 584 of file MutablePointsToDS.h.
|
inlinestatic |
Definition at line 588 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 387 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Reimplemented in SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 518 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Fully clears the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 541 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Clears element from the points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 537 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 611 of file MutablePointsToDS.h.
|
inlinevirtual |
Definition at line 654 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 560 of file MutablePointsToDS.h.
Definition at line 453 of file MutablePointsToDS.h.
|
inline |
Get internal flow-sensitive data structures.
Definition at line 445 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 431 of file MutablePointsToDS.h.
Definition at line 457 of file MutablePointsToDS.h.
|
inline |
Definition at line 449 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 437 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Get points-to set of var.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 392 of file MutablePointsToDS.h.
|
inlinevirtual |
Definition at line 382 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Get reverse points-to set of a datum.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 397 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 403 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 413 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Implements SVF::DFPTData< Key, KeySet, Data, DataSet >.
Definition at line 408 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 422 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 545 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U srcDataSet.
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 533 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Performs pts(dstVar) = pts(dstVar) U pts(srcVar).
Implements SVF::PTData< Key, KeySet, Data, DataSet >.
Definition at line 529 of file MutablePointsToDS.h.
|
inlineprotected |
Internal union/add points-to helper methods.
Definition at line 598 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 483 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 478 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 488 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 513 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 463 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 468 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 473 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 508 of file MutablePointsToDS.h.
|
protected |
Data-flow IN set.
Definition at line 671 of file MutablePointsToDS.h.
|
protected |
Data-flow OUT set.
Definition at line 673 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 676 of file MutablePointsToDS.h.