Otawa
0.10
|
An execution graph that expresses precedence constraints on the execution of a sequence of instructions in a pipelined processor. More...
#include <>>
Classes | |
class | ExeEdge |
class | ExeNode |
class | FunctionalUnitIterator |
class | FunctionalUnitPipelineIterator |
class | InstIterator |
class | InstNodeIterator |
class | PipelineIterator |
class | Predecessor |
class | PreorderIterator |
struct | rename_table_t |
class | StageNodeIterator |
class | Successor |
Public Types | |
enum | code_part_t { BEFORE_PROLOGUE = 0, PROLOGUE = 1, BODY = 2, EPILOGUE = 3, CODE_PARTS_NUMBER } |
enum | time_bound_t { MIN =0, MAX =1, BOUNDS =2 } |
enum | time_step_t { READY =0, START =1, FINISH =2, STEPS =3 } |
typedef enum otawa::ExeGraph::code_part_t | code_part_t |
typedef GenGraph< N, typename ExeGraph< N >::ExeEdge > | Graph |
Public Member Functions | |
ExeGraph () | |
Constructor. More... | |
GenGraph< N, typename ExeGraph < N >::ExeEdge > * | graph () |
void | setEntryNode (N *node) |
Sets the entry node (used for topological graph exploration). More... | |
N * | entryNode (void) |
virtual void | build (WorkSpace *fw, Microprocessor< N > *microprocessor, ExeSequence< N > *sequence) |
elm::String | partName (code_part_t part) |
void | setFirstNode (code_part_t part, N *node) |
void | setLastNode (code_part_t part, N *node) |
N * | firstNode (code_part_t part) |
N * | lastNode (code_part_t part) |
Protected Types | |
typedef struct otawa::ExeGraph::rename_table_t | rename_table_t |
Protected Attributes | |
N * | _entry_node |
N * | _first_node [CODE_PARTS_NUMBER] |
N * | _last_node [CODE_PARTS_NUMBER] |
ExeSequence< N > * | _sequence |
Microprocessor< N > * | _microprocessor |
elm::String | _part_name [CODE_PARTS_NUMBER] |
GenGraph< N, ExeEdge > | _graph |
An execution graph that expresses precedence constraints on the execution of a sequence of instructions in a pipelined processor.
See "X. Li, A. Roychoudhury, T. Mitra, Modeling out-of-order processors for WCET analysis, Real-Time Systems, 34(3), 2006" and "J. Barre, C. Landet, C. Rochange, P. Sainrat, Modeling Instruction-Level Parallelism for WCET Evaluation, 12th IEEE Int'l Conf. on Embedded and Real-Time Systems and Applications, August 2006" for an introduction to execution graphs. ExeGraph does not come with a timing computation method. It is instead meant to be derived into classes that include particular solving methods (e.g. LiExeGraph).
N | Type of nodes. |
typedef enum otawa::ExeGraph::code_part_t otawa::ExeGraph< N >::code_part_t |
typedef GenGraph<N,typename ExeGraph<N>::ExeEdge> otawa::ExeGraph< N >::Graph |
|
protected |
enum otawa::ExeGraph::code_part_t |
enum otawa::ExeGraph::time_bound_t |
enum otawa::ExeGraph::time_step_t |
|
inline |
Constructor.
|
virtual |
fw | The framework. |
microprocessor | The microprocessor. |
sequence | The sequence of instructions the graph should represent. |
References elm::genstruct::DLList< T, class >::addLast(), otawa::hard::Platform::banks(), elm::genstruct::DLList< T, class >::count(), elm::cout, elm::genstruct::DLList< T, class >::first(), elm::genstruct::DLList< ExeInst< N > * >::first(), otawa::PipelineStage< N >::index(), otawa::sem::inst::inst(), otawa::branch::MAX, otawa::Microprocessor< N >::operandProducingStage(), otawa::Microprocessor< N >::operandReadingStage(), otawa::WorkSpace::platform(), elm::genstruct::DLList< T, class >::removeFirst(), elm::trace(), and otawa::PipelineStage< N >::width().
Referenced by otawa::ParamExeGraphBBTime::processBB().
|
inline |
|
inline |
part | The code part. |
|
inline |
|
inline |
part | The code part. |
|
inline |
|
inline |
Sets the entry node (used for topological graph exploration).
node | The entry node. |
|
inline |
part | The code part. |
node | The first node of this code part. Sets the first node of the specified code part. |
|
inline |
part | The code part. |
node | The last node of this code part. Sets the last node of the specified code part. |
|
protected |
|
protected |
|
protected |
Referenced by otawa::ExeGraph< otawa::ParamExeNode >::graph().
|
protected |
|
protected |
|
protected |
|
protected |