Static Value-Flow Analysis
Public Member Functions | Private Types | Private Attributes | Friends | List of all members
SVF::SVFLoop Class Reference

#include <SVFLoop.h>

Public Member Functions

 SVFLoop (const ICFGNodeSet &_nodes, u32_t _bound)
 
virtual ~SVFLoop ()=default
 
ICFGNodeSet::iterator ICFGNodesBegin ()
 
ICFGNodeSet::iterator ICFGNodesEnd ()
 
bool isInLoop (const ICFGNode *icfgNode) const
 
bool isEntryICFGEdge (const ICFGEdge *edge) const
 
bool isBackICFGEdge (const ICFGEdge *edge) const
 
bool isInICFGEdge (const ICFGEdge *edge) const
 
bool isOutICFGEdge (const ICFGEdge *edge) const
 
void addEntryICFGEdge (const ICFGEdge *edge)
 
ICFGEdgeSet::iterator entryICFGEdgesBegin ()
 
ICFGEdgeSet::iterator entryICFGEdgesEnd ()
 
void addOutICFGEdge (const ICFGEdge *edge)
 
ICFGEdgeSet::iterator outICFGEdgesBegin ()
 
ICFGEdgeSet::iterator outICFGEdgesEnd ()
 
void addBackICFGEdge (const ICFGEdge *edge)
 
ICFGEdgeSet::iterator backICFGEdgesBegin ()
 
ICFGEdgeSet::iterator backICFGEdgesEnd ()
 
void addInICFGEdge (const ICFGEdge *edge)
 
ICFGEdgeSet::iterator inEdgesBegin ()
 
ICFGEdgeSet::iterator inEdgesEnd ()
 
void setLoopBound (u32_t _bound)
 
u32_t getLoopBound () const
 

Private Types

typedef Set< const ICFGEdge * > ICFGEdgeSet
 
typedef Set< const ICFGNode * > ICFGNodeSet
 

Private Attributes

ICFGEdgeSet entryICFGEdges
 
ICFGEdgeSet backICFGEdges
 
ICFGEdgeSet inICFGEdges
 
ICFGEdgeSet outICFGEdges
 
ICFGNodeSet icfgNodes
 
u32_t loopBound
 

Friends

class SVFIRWriter
 
class SVFIRReader
 

Detailed Description

Definition at line 38 of file SVFLoop.h.

Member Typedef Documentation

◆ ICFGEdgeSet

typedef Set<const ICFGEdge *> SVF::SVFLoop::ICFGEdgeSet
private

Definition at line 43 of file SVFLoop.h.

◆ ICFGNodeSet

typedef Set<const ICFGNode *> SVF::SVFLoop::ICFGNodeSet
private

Definition at line 44 of file SVFLoop.h.

Constructor & Destructor Documentation

◆ SVFLoop()

SVF::SVFLoop::SVFLoop ( const ICFGNodeSet _nodes,
u32_t  _bound 
)
inline

Definition at line 51 of file SVFLoop.h.

51  :
52  icfgNodes(_nodes), loopBound(_bound)
53  {
54 
55  }
ICFGNodeSet icfgNodes
Definition: SVFLoop.h:47
u32_t loopBound
Definition: SVFLoop.h:48

◆ ~SVFLoop()

virtual SVF::SVFLoop::~SVFLoop ( )
virtualdefault

Member Function Documentation

◆ addBackICFGEdge()

void SVF::SVFLoop::addBackICFGEdge ( const ICFGEdge edge)
inline

Definition at line 124 of file SVFLoop.h.

125  {
126  backICFGEdges.insert(edge);
127  }
ICFGEdgeSet backICFGEdges
Definition: SVFLoop.h:46

◆ addEntryICFGEdge()

void SVF::SVFLoop::addEntryICFGEdge ( const ICFGEdge edge)
inline

Definition at line 94 of file SVFLoop.h.

95  {
96  entryICFGEdges.insert(edge);
97  }
ICFGEdgeSet entryICFGEdges
Definition: SVFLoop.h:46

◆ addInICFGEdge()

void SVF::SVFLoop::addInICFGEdge ( const ICFGEdge edge)
inline

Definition at line 139 of file SVFLoop.h.

140  {
141  inICFGEdges.insert(edge);
142  }
ICFGEdgeSet inICFGEdges
Definition: SVFLoop.h:46

◆ addOutICFGEdge()

void SVF::SVFLoop::addOutICFGEdge ( const ICFGEdge edge)
inline

Definition at line 109 of file SVFLoop.h.

110  {
111  outICFGEdges.insert(edge);
112  }
ICFGEdgeSet outICFGEdges
Definition: SVFLoop.h:46

◆ backICFGEdgesBegin()

ICFGEdgeSet::iterator SVF::SVFLoop::backICFGEdgesBegin ( )
inline

Definition at line 129 of file SVFLoop.h.

130  {
131  return backICFGEdges.begin();
132  }

◆ backICFGEdgesEnd()

ICFGEdgeSet::iterator SVF::SVFLoop::backICFGEdgesEnd ( )
inline

Definition at line 134 of file SVFLoop.h.

135  {
136  return backICFGEdges.end();
137  }

◆ entryICFGEdgesBegin()

ICFGEdgeSet::iterator SVF::SVFLoop::entryICFGEdgesBegin ( )
inline

Definition at line 99 of file SVFLoop.h.

100  {
101  return entryICFGEdges.begin();
102  }

◆ entryICFGEdgesEnd()

ICFGEdgeSet::iterator SVF::SVFLoop::entryICFGEdgesEnd ( )
inline

Definition at line 104 of file SVFLoop.h.

105  {
106  return entryICFGEdges.end();
107  }

◆ getLoopBound()

u32_t SVF::SVFLoop::getLoopBound ( ) const
inline

Definition at line 159 of file SVFLoop.h.

160  {
161  return loopBound;
162  }

◆ ICFGNodesBegin()

ICFGNodeSet::iterator SVF::SVFLoop::ICFGNodesBegin ( )
inline

Definition at line 59 of file SVFLoop.h.

60  {
61  return icfgNodes.begin();
62  }

◆ ICFGNodesEnd()

ICFGNodeSet::iterator SVF::SVFLoop::ICFGNodesEnd ( )
inline

Definition at line 64 of file SVFLoop.h.

65  {
66  return icfgNodes.end();
67  }

◆ inEdgesBegin()

ICFGEdgeSet::iterator SVF::SVFLoop::inEdgesBegin ( )
inline

Definition at line 144 of file SVFLoop.h.

145  {
146  return inICFGEdges.begin();
147  }

◆ inEdgesEnd()

ICFGEdgeSet::iterator SVF::SVFLoop::inEdgesEnd ( )
inline

Definition at line 149 of file SVFLoop.h.

150  {
151  return inICFGEdges.end();
152  }

◆ isBackICFGEdge()

bool SVF::SVFLoop::isBackICFGEdge ( const ICFGEdge edge) const
inline

Definition at line 79 of file SVFLoop.h.

80  {
81  return backICFGEdges.find(edge) != backICFGEdges.end();
82  }

◆ isEntryICFGEdge()

bool SVF::SVFLoop::isEntryICFGEdge ( const ICFGEdge edge) const
inline

Definition at line 74 of file SVFLoop.h.

75  {
76  return entryICFGEdges.find(edge) != entryICFGEdges.end();
77  }

◆ isInICFGEdge()

bool SVF::SVFLoop::isInICFGEdge ( const ICFGEdge edge) const
inline

Definition at line 84 of file SVFLoop.h.

85  {
86  return inICFGEdges.find(edge) != inICFGEdges.end();
87  }

◆ isInLoop()

bool SVF::SVFLoop::isInLoop ( const ICFGNode icfgNode) const
inline

Definition at line 69 of file SVFLoop.h.

70  {
71  return icfgNodes.find(icfgNode) != icfgNodes.end();
72  }

◆ isOutICFGEdge()

bool SVF::SVFLoop::isOutICFGEdge ( const ICFGEdge edge) const
inline

Definition at line 89 of file SVFLoop.h.

90  {
91  return outICFGEdges.find(edge) != outICFGEdges.end();
92  }

◆ outICFGEdgesBegin()

ICFGEdgeSet::iterator SVF::SVFLoop::outICFGEdgesBegin ( )
inline

Definition at line 114 of file SVFLoop.h.

115  {
116  return outICFGEdges.begin();
117  }

◆ outICFGEdgesEnd()

ICFGEdgeSet::iterator SVF::SVFLoop::outICFGEdgesEnd ( )
inline

Definition at line 119 of file SVFLoop.h.

120  {
121  return outICFGEdges.end();
122  }

◆ setLoopBound()

void SVF::SVFLoop::setLoopBound ( u32_t  _bound)
inline

Definition at line 154 of file SVFLoop.h.

155  {
156  loopBound = _bound;
157  }

Friends And Related Function Documentation

◆ SVFIRReader

friend class SVFIRReader
friend

Definition at line 41 of file SVFLoop.h.

◆ SVFIRWriter

friend class SVFIRWriter
friend

Definition at line 40 of file SVFLoop.h.

Member Data Documentation

◆ backICFGEdges

ICFGEdgeSet SVF::SVFLoop::backICFGEdges
private

Definition at line 46 of file SVFLoop.h.

◆ entryICFGEdges

ICFGEdgeSet SVF::SVFLoop::entryICFGEdges
private

Definition at line 46 of file SVFLoop.h.

◆ icfgNodes

ICFGNodeSet SVF::SVFLoop::icfgNodes
private

Definition at line 47 of file SVFLoop.h.

◆ inICFGEdges

ICFGEdgeSet SVF::SVFLoop::inICFGEdges
private

Definition at line 46 of file SVFLoop.h.

◆ loopBound

u32_t SVF::SVFLoop::loopBound
private

Definition at line 48 of file SVFLoop.h.

◆ outICFGEdges

ICFGEdgeSet SVF::SVFLoop::outICFGEdges
private

Definition at line 46 of file SVFLoop.h.


The documentation for this class was generated from the following file: