Static Value-Flow Analysis
|
#include <WPAFSSolver.h>
Public Types | |
typedef WPASolver< GraphType >::GTraits | GTraits |
typedef WPASolver< GraphType >::GNODE | GNODE |
typedef WPASolver< GraphType >::child_iterator | child_iterator |
Public Types inherited from SVF::WPASCCSolver< GraphType > | |
typedef WPASolver< GraphType >::GTraits | GTraits |
typedef WPASolver< GraphType >::GNODE | GNODE |
typedef WPASolver< GraphType >::child_iterator | child_iterator |
Public Types inherited from SVF::WPASolver< GraphType > | |
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 Member Functions | |
WPAMinimumSolver () | |
virtual | ~WPAMinimumSolver () |
Public Member Functions inherited from SVF::WPASCCSolver< GraphType > | |
WPASCCSolver () | |
virtual | ~WPASCCSolver () |
Public Member Functions inherited from SVF::WPAFSSolver< GraphType > | |
WPAFSSolver () | |
Constructor. | |
virtual | ~WPAFSSolver () |
Destructor. | |
virtual NodeID | sccRepNode (NodeID id) const |
SCC methods. | |
Protected Member Functions | |
virtual void | solve () |
virtual void | addNodeIntoWorkList (NodeID node) |
Protected Member Functions inherited from SVF::WPASCCSolver< GraphType > | |
virtual void | propagate (GNODE *v) |
Propagation for the solving, to be implemented in the child class. | |
bool | isInCurrentSCC (NodeID node) |
void | setCurrentSCC (NodeID id) |
Protected Member Functions inherited from SVF::WPAFSSolver< GraphType > | |
virtual NodeStack & | SCCDetect () |
SCC detection. | |
Protected Member Functions inherited from SVF::WPASolver< GraphType > | |
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 (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 bool | propFromSrcToDst (GEDGE *) |
Propagate information from source to destination node, to be implemented in the child class. | |
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. | |
Private Member Functions | |
void | addNewCandidate (NodeID node) |
const NodeBS & | getCandidates () const |
void | removeCandidates (const NodeBS &nodes) |
Private Attributes | |
NodeBS | candidates |
nodes which need to be analyzed in current iteration. | |
Additional Inherited Members | |
Public Attributes inherited from SVF::WPASolver< GraphType > | |
u32_t | numOfIteration |
num of iterations during constraint solving | |
Protected Attributes inherited from SVF::WPASCCSolver< GraphType > | |
NodeID | curSCCID |
index of current SCC. | |
Protected Attributes inherited from SVF::WPAFSSolver< GraphType > | |
NodeStack | nodeStack |
stack used for processing nodes. | |
Protected Attributes inherited from SVF::WPASolver< GraphType > | |
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. | |
Only solve nodes which need to be analyzed.
Definition at line 180 of file WPAFSSolver.h.
typedef WPASolver<GraphType>::child_iterator SVF::WPAMinimumSolver< GraphType >::child_iterator |
Definition at line 185 of file WPAFSSolver.h.
typedef WPASolver<GraphType>::GNODE SVF::WPAMinimumSolver< GraphType >::GNODE |
Definition at line 184 of file WPAFSSolver.h.
typedef WPASolver<GraphType>::GTraits SVF::WPAMinimumSolver< GraphType >::GTraits |
Definition at line 183 of file WPAFSSolver.h.
|
inline |
Definition at line 187 of file WPAFSSolver.h.
|
inlinevirtual |
Definition at line 189 of file WPAFSSolver.h.
|
inlineprivate |
Definition at line 236 of file WPAFSSolver.h.
|
inlineprotectedvirtual |
Reimplemented from SVF::WPASCCSolver< GraphType >.
Definition at line 227 of file WPAFSSolver.h.
|
inlineprivate |
Definition at line 240 of file WPAFSSolver.h.
|
inlineprivate |
Definition at line 244 of file WPAFSSolver.h.
|
inlineprotectedvirtual |
If the worklist is not empty, then only solve these nodes contained in worklist. Otherwise all nodes in the graph will be processed.
get nodes which need to be processed in this SCC cycle
remove nodes which have been processed from the candidate set
Reimplemented from SVF::WPASCCSolver< GraphType >.
Definition at line 192 of file WPAFSSolver.h.
|
private |
nodes which need to be analyzed in current iteration.
Definition at line 249 of file WPAFSSolver.h.