Static Value-Flow Analysis
|
Solver Utilize Hybrid Representation of Graph. More...
#include <CFLSolver.h>
Classes | |
struct | TreeNode |
Public Attributes | |
Map< NodeID, std::unordered_map< NodeID, TreeNode * > > | indMap |
Solver Utilize Hybrid Representation of Graph.
Hybrid graph representation for transitive relations The implementation is based on Yuxiang Lei, Yulei Sui, Shuo Ding, and Qirun Zhang. Taming Transitive Redundancy for Context-Free Language Reachability. ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
Definition at line 294 of file CFLSolver.h.
Definition at line 347 of file CFLSolver.h.
|
inlinevirtual |
Destructor.
Definition at line 351 of file CFLSolver.h.
Definition at line 314 of file CFLSolver.cpp.
Definition at line 359 of file CFLSolver.cpp.
POCRHybridSolver::TreeNode * POCRHybridSolver::addInd_h | ( | NodeID | src, |
NodeID | dst | ||
) |
Get the node dst in tree(src)
Definition at line 331 of file CFLSolver.h.
|
virtual |
Initialize worklist.
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
Foreach production X -> epsilon add X(i,i) if not exist to E and to worklist
Reimplemented from SVF::POCRSolver.
Definition at line 284 of file CFLSolver.cpp.
add v into desc(x) as a child of u
Definition at line 337 of file CFLSolver.h.
Definition at line 326 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::POCRSolver.
Definition at line 216 of file CFLSolver.cpp.
Definition at line 323 of file CFLSolver.h.