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. More... | |
Public Member Functions | |
WTO (GraphT *graph, const NodeT *entry) | |
Compute the weak topological order of the given graph. More... | |
WTO (const WTO &other)=default | |
No copy constructor. More... | |
WTO (WTO &&other)=default | |
Move constructor. More... | |
WTO & | operator= (const WTO &other)=default |
No copy assignment operator. More... | |
WTO & | operator= (WTO &&other)=default |
Move assignment operator. More... | |
~WTO () | |
Destructor. More... | |
const WTOComponentRefList & | getWTOComponents () const |
Get all wto components in WTO. More... | |
Iterator | begin () const |
Begin iterator over the components. More... | |
Iterator | end () const |
End iterator over the components. More... | |
bool | isHead (const NodeT *node) const |
NodeRefToWTOCycleMap::const_iterator | headBegin () const |
NodeRefToWTOCycleMap::const_iterator | headEnd () const |
End iterator over the components. More... | |
const GraphTWTOCycleDepth & | cycleDepth (const NodeT *n) const |
Return the cycleDepth of the given node. More... | |
bool | in_cycleDepth_table (const NodeT *n) const |
Return the cycleDepth of the given node. More... | |
void | accept (WTOComponentVisitor< GraphT > &v) |
Accept the given visitor. More... | |
std::string | toString () const |
Dump the order, for debugging purpose. More... | |
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 void | forEachSuccessor (const NodeT *node, std::function< void(const NodeT *)> func) const |
CycleDepthNumber | getCDN (const NodeT *n) const |
Return the depth-first number of the given node. More... | |
void | setCDN (const NodeT *n, const CycleDepthNumber &dfn) |
Set the depth-first number of the given node. More... | |
const NodeT * | pop () |
Pop a node from the stack. More... | |
void | push (const NodeT *n) |
Push a node on the stack. More... | |
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. More... | |
virtual CycleDepthNumber | visit (const NodeT *node, WTOComponentRefList &partition) |
void | buildNodeToDepth () |
Build the node to WTO cycle depth table. More... | |
Protected Attributes | |
WTOComponentRefList | _components |
WTOComponentRefSet | _allComponents |
NodeRefToWTOCycleMap | headRefToCycle |
NodeRefToWTOCycleDepthPtr | _nodeToDepth |
NodeRefToCycleDepthNumber | _nodeToCDN |
CycleDepthNumber | _num |
Stack | _stack |
GraphT * | _graph |
const NodeT * | _entry |
Friends | |
std::ostream & | operator<< (std::ostream &o, const WTO< GraphT > &wto) |
Overloading operator << for dumping ICFG node ID. More... | |
Weak topological order for GraphT
|
protected |
typedef WTOCycleDepth<GraphT> SVF::WTO< GraphT >::GraphTWTOCycleDepth |
typedef Set<const NodeT*> SVF::WTO< GraphT >::NodeRefList |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
typedef WTOComponent<GraphT> SVF::WTO< GraphT >::WTOComponentT |
|
protected |
|
inlineexplicit |
No copy constructor.
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 |
|
inline |
Get all wto components in WTO.
|
inline |
|
inline |
End iterator over the components.
|
inline |
Return the cycleDepth of the given node.
|
inline |
|
inlineprotected |
Definition at line 779 of file WTO.h.
|
inlineprotected |
|
default |
No copy assignment operator.
Move assignment operator.
|
inlineprotected |
|
inline |
|
inlineprotectedvirtual |
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |