|
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 |
| void | initWTO () |
| Build WTO for each function using call graph SCC. | |
| const Map< const FunObjVar *, const ICFGWTO * > & | getFuncToWTO () const |
| Accessors for WTO data. | |
| void | initCycleValVars () |
| const Set< const ValVar * > | getCycleValVars (const ICFGCycleWTO *cycle) const |
Private Attributes | |
| SVFIR * | svfir |
| ICFG * | icfg |
| AndersenWaveDiff * | pta |
| CallGraph * | callGraph |
| CallGraphSCC * | callGraphSCC |
| Map< const FunObjVar *, const ICFGWTO * > | funcToWTO |
| Map< const ICFGCycleWTO *, Set< const ValVar * > > | cycleToValVars |
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 45 of file PreAnalysis.cpp.
|
inline |
Definition at line 60 of file PreAnalysis.h.
|
inline |
Definition at line 64 of file PreAnalysis.h.
|
inline |
Look up the ValVar id set of a WTO cycle. Returns nullptr if the cycle is unknown (e.g. dense mode, where the map is never built).
Definition at line 83 of file PreAnalysis.h.
|
inline |
Accessors for Andersen's results.
Definition at line 56 of file PreAnalysis.h.
| void PreAnalysis::initCycleValVars | ( | ) |
Walk every function's WTO and populate cycleToValVars bottom-up. Called once right after initWTO(). No-op in dense mode.
Definition at line 98 of file PreAnalysis.cpp.
| void PreAnalysis::initWTO | ( | ) |
Build WTO for each function using call graph SCC.
Definition at line 51 of file PreAnalysis.cpp.
|
private |
Definition at line 93 of file PreAnalysis.h.
|
private |
Definition at line 94 of file PreAnalysis.h.
Pre-computed (semi-sparse only) map from a WTO cycle to the IDs of every ValVar whose def-site is inside that cycle, including all nested sub-cycles. Empty in dense mode.
Definition at line 101 of file PreAnalysis.h.
Definition at line 96 of file PreAnalysis.h.
|
private |
Definition at line 91 of file PreAnalysis.h.
|
private |
Definition at line 92 of file PreAnalysis.h.
|
private |
Definition at line 90 of file PreAnalysis.h.