54class InstructionTemplate;
62class OperationTriggeredFormat;
64template <
typename ComponentType>
67template <
typename ComponentType>
142 void writeToADF(
const std::string& adfFileName)
const;
152 template <
typename ComponentType>
161 ComponentType*
item(
int index)
const;
162 ComponentType*
item(
const std::string& name)
const;
185 template <typename ComponentType>
195 ComponentType*
item(
int index)
const;
196 ComponentType*
item(
const std::string& name)
const;
266 template <
typename ContainerType,
typename ComponentType>
269 template <
typename ContainerType,
typename ComponentType>
272 template <
typename ContainerType,
typename ComponentType>
275 template <
typename ContainerType,
typename ComponentType>
278 template <
typename ContainerType>
280 ContainerType& container,
TTAMachine::Machine * machine
the architecture definition of the estimated processor
ComponentTable::const_iterator const_iterator
std::vector< ComponentType * > ComponentTable
Table of ComponentType pointers.
void addComponent(ComponentType *component)
const_iterator begin() const noexcept
ComponentType * item(const std::string &name) const
ComponentType * item(int index) const
void removeComponent(ComponentType *component)
const_iterator end() const noexcept
ComponentTable components_
Contains all the components of the container.
void moveToPosition(const ComponentType *component, int position)
Navigator(const Navigator &old)
Machine::ComponentContainer< ComponentType >::const_iterator const_iterator
const_iterator begin() const noexcept
Navigator(const Machine::ComponentContainer< ComponentType > &container)
ComponentType * item(const std::string &name) const
Navigator & operator=(const Navigator &old)
ComponentType * item(int index) const
bool hasItem(const std::string &name) const
bool triggerInvalidatesResults() const
ComponentContainer< RegisterFile > registerFiles_
Contains all the register files of the machine.
void setLittleEndian(bool flag)
virtual void deleteOperationTriggeredFormat(OperationTriggeredFormat &format)
virtual ImmediateSlotNavigator immediateSlotNavigator() const
virtual RegisterFileNavigator registerFileNavigator() const
virtual FunctionUnitNavigator functionUnitNavigator() const
Machine & operator=(const Machine &)
Assignment not allowed.
virtual BridgeNavigator bridgeNavigator() const
virtual InstructionTemplateNavigator instructionTemplateNavigator() const
virtual void deleteInstructionTemplate(InstructionTemplate &instrTempl)
bool isLittleEndian() const
virtual SocketNavigator socketNavigator() const
static void saveComponentStates(ContainerType &container, ObjectState *parent)
void setTriggerInvalidatesResults(bool)
const std::string EMPTY_ITEMP_NAME_
MachineTester & machineTester() const
virtual void copyFromMachine(Machine &machine)
DummyMachineTester * dummyMachineTester_
Dummy machine tester for the machine.
void deleteComponent(ContainerType &container, ComponentType &toDelete)
virtual void addInstructionTemplate(InstructionTemplate &instrTempl)
bool hasOperation(const TCEString &opName) const
MachineTester * machineTester_
Machine tester for the machine.
virtual void removeBus(Bus &bus)
bool alwaysWriteResults() const
virtual ImmediateUnitNavigator immediateUnitNavigator() const
ComponentContainer< Bridge > bridges_
Contains all the bridges of the machine.
static const std::string OSKEY_ALWAYS_WRITE_BACK_RESULTS
ObjectState attribute key for always-write-back-results.
void addComponent(ContainerType &container, ComponentType &toAdd)
virtual BusNavigator busNavigator() const
virtual void addFunctionUnit(FunctionUnit &unit)
virtual AddressSpaceNavigator addressSpaceNavigator() const
virtual void addBus(Bus &bus)
void set64bits(bool flag)
virtual void addBridge(Bridge &bridge)
virtual ControlUnit * controlUnit() const
ComponentContainer< ImmediateUnit > immediateUnits_
Contains all the immediate units of the machine.
ComponentContainer< ImmediateSlot > immediateSlots_
Contains all the immediate slots of the machine.
virtual bool isUniversalMachine() const
virtual void addImmediateUnit(ImmediateUnit &unit)
void writeToADF(const std::string &adfFileName) const
virtual void addRegisterFile(RegisterFile &unit)
static const std::string OSKEY_TRIGGER_INVALIDATES_OLD_RESULTS
ObjectState attribute key for trigger-invalidates-old-results.
ControlUnit * controlUnit_
Global control unit.
virtual void loadState(const ObjectState *state)
virtual void unsetGlobalControl()
virtual void deleteBridge(Bridge &bridge)
ComponentContainer< OperationTriggeredFormat > operationTriggeredFormats_
Contains all the OTA Formats of the machine.
ComponentContainer< FunctionUnit > functionUnits_
Contains all the function units of the machine.
ComponentContainer< AddressSpace > addressSpaces_
Contains all the address spaces of the machine.
void addRegisteredComponent(ContainerType &container, ComponentType &toAdd)
virtual ObjectState * saveState() const
virtual void deleteAddressSpace(AddressSpace &as)
void setBusPosition(const Bus &bus, int newPosition)
ComponentContainer< InstructionTemplate > instructionTemplates_
Contains all the instruction templates of the machine.
virtual void removeSocket(Socket &socket)
virtual void setGlobalControl(ControlUnit &unit)
void removeComponent(ContainerType &container, ComponentType &toRemove)
bool triggerInvalidatesResults_
static const std::string OSKEY_FUNCTION_UNITS_ORDERED
ObjectState attribute key for function units ordered in order of their sequential presence in ADF.
virtual void addImmediateSlot(ImmediateSlot &slot)
virtual void removeFunctionUnit(FunctionUnit &unit)
static const std::string OSNAME_MACHINE
ObjectState name for Machine.
virtual OperationTriggeredFormatNavigator operationTriggeredFormatNavigator() const
virtual void removeUnit(Unit &unit)
bool doValidityChecks_
Tells whether to do validity checks or not.
virtual void removeImmediateUnit(ImmediateUnit &unit)
void setAlwaysWriteResults(bool)
virtual void addOperationTriggeredFormat(OperationTriggeredFormat &format)
ComponentContainer< Socket > sockets_
Contains all the sockets attached to the machine.
ComponentContainer< Bus > busses_
Contains all the busses attached to the machine.
static Machine * loadFromADF(const std::string &adfFileName)
virtual void addAddressSpace(AddressSpace &as)
int maximumLatency() const
virtual void addSocket(Socket &socket)
bool isRISCVMachine() const
virtual void removeRegisterFile(RegisterFile &unit)
virtual void deleteImmediateSlot(ImmediateSlot &slot)