21 #ifndef OTAWA_TSIM_BBPATH_H
22 #define OTAWA_TSIM_BBPATH_H
27 #include <elm/genstruct/Vector.h>
31 namespace otawa {
namespace tsim {
77 inline bool ended(
void)
const;
79 inline void next(
void);
104 : bbs(bbpath->basicBlocks), pos(0) {};
106 return pos >= bbs.length();
BasicBlock * item(void) const
Definition: BBPath.h:108
int t(WorkSpace *fw)
tests if two BBSequences are the same or not (same basic blocks in the path)
Definition: BBPath.h:93
int countInstructions()
Definition: BBPath.cpp:193
void next(void)
Definition: BBPath.h:111
elm::genstruct::Vector< BasicBlock * > basicBlocks
Definition: BBPath.h:43
BasicBlock * tail()
Definition: BBPath.h:99
BBPath(BasicBlock *start)
Builds a new BBPath (length=1) from a given basic block.
Definition: BBPath.cpp:56
const int end
Definition: Registration.h:42
int _length
Definition: BBPath.h:42
ilp::Var * getVar(ilp::System *system, bool explicit_names=false)
if this sequence doesn't have a var (for the ilp system) attached, creates a new one ...
Definition: BBPath.cpp:295
io::Output & operator<<(io::Output &out, BBPath &path)
Display a BB path as a sequence of basic blocks.
Definition: BBPath.cpp:373
elm::genstruct::Vector< BBPath * > * nexts()
Builds a vector containing this BBSequence made longer with all successors of the last basic block it...
Definition: BBPath.cpp:141
friend class PathManager
Definition: BBPath.h:36
BBPath * operator()(int begin, int end)
Definition: BBPath.h:96
int simulate(WorkSpace *fw)
Launches a simulation of the sequence.
Definition: BBPath.cpp:207
elm::genstruct::Vector< BasicBlock * > & bbs
Definition: BBPath.h:73
A workspace represents a program, its run-time and all information about WCET computation or any othe...
Definition: WorkSpace.h:67
BBIterator(BBPath *bbpath)
Definition: BBPath.h:103
static int instructions_simulated
Definition: BBPath.h:82
int time(WorkSpace *fw)
Returns the number of cycles the processor must do to cover the sequence.
Definition: BBPath.cpp:183
int length()
Gives the number of basic blocks that composes this path.
Definition: BBPath.h:95
sys::SystemOutStream & out
int pos
Definition: BBPath.h:74
This is the minimal definition of a basic block.
Definition: BasicBlock.h:43
BasicBlock * head()
Definition: BBPath.h:98
This a list of properties.
Definition: PropList.h:63
WorkSpace * last_framework_used
Definition: BBPath.h:45
A variable is an identifier used for performing ILP computation.
Definition: Var.h:36
BBPath * sub(int begin, int end)
Returns a sub-path.
Definition: BBPath.cpp:319
An ILP system is a colletion of ILP constraint that may maximize or minimize some object function...
Definition: System.h:42
int l()
Same as BBPath::length() Gives the number of basic blocks that composes this path.
Definition: BBPath.h:94
static BBPath * getBBPath(BasicBlock *start)
Returns the path of length 1 composed by only the given basic block.
Definition: BBPath.cpp:94
elm::String makeVarName()
Creates a human-readable name (or representation) for this sequence This name is like Seq_x1_x2_x3 ...
Definition: BBPath.cpp:273
bool ended(void) const
Definition: BBPath.h:105