Otawa  0.10
otawa::ParExeNode Class Reference

A node of the ParExeGraph, that represents the crossing of an instruction inside a microprocessor stage. More...

#include <otawa/parexegraph/ParExeGraph.h>

Inheritance diagram for otawa::ParExeNode:
otawa::GenGraph< N, E >::GenNode otawa::graph::Node

Public Member Functions

 ParExeNode (ParExeGraph *graph, ParExeStage *stage, ParExeInst *inst)
 
ParExeStagestage (void)
 
ParExeInstinst (void)
 
int latency ()
 
void setDefaultLatency (int lat)
 
void restoreDefaultLatency (void)
 
void setLatency (int latency)
 
void addProducer (ParExeNode *prod)
 
int numProducers (void)
 
ParExeNodeproducer (int index)
 
void addContender (ParExeNode *cont)
 
elm::genstruct::DLList
< elm::BitVector * > * 
contendersMasksList ()
 
elm::String name (void)
 
int delay (int index)
 
void setDelay (int index, int value)
 
void initContenders (int size)
 
int lateContenders (void)
 
void setLateContenders (int num)
 
elm::BitVectorpossibleContenders (void)
 
void setContender (int index)
 
void buildContendersMasks ()
 
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
< ParExeNode * > 
_producers
 
elm::genstruct::Vector
< ParExeNode * > 
_contenders
 
elm::BitVector_possible_contenders
 
elm::genstruct::DLList
< elm::BitVector * > 
_contenders_masks_list
 
int _late_contenders
 

Private Attributes

ParExeStage_pipeline_stage
 
ParExeInst_inst
 
int _latency
 
int _default_latency
 
elm::String _name
 
elm::genstruct::AllocatedTable
< int > * 
_delay
 

Detailed Description

A node of the ParExeGraph, that represents the crossing of an instruction inside a microprocessor stage.

See also
Parametric Execution Graph

Constructor & Destructor Documentation

Member Function Documentation

void otawa::ParExeNode::addContender ( ParExeNode cont)
inline
void otawa::ParExeNode::addProducer ( ParExeNode prod)
inline

References _producers.

elm::genstruct::DLList<elm::BitVector *>* otawa::ParExeNode::contendersMasksList ( )
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::ParExeNode::delay ( int  index)
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
void otawa::ParExeNode::initContenders ( int  size)
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::ParExeNode::lateContenders ( void  )
inline

References _late_contenders.

int otawa::ParExeNode::latency ( void  )
inline
elm::String otawa::ParExeNode::name ( void  )
inline

References _name.

int otawa::ParExeNode::numProducers ( void  )
inline

References _producers.

elm::BitVector* otawa::ParExeNode::possibleContenders ( void  )
inline

References _possible_contenders.

ParExeNode* otawa::ParExeNode::producer ( int  index)
inline
void otawa::ParExeNode::restoreDefaultLatency ( void  )
inline

References _default_latency, and _latency.

void otawa::ParExeNode::setContender ( int  index)
inline
void otawa::ParExeNode::setDefaultLatency ( int  lat)
inline

References _default_latency, and _latency.

void otawa::ParExeNode::setDelay ( int  index,
int  value 
)
inline
void otawa::ParExeNode::setLateContenders ( int  num)
inline

References _late_contenders.

void otawa::ParExeNode::setLatency ( int  latency)
inline
ParExeStage* otawa::ParExeNode::stage ( void  )
inline

References _pipeline_stage.

Referenced by otawa::ParExeInst::addNode().

Member Data Documentation

elm::genstruct::Vector<ParExeNode *> otawa::ParExeNode::_contenders
protected

Referenced by addContender().

elm::genstruct::DLList<elm::BitVector *> otawa::ParExeNode::_contenders_masks_list
protected
int otawa::ParExeNode::_default_latency
private
elm::genstruct::AllocatedTable<int>* otawa::ParExeNode::_delay
private

Referenced by delay(), and ParExeNode().

ParExeInst* otawa::ParExeNode::_inst
private

Referenced by inst().

int otawa::ParExeNode::_late_contenders
protected
int otawa::ParExeNode::_latency
private
elm::String otawa::ParExeNode::_name
private

Referenced by name(), and ParExeNode().

ParExeStage* otawa::ParExeNode::_pipeline_stage
private

Referenced by stage().

elm::BitVector* otawa::ParExeNode::_possible_contenders
protected
elm::genstruct::Vector<ParExeNode *> otawa::ParExeNode::_producers
protected

Referenced by addProducer(), numProducers(), and producer().


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