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=Options::SVFGWithIndirectCall(), bool _SVFGWithPostOpts=Options::OPTSVFG()) | |
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. | |
bool | SVFGWithPostOpts |
Build optimised version of SVFG. | |
SVFG Builder
Definition at line 43 of file SVFGBuilder.h.
Definition at line 48 of file SVFGBuilder.h.
Definition at line 47 of file SVFGBuilder.h.
Definition at line 49 of file SVFGBuilder.h.
Definition at line 50 of file SVFGBuilder.h.
|
inlineexplicit |
Constructor.
Definition at line 53 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 61 of file SVFGBuilder.cpp.
SVFG * SVFGBuilder::buildFullSVFG | ( | BVDataPTAImpl * | pta | ) |
Definition at line 46 of file SVFGBuilder.cpp.
|
virtual |
Build Memory SSA.
Definition at line 95 of file SVFGBuilder.cpp.
SVFG * SVFGBuilder::buildPTROnlySVFG | ( | BVDataPTAImpl * | pta | ) |
Definition at line 40 of file SVFGBuilder.cpp.
|
protectedvirtual |
Can be rewritten by subclasses.
Create SVFG
Reimplemented in SVF::CFLSVFGBuilder, and SVF::SaberSVFGBuilder.
Definition at line 55 of file SVFGBuilder.cpp.
|
inline |
Return true if this is an VF Edge pre-connected by Andersen's analysis.
Definition at line 77 of file SVFGBuilder.h.
|
inline |
|
protectedvirtual |
|
protected |
Definition at line 95 of file SVFGBuilder.h.
|
protected |
SVFG with precomputed indirect call edges.
Definition at line 97 of file SVFGBuilder.h.
|
protected |
Build optimised version of SVFG.
Definition at line 99 of file SVFGBuilder.h.
|
protected |
SVFG Edges connected at indirect call/ret sites.
Definition at line 94 of file SVFGBuilder.h.