|
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.