33#ifndef TTA_RESOURCE_MANAGER_HH
34#define TTA_RESOURCE_MANAGER_HH
63 int immWriteCycle = -1,
65 int immRegIndex = -1)
const = 0;
71 int immWriteCycle = -1,
73 int immRegIndex = -1) = 0;
80 int immWriteCycle = -1,
82 int immRegIndex = -1)
const = 0;
88 int immWriteCycle = -1,
90 int immRegIndex = -1)
const = 0;
96 int immWriteCycle = -1,
98 int immRegIndex = -1)
const = 0;
104 int immWriteCycle = -1,
106 int immRegIndex = -1)
const = 0;
121#define debugLogRM(__X) debugLog(__X)
123#define debugLogRM(__X)
const TTAMachine::Machine & machine() const
virtual ~ResourceManager()
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 int smallestCycle() const =0
virtual bool supportsExternalAssignments() const =0
const TTAMachine::Machine * machine_
Target machine.
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 TTAProgram::Instruction * instruction(int cycle) const =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 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 unassign(MoveNode &node)=0
virtual int largestCycle() 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 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