|
Static Value-Flow Analysis
|
#include <WTO.h>
Classes | |
| class | WTOCycleDepthBuilder |
| Visitor to build the cycle depths of each node. More... | |
Public Types | |
| typedef GraphT::NodeType | NodeT |
| typedef GraphT::EdgeType | EdgeT |
| typedef WTOCycleDepth< GraphT > | GraphTWTOCycleDepth |
| typedef WTOComponent< GraphT > | WTOComponentT |
| typedef WTONode< GraphT > | WTONodeT |
| typedef WTOCycle< GraphT > | WTOCycleT |
| typedef Set< const NodeT * > | NodeRefList |
| typedef WTOComponentRefList::const_iterator | Iterator |
| Iterator over the components. | |
Public Member Functions | |
| WTO (const NodeT *entry) | |
| Compute the weak topological order of the given graph. | |
| WTO (const WTO &other)=default | |
| No copy constructor. | |
| WTO (WTO &&other)=default | |
| Move constructor. | |
| WTO & | operator= (const WTO &other)=default |
| No copy assignment operator. | |
| WTO & | operator= (WTO &&other)=default |
| Move assignment operator. | |
| ~WTO () | |
| Destructor. | |
| const WTOComponentRefList & | getWTOComponents () const |
| Get all wto components in WTO. | |
| Iterator | begin () const |
| Begin iterator over the components. | |
| Iterator | end () const |
| End iterator over the components. | |
| bool | isHead (const NodeT *node) const |
| NodeRefToWTOCycleMap::const_iterator | headBegin () const |
| NodeRefToWTOCycleMap::const_iterator | headEnd () const |
| End iterator over the components. | |
| const GraphTWTOCycleDepth & | cycleDepth (const NodeT *n) const |
| Return the cycleDepth of the given node. | |
| bool | in_cycleDepth_table (const NodeT *n) const |
| Return the cycleDepth of the given node. | |
| void | accept (WTOComponentVisitor< GraphT > &v) |
| Accept the given visitor. | |
| std::string | toString () const |
| Dump the order, for debugging purpose. | |
| void | init () |
Protected Types | |
| typedef const WTOComponentT * | WTOComponentPtr |
| typedef std::list< WTOComponentPtr > | WTOComponentRefList |
| typedef Set< WTOComponentPtr > | WTOComponentRefSet |
| typedef Map< const NodeT *, const WTOCycleT * > | NodeRefToWTOCycleMap |
| typedef Map< const NodeT *, NodeRefList > | NodeRefTONodeRefListMap |
| typedef u32_t | CycleDepthNumber |
| typedef Map< const NodeT *, CycleDepthNumber > | NodeRefToCycleDepthNumber |
| typedef std::vector< const NodeT * > | Stack |
| typedef std::shared_ptr< GraphTWTOCycleDepth > | WTOCycleDepthPtr |
| typedef Map< const NodeT *, WTOCycleDepthPtr > | NodeRefToWTOCycleDepthPtr |
Protected Member Functions | |
| virtual std::vector< const NodeT * > | getSuccessors (const NodeT *node) |
| Return the successors of node. | |
| CycleDepthNumber | getCDN (const NodeT *n) const |
| Return the depth-first number of the given node. | |
| void | setCDN (const NodeT *n, const CycleDepthNumber &dfn) |
| Set the depth-first number of the given node. | |
| const NodeT * | pop () |
| Pop a node from the stack. | |
| void | push (const NodeT *n) |
| Push a node on the stack. | |
| const WTONodeT * | newNode (const NodeT *node) |
| const WTOCycleT * | newCycle (const WTONodeT *node, const WTOComponentRefList &partition) |
| virtual const WTOCycleT * | component (const NodeT *node) |
| Create the cycle component for the given node. | |
| virtual CycleDepthNumber | visit (const NodeT *node, WTOComponentRefList &partition) |
| void | buildNodeToDepth () |
| Build the node to WTO cycle depth table. | |
Friends | |
| std::ostream & | operator<< (std::ostream &o, const WTO< GraphT > &wto) |
| Overloading operator << for dumping ICFG node ID. | |
Weak topological order for GraphT
| typedef GraphT::EdgeType SVF::WTO< GraphT >::EdgeT |
| typedef WTOCycleDepth<GraphT> SVF::WTO< GraphT >::GraphTWTOCycleDepth |
| typedef WTOComponentRefList::const_iterator SVF::WTO< GraphT >::Iterator |
|
protected |
|
protected |
|
protected |
| typedef GraphT::NodeType SVF::WTO< GraphT >::NodeT |
|
protected |
|
protected |
|
protected |
| typedef WTOComponent<GraphT> SVF::WTO< GraphT >::WTOComponentT |
|
protected |
|
default |
No copy constructor.
|
default |
Move constructor.
|
inline |
Begin iterator over the components.
|
inlineprotected |
|
inlineprotectedvirtual |
Create the cycle component for the given node.
Definition at line 788 of file WTO.h.
|
inline |
End iterator over the components.
|
inlineprotected |
|
inlineprotectedvirtual |
Return the successors of node.
Reimplemented in SVF::ICFGWTO.
|
inline |
Get all wto components in WTO.
|
inline |
|
inline |
End iterator over the components.
|
inline |
Return the cycleDepth of the given node.
|
inline |
Definition at line 672 of file WTO.h.
|
inlineprotected |
|
default |
No copy assignment operator.
Move assignment operator.
|
inlineprotected |
|
inlinenodiscard |
|
inlineprotectedvirtual |
Visit the given node
Algorithm to build a weak topological order of a graph
Definition at line 808 of file WTO.h.
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |