|
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 *fun) |
| Get memory region at a load. | |
| virtual void | getMRsForCallSiteRef (MRSet &aliasMRs, const NodeBS &cpts, const FunObjVar *fun) |
| Get memory regions to be inserted at a load statement. | |
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 Member Functions | |
| void | createDistinctMR (const FunObjVar *func, const NodeBS &cpts) |
| Create memory regions for each points-to target. | |
Distinct memory region generator.
Definition at line 47 of file MemPartition.h.
|
inline |
Definition at line 50 of file MemPartition.h.
|
inline |
Definition at line 53 of file MemPartition.h.
Create memory regions for each points-to target.
Create memory regions for each points-to target.
Create memory regions for each points-to target.
Definition at line 64 of file MemPartition.cpp.
|
protectedvirtual |
Get memory regions to be inserted at a load statement.
Get memory regions to be inserted at a load statement. Just process as getMRsForLoad().
Reimplemented from SVF::MRGenerator.
Definition at line 115 of file MemPartition.cpp.
|
protectedvirtual |
Get memory region at a load.
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. |
Get memory regions for each points-to element in cpts.
Reimplemented from SVF::MRGenerator.
Definition at line 91 of file MemPartition.cpp.
|
protectedvirtual |
Partition regions.
Create distinct memory regions.
Collect all points-to target in a function scope.
Reimplemented from SVF::MRGenerator.
Definition at line 42 of file MemPartition.cpp.