|
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 (CallGraph *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. | |
| bool | SVFGWithPostOpts |
| Build optimised version of SVFG. | |
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.