Static Value-Flow Analysis
|
#include <SVFGBuilder.h>
Public Types | |
typedef PointerAnalysis::CallSiteSet | CallSiteSet |
typedef PointerAnalysis::CallEdgeMap | CallEdgeMap |
typedef PointerAnalysis::FunctionSet | FunctionSet |
typedef SVFG::SVFGEdgeSetTy | SVFGEdgeSet |
Public Member Functions | |
SVFGBuilder (bool _SVFGWithIndCall=false) | |
Constructor. | |
virtual | ~SVFGBuilder ()=default |
Destructor. | |
SVFG * | buildPTROnlySVFG (BVDataPTAImpl *pta) |
SVFG * | buildFullSVFG (BVDataPTAImpl *pta) |
SVFG * | getSVFG () const |
Get SVFG instance. | |
void | markValidVFEdge (SVFGEdgeSet &edges) |
Mark feasible VF edge by removing it from set vfEdgesAtIndCallSite. | |
bool | isSpuriousVFEdgeAtIndCallSite (const SVFGEdge *edge) |
Return true if this is an VF Edge pre-connected by Andersen's analysis. | |
virtual std::unique_ptr< MemSSA > | buildMSSA (BVDataPTAImpl *pta, bool ptrOnlyMSSA) |
Build Memory SSA. | |
Protected Member Functions | |
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 | buildSVFG () |
Can be rewritten by subclasses. | |
virtual void | releaseMemory () |
Release global SVFG. | |
Protected Attributes | |
SVFGEdgeSet | vfEdgesAtIndCallSite |
SVFG Edges connected at indirect call/ret sites. | |
std::unique_ptr< SVFG > | svfg |
bool | SVFGWithIndCall |
SVFG with precomputed indirect call edges. | |
SVFG Builder
Definition at line 42 of file SVFGBuilder.h.
Definition at line 47 of file SVFGBuilder.h.
Definition at line 46 of file SVFGBuilder.h.
Definition at line 48 of file SVFGBuilder.h.
Definition at line 49 of file SVFGBuilder.h.
Constructor.
Definition at line 52 of file SVFGBuilder.h.
|
virtualdefault |
Destructor.
|
protected |
Create a DDA SVFG. By default actualOut and FormalIN are removed, unless withAOFI is set true.
Create DDA SVFG.
Update call graph using pre-analysis results
Definition at line 66 of file SVFGBuilder.cpp.
SVFG * SVFGBuilder::buildFullSVFG | ( | BVDataPTAImpl * | pta | ) |
Definition at line 51 of file SVFGBuilder.cpp.
|
virtual |
Build Memory SSA.
Definition at line 99 of file SVFGBuilder.cpp.
SVFG * SVFGBuilder::buildPTROnlySVFG | ( | BVDataPTAImpl * | pta | ) |
Definition at line 43 of file SVFGBuilder.cpp.
|
protectedvirtual |
Can be rewritten by subclasses.
Create SVFG
Reimplemented in SVF::CFLSVFGBuilder, and SVF::SaberSVFGBuilder.
Definition at line 60 of file SVFGBuilder.cpp.
|
inline |
Return true if this is an VF Edge pre-connected by Andersen's analysis.
Definition at line 73 of file SVFGBuilder.h.
|
inline |
|
protectedvirtual |
|
protected |
Definition at line 91 of file SVFGBuilder.h.
|
protected |
SVFG with precomputed indirect call edges.
Definition at line 93 of file SVFGBuilder.h.
|
protected |
SVFG Edges connected at indirect call/ret sites.
Definition at line 90 of file SVFGBuilder.h.