|
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 681 of file MutablePointsToDS.h.
| typedef DFPTData<Key, KeySet, Data, DataSet> SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::BaseDFPTData |
Definition at line 686 of file MutablePointsToDS.h.
| typedef MutableDFPTData<Key, KeySet, Data, DataSet> SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::BaseMutDFPTData |
Definition at line 687 of file MutablePointsToDS.h.
| typedef MutablePTData<Key, KeySet, Data, DataSet> SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::BaseMutPTData |
Definition at line 685 of file MutablePointsToDS.h.
| typedef PTData<Key, KeySet, Data, DataSet> SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::BasePTData |
Definition at line 684 of file MutablePointsToDS.h.
| typedef DataSet::iterator SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::DataIter |
Definition at line 694 of file MutablePointsToDS.h.
| typedef BaseDFPTData::LocID SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::LocID |
Definition at line 690 of file MutablePointsToDS.h.
| typedef BasePTData::PTDataTy SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::PTDataTy |
Definition at line 688 of file MutablePointsToDS.h.
| typedef UpdatedVarMap::const_iterator SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::UpdatedVarconstIter |
Definition at line 693 of file MutablePointsToDS.h.
for propagating only newly added variable in IN/OUT set
Definition at line 691 of file MutablePointsToDS.h.
| typedef UpdatedVarMap::iterator SVF::MutableIncDFPTData< Key, KeySet, Data, DataSet >::UpdatedVarMapIter |
Definition at line 692 of file MutablePointsToDS.h.
|
inline |
Constructor.
Definition at line 702 of file MutablePointsToDS.h.
|
inlinevirtual |
Definition at line 704 of file MutablePointsToDS.h.
|
inlinestatic |
Methods to support type inquiry through isa, cast, and dyn_cast:
Definition at line 817 of file MutablePointsToDS.h.
|
inlinestatic |
Definition at line 822 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Reimplemented from SVF::MutableDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 802 of file MutablePointsToDS.h.
|
inlineprivate |
Get all var which have new pts information in loc's IN set.
Definition at line 851 of file MutablePointsToDS.h.
|
inlineprivate |
Get all var which have new pts information in loc's OUT set.
Definition at line 880 of file MutablePointsToDS.h.
|
inlineprivate |
Remove var from loc's IN updated set.
Definition at line 836 of file MutablePointsToDS.h.
|
inlineprivate |
Remove var from loc's OUT updated set.
Definition at line 865 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 831 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 860 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 752 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 742 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 762 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 792 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 706 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Union (IN[dstLoc:dstVar], OUT[srcLoc:srcVar]).
Reimplemented from SVF::MutableDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 717 of file MutablePointsToDS.h.
|
inlineoverridevirtual |
Union (OUT[dstLoc:dstVar], IN[srcLoc:srcVar]).
Reimplemented from SVF::MutableDFPTData< Key, KeySet, Data, DataSet >.
Definition at line 728 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 782 of file MutablePointsToDS.h.
|
inlineprivate |
Return TRUE if var has new pts in loc's IN set.
Definition at line 843 of file MutablePointsToDS.h.
|
inlineprivate |
Return TRUE if var has new pts in loc's OUT set.
Definition at line 872 of file MutablePointsToDS.h.
|
private |
Definition at line 698 of file MutablePointsToDS.h.
|
private |
Definition at line 697 of file MutablePointsToDS.h.