Static Value-Flow Analysis
Loading...
Searching...
No Matches
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

Definition at line 43 of file SVFLoop.h.

◆ ICFGNodeSet

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 :
53 {
54
55 }
ICFGNodeSet icfgNodes
Definition SVFLoop.h:47
u32_t loopBound
Definition SVFLoop.h:48
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 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 {
157 }

Friends And Related Symbol Documentation

◆ SVFIRReader

Definition at line 41 of file SVFLoop.h.

◆ SVFIRWriter

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: