Otawa  0.10
otawa::Microprocessor< N > Class Template Reference

#include <otawa/exegraph/Microprocessor.h>

Classes

class  PipelineIterator
 
class  QueueIterator
 

Public Member Functions

 Microprocessor (void)
 Build an empty microprocessor. More...
 
 Microprocessor (const hard::Processor *proc)
 Build a microprocessor for ExeGraph from the abstract definition provided by OTAWA. More...
 
PipelineStage< N > * addPipelineStage (typename PipelineStage< N >::pipeline_info_t &info)
 
Queue< N > * addQueue (elm::String name, int size)
 
void dump (elm::io::Output &out_stream)
 Dump the description of the microprocessor. More...
 
int getPipelineStageIndex ()
 
void setOperandReadingStage (PipelineStage< N > *stage)
 
void setOperandProducingStage (PipelineStage< N > *stage)
 
PipelineStage< N > * operandReadingStage (void)
 
PipelineStage< N > * operandProducingStage (void)
 
bool isLastStage (PipelineStage< N > *stage)
 

Private Attributes

elm::genstruct::Vector< Queue
< N > * > 
_queues
 
elm::genstruct::Vector
< PipelineStage< N > * > 
_pipeline
 
int _pipeline_stage_index
 
PipelineStage< N > * _operand_reading_stage
 
PipelineStage< N > * _operand_producing_stage
 

Constructor & Destructor Documentation

template<class N >
otawa::Microprocessor< N >::Microprocessor ( void  )

Build an empty microprocessor.

template<class N >
otawa::Microprocessor< N >::Microprocessor ( const hard::Processor proc)

Build a microprocessor for ExeGraph from the abstract definition provided by OTAWA.

Parameters
procOTAWA abstract processor definition.

References elm::genstruct::Vector< T >::add(), otawa::Microprocessor< N >::addPipelineStage(), otawa::Microprocessor< N >::addQueue(), otawa::hard::Stage::COMMIT, otawa::PipelineStage< N >::pipeline_info_t::destination_queue, otawa::hard::Stage::EXEC, otawa::hard::Stage::FETCH, otawa::hard::Processor::getQueues(), otawa::hard::Processor::getStages(), otawa::PipelineStage< N >::FunctionalUnit::fu_info_t::is_pipelined, otawa::hard::Stage::LAZY, otawa::PipelineStage< N >::FunctionalUnit::fu_info_t::max_latency, otawa::PipelineStage< N >::pipeline_info_t::max_latency, otawa::PipelineStage< N >::FunctionalUnit::fu_info_t::min_latency, otawa::PipelineStage< N >::pipeline_info_t::min_latency, otawa::PipelineStage< N >::FunctionalUnit::fu_info_t::name, otawa::PipelineStage< N >::FunctionalUnit::fu_info_t::order_policy, otawa::PipelineStage< N >::pipeline_info_t::order_policy, otawa::Microprocessor< N >::setOperandProducingStage(), otawa::Microprocessor< N >::setOperandReadingStage(), otawa::PipelineStage< N >::FunctionalUnit::fu_info_t::short_name, otawa::PipelineStage< N >::pipeline_info_t::source_queue, otawa::PipelineStage< N >::pipeline_info_t::stage_category, otawa::PipelineStage< N >::pipeline_info_t::stage_name, otawa::PipelineStage< N >::pipeline_info_t::stage_short_name, otawa::PipelineStage< N >::pipeline_info_t::stage_width, and otawa::PipelineStage< N >::FunctionalUnit::fu_info_t::width.

Member Function Documentation

template<class N>
PipelineStage< N > * otawa::Microprocessor< N >::addPipelineStage ( typename PipelineStage< N >::pipeline_info_t &  info)
inline
template<class N >
Queue< N > * otawa::Microprocessor< N >::addQueue ( elm::String  name,
int  size 
)
inline
template<class N >
void otawa::Microprocessor< N >::dump ( elm::io::Output out_stream)

Dump the description of the microprocessor.

Parameters
out_streamUsed output stream.

References otawa::INST_CATEGORY_NUMBER.

template<class N>
int otawa::Microprocessor< N >::getPipelineStageIndex ( )
inline
template<class N>
bool otawa::Microprocessor< N >::isLastStage ( PipelineStage< N > *  stage)
inline
template<class N>
PipelineStage<N>* otawa::Microprocessor< N >::operandProducingStage ( void  )
inline
template<class N>
PipelineStage<N>* otawa::Microprocessor< N >::operandReadingStage ( void  )
inline
template<class N>
void otawa::Microprocessor< N >::setOperandProducingStage ( PipelineStage< N > *  stage)
inline
template<class N>
void otawa::Microprocessor< N >::setOperandReadingStage ( PipelineStage< N > *  stage)
inline

Member Data Documentation

template<class N>
PipelineStage<N>* otawa::Microprocessor< N >::_operand_producing_stage
private
template<class N>
PipelineStage<N>* otawa::Microprocessor< N >::_operand_reading_stage
private
template<class N>
elm::genstruct::Vector<PipelineStage<N> *> otawa::Microprocessor< N >::_pipeline
private
template<class N>
int otawa::Microprocessor< N >::_pipeline_stage_index
private
template<class N>
elm::genstruct::Vector<Queue<N> *> otawa::Microprocessor< N >::_queues
private

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