Go to the documentation of this file.
33 #ifndef TTA_BUS_BROKER_HH
34 #define TTA_BUS_BROKER_HH
46 class TerminalImmediate;
67 unsigned int initiationInterval = 0);
85 int immRegIndex)
const override;
92 int immRegIndex)
const override;
100 int immRegIndex)
const override;
103 int immRegIndex)
override;
112 int immRegIndex)
const override;
119 int immRegIndex)
const override;
134 void clear()
override;
virtual void setupResourceLinks(const ResourceMapper &mapper)
virtual bool isBusBroker() const
BusBroker(std::string name, ResourceBroker &ipBroker, ResourceBroker &opBroker, const TTAMachine::Machine &mach, unsigned int initiationInterval=0)
std::list< SchedulingResource * > shortImmPSocketResources_
virtual int earliestCycle(int cycle, const MoveNode &node, const TTAMachine::Bus *bus, const TTAMachine::FunctionUnit *srcFU, const TTAMachine::FunctionUnit *dstFU, int immWriteCycle, const TTAMachine::ImmediateUnit *immu, int immRegIndex) const override
virtual ShortImmPSocketResource & findImmResource(BusResource &busRes) const
virtual bool hasGuard(const MoveNode &node) const
std::map< const MoveNode *, bool > busPreassigned_
virtual bool isAnyResourceAvailable(int cycle, const MoveNode &node, const TTAMachine::Bus *bus, const TTAMachine::FunctionUnit *srcFU, const TTAMachine::FunctionUnit *dstFU, int immWriteCycle, const TTAMachine::ImmediateUnit *immu, int immRegIndex) const override
virtual bool isAvailable(SchedulingResource &des, const MoveNode &node, int cycle, const TTAMachine::Bus *bus, const TTAMachine::FunctionUnit *srcFU, const TTAMachine::FunctionUnit *dstFU, int immWriteCycle, const TTAMachine::ImmediateUnit *immu, int immRegIndex) const override
virtual SchedulingResourceSet allAvailableResources(int cycle, const MoveNode &node, const TTAMachine::Bus *bus, const TTAMachine::FunctionUnit *srcFU, const TTAMachine::FunctionUnit *dstFU, int immWriteCycle, const TTAMachine::ImmediateUnit *immu, int immRegIndex) const override
const BasicBlockNode * bbn_
void setBBN(const BasicBlockNode *bbn)
ResourceBroker & outputPSocketBroker_
virtual bool isApplicable(const MoveNode &node, const TTAMachine::Bus *) const override
const TTAMachine::Machine * mach_
virtual void unassign(MoveNode &node)
bool jumpToBBN(const MoveNode &mn, BasicBlockNode &bbn) const
virtual SchedulingResource & availableResource(int cycle, const MoveNode &node, const TTAMachine::Bus *bus, const TTAMachine::FunctionUnit *srcFU, const TTAMachine::FunctionUnit *dstFU, int immWriteCycle, const TTAMachine::ImmediateUnit *immu, int immRegIndex) const override
virtual bool canTransportImmediate(const MoveNode &node, const TTAMachine::Bus *preAssigndBus) const
bool canPerformSIMMJump(const MoveNode &mn, ShortImmPSocketResource &immRes) const
virtual int latestCycle(int cycle, const MoveNode &node, const TTAMachine::Bus *bus, const TTAMachine::FunctionUnit *srcFU, const TTAMachine::FunctionUnit *dstFU, int immWriteCycle, const TTAMachine::ImmediateUnit *immu, int immRegIndex) const override
void setCFG(const ControlFlowGraph *cfg)
virtual void assign(int cycle, MoveNode &node, SchedulingResource &res, int immWriteCycle, int immRegIndex) override
const ControlFlowGraph * cfg_
virtual bool isInUse(int cycle, const MoveNode &node) const
virtual bool isAlreadyAssigned(int cycle, const MoveNode &node, const TTAMachine::Bus *preassignedBus) const override
virtual void buildResources(const TTAMachine::Machine &target)
ResourceBroker & inputPSocketBroker_