| 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 43 of file WPASolver.h.
| typedef GTraits::ChildIteratorType SVF::WPASolver< GraphType >::child_iterator | 
Definition at line 51 of file WPASolver.h.
| typedef GTraits::EdgeType SVF::WPASolver< GraphType >::GEDGE | 
Definition at line 50 of file WPASolver.h.
| typedef GTraits::NodeRef SVF::WPASolver< GraphType >::GNODE | 
Definition at line 49 of file WPASolver.h.
| typedef SVF::GenericGraphTraits<GraphType> SVF::WPASolver< GraphType >::GTraits | 
Define the GTraits and node iterator for printing.
Definition at line 48 of file WPASolver.h.
| typedef SCCDetection<GraphType> SVF::WPASolver< GraphType >::SCC | 
Definition at line 53 of file WPASolver.h.
| typedef FIFOWorkList<NodeID> SVF::WPASolver< GraphType >::WorkList | 
Definition at line 55 of file WPASolver.h.
| 
 | inlineprotected | 
Constructor.
Definition at line 60 of file WPASolver.h.
| 
 | protectedvirtualdefault | 
Destructor.
| 
 | inlineprotectedvirtual | 
collapse positive weight cycles of a graph
Reimplemented in SVF::Andersen.
Definition at line 124 of file WPASolver.h.
| 
 | inlineprotected | 
| 
 | inlineprotectedvirtual | 
Reimplemented in SVF::Andersen.
Definition at line 97 of file WPASolver.h.
| 
 | inlineprotected | 
Definition at line 164 of file WPASolver.h.
| 
 | inlineprotected | 
Definition at line 160 of file WPASolver.h.
Get node on the graph.
Definition at line 177 of file WPASolver.h.
| 
 | inlineprotected | 
Get node ID.
Definition at line 183 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, and SVF::FlowSensitive.
Definition at line 122 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 127 of file WPASolver.h.
| 
 | inlineprotectedvirtual | 
Propagate information from source to destination node, to be implemented in the child class.
Definition at line 138 of file WPASolver.h.
| 
 | inlineprotectedvirtual | 
Definition at line 156 of file WPASolver.h.
| 
 | inlineprotectedvirtual | 
SCC detection.
Reimplemented in SVF::Andersen, SVF::AndersenSCD, SVF::WPAFSSolver< GraphType >, and SVF::FlowSensitive.
Definition at line 86 of file WPASolver.h.
| 
 | inlineprotectedvirtual | 
Definition at line 91 of file WPASolver.h.
| 
 | inlineprotectedvirtual | 
Reimplemented in SVF::WPAFSSolver< GraphType >, SVF::AndersenBase, and SVF::Steensgaard.
Definition at line 144 of file WPASolver.h.
| 
 | inlineprotected | 
| 
 | inlineprotectedvirtual | 
Reimplemented in SVF::AndersenWaveDiff, SVF::AndersenSCD, and SVF::Steensgaard.
Definition at line 108 of file WPASolver.h.
| 
 | protected | 
Graph.
Definition at line 190 of file WPASolver.h.
| 
 | protected | 
print out statistics for i-th iteration
Definition at line 173 of file WPASolver.h.
| u32_t SVF::WPASolver< GraphType >::numOfIteration | 
num of iterations during constraint solving
Definition at line 200 of file WPASolver.h.
| 
 | protected | 
Reanalyze if any constraint value changed.
Definition at line 171 of file WPASolver.h.
| 
 | protected | 
SCC.
Definition at line 193 of file WPASolver.h.
| 
 | protected | 
Worklist for resolution.
Definition at line 196 of file WPASolver.h.