gem5
|
#include <decl.hh>
Public Types | |
typedef SpecialInstNoSrcNoDest | Base |
Public Member Functions | |
MemFence (const Brig::BrigInstBase *ib, const BrigObject *obj) | |
void | initiateAcc (GPUDynInstPtr gpuDynInst) |
void | execute (GPUDynInstPtr gpuDynInst) |
Public Member Functions inherited from HsailISA::SpecialInstNoSrcNoDest | |
SpecialInstNoSrcNoDest (const Brig::BrigInstBase *ib, const BrigObject *obj, const char *_opcode) | |
bool | isVectorRegister (int operandIndex) override |
bool | isCondRegister (int operandIndex) override |
bool | isScalarRegister (int operandIndex) override |
bool | isSrcOperand (int operandIndex) override |
bool | isDstOperand (int operandIndex) override |
int | getOperandSize (int operandIndex) override |
int | getRegisterIndex (int operandIndex, GPUDynInstPtr gpuDynInst) override |
int | numSrcRegOperands () override |
int | numDstRegOperands () override |
int | getNumOperands () override |
Public Member Functions inherited from HsailISA::HsailGPUStaticInst | |
HsailGPUStaticInst (const BrigObject *obj, const std::string &opcode) | |
void | generateDisassembly () override |
int | instSize () const override |
bool | isValid () const override |
Public Member Functions inherited from GPUStaticInst | |
GPUStaticInst (const std::string &opcode) | |
void | instAddr (int inst_addr) |
int | instAddr () const |
int | nextInstAddr () const |
void | instNum (int num) |
int | instNum () |
void | ipdInstNum (int num) |
int | ipdInstNum () const |
const std::string & | disassemble () |
bool | isALU () const |
bool | isBranch () const |
bool | isNop () const |
bool | isReturn () const |
bool | isUnconditionalJump () const |
bool | isSpecialOp () const |
bool | isWaitcnt () const |
bool | isBarrier () const |
bool | isMemFence () const |
bool | isMemRef () const |
bool | isFlat () const |
bool | isLoad () const |
bool | isStore () const |
bool | isAtomic () const |
bool | isAtomicNoRet () const |
bool | isAtomicRet () const |
bool | isScalar () const |
bool | readsSCC () const |
bool | writesSCC () const |
bool | readsVCC () const |
bool | writesVCC () const |
bool | isAtomicAnd () const |
bool | isAtomicOr () const |
bool | isAtomicXor () const |
bool | isAtomicCAS () const |
bool | isAtomicExch () const |
bool | isAtomicAdd () const |
bool | isAtomicSub () const |
bool | isAtomicInc () const |
bool | isAtomicDec () const |
bool | isAtomicMax () const |
bool | isAtomicMin () const |
bool | isArgLoad () const |
bool | isGlobalMem () const |
bool | isLocalMem () const |
bool | isArgSeg () const |
bool | isGlobalSeg () const |
bool | isGroupSeg () const |
bool | isKernArgSeg () const |
bool | isPrivateSeg () const |
bool | isReadOnlySeg () const |
bool | isSpillSeg () const |
bool | isWorkitemScope () const |
bool | isWavefrontScope () const |
bool | isWorkgroupScope () const |
bool | isDeviceScope () const |
bool | isSystemScope () const |
bool | isNoScope () const |
bool | isRelaxedOrder () const |
bool | isAcquire () const |
bool | isRelease () const |
bool | isAcquireRelease () const |
bool | isNoOrder () const |
bool | isGloballyCoherent () const |
Coherence domain of a memory instruction. More... | |
bool | isSystemCoherent () const |
virtual void | completeAcc (GPUDynInstPtr gpuDynInst) |
virtual uint32_t | getTargetPc () |
void | setFlag (Flags flag) |
virtual void | execLdAcq (GPUDynInstPtr gpuDynInst) |
virtual void | execSt (GPUDynInstPtr gpuDynInst) |
virtual void | execAtomic (GPUDynInstPtr gpuDynInst) |
virtual void | execAtomicAcq (GPUDynInstPtr gpuDynInst) |
Public Attributes | |
Brig::BrigMemoryOrder | memFenceMemOrder |
Brig::BrigMemoryScope | memFenceScopeSegGroup |
Brig::BrigMemoryScope | memFenceScopeSegGlobal |
Brig::BrigMemoryScope | memFenceScopeSegImage |
Public Attributes inherited from GPUStaticInst | |
Enums::StorageClassType | executed_as |
Additional Inherited Members | |
Static Public Attributes inherited from GPUStaticInst | |
static uint64_t | dynamic_id_count |
Protected Attributes inherited from HsailISA::HsailGPUStaticInst | |
HsailCode * | hsailCode |
Protected Attributes inherited from GPUStaticInst | |
const std::string | opcode |
std::string | disassembly |
int | _instNum |
int | _instAddr |
int | _ipdInstNum |
Identifier of the immediate post-dominator instruction. More... | |
std::bitset< Num_Flags > | _flags |
|
inline |
A memory fence that has scope for both segments will use the global segment, and be executed in the global memory pipeline, therefore, we set the segment to match the global scope only
Definition at line 989 of file decl.hh.
References Brig::BrigInstBase::base, Brig::BRIG_KIND_INST_MEM_FENCE, Brig::BRIG_MEMORY_ORDER_NONE, Brig::BRIG_MEMORY_ORDER_RELAXED, Brig::BRIG_MEMORY_ORDER_SC_ACQUIRE, Brig::BRIG_MEMORY_ORDER_SC_ACQUIRE_RELEASE, Brig::BRIG_MEMORY_ORDER_SC_RELEASE, Brig::BRIG_MEMORY_SCOPE_AGENT, Brig::BRIG_MEMORY_SCOPE_NONE, Brig::BRIG_MEMORY_SCOPE_SYSTEM, Brig::BRIG_MEMORY_SCOPE_WORKGROUP, Brig::BRIG_MEMORY_SCOPE_WORKITEM, fatal, Brig::BrigBase::kind, memFenceMemOrder, memFenceScopeSegGlobal, memFenceScopeSegGroup, memFenceScopeSegImage, and GPUStaticInst::setFlag().
|
inlinevirtual |
Implements GPUStaticInst.
Definition at line 1118 of file decl.hh.
References Wavefront::computeUnit, ComputeUnit::cu_id, fatal, ComputeUnit::globalMemoryPipe, GPUStaticInst::isGlobalSeg(), GPUStaticInst::isGroupSeg(), GlobalMemPipeline::issueRequest(), Wavefront::kernId, Wavefront::memReqsInPipe, Wavefront::outstandingReqs, Wavefront::rdGmReqsInPipe, Wavefront::simdId, MipsISA::w, Wavefront::wfDynId, Wavefront::wfSlotId, and Wavefront::wrGmReqsInPipe.
|
inlinevirtual |
Reimplemented from GPUStaticInst.
Definition at line 1111 of file decl.hh.
References Wavefront::computeUnit, and ComputeUnit::injectGlobalMemFence().
Brig::BrigMemoryOrder HsailISA::MemFence::memFenceMemOrder |
Definition at line 984 of file decl.hh.
Referenced by MemFence().
Brig::BrigMemoryScope HsailISA::MemFence::memFenceScopeSegGlobal |
Definition at line 986 of file decl.hh.
Referenced by MemFence().
Brig::BrigMemoryScope HsailISA::MemFence::memFenceScopeSegGroup |
Definition at line 985 of file decl.hh.
Referenced by MemFence().
Brig::BrigMemoryScope HsailISA::MemFence::memFenceScopeSegImage |
Definition at line 987 of file decl.hh.
Referenced by MemFence().