![]() |
OTAWA
2.0
Framework to perform machine analysis and compute WCET.
|
#include <otawa/parexegraph/ParExeProc.h>
Classes | |
class | QueueIterator |
Public Types | |
enum | instruction_category_t { IALU = 0, FALU = 1, MEMORY = 2, CONTROL = 3, MUL = 4, DIV = 5, INST_CATEGORY_NUMBER } |
typedef enum otawa::ParExeProc::instruction_category_t | instruction_category_t |
Public Member Functions | |
void | addQueue (elm::String name, int size) |
ParExeStage * | branchStage (void) const |
ParExeStage * | execStage (void) |
ParExeStage * | fetchStage (void) |
bool | isLastStage (ParExeStage *stage) |
ParExeStage * | lastStage (void) |
List< ParExeStage * > * | listOfInorderStages () |
ParExeStage * | memStage (void) const |
ParExeProc (const hard::Processor *proc) | |
Build a parametric execution processor from processor description. More... | |
ParExePipeline * | pipeline () |
const hard::Processor * | processor (void) const |
ParExeQueue * | queue (int index) |
int | queueCount () const |
void | setBranchStage (ParExeStage *stage) |
void | setExecStage (ParExeStage *stage) |
void | setFetchStage (ParExeStage *stage) |
void | setMemStage (ParExeStage *stage) |
Private Attributes | |
ParExeStage * | _branch_stage |
ParExeStage * | _exec_stage |
ParExeStage * | _fetch_stage |
List< ParExeStage * > | _inorder_stages |
ParExeStage * | _mem_stage |
ParExePipeline | _pipeline |
const hard::Processor * | _proc |
Vector< ParExeQueue * > | _queues |
Représentation of a processor (to be used to build a ParExeGraph). A processor is a pipeline, with a number of stages, among which a fetch stage and an execution stage, and a set of instruction queues.
otawa::ParExeProc::ParExeProc | ( | const hard::Processor * | proc | ) |
Build a parametric execution processor from processor description.
proc | Processor description. |
Constructor.
Description | of the processor. |
References _inorder_stages, _pipeline, otawa::ParExeStage::addBinding(), otawa::ParExeStage::addFunctionalUnit(), addQueue(), otawa::ParExePipeline::addStage(), branchStage(), otawa::ParExeStage::COMMIT, otawa::hard::Stage::COMMIT, elm::Array< class >::count(), otawa::ParExeStage::DECODE, otawa::hard::Stage::EXEC, execStage(), otawa::ParExeStage::EXECUTE, otawa::ParExeStage::FETCH, otawa::hard::Stage::FETCH, fetchStage(), otawa::ParExeStage::fu(), otawa::hard::Stage::getDispatch(), otawa::hard::Stage::getFUs(), otawa::hard::PipelineUnit::getLatency(), otawa::hard::PipelineUnit::getName(), otawa::hard::Processor::getQueues(), otawa::hard::Processor::getStages(), otawa::hard::Stage::getType(), otawa::hard::PipelineUnit::getWidth(), otawa::ParExeStage::IN_ORDER, otawa::hard::PipelineUnit::isBranch(), otawa::hard::PipelineUnit::isMem(), otawa::hard::FunctionalUnit::isPipelined(), k(), otawa::ParExePipeline::lastStage(), otawa::hard::Stage::LAZY, memStage(), otawa::ParExePipeline::numStages(), otawa::ParExeStage::OUT_OF_ORDER, queue(), setBranchStage(), setExecStage(), setFetchStage(), and setMemStage().
|
inline |
Add an instruction queue to the processor.
name | Name of the queue. |
size | Size (capacity) of the queue. |
References name.
Referenced by ParExeProc().
|
inline |
|
inline |
Referenced by otawa::etime::StandardXGraphBuilder::addEdgesForDataDependencies(), otawa::ParExeGraph::addEdgesForDataDependencies(), otawa::etime::StandardXGraphBuilder::addEdgesForMemoryOrder(), otawa::ParExeGraph::addEdgesForMemoryOrder(), and ParExeProc().
|
inline |
Referenced by otawa::ParExeGraph::addEdgesForFetch(), otawa::etime::StepGraphBuilder::build(), otawa::etime::StandardXGraphBuilder::init(), and ParExeProc().
|
inline |
stage | Pointer to a stage. |
|
inline |
|
inline |
|
inline |
|
inline |
Referenced by otawa::etime::StandardXGraphBuilder::addEdgesForQueues(), otawa::ParExeGraph::addEdgesForQueues(), otawa::etime::AbstractTimeBuilder::buildResources(), otawa::ParExeGraph::createNodes(), otawa::ParExeGraph::delta(), otawa::ParExeGraph::findContendingNodes(), otawa::ResourceList::ResourceList(), and otawa::ParExeGraph::~ParExeGraph().
|
inline |
|
inline |
Returns a pointer to the queue specified by index. Queues are numbered when they are added to the processor.
index | Index of the queue. |
Referenced by ParExeProc(), and otawa::etime::StepGraphBuilder::reset().
|
inline |
|
inline |
Referenced by ParExeProc().
|
inline |
Declares a stage as the execution stage (it will undergo a special processing when building a ParExeGraph).
stage | Pointer to the stage. |
Referenced by ParExeProc().
|
inline |
Declares a stage as the fetch stage (it will undergo a special processing when building a ParExeGraph).
stage | Pointer to the stage. |
Referenced by ParExeProc().
|
inline |
Referenced by ParExeProc().
|
private |
|
private |
|
private |
|
private |
Referenced by ParExeProc().
|
private |
|
private |
Referenced by ParExeProc().
|
private |
|
private |