Static Value-Flow Analysis
|
Solver Utilize CFLData. More...
#include <CFLSolver.h>
Public Types | |
typedef std::map< const Label, NodeBS > | TypeMap |
typedef std::unordered_map< NodeID, TypeMap > | DataMap |
typedef DataMap::iterator | iterator |
typedef DataMap::const_iterator | const_iterator |
Public Types inherited from SVF::CFLSolver | |
typedef FIFOWorkList< const CFLEdge * > | WorkList |
Define worklist. | |
typedef CFGrammar::Production | Production |
typedef CFGrammar::Symbol | Symbol |
Protected Member Functions | |
bool | addPred (const NodeID key, const NodeID src, const Label ty) |
bool | addSucc (const NodeID key, const NodeID dst, const Label ty) |
bool | addPreds (const NodeID key, const NodeBS &data, const Label ty) |
bool | addSuccs (const NodeID key, const NodeBS &data, const Label ty) |
Protected Member Functions inherited from SVF::CFLSolver | |
const CFLEdge * | popFromWorklist () |
Worklist operations. | |
bool | isInWorklist (const CFLEdge *item) |
Protected Attributes | |
DataMap | succMap |
DataMap | predMap |
const NodeBS | emptyData |
NodeBS | diff |
Protected Attributes inherited from SVF::CFLSolver | |
CFLGraph * | graph |
CFGrammar * | grammar |
WorkList | worklist |
Worklist for resolution. | |
Additional Inherited Members | |
Static Public Attributes inherited from SVF::CFLSolver | |
static double | numOfChecks = 0 |
Solver Utilize CFLData.
Definition at line 116 of file CFLSolver.h.
typedef DataMap::const_iterator SVF::POCRSolver::const_iterator |
Definition at line 122 of file CFLSolver.h.
typedef std::unordered_map<NodeID, TypeMap> SVF::POCRSolver::DataMap |
Definition at line 120 of file CFLSolver.h.
typedef DataMap::iterator SVF::POCRSolver::iterator |
Definition at line 121 of file CFLSolver.h.
typedef std::map<const Label, NodeBS> SVF::POCRSolver::TypeMap |
Definition at line 119 of file CFLSolver.h.
Definition at line 269 of file CFLSolver.h.
|
inlinevirtual |
Definition at line 215 of file CFLSolver.h.
|
inline |
add edges and return the set of added edges (src) for dst
Definition at line 235 of file CFLSolver.h.
|
inline |
add edges and return the set of added edges (dst) for src
Definition at line 222 of file CFLSolver.h.
|
inlineprotected |
Definition at line 131 of file CFLSolver.h.
|
inlineprotected |
Definition at line 141 of file CFLSolver.h.
|
inlineprotected |
Definition at line 136 of file CFLSolver.h.
|
inlineprotected |
Definition at line 148 of file CFLSolver.h.
|
inline |
Definition at line 173 of file CFLSolver.h.
|
inline |
Definition at line 163 of file CFLSolver.h.
|
virtual |
Init CFLData.
Definition at line 132 of file CFLSolver.cpp.
|
inlinevirtual |
Definition at line 157 of file CFLSolver.h.
|
inline |
Definition at line 178 of file CFLSolver.h.
|
inline |
Definition at line 168 of file CFLSolver.h.
|
inline |
Definition at line 188 of file CFLSolver.h.
Definition at line 198 of file CFLSolver.h.
Definition at line 208 of file CFLSolver.h.
|
inline |
Definition at line 183 of file CFLSolver.h.
Definition at line 193 of file CFLSolver.h.
Definition at line 203 of file CFLSolver.h.
find src -> find src[ty] -> find dst in set
Definition at line 248 of file CFLSolver.h.
|
virtual |
Initialize worklist.
Foreach production X -> epsilon add X(i,i) if not exist to E and to worklist
Foreach production X -> epsilon add X(i,i) if not exist to E and to worklist
Reimplemented from SVF::CFLSolver.
Reimplemented in SVF::POCRHybridSolver.
Definition at line 192 of file CFLSolver.cpp.
Process CFLEdge.
For each production X -> Y add X(i,j) if not exist to E and to worklist
For each production X -> Y Z Foreach outgoing edge Z(j,k) from node j do add X(i,k) if not exist to E and to worklist
For each production X -> Z Y Foreach incoming edge Z(k,i) to node i do add X(k,j) if not exist to E and to worklist
Reimplemented from SVF::CFLSolver.
Reimplemented in SVF::POCRHybridSolver.
Definition at line 138 of file CFLSolver.cpp.
|
protected |
Definition at line 128 of file CFLSolver.h.
Definition at line 127 of file CFLSolver.h.
|
protected |
Definition at line 126 of file CFLSolver.h.
|
protected |
Definition at line 125 of file CFLSolver.h.