Otawa
0.10
|
This iterator allows easily to traverse all execution paths of a block of semantic instructions. More...
#include <otawa/sem/PathIter.h>
Public Member Functions | |
void | start (Inst *inst) |
bool | pathEnd (void) const |
Test if the current instruction is a path end. More... | |
bool | isCond (void) const |
Test if the current instruction is a conditional, that means that two different paths will be created from this point. More... | |
bool | ended (void) const |
sem::inst | item (void) const |
void | next (void) |
opcode | op (void) const |
t::int16 | d (void) const |
t::int16 | a (void) const |
t::int16 | b (void) const |
t::uint32 | cst (void) const |
t::uint32 | reg (void) const |
t::uint32 | addr (void) const |
operator bool (void) const | |
operator sem::inst (void) const | |
PathIter & | operator++ (void) |
PathIter & | operator++ (int) |
sem::inst | operator* (void) const |
sem::inst | operator-> (void) const |
Private Attributes | |
Inst * | _inst |
sem::Block | bb |
genstruct::Vector< int > | todo |
int | pc |
This iterator allows easily to traverse all execution paths of a block of semantic instructions.
As it may consume resources, it is delivered to support iteration on multiple blocks sequentially.
|
inline |
References otawa::sem::inst::a, and item().
|
inline |
References otawa::sem::inst::addr(), and item().
|
inline |
References otawa::sem::inst::b, and item().
|
inline |
References otawa::sem::inst::cst, and item().
|
inline |
References otawa::sem::inst::d(), and item().
|
inline |
References pathEnd(), and todo.
Referenced by otawa::stack::Iter::ended(), otawa::stack::Iter::instEnd(), and otawa::stack::Iter::next().
|
inline |
Test if the current instruction is a conditional, that means that two different paths will be created from this point.
References bb, otawa::sem::IF, and pc.
Referenced by otawa::stack::Iter::isCond(), and next().
|
inline |
|
inline |
References bb, isCond(), pathEnd(), pc, elm::genstruct::Vector< T >::pop(), elm::genstruct::Vector< T >::push(), and todo.
Referenced by otawa::stack::Iter::next().
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inline |
Test if the current instruction is a path end.
References bb, otawa::sem::CONT, and pc.
Referenced by ended(), next(), otawa::stack::Iter::next(), and otawa::stack::Iter::pathEnd().
|
inline |
References item(), and otawa::sem::inst::reg().
|
inline |
References _inst, elm::genstruct::Vector< T >::add(), bb, elm::genstruct::Vector< T >::clear(), otawa::sem::cont(), pc, otawa::Inst::semInsts(), and todo.
Referenced by otawa::stack::Iter::next(), and otawa::stack::Iter::start().
|
private |
|
private |
|
private |