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 41 of file SVFLoop.h.

Member Typedef Documentation

◆ ICFGEdgeSet

Definition at line 44 of file SVFLoop.h.

◆ ICFGNodeSet

Definition at line 45 of file SVFLoop.h.

Constructor & Destructor Documentation

◆ SVFLoop()

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

Definition at line 52 of file SVFLoop.h.

52 :
54 {
55
56 }
ICFGNodeSet icfgNodes
Definition SVFLoop.h:48
u32_t loopBound
Definition SVFLoop.h:49
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:76

◆ ~SVFLoop()

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

Member Function Documentation

◆ addBackICFGEdge()

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

Definition at line 125 of file SVFLoop.h.

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

◆ addEntryICFGEdge()

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

Definition at line 95 of file SVFLoop.h.

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

◆ addInICFGEdge()

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

Definition at line 140 of file SVFLoop.h.

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

◆ addOutICFGEdge()

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

Definition at line 110 of file SVFLoop.h.

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

◆ backICFGEdgesBegin()

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

Definition at line 130 of file SVFLoop.h.

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

◆ backICFGEdgesEnd()

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

Definition at line 135 of file SVFLoop.h.

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

◆ entryICFGEdgesBegin()

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

Definition at line 100 of file SVFLoop.h.

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

◆ entryICFGEdgesEnd()

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

Definition at line 105 of file SVFLoop.h.

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

◆ getLoopBound()

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

Definition at line 160 of file SVFLoop.h.

161 {
162 return loopBound;
163 }

◆ ICFGNodesBegin()

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

Definition at line 60 of file SVFLoop.h.

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

◆ ICFGNodesEnd()

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

Definition at line 65 of file SVFLoop.h.

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

◆ inEdgesBegin()

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

Definition at line 145 of file SVFLoop.h.

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

◆ inEdgesEnd()

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

Definition at line 150 of file SVFLoop.h.

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

◆ isBackICFGEdge()

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

Definition at line 80 of file SVFLoop.h.

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

◆ isEntryICFGEdge()

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

Definition at line 75 of file SVFLoop.h.

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

◆ isInICFGEdge()

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

Definition at line 85 of file SVFLoop.h.

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

◆ isInLoop()

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

Definition at line 70 of file SVFLoop.h.

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

◆ isOutICFGEdge()

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

Definition at line 90 of file SVFLoop.h.

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

◆ outICFGEdgesBegin()

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

Definition at line 115 of file SVFLoop.h.

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

◆ outICFGEdgesEnd()

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

Definition at line 120 of file SVFLoop.h.

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

◆ setLoopBound()

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

Definition at line 155 of file SVFLoop.h.

156 {
158 }

Member Data Documentation

◆ backICFGEdges

ICFGEdgeSet SVF::SVFLoop::backICFGEdges
private

Definition at line 47 of file SVFLoop.h.

◆ entryICFGEdges

ICFGEdgeSet SVF::SVFLoop::entryICFGEdges
private

Definition at line 47 of file SVFLoop.h.

◆ icfgNodes

ICFGNodeSet SVF::SVFLoop::icfgNodes
private

Definition at line 48 of file SVFLoop.h.

◆ inICFGEdges

ICFGEdgeSet SVF::SVFLoop::inICFGEdges
private

Definition at line 47 of file SVFLoop.h.

◆ loopBound

u32_t SVF::SVFLoop::loopBound
private

Definition at line 49 of file SVFLoop.h.

◆ outICFGEdges

ICFGEdgeSet SVF::SVFLoop::outICFGEdges
private

Definition at line 47 of file SVFLoop.h.


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