|
Static Value-Flow Analysis
|
#include <WPASolver.h>
Public Types | |
| typedef SVF::GenericGraphTraits< GraphType > | GTraits |
| Define the GTraits and node iterator for printing. | |
| typedef GTraits::NodeRef | GNODE |
| typedef GTraits::EdgeType | GEDGE |
| typedef GTraits::ChildIteratorType | child_iterator |
| typedef SCCDetection< GraphType > | SCC |
| typedef FIFOWorkList< NodeID > | WorkList |
Public Attributes | |
| u32_t | numOfIteration |
| num of iterations during constraint solving | |
Protected Member Functions | |
| WPASolver () | |
| Constructor. | |
| virtual | ~WPASolver ()=default |
| Destructor. | |
| SCC * | getSCCDetector () const |
| Get SCC detector. | |
| const GraphType | graph () |
| Get/Set graph methods. | |
| void | setGraph (GraphType g) |
| virtual NodeStack & | SCCDetect () |
| SCC detection. | |
| virtual NodeStack & | SCCDetect (NodeSet &candidates) |
| virtual void | initWorklist () |
| virtual void | solveWorklist () |
| virtual void | processNode (NodeID) |
| Following methods are to be implemented in child class, in order to achieve a fully worked PTA. | |
| virtual void | collapseFields () |
| collapse positive weight cycles of a graph | |
| virtual void | propagate (GNODE *v) |
| virtual bool | propFromSrcToDst (GEDGE *) |
| Propagate information from source to destination node, to be implemented in the child class. | |
| virtual NodeID | sccRepNode (NodeID id) const |
| NodeID | popFromWorklist () |
| Worklist operations. | |
| virtual void | pushIntoWorklist (NodeID id) |
| bool | isWorklistEmpty () |
| bool | isInWorklist (NodeID id) |
| GNODE * | Node (NodeID id) |
| Get node on the graph. | |
| NodeID | Node_Index (GNODE node) |
| Get node ID. | |
Protected Attributes | |
| bool | reanalyze |
| Reanalyze if any constraint value changed. | |
| u32_t | iterationForPrintStat |
| print out statistics for i-th iteration | |
| GraphType | _graph |
| Graph. | |
| std::unique_ptr< SCC > | scc |
| SCC. | |
| WorkList | worklist |
| Worklist for resolution. | |
Definition at line 44 of file WPASolver.h.
| typedef GTraits::ChildIteratorType SVF::WPASolver< GraphType >::child_iterator |
Definition at line 52 of file WPASolver.h.
| typedef GTraits::EdgeType SVF::WPASolver< GraphType >::GEDGE |
Definition at line 51 of file WPASolver.h.
| typedef GTraits::NodeRef SVF::WPASolver< GraphType >::GNODE |
Definition at line 50 of file WPASolver.h.
| typedef SVF::GenericGraphTraits<GraphType> SVF::WPASolver< GraphType >::GTraits |
Define the GTraits and node iterator for printing.
Definition at line 49 of file WPASolver.h.
| typedef SCCDetection<GraphType> SVF::WPASolver< GraphType >::SCC |
Definition at line 54 of file WPASolver.h.
| typedef FIFOWorkList<NodeID> SVF::WPASolver< GraphType >::WorkList |
Definition at line 56 of file WPASolver.h.
|
inlineprotected |
Constructor.
Definition at line 61 of file WPASolver.h.
|
protectedvirtualdefault |
Destructor.
|
inlineprotectedvirtual |
collapse positive weight cycles of a graph
Reimplemented in SVF::Andersen.
Definition at line 125 of file WPASolver.h.
|
inlineprotected |
|
inlineprotectedvirtual |
Reimplemented in SVF::Andersen.
Definition at line 98 of file WPASolver.h.
|
inlineprotected |
Definition at line 165 of file WPASolver.h.
|
inlineprotected |
Definition at line 161 of file WPASolver.h.
Get node on the graph.
Definition at line 178 of file WPASolver.h.
|
inlineprotected |
Get node ID.
Definition at line 184 of file WPASolver.h.
|
inlineprotected |
|
inlineprotectedvirtual |
Following methods are to be implemented in child class, in order to achieve a fully worked PTA.
Process each node on the graph, to be implemented in the child class
Reimplemented in SVF::VersionedFlowSensitive, SVF::Andersen, SVF::AndersenWaveDiff, SVF::FSMPTA< SVFGGraph >, and SVF::FlowSensitive.
Definition at line 123 of file WPASolver.h.
|
inlineprotectedvirtual |
dump statistics Propagation for the solving, to be implemented in the child class
Reimplemented in SVF::WPASCCSolver< GraphType >.
Definition at line 128 of file WPASolver.h.
|
inlineprotectedvirtual |
Propagate information from source to destination node, to be implemented in the child class.
Definition at line 139 of file WPASolver.h.
|
inlineprotectedvirtual |
Definition at line 157 of file WPASolver.h.
|
inlineprotectedvirtual |
SCC detection.
Reimplemented in SVF::Andersen, SVF::AndersenSCD, SVF::WPAFSSolver< GraphType >, and SVF::FlowSensitive.
Definition at line 87 of file WPASolver.h.
|
inlineprotectedvirtual |
Definition at line 92 of file WPASolver.h.
|
inlineprotectedvirtual |
Reimplemented in SVF::WPAFSSolver< GraphType >, SVF::AndersenBase, and SVF::Steensgaard.
Definition at line 145 of file WPASolver.h.
|
inlineprotected |
|
inlineprotectedvirtual |
Reimplemented in SVF::AndersenWaveDiff, SVF::AndersenSCD, and SVF::Steensgaard.
Definition at line 109 of file WPASolver.h.
|
protected |
Graph.
Definition at line 191 of file WPASolver.h.
|
protected |
print out statistics for i-th iteration
Definition at line 174 of file WPASolver.h.
| u32_t SVF::WPASolver< GraphType >::numOfIteration |
num of iterations during constraint solving
Definition at line 201 of file WPASolver.h.
|
protected |
Reanalyze if any constraint value changed.
Definition at line 172 of file WPASolver.h.
|
protected |
SCC.
Definition at line 194 of file WPASolver.h.
|
protected |
Worklist for resolution.
Definition at line 197 of file WPASolver.h.