|
Static Value-Flow Analysis
|
#include <PreAnalysis.h>
Public Types | |
| typedef SCCDetection< CallGraph * > | CallGraphSCC |
Public Member Functions | |
| PreAnalysis (SVFIR *pag, ICFG *icfg) | |
| virtual | ~PreAnalysis () |
| AndersenWaveDiff * | getPointerAnalysis () const |
| Accessors for Andersen's results. | |
| CallGraph * | getCallGraph () const |
| CallGraphSCC * | getCallGraphSCC () const |
| SVFG * | getSVFG () const |
| const Set< const ICFGNode * > | getUseSitesOfObjVar (const ObjVar *obj, const ICFGNode *node) const |
| Given an ObjVar and its def-site ICFGNode, find all use-site ICFGNodes. | |
| const Set< const ICFGNode * > | getUseSitesOfValVar (const ValVar *var) const |
| const ICFGNode * | getDefSiteOfValVar (const ValVar *var) const |
| const ICFGNode * | getDefSiteOfObjVar (const ObjVar *obj, const ICFGNode *node) const |
| void | initWTO () |
| Build WTO for each function using call graph SCC. | |
| const Map< const FunObjVar *, const ICFGWTO * > & | getFuncToWTO () const |
| Accessors for WTO data. | |
Private Attributes | |
| SVFIR * | svfir |
| ICFG * | icfg |
| SVFG * | svfg |
| AndersenWaveDiff * | pta |
| CallGraph * | callGraph |
| CallGraphSCC * | callGraphSCC |
| Map< const FunObjVar *, const ICFGWTO * > | funcToWTO |
Definition at line 47 of file PreAnalysis.h.
Definition at line 50 of file PreAnalysis.h.
Definition at line 37 of file PreAnalysis.cpp.
|
virtual |
Definition at line 50 of file PreAnalysis.cpp.
|
inline |
Definition at line 60 of file PreAnalysis.h.
|
inline |
Definition at line 64 of file PreAnalysis.h.
| const ICFGNode * PreAnalysis::getDefSiteOfObjVar | ( | const ObjVar * | obj, |
| const ICFGNode * | node | ||
| ) | const |
Given an ObjVar and its use-site ICFGNode, find the definition-site ICFGNode by following incoming IndirectSVFGEdges whose pts contains the ObjVar (asserts unique definition)
Definition at line 98 of file PreAnalysis.cpp.
Given a ValVar and its SVFGNode, find the definition-site ICFGNode by following incoming direct VFGEdges (asserts unique definition)
Definition at line 87 of file PreAnalysis.cpp.
|
inline |
Accessors for Andersen's results.
Definition at line 56 of file PreAnalysis.h.
|
inline |
Definition at line 68 of file PreAnalysis.h.
| const Set< const ICFGNode * > PreAnalysis::getUseSitesOfObjVar | ( | const ObjVar * | obj, |
| const ICFGNode * | node | ||
| ) | const |
Given an ObjVar and its def-site ICFGNode, find all use-site ICFGNodes.
Definition at line 56 of file PreAnalysis.cpp.
Given a ValVar, find all use-site ICFGNodes by following outgoing direct VFGEdges from its unique definition SVFGNode
Definition at line 70 of file PreAnalysis.cpp.
| void PreAnalysis::initWTO | ( | ) |
Build WTO for each function using call graph SCC.
Definition at line 111 of file PreAnalysis.cpp.
|
private |
Definition at line 101 of file PreAnalysis.h.
|
private |
Definition at line 102 of file PreAnalysis.h.
Definition at line 104 of file PreAnalysis.h.
|
private |
Definition at line 98 of file PreAnalysis.h.
|
private |
Definition at line 100 of file PreAnalysis.h.
|
private |
Definition at line 99 of file PreAnalysis.h.
|
private |
Definition at line 97 of file PreAnalysis.h.