Otawa
0.10
|
#include <otawa/exegraph/LiExeGraph.h>
Public Member Functions | |
LiExeNode (ExeGraph< LiExeNode > *graph, PipelineStage< LiExeNode > *stage, ExeInst< LiExeNode > *inst) | |
Builds an execution node tuned for Li's algorithm. More... | |
int | time (ExeGraph< LiExeNode >::time_step_t step, ExeGraph< LiExeNode >::time_bound_t bound) |
void | setTime (ExeGraph< LiExeNode >::time_step_t step, ExeGraph< LiExeNode >::time_bound_t bound, int time) |
void | shade (void) |
Marks the node as "shaded" (see Li's algorithm) More... | |
bool | isShaded (void) |
PipelineStage< N > * | pipelineStage (void) |
ExeInst< N > * | inst (void) |
int | latency () |
int | latency (time_bound_t bound) |
void | setLatency (time_bound_t bound, int latency) |
bool | needsOperands (void) |
void | setNeedsOperands (bool val) |
Sets whether the node depends on input operands. More... | |
bool | producesOperands (void) |
void | setProducesOperands (bool val) |
Sets whether the node produces output operands. More... | |
void | addContender (N *cont) |
Adds a contender to the lists of contenders for the node. More... | |
elm::genstruct::Vector< N * > * | contenders () |
elm::String | name () |
Returns the name of the node, composed of the name of the pipeline stage and the name of the instruction (e.g. More... | |
int | index (void) const |
bool | hasSucc (void) const |
bool | hasPred (void) const |
int | countSucc (void) const |
int | countPred (void) const |
bool | isPredOf (const GenNode *node) |
bool | isSuccOf (const GenNode *node) |
Protected Attributes | |
elm::genstruct::Vector< N * > | _contenders |
Private Attributes | |
int | _time [ExeGraph< LiExeNode >::STEPS][ExeGraph< LiExeNode >::BOUNDS] |
bool | _shaded |
LiExeGraph * | _graph |
|
inline |
Builds an execution node tuned for Li's algorithm.
graph | The execution graph that contains the node. aram stage The pipeline stage the node is related to. |
inst | The instruction the node is related to. |
References otawa::ExeInst< N >::codePart(), INFINITE_TIME, otawa::PipelineStage< N >::minLatency(), and setTime().
|
inlineinherited |
Adds a contender to the lists of contenders for the node.
cont | The new contender for the node. |
References otawa::ExeGraph< N >::ExeNode::_contenders, and elm::genstruct::Vector< T >::add().
|
inlineinherited |
References otawa::ExeGraph< N >::ExeNode::_contenders.
|
inlineinherited |
References otawa::graph::Node::countPred().
|
inlineinherited |
References otawa::graph::Node::countSucc().
|
inlineinherited |
References otawa::graph::Node::hasPred().
Referenced by otawa::LiExeGraph::shadeNodes().
|
inlineinherited |
References otawa::graph::Node::hasSucc().
|
inlineinherited |
References otawa::graph::Node::index().
Referenced by otawa::ParamExeNode::contentionDep(), otawa::ParamExeGraph::cost(), otawa::ParamExeNode::d(), otawa::ParamExeNode::delay(), otawa::ParExeNode::delay(), otawa::ParExeNode::producer(), otawa::ParamExeNode::setContentionDep(), otawa::ParExeNode::setDelay(), and otawa::ParamExeNode::setE().
|
inlineinherited |
References otawa::ExeGraph< N >::ExeNode::_inst.
Referenced by otawa::ParamExeGraph::analyzeContentions(), otawa::LiExeGraph::maxTimeToNode(), otawa::LiExeGraph::nodeEarliestTimes(), and otawa::LiExeGraph::nodeLatestTimes().
|
inlineinherited |
References otawa::graph::Node::countPred().
|
inline |
References _shaded.
Referenced by otawa::LiExeGraph::nodeLatestTimes().
|
inlineinherited |
References otawa::graph::Node::isSuccOf().
|
inlineinherited |
References otawa::ExeGraph< N >::ExeNode::_latency, and otawa::ExeGraph< N >::MIN.
Referenced by otawa::LiExeGraph::analyze(), otawa::ParamExeGraph::Delta(), otawa::LiExeGraph::latestTimes(), otawa::LiExeGraph::maxTimeToNode(), otawa::LiExeGraph::nodeEarliestTimes(), otawa::LiExeGraph::nodeLatestTimes(), and otawa::ExeGraph< N >::ExeNode::setLatency().
|
inlineinherited |
bound | A time bound (MIN or MAX). |
References otawa::ExeGraph< N >::ExeNode::_latency.
|
inlineinherited |
Returns the name of the node, composed of the name of the pipeline stage and the name of the instruction (e.g.
"CM(I8)").
References otawa::ExeGraph< N >::ExeNode::_name.
Referenced by otawa::ParamExeGraph::Delta().
|
inlineinherited |
References otawa::ExeGraph< N >::ExeNode::_needs_operands.
|
inlineinherited |
References otawa::ExeGraph< N >::ExeNode::_pipeline_stage.
Referenced by otawa::ParamExeGraph::Delta(), otawa::LiExeGraph::nodeEarliestTimes(), otawa::LiExeGraph::nodeLatestTimes(), and otawa::ParamExeNode::ParamExeNode().
|
inlineinherited |
References otawa::ExeGraph< N >::ExeNode::_produces_operands.
|
inlineinherited |
bound | A time bound (MIN or MAX). |
latency | The new value of the latency. |
References otawa::ExeGraph< N >::ExeNode::_latency, and otawa::ExeGraph< N >::ExeNode::latency().
|
inlineinherited |
Sets whether the node depends on input operands.
References otawa::ExeGraph< N >::ExeNode::_needs_operands.
|
inlineinherited |
Sets whether the node produces output operands.
References otawa::ExeGraph< N >::ExeNode::_produces_operands.
|
inline |
step | Time step (READY, START, FINISH) |
bound | Time bound (MIN, MAX) |
time | The node new time value. Sets the new node time value. |
References _graph, _time, otawa::LiExeGraph::setTimesChanged(), and time().
Referenced by otawa::LiExeGraph::earliestTimes(), otawa::LiExeGraph::latestTimes(), LiExeNode(), otawa::LiExeGraph::nodeEarliestTimes(), and otawa::LiExeGraph::nodeLatestTimes().
|
inline |
Marks the node as "shaded" (see Li's algorithm)
References _shaded.
|
inline |
step | Time step (READY, START, FINISH) |
bound | Time bound (MIN, MAX) |
References _time.
Referenced by otawa::LiExeGraph::analyze(), otawa::LiExeGraph::nodeEarliestTimes(), otawa::LiExeGraph::nodeLatestTimes(), otawa::LiExeGraph::separated(), setTime(), and otawa::LiExeGraph::shadeNodes().
|
protectedinherited |
|
private |
Referenced by setTime().
|
private |
Referenced by isShaded(), and shade().