Static Value-Flow Analysis
Loading...
Searching...
No Matches
Public Member Functions | Private Types | Private Attributes | 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
 

Detailed Description

Definition at line 38 of file SVFLoop.h.

Member Typedef Documentation

◆ ICFGEdgeSet

Definition at line 41 of file SVFLoop.h.

◆ ICFGNodeSet

Definition at line 42 of file SVFLoop.h.

Constructor & Destructor Documentation

◆ SVFLoop()

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

Definition at line 49 of file SVFLoop.h.

49 :
51 {
52
53 }
ICFGNodeSet icfgNodes
Definition SVFLoop.h:45
u32_t loopBound
Definition SVFLoop.h:46
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:74

◆ ~SVFLoop()

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

Member Function Documentation

◆ addBackICFGEdge()

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

Definition at line 122 of file SVFLoop.h.

123 {
124 backICFGEdges.insert(edge);
125 }
ICFGEdgeSet backICFGEdges
Definition SVFLoop.h:44

◆ addEntryICFGEdge()

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

Definition at line 92 of file SVFLoop.h.

93 {
94 entryICFGEdges.insert(edge);
95 }
ICFGEdgeSet entryICFGEdges
Definition SVFLoop.h:44

◆ addInICFGEdge()

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

Definition at line 137 of file SVFLoop.h.

138 {
139 inICFGEdges.insert(edge);
140 }
ICFGEdgeSet inICFGEdges
Definition SVFLoop.h:44

◆ addOutICFGEdge()

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

Definition at line 107 of file SVFLoop.h.

108 {
109 outICFGEdges.insert(edge);
110 }
ICFGEdgeSet outICFGEdges
Definition SVFLoop.h:44

◆ backICFGEdgesBegin()

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

Definition at line 127 of file SVFLoop.h.

128 {
129 return backICFGEdges.begin();
130 }

◆ backICFGEdgesEnd()

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

Definition at line 132 of file SVFLoop.h.

133 {
134 return backICFGEdges.end();
135 }

◆ entryICFGEdgesBegin()

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

Definition at line 97 of file SVFLoop.h.

98 {
99 return entryICFGEdges.begin();
100 }

◆ entryICFGEdgesEnd()

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

Definition at line 102 of file SVFLoop.h.

103 {
104 return entryICFGEdges.end();
105 }

◆ getLoopBound()

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

Definition at line 157 of file SVFLoop.h.

158 {
159 return loopBound;
160 }

◆ ICFGNodesBegin()

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

Definition at line 57 of file SVFLoop.h.

58 {
59 return icfgNodes.begin();
60 }

◆ ICFGNodesEnd()

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

Definition at line 62 of file SVFLoop.h.

63 {
64 return icfgNodes.end();
65 }

◆ inEdgesBegin()

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

Definition at line 142 of file SVFLoop.h.

143 {
144 return inICFGEdges.begin();
145 }

◆ inEdgesEnd()

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

Definition at line 147 of file SVFLoop.h.

148 {
149 return inICFGEdges.end();
150 }

◆ isBackICFGEdge()

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

Definition at line 77 of file SVFLoop.h.

78 {
79 return backICFGEdges.find(edge) != backICFGEdges.end();
80 }

◆ isEntryICFGEdge()

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

Definition at line 72 of file SVFLoop.h.

73 {
74 return entryICFGEdges.find(edge) != entryICFGEdges.end();
75 }

◆ isInICFGEdge()

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

Definition at line 82 of file SVFLoop.h.

83 {
84 return inICFGEdges.find(edge) != inICFGEdges.end();
85 }

◆ isInLoop()

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

Definition at line 67 of file SVFLoop.h.

68 {
69 return icfgNodes.find(icfgNode) != icfgNodes.end();
70 }

◆ isOutICFGEdge()

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

Definition at line 87 of file SVFLoop.h.

88 {
89 return outICFGEdges.find(edge) != outICFGEdges.end();
90 }

◆ outICFGEdgesBegin()

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

Definition at line 112 of file SVFLoop.h.

113 {
114 return outICFGEdges.begin();
115 }

◆ outICFGEdgesEnd()

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

Definition at line 117 of file SVFLoop.h.

118 {
119 return outICFGEdges.end();
120 }

◆ setLoopBound()

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

Definition at line 152 of file SVFLoop.h.

153 {
155 }

Member Data Documentation

◆ backICFGEdges

ICFGEdgeSet SVF::SVFLoop::backICFGEdges
private

Definition at line 44 of file SVFLoop.h.

◆ entryICFGEdges

ICFGEdgeSet SVF::SVFLoop::entryICFGEdges
private

Definition at line 44 of file SVFLoop.h.

◆ icfgNodes

ICFGNodeSet SVF::SVFLoop::icfgNodes
private

Definition at line 45 of file SVFLoop.h.

◆ inICFGEdges

ICFGEdgeSet SVF::SVFLoop::inICFGEdges
private

Definition at line 44 of file SVFLoop.h.

◆ loopBound

u32_t SVF::SVFLoop::loopBound
private

Definition at line 46 of file SVFLoop.h.

◆ outICFGEdges

ICFGEdgeSet SVF::SVFLoop::outICFGEdges
private

Definition at line 44 of file SVFLoop.h.


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