|
Static Value-Flow Analysis
|
#include <MemPartition.h>
Protected Member Functions | |
| virtual void | partitionMRs () |
| Partition regions. | |
| virtual void | getMRsForLoad (MRSet &aliasMRs, const NodeBS &cpts, const FunObjVar *) |
Protected Member Functions inherited from SVF::IntraDisjointMRG | |
| void | getMRsForLoadFromInterList (MRSet &mrs, const NodeBS &cpts, const PointsToList &inters) |
| virtual void | getMRsForCallSiteRef (MRSet &aliasMRs, const NodeBS &cpts, const FunObjVar *fun) |
| Get memory regions to be inserted at a load statement. | |
| void | createDisjointMR (const FunObjVar *func, const NodeBS &cpts) |
| Create disjoint memory region. | |
| void | computeIntersections (const NodeBS &cpts, PointsToList &inters) |
| Compute intersections between cpts and computed cpts intersections before. | |
Protected Member Functions inherited from SVF::MRGenerator | |
| MRGenerator (BVDataPTAImpl *p, bool ptrOnly) | |
| void | createMR (const FunObjVar *fun, const NodeBS &cpts) |
| Generate a memory region and put in into functions which use it. | |
| void | collectGlobals () |
| Collect all global variables for later escape analysis. | |
| virtual void | collectModRefForLoadStore () |
| Generate regions for loads/stores. | |
| virtual void | collectModRefForCall () |
| Generate regions for calls/rets. | |
| virtual void | updateAliasMRs () |
| Update aliased regions for loads/stores/callsites. | |
| virtual void | sortPointsTo (const NodeBS &cpts) |
| Given a condition pts, insert into cptsToRepCPtsMap for region generation. | |
| virtual bool | isAliasedMR (const NodeBS &cpts, const MemRegion *mr) |
| Whether a region is aliased with a conditional points-to. | |
| virtual void | getAliasMemRegions (MRSet &aliasMRs, const NodeBS &cpts, const FunObjVar *fun) |
| Get all aliased mem regions from function fun according to cpts. | |
| virtual void | modRefAnalysis (CallGraphNode *callGraphNode, WorkList &worklist) |
| Mod-Ref analysis for callsite invoking this callGraphNode. | |
| virtual bool | handleCallsiteModRef (NodeBS &mod, NodeBS &ref, const CallICFGNode *cs, const FunObjVar *fun) |
| Get Mod-Ref of a callee function. | |
| void | addCPtsToStore (NodeBS &cpts, const StoreStmt *st, const FunObjVar *fun) |
| Add cpts to store/load. | |
| void | addCPtsToLoad (NodeBS &cpts, const LoadStmt *ld, const FunObjVar *fun) |
| void | addCPtsToCallSiteRefs (NodeBS &cpts, const CallICFGNode *cs) |
| void | addCPtsToCallSiteMods (NodeBS &cpts, const CallICFGNode *cs) |
| bool | hasCPtsList (const FunObjVar *fun) const |
| PointsToList & | getPointsToList (const FunObjVar *fun) |
| FunToPointsTosMap & | getFunToPointsToList () |
| void | addRefSideEffectOfFunction (const FunObjVar *fun, const NodeBS &refs) |
| Add/Get methods for side-effect of functions and callsites. | |
| void | addModSideEffectOfFunction (const FunObjVar *fun, const NodeBS &mods) |
| Add indirect def an memory object in the function. | |
| bool | addRefSideEffectOfCallSite (const CallICFGNode *cs, const NodeBS &refs) |
| Add indirect uses an memory object in the function. | |
| bool | addModSideEffectOfCallSite (const CallICFGNode *cs, const NodeBS &mods) |
| Add indirect def an memory object in the function. | |
| const NodeBS & | getRefSideEffectOfFunction (const FunObjVar *fun) |
| Get indirect refs of a function. | |
| const NodeBS & | getModSideEffectOfFunction (const FunObjVar *fun) |
| Get indirect mods of a function. | |
| const NodeBS & | getRefSideEffectOfCallSite (const CallICFGNode *cs) |
| Get indirect refs of a callsite. | |
| const NodeBS & | getModSideEffectOfCallSite (const CallICFGNode *cs) |
| Get indirect mods of a callsite. | |
| bool | hasRefSideEffectOfCallSite (const CallICFGNode *cs) |
| Has indirect refs of a callsite. | |
| bool | hasModSideEffectOfCallSite (const CallICFGNode *cs) |
| Has indirect mods of a callsite. | |
Private Attributes | |
| PointsToList | inters |
Create memory regions which don't have intersections with each other in the whole program scope.
Definition at line 139 of file MemPartition.h.
|
inline |
Definition at line 142 of file MemPartition.h.
|
inline |
Definition at line 145 of file MemPartition.h.
|
inlineprotectedvirtual |
Get memory regions to be inserted at a load statement.
| cpts | The conditional points-to set of load statement. |
| fun | The function being analyzed. |
| mrs | Memory region set contains all possible target memory regions. |
Reimplemented from SVF::IntraDisjointMRG.
Definition at line 157 of file MemPartition.h.
|
protectedvirtual |
Partition regions.
Generate disjoint cpts.
Create memory regions.
Reimplemented from SVF::IntraDisjointMRG.
Definition at line 269 of file MemPartition.cpp.
|
private |
Definition at line 164 of file MemPartition.h.