Static Value-Flow Analysis
|
Incremental version of the mutable data-flow points-to data structure. More...
#include <MutablePointsToDS.h>
Static Public Member Functions | |
static bool | classof (const MutableIncDFPTData< Key, KeySet, Data, DataSet > *) |
static bool | classof (const PTData< Key, KeySet, Data, DataSet > *ptd) |
Static Public Member Functions inherited from SVF::MutableDFPTData< Key, KeySet, Data, DataSet > | |
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) |
Private Member Functions | |
void | setVarDFInSetUpdated (LocID loc, const Key &var) |
Handle address-taken variables whose IN pts changed. | |
void | removeVarFromDFInUpdatedSet (LocID loc, const Key &var) |
Remove var from loc's IN updated set. | |
bool | varHasNewDFInPts (LocID loc, const Key &var) |
Return TRUE if var has new pts in loc's IN set. | |
const DataSet & | getDFInUpdatedVar (LocID loc) |
Get all var which have new pts information in loc's IN set. | |
void | setVarDFOutSetUpdated (LocID loc, const Key &var) |
Handle address-taken variables whose OUT pts changed. | |
void | removeVarFromDFOutUpdatedSet (LocID loc, const Key &var) |
Remove var from loc's OUT updated set. | |
bool | varHasNewDFOutPts (LocID loc, const Key &var) |
Return TRUE if var has new pts in loc's OUT set. | |
const DataSet & | getDFOutUpdatedVar (LocID loc) |
Get all var which have new pts information in loc's OUT set. | |
Private Attributes | |
UpdatedVarMap | outUpdatedVarMap |
UpdatedVarMap | inUpdatedVarMap |
Additional Inherited Members | |
Protected Member Functions inherited from SVF::MutableDFPTData< Key, KeySet, Data, DataSet > | |
bool | unionPts (DataSet &dstDataSet, const DataSet &srcDataSet) |
bool | addPts (DataSet &d, const Data &e) |
Protected Attributes inherited from SVF::MutableDFPTData< Key, KeySet, Data, DataSet > | |
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 |
Incremental version of the mutable data-flow points-to data structure.
Definition at line 682 of file MutablePointsToDS.h.
typedef DFPTData<Key, KeySet, Data, DataSet> SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::BaseDFPTData |
Definition at line 687 of file MutablePointsToDS.h.
typedef MutableDFPTData<Key, KeySet, Data, DataSet> SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::BaseMutDFPTData |
Definition at line 688 of file MutablePointsToDS.h.
typedef MutablePTData<Key, KeySet, Data, DataSet> SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::BaseMutPTData |
Definition at line 686 of file MutablePointsToDS.h.
typedef PTData<Key, KeySet, Data, DataSet> SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::BasePTData |
Definition at line 685 of file MutablePointsToDS.h.
typedef DataSet::iterator SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::DataIter |
Definition at line 695 of file MutablePointsToDS.h.
typedef BaseDFPTData::LocID SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::LocID |
Definition at line 691 of file MutablePointsToDS.h.
typedef BasePTData::PTDataTy SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::PTDataTy |
Definition at line 689 of file MutablePointsToDS.h.
typedef UpdatedVarMap::const_iterator SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::UpdatedVarconstIter |
Definition at line 694 of file MutablePointsToDS.h.
for propagating only newly added variable in IN/OUT set
Definition at line 692 of file MutablePointsToDS.h.
typedef UpdatedVarMap::iterator SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::UpdatedVarMapIter |
Definition at line 693 of file MutablePointsToDS.h.
|
inline |
Constructor.
Definition at line 703 of file MutablePointsToDS.h.
|
inlinevirtual |
Definition at line 705 of file MutablePointsToDS.h.
|
inlinestatic |
Methods to support type inquiry through isa, cast, and dyn_cast:
Definition at line 818 of file MutablePointsToDS.h.
|
inlinestatic |
Definition at line 823 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Reimplemented from SVF::MutableDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 803 of file MutablePointsToDS.h.
|
inlineprivate |
Get all var which have new pts information in loc's IN set.
Definition at line 852 of file MutablePointsToDS.h.
|
inlineprivate |
Get all var which have new pts information in loc's OUT set.
Definition at line 881 of file MutablePointsToDS.h.
|
inlineprivate |
Remove var from loc's IN updated set.
Definition at line 837 of file MutablePointsToDS.h.
|
inlineprivate |
Remove var from loc's OUT updated set.
Definition at line 866 of file MutablePointsToDS.h.
|
inlineprivate |
Handle address-taken variables whose IN pts changed.
Add var into loc's IN updated set. Called when var's pts in loc's IN set changed
Definition at line 832 of file MutablePointsToDS.h.
|
inlineprivate |
Handle address-taken variables whose OUT pts changed.
Add var into loc's OUT updated set. Called when var's pts in loc's OUT set changed
Definition at line 861 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Union (IN[dstLoc::dstVar], IN[srcLoc:srcVar]. There is no flag check, unlike the above.
Reimplemented from SVF::MutableDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 753 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Union (IN[dstLoc::dstVar], OUT[srcLoc:srcVar]. There is no flag check, unlike the above.
Reimplemented from SVF::MutableDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 743 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
Only variables has new pts from IN set need to be updated.
Enable strong updates if it is required to do so
Reimplemented from SVF::MutableDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 763 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Update address-taken variables OUT[dstLoc:dstVar] with points-to of top-level pointers.
Reimplemented from SVF::MutableDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 793 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]).
Reimplemented from SVF::MutableDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 707 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Union (IN[dstLoc:dstVar], OUT[srcLoc:srcVar]).
Reimplemented from SVF::MutableDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 718 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Union (OUT[dstLoc:dstVar], IN[srcLoc:srcVar]).
Reimplemented from SVF::MutableDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 729 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Update points-to set of top-level pointers with IN[srcLoc:srcVar].
Reimplemented from SVF::MutableDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 783 of file MutablePointsToDS.h.
|
inlineprivate |
Return TRUE if var has new pts in loc's IN set.
Definition at line 844 of file MutablePointsToDS.h.
|
inlineprivate |
Return TRUE if var has new pts in loc's OUT set.
Definition at line 873 of file MutablePointsToDS.h.
|
private |
Definition at line 699 of file MutablePointsToDS.h.
|
private |
Definition at line 698 of file MutablePointsToDS.h.