#include <otawa/exegraph/ParamExeGraph.h>
|
| ParamExeGraph (WorkSpace *fw, Microprocessor< ParamExeNode > *microprocessor, ExeSequence< ParamExeNode > *sequence, bool has_pred, Trace *_trace) |
|
virtual void | propagate () |
|
virtual void | initDelays () |
|
virtual int | Delta (ParamExeNode *a, Resource *res) |
|
virtual void | analyzeContentions () |
|
void | clearTimesChanged () |
|
void | setTimesChanged () |
|
bool | timesChanged () |
|
void | dump (elm::io::Output &dotFile) |
|
void | dumpSimple (elm::io::Output &dotFile) |
|
int | resourceCount () |
|
int | instructionCount () |
|
int | analyze () |
|
virtual int | cost () |
|
int | latestResourceIndex () |
|
elm::String | delayName (int delay) |
|
GenGraph< ParamExeNode,
typename ExeGraph
< ParamExeNode >::ExeEdge > * | graph () |
|
void | setEntryNode (ParamExeNode *node) |
| Sets the entry node (used for topological graph exploration). More...
|
|
ParamExeNode * | entryNode (void) |
|
virtual void | build (WorkSpace *fw, Microprocessor< ParamExeNode > *microprocessor, ExeSequence< ParamExeNode > *sequence) |
|
elm::String | partName (code_part_t part) |
|
void | setFirstNode (code_part_t part, ParamExeNode *node) |
|
void | setLastNode (code_part_t part, ParamExeNode *node) |
|
ParamExeNode * | firstNode (code_part_t part) |
|
ParamExeNode * | lastNode (code_part_t part) |
|
Enumerator |
---|
STAGE |
|
FU |
|
QUEUE |
|
REG |
|
EXTERNAL_CONFLICT |
|
INTERNAL_CONFLICT |
|
BLOCK_START |
|
RES_TYPE_NUM |
|
References _external_conflicts, _has_pred, _internal_conflicts, _last_resource_index, _latest_resource_index, _resources, _sequence, _trace, otawa::ParamExeGraph::RegResource::addUsingInst(), otawa::hard::Platform::banks(), elm::genstruct::DLList< T, class >::count(), otawa::sem::inst::inst(), otawa::Microprocessor< N >::operandProducingStage(), otawa::WorkSpace::platform(), STAGE, and elm::StringBuffer::toString().
int ParamExeGraph::analyze |
( |
| ) |
|
References _capacity, otawa::ExeGraph< ParamExeNode >::_last_node, otawa::ExeGraph< ParamExeNode >::_microprocessor, analyzeContentions(), otawa::ExeGraph< ParamExeNode >::BODY, cost(), initDelays(), otawa::ExeGraph< ParamExeNode >::PROLOGUE, propagate(), res_dep, res_dep_impact, and RES_TYPE_NUM.
Referenced by otawa::ParamExeGraphBBTime::processBB().
void ParamExeGraph::analyzeContentions |
( |
| ) |
|
|
virtual |
References _capacity, otawa::ExeGraph< ParamExeNode >::_last_node, otawa::ExeGraph< ParamExeNode >::_microprocessor, _trace, otawa::sem::cont(), otawa::sem::inst::d(), otawa::sem::inst::inst(), otawa::ExeGraph< N >::ExeNode::inst(), otawa::L9, otawa::PipelineStage< N >::numberOfNodes(), otawa::ExeGraph< ParamExeNode >::PROLOGUE, and otawa::PipelineStage< N >::width().
Referenced by analyze().
- Parameters
-
fw | The framework. |
microprocessor | The microprocessor. |
sequence | The sequence of instructions the graph should represent. |
void otawa::ParamExeGraph::clearTimesChanged |
( |
| ) |
|
|
inline |
int ParamExeGraph::cost |
( |
void |
| ) |
|
|
virtual |
References otawa::ExeGraph< ParamExeNode >::_last_node, _trace, BLOCK_START, otawa::ExeGraph< ParamExeNode >::BODY, otawa::ParamExeNode::d(), Delta(), otawa::ParamExeNode::e(), otawa::GenGraph< N, E >::GenNode::index(), otawa::ParamExeGraph::Resource::index(), otawa::L3, otawa::ParamExeGraph::Resource::name(), and QUEUE.
Referenced by analyze().
elm::String otawa::ParamExeGraph::delayName |
( |
int |
delay | ) |
|
|
inline |
References otawa::ExeGraph< ParamExeNode >::_last_node, _latest_resource_index, _trace, otawa::ParamExeNode::contendersMasksList(), otawa::ParamExeNode::d(), delta, otawa::ParamExeNode::e(), otawa::ParamExeGraph::Resource::index(), otawa::L8, otawa::ParamExeNode::lateContenders(), otawa::ExeGraph< N >::ExeNode::latency(), otawa::ParamExeGraph::Resource::name(), otawa::ExeGraph< N >::ExeNode::name(), otawa::ParamExeGraph::Resource::offset(), otawa::ExeGraph< N >::ExeNode::pipelineStage(), otawa::ExeGraph< ParamExeNode >::PROLOGUE, QUEUE, elm::StringBuffer::toString(), and otawa::ParamExeGraph::Resource::type().
Referenced by cost().
- Parameters
-
- Returns
- The first node of the specified code part.
void ParamExeGraph::initDelays |
( |
| ) |
|
|
virtual |
References otawa::ExeGraph< ParamExeNode >::_first_node, BLOCK_START, otawa::ExeGraph< ParamExeNode >::BODY, otawa::Queue< N >::fillingStage(), FU, otawa::ExeInst< N >::index(), otawa::PipelineStage< N >::node(), otawa::ExeGraph< ParamExeNode >::PROLOGUE, QUEUE, REG, otawa::ParamExeNode::setE(), and STAGE.
Referenced by analyze().
int otawa::ParamExeGraph::instructionCount |
( |
| ) |
|
|
inline |
- Parameters
-
- Returns
- The last node of the specified code part.
int otawa::ParamExeGraph::latestResourceIndex |
( |
| ) |
|
|
inline |
- Returns
- The name of the code part (BEFORE_PROLOGUE, PROLOGUE, BODY or EPILOGUE).
void ParamExeGraph::propagate |
( |
| ) |
|
|
virtual |
int otawa::ParamExeGraph::resourceCount |
( |
| ) |
|
|
inline |
Sets the entry node (used for topological graph exploration).
- Parameters
-
- Parameters
-
part | The code part. |
node | The first node of this code part. Sets the first node of the specified code part. |
- Parameters
-
part | The code part. |
node | The last node of this code part. Sets the last node of the specified code part. |
void otawa::ParamExeGraph::setTimesChanged |
( |
| ) |
|
|
inline |
bool otawa::ParamExeGraph::timesChanged |
( |
| ) |
|
|
inline |
int otawa::ParamExeGraph::_capacity |
|
protected |
bool otawa::ParamExeGraph::_has_pred |
|
protected |
int otawa::ParamExeGraph::_last_resource_index |
|
protected |
int otawa::ParamExeGraph::_latest_resource_index |
|
protected |
int otawa::ParamExeGraph::_resource_count |
|
protected |
bool otawa::ParamExeGraph::_times_changed |
|
protected |
Trace* otawa::ParamExeGraph::_trace |
|
private |
The documentation for this class was generated from the following files: