9 #ifndef TALVOS_PLUGIN_H
10 #define TALVOS_PLUGIN_H
36 uint64_t NumBytes, uint32_t Opcode, uint32_t Scope,
53 uint64_t NumBytes,
const uint8_t *Data)
79 uint64_t NumBytes,
const uint8_t *Data,
virtual void instructionExecuted(const Invocation *Invoc, const Instruction *Inst)
Called when an instruction has been executed by an invocation.
Base class for Talvos plugins.
virtual void memoryUnmap(const Memory *Mem, uint64_t Base)
Called when a memory region is unmapped by the host.
virtual void workgroupBarrier(const Workgroup *Group)
Called when a workgroup barrier is cleared.
This class is a base class for all commands.
virtual void commandComplete(const Command *Cmd)
Called when a command has completed.
This class represents a single execution of a SPIR-V entry point.
virtual void hostMemoryLoad(const Memory *Mem, uint64_t Address, uint64_t NumBytes)
Called when the host loads data from memory.
virtual bool isThreadSafe() const
Returns true if the plugin is thread-safe.
This class represents an address space in the virtual device.
virtual void memoryMap(const Memory *Mem, uint64_t Base, uint64_t Offset, uint64_t NumBytes)
Called when a memory region is mapped by the host.
virtual void workgroupComplete(const Workgroup *Group)
Called when a workgroup has completed.
virtual void memoryLoad(const Memory *Mem, uint64_t Address, uint64_t NumBytes, const Invocation *Invoc)
Called when an invocation loads data from memory.
virtual void commandBegin(const Command *Cmd)
Called when a command has begun executing.
This class represents a workgroup executing a compute command.
virtual void atomicAccess(const Memory *Mem, uint64_t Address, uint64_t NumBytes, uint32_t Opcode, uint32_t Scope, uint32_t Semantics, const Invocation *Invoc)
Called when memory is atomically accessed by an instruction.
virtual void invocationComplete(const Invocation *Invoc)
Called when an invocation has completed.
virtual void hostMemoryStore(const Memory *Mem, uint64_t Address, uint64_t NumBytes, const uint8_t *Data)
Called when the host stores data to memory.
virtual void memoryStore(const Memory *Mem, uint64_t Address, uint64_t NumBytes, const uint8_t *Data, const Invocation *Invoc)
Called when an invocation stores data to memory.
virtual ~Plugin()=default
virtual void workgroupBegin(const Workgroup *Group)
Called when a workgroup has begun executing.
virtual void invocationBegin(const Invocation *Invoc)
Called when an invocation has begun executing.
This class represents a SPIR-V instruction.