Otawa  0.10
otawa::ParamExeNode Class Reference

#include <otawa/exegraph/ParamExeGraph.h>

Inheritance diagram for otawa::ParamExeNode:
otawa::ExeGraph< N >::ExeNode otawa::GenGraph< N, E >::GenNode otawa::graph::Node

Public Member Functions

 ParamExeNode (ExeGraph< ParamExeNode > *graph, PipelineStage< ParamExeNode > *stage, ExeInst< ParamExeNode > *inst)
 
elm::genstruct::SLList
< elm::BitVector * > * 
contendersMasksList ()
 
elm::BitVectorpossibleContenders ()
 
int lateContenders ()
 
void setLateContenders (int num)
 
void initContenders (int size)
 
bool isContender (int index)
 
void setContender (int index)
 
int contendersNumber ()
 
void buildContendersMasks ()
 
void addConflict (ParamExeGraph::InternalConflictResource *conflict)
 
elm::genstruct::SLList
< ParamExeGraph::InternalConflictResource * > * 
conflictList ()
 
void setStageNumber (int number)
 
int stageNumber ()
 
bool hasContenders ()
 
int d (int index, ExeGraph< ParamExeNode >::time_bound_t bound)
 
int d (int index)
 
bool e (int index)
 
void setD (int index, int value, ExeGraph< ParamExeNode >::time_bound_t bound)
 
void setD (int index, int value)
 
void setE (int index, bool value)
 
int maxContentionDelay ()
 
void setMaxContentionDelay (int value)
 
int minContentionDelay ()
 
void setMinContentionDelay (int value)
 
int delay (int index, ExeGraph< ParamExeNode >::time_bound_t bound)
 
bool contentionDep (int index)
 
int internalDelay (ExeGraph< ParamExeNode >::time_bound_t bound)
 
int contentionDelay (ExeGraph< ParamExeNode >::time_bound_t bound)
 
void setDelay (int index, ExeGraph< ParamExeNode >::time_bound_t bound, int delay)
 
void setContentionDep (int index)
 
void setInternalDelay (ExeGraph< ParamExeNode >::time_bound_t bound, int delay)
 
void setContentionDelay (ExeGraph< ParamExeNode >::time_bound_t bound, int delay)
 
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

ParamExeGraph_graph
 
elm::genstruct::AllocatedTable
< int > * 
_d [ExeGraph< ParamExeNode >::BOUNDS]
 
int _max_contention_delay
 
int _min_contention_delay
 
int _stage_number
 
elm::genstruct::AllocatedTable
< bool > * 
_contention_dep
 
elm::genstruct::AllocatedTable
< int > * 
_delay [ExeGraph< ParamExeNode >::BOUNDS]
 
int _internal_delay [ExeGraph< ParamExeNode >::BOUNDS]
 
int _contention_delay [ExeGraph< ParamExeNode >::BOUNDS]
 
elm::genstruct::SLList
< ParamExeGraph::InternalConflictResource * > 
_contenders_list
 
elm::BitVector_possible_contenders
 
elm::genstruct::SLList
< elm::BitVector * > 
_contenders_masks_list
 
int _late_contenders
 

Constructor & Destructor Documentation

Member Function Documentation

void otawa::ParamExeNode::addConflict ( ParamExeGraph::InternalConflictResource conflict)
inline

References _contenders_list.

template<class N>
void otawa::ExeGraph< N >::ExeNode::addContender ( N *  cont)
inlineinherited

Adds a contender to the lists of contenders for the node.

Parameters
contThe new contender for the node.

References otawa::ExeGraph< N >::ExeNode::_contenders, and elm::genstruct::Vector< T >::add().

elm::genstruct::SLList<ParamExeGraph::InternalConflictResource *>* otawa::ParamExeNode::conflictList ( )
inline

References _contenders_list.

template<class N>
elm::genstruct::Vector< N * > * otawa::ExeGraph< N >::ExeNode::contenders ( void  )
inlineinherited
Returns
The list of contenders of the node.

References otawa::ExeGraph< N >::ExeNode::_contenders.

elm::genstruct::SLList<elm::BitVector *>* otawa::ParamExeNode::contendersMasksList ( )
inline
int otawa::ParamExeNode::contendersNumber ( )
inline
int otawa::ParamExeNode::contentionDelay ( ExeGraph< ParamExeNode >::time_bound_t  bound)
inline

References _contention_delay.

bool otawa::ParamExeNode::contentionDep ( int  index)
inline
template<class N, class E>
int otawa::GenGraph< N, E >::GenNode::countPred ( void  ) const
inlineinherited
template<class N, class E>
int otawa::GenGraph< N, E >::GenNode::countSucc ( void  ) const
inlineinherited
int otawa::ParamExeNode::d ( int  index,
ExeGraph< ParamExeNode >::time_bound_t  bound 
)
inline
int otawa::ParamExeNode::d ( int  index)
inline
int otawa::ParamExeNode::delay ( int  index,
ExeGraph< ParamExeNode >::time_bound_t  bound 
)
inline
bool otawa::ParamExeNode::e ( int  index)
inline
bool otawa::ParamExeNode::hasContenders ( )
inline
template<class N, class E>
bool otawa::GenGraph< N, E >::GenNode::hasPred ( void  ) const
inlineinherited
template<class N, class E>
bool otawa::GenGraph< N, E >::GenNode::hasSucc ( void  ) const
inlineinherited
template<class N, class E>
int otawa::GenGraph< N, E >::GenNode::index ( void  ) const
inlineinherited
void otawa::ParamExeNode::initContenders ( int  size)
inline

References _possible_contenders.

template<class N>
ExeInst< N > * otawa::ExeGraph< N >::ExeNode::inst ( void  )
inlineinherited
int otawa::ParamExeNode::internalDelay ( ExeGraph< ParamExeNode >::time_bound_t  bound)
inline

References _internal_delay.

bool otawa::ParamExeNode::isContender ( int  index)
inline

References _possible_contenders.

template<class N, class E>
bool otawa::GenGraph< N, E >::GenNode::isPredOf ( const GenNode node)
inlineinherited
template<class N, class E>
bool otawa::GenGraph< N, E >::GenNode::isSuccOf ( const GenNode node)
inlineinherited
int otawa::ParamExeNode::lateContenders ( )
inline

References _late_contenders.

Referenced by otawa::ParamExeGraph::Delta().

template<class N>
int otawa::ExeGraph< N >::ExeNode::latency ( time_bound_t  bound)
inlineinherited
Parameters
boundA time bound (MIN or MAX).
Returns
The node latency.

References otawa::ExeGraph< N >::ExeNode::_latency.

int otawa::ParamExeNode::maxContentionDelay ( )
inline

References _max_contention_delay.

int otawa::ParamExeNode::minContentionDelay ( )
inline

References _min_contention_delay.

template<class N>
elm::String otawa::ExeGraph< N >::ExeNode::name ( void  )
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)").

Returns
Node name.

References otawa::ExeGraph< N >::ExeNode::_name.

Referenced by otawa::ParamExeGraph::Delta().

template<class N>
bool otawa::ExeGraph< N >::ExeNode::needsOperands ( void  )
inlineinherited
Returns
Whether the node depends on input operands.

References otawa::ExeGraph< N >::ExeNode::_needs_operands.

template<class N>
PipelineStage< N > otawa::ExeGraph< N >::ExeNode::pipelineStage ( void  )
inlineinherited
elm::BitVector* otawa::ParamExeNode::possibleContenders ( )
inline

References _possible_contenders.

template<class N>
bool otawa::ExeGraph< N >::ExeNode::producesOperands ( void  )
inlineinherited
Returns
Whether the node produces output operands.

References otawa::ExeGraph< N >::ExeNode::_produces_operands.

void otawa::ParamExeNode::setContender ( int  index)
inline
void otawa::ParamExeNode::setContentionDelay ( ExeGraph< ParamExeNode >::time_bound_t  bound,
int  delay 
)
inline
void otawa::ParamExeNode::setContentionDep ( int  index)
inline
void otawa::ParamExeNode::setD ( int  index,
int  value,
ExeGraph< ParamExeNode >::time_bound_t  bound 
)
inline

References _d.

void otawa::ParamExeNode::setD ( int  index,
int  value 
)
inline

References _d.

void otawa::ParamExeNode::setDelay ( int  index,
ExeGraph< ParamExeNode >::time_bound_t  bound,
int  delay 
)
inline
void otawa::ParamExeNode::setE ( int  index,
bool  value 
)
inline
void otawa::ParamExeNode::setInternalDelay ( ExeGraph< ParamExeNode >::time_bound_t  bound,
int  delay 
)
inline
void otawa::ParamExeNode::setLateContenders ( int  num)
inline

References _late_contenders.

template<class N>
void otawa::ExeGraph< N >::ExeNode::setLatency ( time_bound_t  bound,
int  latency 
)
inlineinherited
Parameters
boundA time bound (MIN or MAX).
latencyThe new value of the latency.

References otawa::ExeGraph< N >::ExeNode::_latency, and otawa::ExeGraph< N >::ExeNode::latency().

void otawa::ParamExeNode::setMaxContentionDelay ( int  value)
inline

References _max_contention_delay.

void otawa::ParamExeNode::setMinContentionDelay ( int  value)
inline

References _min_contention_delay.

template<class N>
void otawa::ExeGraph< N >::ExeNode::setNeedsOperands ( bool  val)
inlineinherited

Sets whether the node depends on input operands.

References otawa::ExeGraph< N >::ExeNode::_needs_operands.

template<class N>
void otawa::ExeGraph< N >::ExeNode::setProducesOperands ( bool  val)
inlineinherited

Sets whether the node produces output operands.

References otawa::ExeGraph< N >::ExeNode::_produces_operands.

void otawa::ParamExeNode::setStageNumber ( int  number)
inline

References _stage_number.

int otawa::ParamExeNode::stageNumber ( )
inline

References _stage_number.

Member Data Documentation

template<class N>
elm::genstruct::Vector<N *> otawa::ExeGraph< N >::ExeNode::_contenders
protectedinherited
elm::genstruct::SLList<ParamExeGraph::InternalConflictResource *> otawa::ParamExeNode::_contenders_list
private

Referenced by addConflict(), and conflictList().

elm::genstruct::SLList<elm::BitVector *> otawa::ParamExeNode::_contenders_masks_list
private
int otawa::ParamExeNode::_contention_delay[ExeGraph< ParamExeNode >::BOUNDS]
private
elm::genstruct::AllocatedTable<bool>* otawa::ParamExeNode::_contention_dep
private

Referenced by contentionDep(), and ParamExeNode().

elm::genstruct::AllocatedTable<int>* otawa::ParamExeNode::_d[ExeGraph< ParamExeNode >::BOUNDS]
private

Referenced by d(), e(), ParamExeNode(), setD(), and setE().

elm::genstruct::AllocatedTable<int>* otawa::ParamExeNode::_delay[ExeGraph< ParamExeNode >::BOUNDS]
private

Referenced by delay(), ParamExeNode(), and setDelay().

ParamExeGraph* otawa::ParamExeNode::_graph
private
int otawa::ParamExeNode::_internal_delay[ExeGraph< ParamExeNode >::BOUNDS]
private
int otawa::ParamExeNode::_late_contenders
private
int otawa::ParamExeNode::_max_contention_delay
private
int otawa::ParamExeNode::_min_contention_delay
private
elm::BitVector* otawa::ParamExeNode::_possible_contenders
private
int otawa::ParamExeNode::_stage_number
private

Referenced by setStageNumber(), and stageNumber().


The documentation for this class was generated from the following files: