22 #ifndef OTAWA_CFG_CFGADAPTER_H_
23 #define OTAWA_CFG_CFGADAPTER_H_
51 inline bool ended (
void)
const {
return iter.ended(); }
61 inline bool ended (
void)
const {
return iter.ended(); }
void step(void)
Definition: CFGAdapter.h:65
Iterator(const BackwardCFGAdapter &cfga)
Definition: CFGAdapter.h:127
const Edge item(void) const
Definition: CFGAdapter.h:115
Iterator(const Iterator &iter)
Definition: CFGAdapter.h:128
dtd::Element edge(dtd::make("edge", _EDGE).attr(source).attr(target).attr(called))
bool isSuccessorOf(Vertex succ, const Vertex &ref)
Definition: CFGAdapter.h:43
Definition: CFGAdapter.h:48
BasicBlock::OutIterator iter
Definition: CFGAdapter.h:69
int count(void) const
Definition: CFGAdapter.h:90
const Edge item(void) const
Definition: CFGAdapter.h:52
BasicBlock * source(void) const
Definition: Edge.h:52
Definition: CFGAdapter.h:72
Predecessor(const BackwardCFGAdapter &g, const Vertex &v)
Definition: CFGAdapter.h:113
bool ended(void) const
Definition: CFGAdapter.h:104
Kind of an edge matching a sub-program call.
Definition: Edge.h:40
otawa::Edge * Edge
Definition: CFGAdapter.h:87
bool isSuccessorOf(Vertex succ, const Vertex &ref)
Definition: CFGAdapter.h:96
int outDegree(Vertex vertex) const
Definition: CFGAdapter.h:42
Iterator(const Iterator &iter)
Definition: CFGAdapter.h:75
int count(void) const
Definition: CFGAdapter.h:37
Adapter of CFG to the concept of otawa::concept::DiGraphWithIndexedVertex.
Definition: CFGAdapter.h:30
Identifier< bool > LOOP_HEADER
Identifier for marking basic blocks that are entries of loops.
bool isLoopHeader(Vertex v) const
Definition: CFGAdapter.h:99
BasicBlock * entry(void)
Get the entry basic block of the CFG.
Definition: CFG.h:63
Successor(const BackwardCFGAdapter &g, const Vertex &v)
Definition: CFGAdapter.h:103
CFG * cfg
Definition: CFGAdapter.h:79
ForwardCFGAdapter(CFG *_cfg)
Definition: CFGAdapter.h:36
BasicBlock::OutIterator iter
Definition: CFGAdapter.h:122
void step(void)
Definition: CFGAdapter.h:118
Control Flow Graph representation.
Definition: CFG.h:42
Vertex entry(void) const
Definition: CFGAdapter.h:91
void next(void)
Definition: CFGAdapter.h:63
bool isLoopHeader(Vertex v) const
Definition: CFGAdapter.h:46
Vertex sourceOf(Edge edge) const
Definition: CFGAdapter.h:40
Predecessor(const ForwardCFGAdapter &g, const Vertex &v)
Definition: CFGAdapter.h:50
BasicBlock * exit(void)
Get the exit basic block of the CFG.
Definition: CFG.h:65
int outDegree(Vertex vertex) const
Definition: CFGAdapter.h:95
BasicBlock::InIterator iter
Definition: CFGAdapter.h:55
const Edge item(void) const
Definition: CFGAdapter.h:105
int index(Vertex v) const
Definition: CFGAdapter.h:39
Adapter of CFG to the concept of otawa::concept::DiGraphWithIndexedVertex but with backward traversal...
Definition: CFGAdapter.h:83
BasicBlock * Vertex
Definition: CFGAdapter.h:33
const Edge item(void) const
Definition: CFGAdapter.h:62
void next(void)
Definition: CFGAdapter.h:106
bool ended(void) const
Definition: CFGAdapter.h:51
int index(Vertex v) const
Definition: CFGAdapter.h:92
int inDegree(Vertex vertex) const
Definition: CFGAdapter.h:44
Vertex sinkOf(Edge edge) const
Definition: CFGAdapter.h:41
Definition: BasicBlock.h:165
int number(void) const
Get the number hooked on this basic block, that is, value of ID_Index property.
Definition: BasicBlock.h:146
otawa::Edge * Edge
Definition: CFGAdapter.h:34
bool ended(void) const
Definition: CFGAdapter.h:61
bool ended(void) const
Definition: CFGAdapter.h:114
Definition: BasicBlock.h:160
Successor(const ForwardCFGAdapter &g, const Vertex &v)
Definition: CFGAdapter.h:60
void next(void)
Definition: CFGAdapter.h:53
This class represents edges in the CFG representation.
Definition: Edge.h:33
BasicBlock * target(void) const
Definition: Edge.h:53
Definition: CFGAdapter.h:58
This is the minimal definition of a basic block.
Definition: BasicBlock.h:43
BackwardCFGAdapter(CFG *_cfg)
Definition: CFGAdapter.h:89
bool isPredecessorOf(const Vertex &pred, const Vertex &ref)
Definition: CFGAdapter.h:98
Definition: CFGAdapter.h:125
Definition: CFGAdapter.h:101
Iterator(const ForwardCFGAdapter &cfga)
Definition: CFGAdapter.h:74
BBIterator(CFG *cfg)
Definition: CFG.h:50
Vertex entry(void) const
Definition: CFGAdapter.h:38
int inDegree(Vertex vertex) const
Definition: CFGAdapter.h:97
void next(void)
Definition: CFGAdapter.h:116
Vertex sourceOf(Edge edge) const
Definition: CFGAdapter.h:93
Definition: CFGAdapter.h:111
BasicBlock * Vertex
Definition: CFGAdapter.h:86
int countBB(void)
Definition: CFG.h:105
CFG * cfg
Definition: CFGAdapter.h:132
Vertex sinkOf(Edge edge) const
Definition: CFGAdapter.h:94
BasicBlock::InIterator iter
Definition: CFGAdapter.h:108
bool isPredecessorOf(Vertex pred, const Vertex &ref)
Definition: CFGAdapter.h:45