OpenASIP
2.0
|
#include <ResourceManager.hh>
Public Member Functions | |
ResourceManager (const TTAMachine::Machine &machine) | |
virtual | ~ResourceManager () |
virtual bool | canAssign (int cycle, MoveNode &node, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) const =0 |
virtual void | assign (int cycle, MoveNode &node, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1)=0 |
virtual void | unassign (MoveNode &node)=0 |
virtual int | earliestCycle (MoveNode &node, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) const =0 |
virtual int | earliestCycle (int cycle, MoveNode &node, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) const =0 |
virtual int | latestCycle (MoveNode &node, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) const =0 |
virtual int | latestCycle (int cycle, MoveNode &node, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) const =0 |
virtual bool | supportsExternalAssignments () const =0 |
virtual int | largestCycle () const =0 |
virtual int | smallestCycle () const =0 |
const TTAMachine::Machine & | machine () const |
virtual TTAProgram::Instruction * | instruction (int cycle) const =0 |
Private Attributes | |
const TTAMachine::Machine * | machine_ |
Target machine. More... | |
Base interface for resource managers.
Definition at line 53 of file ResourceManager.hh.
ResourceManager::ResourceManager | ( | const TTAMachine::Machine & | machine | ) |
Constructor.
machine | Target machine to be managed by the resource manager. |
Definition at line 40 of file ResourceManager.cc.
|
virtual |
|
pure virtual |
Implemented in SimpleBrokerDirector, and SimpleResourceManager.
Referenced by CycleLookBackSoftwareBypasser::bypass(), CycleLookBackSoftwareBypasser::bypassNode(), CycleLookBackSoftwareBypasser::removeBypass(), CopyingDelaySlotFiller::tryToAssignNodes(), and CopyingDelaySlotFiller::tryToAssignOtherMovesOfOp().
|
pure virtual |
Implemented in SimpleBrokerDirector, and SimpleResourceManager.
Referenced by CycleLookBackSoftwareBypasser::bypass(), CycleLookBackSoftwareBypasser::bypassNode(), CycleLookBackSoftwareBypasser::removeBypass(), CopyingDelaySlotFiller::tryToAssignNodes(), and CopyingDelaySlotFiller::tryToAssignOtherMovesOfOp().
|
pure virtual |
Implemented in SimpleBrokerDirector, and SimpleResourceManager.
|
pure virtual |
Implemented in SimpleBrokerDirector, and SimpleResourceManager.
Referenced by CycleLookBackSoftwareBypasser::bypass(), and CycleLookBackSoftwareBypasser::bypassNode().
|
pure virtual |
Implemented in SimpleBrokerDirector, and SimpleResourceManager.
Referenced by CopyingDelaySlotFiller::tryToAssignNodes().
|
pure virtual |
Implemented in SimpleBrokerDirector, and SimpleResourceManager.
|
pure virtual |
Implemented in SimpleBrokerDirector, and SimpleResourceManager.
|
pure virtual |
Implemented in SimpleBrokerDirector, and SimpleResourceManager.
const TTAMachine::Machine & ResourceManager::machine | ( | ) | const |
Return the target machine managed by the resource manager.
Definition at line 56 of file ResourceManager.cc.
References machine_.
Referenced by LoopPrologAndEpilogBuilder::addPrologFromRM(), SimpleResourceManager::buildResourceModel(), SoftwareBypasser::bypass(), SimpleResourceManager::createRM(), SimpleResourceManager::disposeRM(), ITemplateBroker::findITemplates(), SoftwareBypasser::removeBypass(), SoftwareBypasser::removeDeadResults(), and SimpleResourceManager::SimpleResourceManager().
|
pure virtual |
Implemented in SimpleBrokerDirector, and SimpleResourceManager.
|
pure virtual |
Implemented in SimpleBrokerDirector, and SimpleResourceManager.
|
pure virtual |
Implemented in SimpleBrokerDirector, and SimpleResourceManager.
Referenced by CycleLookBackSoftwareBypasser::bypass(), CycleLookBackSoftwareBypasser::bypassNode(), CycleLookBackSoftwareBypasser::removeBypass(), CycleLookBackSoftwareBypasser::removeDeadResults(), and CopyingDelaySlotFiller::tryToAssignNodes().
|
private |