Static Value-Flow Analysis
|
#include <CFLSVFGBuilder.h>
Public Types | |
typedef Set< const SVFGNode * > | SVFGNodeSet |
typedef Map< NodeID, PointsTo > | NodeToPTSSMap |
typedef FIFOWorkList< NodeID > | WorkList |
Public Types inherited from SVF::SaberSVFGBuilder | |
typedef Set< const SVFGNode * > | SVFGNodeSet |
typedef Map< NodeID, PointsTo > | NodeToPTSSMap |
typedef FIFOWorkList< NodeID > | WorkList |
Public Types inherited from SVF::SVFGBuilder | |
typedef PointerAnalysis::CallSiteSet | CallSiteSet |
typedef PointerAnalysis::CallEdgeMap | CallEdgeMap |
typedef PointerAnalysis::FunctionSet | FunctionSet |
typedef SVFG::SVFGEdgeSetTy | SVFGEdgeSet |
Protected Member Functions | |
virtual void | buildSVFG () |
Re-write create SVFG method. | |
virtual void | rmIncomingEdgeForSUStore (BVDataPTAImpl *pta) |
Protected Member Functions inherited from SVF::SaberSVFGBuilder | |
bool | isStrongUpdate (const SVFGNode *node, NodeID &singleton, BVDataPTAImpl *pta) |
Return TRUE if this is a strong update STORE statement. | |
void | rmDerefDirSVFGEdges (BVDataPTAImpl *pta) |
virtual void | AddExtActualParmSVFGNodes (PTACallGraph *callgraph) |
Add actual parameter SVFGNode for 1st argument of a deallocation like external function. | |
void | collectGlobals (BVDataPTAImpl *pta) |
bool | accessGlobal (BVDataPTAImpl *pta, const PAGNode *pagNode) |
Whether points-to of a PAGNode points-to global variable. | |
PointsTo & | CollectPtsChain (BVDataPTAImpl *pta, NodeID id, NodeToPTSSMap &cachedPtsMap) |
Collect objects along points-to chains. | |
Protected Member Functions inherited from SVF::SVFGBuilder | |
SVFG * | build (BVDataPTAImpl *pta, VFG::VFGK kind) |
Create a DDA SVFG. By default actualOut and FormalIN are removed, unless withAOFI is set true. | |
virtual void | releaseMemory () |
Release global SVFG. | |
Additional Inherited Members | |
Protected Attributes inherited from SVF::SaberSVFGBuilder | |
PointsTo | globs |
SVFGNodeSet | globSVFGNodes |
Store all global SVFG nodes. | |
SaberCondAllocator * | saberCondAllocator |
Protected Attributes inherited from SVF::SVFGBuilder | |
SVFGEdgeSet | vfEdgesAtIndCallSite |
SVFG Edges connected at indirect call/ret sites. | |
std::unique_ptr< SVFG > | svfg |
bool | SVFGWithIndCall |
SVFG with precomputed indirect call edges. | |
Definition at line 35 of file CFLSVFGBuilder.h.
Definition at line 39 of file CFLSVFGBuilder.h.
Definition at line 38 of file CFLSVFGBuilder.h.
Definition at line 40 of file CFLSVFGBuilder.h.
|
default |
Constructor.
|
virtualdefault |
Destructor.
|
protectedvirtual |
Re-write create SVFG method.
Reimplemented from SVF::SaberSVFGBuilder.
Definition at line 35 of file CFLSVFGBuilder.cpp.
|
protectedvirtual |
Remove Incoming Edge for strong-update (SU) store instruction Because the SU node does not receive indirect value
Remove Incoming Edge for strong-update (SU) store instruction Because the SU node does not receive indirect value
e.g., L1: *p = O; (singleton) L2: *p = _; (SU here) We should remove the indirect value flow L1 -> L2 Because the points-to set of O from L1 does not pass to that after L2
Reimplemented from SVF::SaberSVFGBuilder.
Definition at line 70 of file CFLSVFGBuilder.cpp.