Go to the documentation of this file.
34 #ifndef TTA_MACHINE_INFO_HH
35 #define TTA_MACHINE_INFO_HH
50 class InstructionTemplate;
70 const std::string& operation);
73 const std::string& opName,
int operandIndex);
87 const std::string& slotName);
90 const std::string& slotName);
93 unsigned destWidth=UINT_MAX);
96 int64_t imm,
unsigned destWidth=UINT_MAX);
112 static std::vector<const TTAMachine::FunctionUnit*>
findLockUnits(
118 template<
typename PortType>
static std::set< TTAMachine::InstructionTemplate * > templatesUsingSlot(const TTAMachine::Machine &mach, const std::string &slotName)
static int maxMemoryAlignment(const TTAMachine::Machine &mach)
TTAMachine::Machine * machine
the architecture definition of the estimated processor
static bool supportsOperation(const TTAMachine::Machine &mach, TCEString operation)
static const TCEString TRY_LOCK_ADDR_
static Operation & osalOperation(const TTAMachine::HWOperation &hwOp)
static std::vector< const TTAMachine::FunctionUnit * > findLockUnits(const TTAMachine::Machine &machine)
static int maxLatency(const TTAMachine::Machine &mach, TCEString &opName)
static TTAMachine::AddressSpace * defaultDataAddressSpace(const TTAMachine::Machine &mach)
static bool supportsPortGuardedJump(const TTAMachine::Machine &machine, bool inverted, const TCEString &opName)
static const TCEString LOCK_READ_
static const TTAMachine::FUPort * getBoundPort(const TTAMachine::FunctionUnit &fu, const std::string &opName, int operandIndex)
static OperationSet getOpset(const TTAMachine::Machine &mach)
static unsigned findWidestOperand(const TTAMachine::Machine &machine, bool vector)
static int longestGuardLatency(const TTAMachine::Machine &mach)
static unsigned numberOfRegisters(const TTAMachine::Machine &machine, unsigned width)
static const TCEString UNLOCK_ADDR_
static Operand & operandFromPort(const TTAMachine::HWOperation &hwOp, const TTAMachine::FUPort &port)
TCETools::CIStringSet OperationSet
static PortType & portFromOperand(const TTAMachine::HWOperation &hwOp, const TTAMachine::FUPort &port)
static bool supportsPortGuardedJumps(const TTAMachine::Machine &machine)
static ConstPortList getPortBindingsOfOperation(const TTAMachine::Machine &mach, const std::string &operation)
std::vector< const TTAMachine::FUPort * > ConstPortList
static int triggerIndex(const TTAMachine::Machine &machine, const Operation &op)
static bool supportsBoolRegisterGuardedJumps(const TTAMachine::Machine &machine)
static bool canEncodeImmediateInteger(const TTAMachine::Machine &mach, int64_t imm, unsigned destWidth=UINT_MAX)
static bool templatesUsesSlot(const TTAMachine::Machine &mach, const std::string &slotName)