gem5  v20.0.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Types | Public Member Functions | Public Attributes | Private Attributes | List of all members
Wavefront Class Reference

#include <wavefront.hh>

Inheritance diagram for Wavefront:
SimObject EventManager Serializable Drainable Stats::Group

Public Types

enum  itype_e {
  I_ALU, I_GLOBAL, I_SHARED, I_FLAT,
  I_PRIVATE
}
 
enum  status_e { S_STOPPED, S_RETURNING, S_RUNNING }
 
typedef WavefrontParams Params
 
- Public Types inherited from SimObject
typedef SimObjectParams Params
 

Public Member Functions

uint32_t remap (uint32_t vgprIndex, uint32_t size, uint8_t mode=0)
 
void resizeRegFiles (int num_cregs, int num_sregs, int num_dregs)
 
bool isGmInstruction (GPUDynInstPtr ii)
 
bool isLmInstruction (GPUDynInstPtr ii)
 
bool isOldestInstGMem ()
 
bool isOldestInstLMem ()
 
bool isOldestInstPrivMem ()
 
bool isOldestInstFlatMem ()
 
bool isOldestInstALU ()
 
bool isOldestInstBarrier ()
 
void computeActualWgSz (NDRange *ndr)
 
void initCallArgMem (int func_args_size_per_item, int wf_size)
 
template<typename CType >
CType readCallArgMem (int lane, int addr)
 
template<typename CType >
void writeCallArgMem (int lane, int addr, CType val)
 
 Wavefront (const Params *p)
 
 ~Wavefront ()
 
virtual void init ()
 init() is called after all C++ SimObjects have been created and all ports are connected. More...
 
void setParent (ComputeUnit *cu)
 
void start (uint64_t _wfDynId, uint64_t _base_ptr)
 
void exec ()
 
void updateResources ()
 
int ready (itype_e type)
 
bool instructionBufferHasBranch ()
 
void regStats ()
 Callback to set stat parameters. More...
 
VectorMask getPred ()
 
bool waitingAtBarrier (int lane)
 
void pushToReconvergenceStack (uint32_t pc, uint32_t rpc, const VectorMask &exec_mask)
 
void popFromReconvergenceStack ()
 
uint32_t pc () const
 
uint32_t rpc () const
 
VectorMask execMask () const
 
bool execMask (int lane) const
 
void pc (uint32_t new_pc)
 
void discardFetch ()
 
uint32_t getStaticContextSize () const
 Returns the size of the static hardware context of a particular wavefront This should be updated everytime the context is changed. More...
 
void getContext (const void *out)
 Returns the hardware context as a stream of bytes This method is designed for HSAIL execution. More...
 
void setContext (const void *in)
 Sets the hardware context fromt a stream of bytes This method is designed for HSAIL execution. More...
 
TheGpuISA::GPUISA & gpuISA ()
 
- Public Member Functions inherited from SimObject
virtual ~SimObject ()
 
virtual const std::string name () const
 
virtual void loadState (CheckpointIn &cp)
 loadState() is called on each SimObject when restoring from a checkpoint. More...
 
virtual void initState ()
 initState() is called on each SimObject when not restoring from a checkpoint. More...
 
virtual void regProbePoints ()
 Register probe points for this object. More...
 
virtual void regProbeListeners ()
 Register probe listeners for this object. More...
 
ProbeManagergetProbeManager ()
 Get the probe manager for this object. More...
 
virtual PortgetPort (const std::string &if_name, PortID idx=InvalidPortID)
 Get a port with a given name and index. More...
 
virtual void startup ()
 startup() is the final initialization call before simulation. More...
 
DrainState drain () override
 Provide a default implementation of the drain interface for objects that don't need draining. More...
 
virtual void memWriteback ()
 Write back dirty buffers to memory using functional writes. More...
 
virtual void memInvalidate ()
 Invalidate the contents of memory buffers. More...
 
void serialize (CheckpointOut &cp) const override
 Serialize an object. More...
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object. More...
 
const Paramsparams () const
 
 SimObject (const Params *_params)
 
- Public Member Functions inherited from EventManager
EventQueueeventQueue () const
 
void schedule (Event &event, Tick when)
 
void deschedule (Event &event)
 
void reschedule (Event &event, Tick when, bool always=false)
 
void schedule (Event *event, Tick when)
 
void deschedule (Event *event)
 
void reschedule (Event *event, Tick when, bool always=false)
 
void wakeupEventQueue (Tick when=(Tick) -1)
 
void setCurTick (Tick newVal)
 
 EventManager (EventManager &em)
 
 EventManager (EventManager *em)
 
 EventManager (EventQueue *eq)
 
- Public Member Functions inherited from Serializable
 Serializable ()
 
virtual ~Serializable ()
 
void serializeSection (CheckpointOut &cp, const char *name) const
 Serialize an object into a new section. More...
 
void serializeSection (CheckpointOut &cp, const std::string &name) const
 
void unserializeSection (CheckpointIn &cp, const char *name)
 Unserialize an a child object. More...
 
void unserializeSection (CheckpointIn &cp, const std::string &name)
 
- Public Member Functions inherited from Drainable
DrainState drainState () const
 Return the current drain state of an object. More...
 
virtual void notifyFork ()
 Notify a child process of a fork. More...
 
- Public Member Functions inherited from Stats::Group
 Group (Group *parent, const char *name=nullptr)
 Construct a new statistics group. More...
 
virtual ~Group ()
 
virtual void resetStats ()
 Callback to reset stats. More...
 
virtual void preDumpStats ()
 Callback before stats are dumped. More...
 
void addStat (Stats::Info *info)
 Register a stat with this group. More...
 
const std::map< std::string, Group * > & getStatGroups () const
 Get all child groups associated with this object. More...
 
const std::vector< Info * > & getStats () const
 Get all stats associated with this object. More...
 
void addStatGroup (const char *name, Group *block)
 Add a stat block as a child of this block. More...
 
const InforesolveStat (std::string name) const
 Resolve a stat by its name within this group. More...
 
 Group ()=delete
 
 Group (const Group &)=delete
 
Groupoperator= (const Group &)=delete
 

Public Attributes

uint64_t basePtr
 
uint32_t oldBarrierCnt
 
uint32_t barrierCnt
 
uint32_t barrierId
 
uint32_t barrierSlots
 
status_e status
 
int wfSlotId
 
int kernId
 
int simdId
 
ComputeUnitcomputeUnit
 
std::deque< GPUDynInstPtrinstructionBuffer
 
bool pendingFetch
 
bool dropFetch
 
class ConditionRegisterStatecondRegState
 
uint32_t maxSpVgprs
 
uint32_t maxDpVgprs
 
std::vector< AddrlastAddr
 
std::vector< uint32_t > workItemId [3]
 
std::vector< uint32_t > workItemFlatId
 
uint32_t workGroupId [3]
 
uint32_t workGroupSz [3]
 
uint32_t gridSz [3]
 
uint32_t wgId
 
uint32_t wgSz
 
uint32_t actualWgSz [3]
 
uint32_t actualWgSzTotal
 
uint32_t wfId
 
uint32_t maxDynWaveId
 
uint32_t dispatchId
 
uint32_t outstandingReqs
 
uint32_t memReqsInPipe
 
uint32_t outstandingReqsWrGm
 
uint32_t outstandingReqsWrLm
 
uint32_t outstandingReqsRdGm
 
uint32_t outstandingReqsRdLm
 
uint32_t rdLmReqsInPipe
 
uint32_t rdGmReqsInPipe
 
uint32_t wrLmReqsInPipe
 
uint32_t wrGmReqsInPipe
 
int memTraceBusy
 
uint64_t lastTrace
 
int reservedVectorRegs
 
uint32_t startVgprIndex
 
std::vector< uint32_t > oldVgpr
 
uint32_t oldVgprId
 
uint64_t oldVgprTcnt
 
std::vector< uint64_t > oldDgpr
 
uint32_t oldDgprId
 
uint64_t oldDgprTcnt
 
VectorMask initMask
 
std::vector< int > barCnt
 
int maxBarCnt
 
bool stalledAtBarrier
 
LdsChunkldsChunk
 
Addr spillBase
 
uint32_t spillSizePerItem
 
uint32_t spillWidth
 
Addr privBase
 
uint32_t privSizePerItem
 
Addr roBase
 
uint32_t roSize
 
uint8_t * kernelArgs
 
uint64_t wfDynId
 
Stats::Scalar numTimesBlockedDueVrfPortAvail
 
Stats::Scalar numTimesBlockedDueWAXDependencies
 
Stats::Scalar numTimesBlockedDueRAWDependencies
 
Stats::Distribution srcRegOpDist
 
Stats::Distribution dstRegOpDist
 
CallArgMemcallArgMem
 

Private Attributes

TheGpuISA::GPUISA _gpuISA
 
std::deque< std::unique_ptr< ReconvergenceStackEntry > > reconvergenceStack
 Stack containing Control Flow Graph nodes (i.e., kernel instructions) to be visited by the wavefront, and the associated execution masks. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from SimObject
static void serializeAll (CheckpointOut &cp)
 Serialize all SimObjects in the system. More...
 
static SimObjectfind (const char *name)
 Find the SimObject with the given name and return a pointer to it. More...
 
- Static Public Member Functions inherited from Serializable
static const std::string & currentSection ()
 Gets the fully-qualified name of the active section. More...
 
static void serializeAll (const std::string &cpt_dir)
 
static void unserializeGlobals (CheckpointIn &cp)
 
- Protected Member Functions inherited from Drainable
 Drainable ()
 
virtual ~Drainable ()
 
virtual void drainResume ()
 Resume execution after a successful drain. More...
 
void signalDrainDone () const
 Signal that an object is drained. More...
 
- Protected Attributes inherited from SimObject
const SimObjectParams * _params
 Cached copy of the object parameters. More...
 
- Protected Attributes inherited from EventManager
EventQueueeventq
 A pointer to this object's event queue. More...
 

Detailed Description

Definition at line 145 of file wavefront.hh.

Member Typedef Documentation

◆ Params

typedef WavefrontParams Wavefront::Params

Definition at line 319 of file wavefront.hh.

Member Enumeration Documentation

◆ itype_e

Enumerator
I_ALU 
I_GLOBAL 
I_SHARED 
I_FLAT 
I_PRIVATE 

Definition at line 148 of file wavefront.hh.

◆ status_e

Enumerator
S_STOPPED 
S_RETURNING 
S_RUNNING 

Definition at line 149 of file wavefront.hh.

Constructor & Destructor Documentation

◆ Wavefront()

Wavefront::Wavefront ( const Params p)

◆ ~Wavefront()

Wavefront::~Wavefront ( )

Definition at line 147 of file wavefront.cc.

References callArgMem, and condRegState.

Member Function Documentation

◆ computeActualWgSz()

void Wavefront::computeActualWgSz ( NDRange ndr)

Definition at line 980 of file wavefront.cc.

References actualWgSz, actualWgSzTotal, ArmISA::d, gridSz, NDRange::wgId, and workGroupSz.

Referenced by ComputeUnit::fillKernelState().

◆ discardFetch()

void Wavefront::discardFetch ( )

Definition at line 807 of file wavefront.cc.

References dropFetch, instructionBuffer, and pendingFetch.

Referenced by exec().

◆ exec()

void Wavefront::exec ( )

◆ execMask() [1/2]

VectorMask Wavefront::execMask ( ) const

Definition at line 826 of file wavefront.cc.

References reconvergenceStack.

Referenced by Gcn3ISA::Inst_DS::calcAddr(), RegAddrOperand< RegOperandType >::calcVector(), exec(), HsailISA::CbrInstBase< SRegOperand >::execute(), HsailISA::LdInst< MemDataType, DestDataType, AddrOperandType >::execute(), HsailISA::StInst< MemDataType, SrcDataType, AddrOperandType >::execute(), HsailISA::AtomicInst< MemDataType, AddrOperandType, NumSrcOperands, HasDst >::execute(), Gcn3ISA::Inst_SOP1__S_AND_SAVEEXEC_B64::execute(), Gcn3ISA::Inst_SOP1__S_OR_SAVEEXEC_B64::execute(), Gcn3ISA::Inst_SOP1__S_XOR_SAVEEXEC_B64::execute(), Gcn3ISA::Inst_SOP1__S_ANDN2_SAVEEXEC_B64::execute(), Gcn3ISA::Inst_SOP1__S_ORN2_SAVEEXEC_B64::execute(), Gcn3ISA::Inst_SOP1__S_NAND_SAVEEXEC_B64::execute(), Gcn3ISA::Inst_SOP1__S_NOR_SAVEEXEC_B64::execute(), Gcn3ISA::Inst_SOP1__S_XNOR_SAVEEXEC_B64::execute(), Gcn3ISA::Inst_SOPP__S_CBRANCH_EXECZ::execute(), Gcn3ISA::Inst_SOPP__S_CBRANCH_EXECNZ::execute(), Gcn3ISA::Inst_VOP2__V_CNDMASK_B32::execute(), Gcn3ISA::Inst_VOP2__V_ADD_F32::execute(), Gcn3ISA::Inst_VOP2__V_SUB_F32::execute(), Gcn3ISA::Inst_VOP2__V_SUBREV_F32::execute(), Gcn3ISA::Inst_VOP2__V_MUL_LEGACY_F32::execute(), Gcn3ISA::Inst_VOP2__V_MUL_F32::execute(), Gcn3ISA::Inst_VOP2__V_MUL_I32_I24::execute(), Gcn3ISA::Inst_VOP2__V_MUL_HI_I32_I24::execute(), Gcn3ISA::Inst_VOP2__V_MUL_U32_U24::execute(), Gcn3ISA::Inst_VOP2__V_MUL_HI_U32_U24::execute(), Gcn3ISA::Inst_VOP2__V_MIN_F32::execute(), Gcn3ISA::Inst_VOP2__V_MAX_F32::execute(), Gcn3ISA::Inst_VOP2__V_MIN_I32::execute(), Gcn3ISA::Inst_VOP2__V_MAX_I32::execute(), Gcn3ISA::Inst_VOP2__V_MIN_U32::execute(), Gcn3ISA::Inst_VOP2__V_MAX_U32::execute(), Gcn3ISA::Inst_VOP2__V_LSHRREV_B32::execute(), Gcn3ISA::Inst_VOP2__V_ASHRREV_I32::execute(), Gcn3ISA::Inst_VOP2__V_LSHLREV_B32::execute(), Gcn3ISA::Inst_VOP2__V_AND_B32::execute(), Gcn3ISA::Inst_VOP2__V_OR_B32::execute(), Gcn3ISA::Inst_VOP2__V_XOR_B32::execute(), Gcn3ISA::Inst_VOP2__V_MAC_F32::execute(), Gcn3ISA::Inst_VOP2__V_MADMK_F32::execute(), Gcn3ISA::Inst_VOP2__V_MADAK_F32::execute(), Gcn3ISA::Inst_VOP2__V_ADD_U32::execute(), Gcn3ISA::Inst_VOP2__V_SUB_U32::execute(), Gcn3ISA::Inst_VOP2__V_SUBREV_U32::execute(), Gcn3ISA::Inst_VOP2__V_ADDC_U32::execute(), Gcn3ISA::Inst_VOP2__V_SUBB_U32::execute(), Gcn3ISA::Inst_VOP2__V_SUBBREV_U32::execute(), Gcn3ISA::Inst_VOP2__V_ADD_U16::execute(), Gcn3ISA::Inst_VOP2__V_SUB_U16::execute(), Gcn3ISA::Inst_VOP2__V_SUBREV_U16::execute(), Gcn3ISA::Inst_VOP2__V_MUL_LO_U16::execute(), Gcn3ISA::Inst_VOP2__V_LSHLREV_B16::execute(), Gcn3ISA::Inst_VOP2__V_LSHRREV_B16::execute(), Gcn3ISA::Inst_VOP2__V_ASHRREV_I16::execute(), Gcn3ISA::Inst_VOP2__V_MAX_U16::execute(), Gcn3ISA::Inst_VOP2__V_MAX_I16::execute(), Gcn3ISA::Inst_VOP2__V_MIN_U16::execute(), Gcn3ISA::Inst_VOP2__V_MIN_I16::execute(), Gcn3ISA::Inst_VOP1__V_MOV_B32::execute(), Gcn3ISA::Inst_VOP1__V_READFIRSTLANE_B32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_I32_F64::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F64_I32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_I32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_U32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_U32_F32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_I32_F32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_RPI_I32_F32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_FLR_I32_F32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_F64::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F64_F32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_UBYTE0::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_UBYTE1::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_UBYTE2::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_UBYTE3::execute(), Gcn3ISA::Inst_VOP1__V_CVT_U32_F64::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F64_U32::execute(), Gcn3ISA::Inst_VOP1__V_TRUNC_F64::execute(), Gcn3ISA::Inst_VOP1__V_CEIL_F64::execute(), Gcn3ISA::Inst_VOP1__V_RNDNE_F64::execute(), Gcn3ISA::Inst_VOP1__V_FLOOR_F64::execute(), Gcn3ISA::Inst_VOP1__V_FRACT_F32::execute(), Gcn3ISA::Inst_VOP1__V_TRUNC_F32::execute(), Gcn3ISA::Inst_VOP1__V_CEIL_F32::execute(), Gcn3ISA::Inst_VOP1__V_RNDNE_F32::execute(), Gcn3ISA::Inst_VOP1__V_FLOOR_F32::execute(), Gcn3ISA::Inst_VOP1__V_EXP_F32::execute(), Gcn3ISA::Inst_VOP1__V_LOG_F32::execute(), Gcn3ISA::Inst_VOP1__V_RCP_F32::execute(), Gcn3ISA::Inst_VOP1__V_RCP_IFLAG_F32::execute(), Gcn3ISA::Inst_VOP1__V_RSQ_F32::execute(), Gcn3ISA::Inst_VOP1__V_RCP_F64::execute(), Gcn3ISA::Inst_VOP1__V_RSQ_F64::execute(), Gcn3ISA::Inst_VOP1__V_SQRT_F32::execute(), Gcn3ISA::Inst_VOP1__V_SQRT_F64::execute(), Gcn3ISA::Inst_VOP1__V_SIN_F32::execute(), Gcn3ISA::Inst_VOP1__V_COS_F32::execute(), Gcn3ISA::Inst_VOP1__V_NOT_B32::execute(), Gcn3ISA::Inst_VOP1__V_BFREV_B32::execute(), Gcn3ISA::Inst_VOP1__V_FFBH_U32::execute(), Gcn3ISA::Inst_VOP1__V_FFBL_B32::execute(), Gcn3ISA::Inst_VOP1__V_FFBH_I32::execute(), Gcn3ISA::Inst_VOP1__V_FREXP_EXP_I32_F64::execute(), Gcn3ISA::Inst_VOP1__V_FREXP_MANT_F64::execute(), Gcn3ISA::Inst_VOP1__V_FRACT_F64::execute(), Gcn3ISA::Inst_VOP1__V_FREXP_EXP_I32_F32::execute(), Gcn3ISA::Inst_VOP1__V_FREXP_MANT_F32::execute(), Gcn3ISA::Inst_VOP1__V_EXP_LEGACY_F32::execute(), Gcn3ISA::Inst_VOP1__V_LOG_LEGACY_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_CLASS_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_CLASS_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_CLASS_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_CLASS_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LG_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_O_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_U_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NGE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NLG_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NGT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NLE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NEQ_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NLT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_TRU_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LG_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_O_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_U_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NGE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NLG_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NGT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NLE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NEQ_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NLT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_TRU_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LG_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_O_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_U_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NGE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NLG_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NGT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NLE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NEQ_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NLT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_TRU_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LG_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_O_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_U_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NGE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NLG_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NGT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NLE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NEQ_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NLT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_TRU_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NE_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_T_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NE_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_T_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NE_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_T_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NE_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_T_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NE_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_T_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NE_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_T_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NE_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_T_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NE_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_T_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NE_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_T_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NE_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_T_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NE_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_T_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NE_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_T_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_CLASS_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_CLASS_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_CLASS_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_CLASS_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_TRU_F16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_F16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_TRU_F16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LG_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_O_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_U_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NGE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NLG_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NGT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NLE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NEQ_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NLT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_TRU_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LG_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_O_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_U_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NGE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NLG_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NGT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NLE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NEQ_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NLT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_TRU_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LG_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_O_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_U_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NGE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NLG_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NGT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NLE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NEQ_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NLT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_TRU_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LG_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_O_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_U_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NGE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NLG_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NGT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NLE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NEQ_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NLT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_TRU_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NE_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_T_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NE_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_T_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NE_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_T_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NE_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_T_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NE_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_T_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NE_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_T_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NE_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_T_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NE_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_T_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NE_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_T_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NE_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_T_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NE_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_T_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NE_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_T_U64::execute(), Gcn3ISA::Inst_VOP3__V_CNDMASK_B32::execute(), Gcn3ISA::Inst_VOP3__V_ADD_F32::execute(), Gcn3ISA::Inst_VOP3__V_SUB_F32::execute(), Gcn3ISA::Inst_VOP3__V_SUBREV_F32::execute(), Gcn3ISA::Inst_VOP3__V_MUL_LEGACY_F32::execute(), Gcn3ISA::Inst_VOP3__V_MUL_F32::execute(), Gcn3ISA::Inst_VOP3__V_MUL_I32_I24::execute(), Gcn3ISA::Inst_VOP3__V_MUL_HI_I32_I24::execute(), Gcn3ISA::Inst_VOP3__V_MUL_U32_U24::execute(), Gcn3ISA::Inst_VOP3__V_MUL_HI_U32_U24::execute(), Gcn3ISA::Inst_VOP3__V_MIN_F32::execute(), Gcn3ISA::Inst_VOP3__V_MAX_F32::execute(), Gcn3ISA::Inst_VOP3__V_MIN_I32::execute(), Gcn3ISA::Inst_VOP3__V_MAX_I32::execute(), Gcn3ISA::Inst_VOP3__V_MIN_U32::execute(), Gcn3ISA::Inst_VOP3__V_MAX_U32::execute(), Gcn3ISA::Inst_VOP3__V_LSHRREV_B32::execute(), Gcn3ISA::Inst_VOP3__V_ASHRREV_I32::execute(), Gcn3ISA::Inst_VOP3__V_LSHLREV_B32::execute(), Gcn3ISA::Inst_VOP3__V_AND_B32::execute(), Gcn3ISA::Inst_VOP3__V_OR_B32::execute(), Gcn3ISA::Inst_VOP3__V_XOR_B32::execute(), Gcn3ISA::Inst_VOP3__V_MAC_F32::execute(), Gcn3ISA::Inst_VOP3__V_ADD_U32::execute(), Gcn3ISA::Inst_VOP3__V_SUB_U32::execute(), Gcn3ISA::Inst_VOP3__V_SUBREV_U32::execute(), Gcn3ISA::Inst_VOP3__V_ADDC_U32::execute(), Gcn3ISA::Inst_VOP3__V_SUBB_U32::execute(), Gcn3ISA::Inst_VOP3__V_SUBBREV_U32::execute(), Gcn3ISA::Inst_VOP3__V_ADD_U16::execute(), Gcn3ISA::Inst_VOP3__V_SUB_U16::execute(), Gcn3ISA::Inst_VOP3__V_SUBREV_U16::execute(), Gcn3ISA::Inst_VOP3__V_MUL_LO_U16::execute(), Gcn3ISA::Inst_VOP3__V_LSHLREV_B16::execute(), Gcn3ISA::Inst_VOP3__V_LSHRREV_B16::execute(), Gcn3ISA::Inst_VOP3__V_ASHRREV_I16::execute(), Gcn3ISA::Inst_VOP3__V_MAX_U16::execute(), Gcn3ISA::Inst_VOP3__V_MAX_I16::execute(), Gcn3ISA::Inst_VOP3__V_MIN_U16::execute(), Gcn3ISA::Inst_VOP3__V_MIN_I16::execute(), Gcn3ISA::Inst_VOP3__V_MOV_B32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_I32_F64::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F64_I32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_I32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_U32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_U32_F32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_I32_F32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_RPI_I32_F32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_FLR_I32_F32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_F64::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F64_F32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_UBYTE0::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_UBYTE1::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_UBYTE2::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_UBYTE3::execute(), Gcn3ISA::Inst_VOP3__V_CVT_U32_F64::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F64_U32::execute(), Gcn3ISA::Inst_VOP3__V_TRUNC_F64::execute(), Gcn3ISA::Inst_VOP3__V_CEIL_F64::execute(), Gcn3ISA::Inst_VOP3__V_RNDNE_F64::execute(), Gcn3ISA::Inst_VOP3__V_FLOOR_F64::execute(), Gcn3ISA::Inst_VOP3__V_FRACT_F32::execute(), Gcn3ISA::Inst_VOP3__V_TRUNC_F32::execute(), Gcn3ISA::Inst_VOP3__V_CEIL_F32::execute(), Gcn3ISA::Inst_VOP3__V_RNDNE_F32::execute(), Gcn3ISA::Inst_VOP3__V_FLOOR_F32::execute(), Gcn3ISA::Inst_VOP3__V_EXP_F32::execute(), Gcn3ISA::Inst_VOP3__V_LOG_F32::execute(), Gcn3ISA::Inst_VOP3__V_RCP_F32::execute(), Gcn3ISA::Inst_VOP3__V_RCP_IFLAG_F32::execute(), Gcn3ISA::Inst_VOP3__V_RSQ_F32::execute(), Gcn3ISA::Inst_VOP3__V_RCP_F64::execute(), Gcn3ISA::Inst_VOP3__V_RSQ_F64::execute(), Gcn3ISA::Inst_VOP3__V_SQRT_F32::execute(), Gcn3ISA::Inst_VOP3__V_SQRT_F64::execute(), Gcn3ISA::Inst_VOP3__V_SIN_F32::execute(), Gcn3ISA::Inst_VOP3__V_COS_F32::execute(), Gcn3ISA::Inst_VOP3__V_NOT_B32::execute(), Gcn3ISA::Inst_VOP3__V_BFREV_B32::execute(), Gcn3ISA::Inst_VOP3__V_FFBH_U32::execute(), Gcn3ISA::Inst_VOP3__V_FFBL_B32::execute(), Gcn3ISA::Inst_VOP3__V_FFBH_I32::execute(), Gcn3ISA::Inst_VOP3__V_FREXP_EXP_I32_F64::execute(), Gcn3ISA::Inst_VOP3__V_FREXP_MANT_F64::execute(), Gcn3ISA::Inst_VOP3__V_FRACT_F64::execute(), Gcn3ISA::Inst_VOP3__V_FREXP_EXP_I32_F32::execute(), Gcn3ISA::Inst_VOP3__V_FREXP_MANT_F32::execute(), Gcn3ISA::Inst_VOP3__V_EXP_LEGACY_F32::execute(), Gcn3ISA::Inst_VOP3__V_LOG_LEGACY_F32::execute(), Gcn3ISA::Inst_VOP3__V_MAD_LEGACY_F32::execute(), Gcn3ISA::Inst_VOP3__V_MAD_F32::execute(), Gcn3ISA::Inst_VOP3__V_MAD_I32_I24::execute(), Gcn3ISA::Inst_VOP3__V_MAD_U32_U24::execute(), Gcn3ISA::Inst_VOP3__V_BFE_U32::execute(), Gcn3ISA::Inst_VOP3__V_BFE_I32::execute(), Gcn3ISA::Inst_VOP3__V_BFI_B32::execute(), Gcn3ISA::Inst_VOP3__V_FMA_F32::execute(), Gcn3ISA::Inst_VOP3__V_FMA_F64::execute(), Gcn3ISA::Inst_VOP3__V_LERP_U8::execute(), Gcn3ISA::Inst_VOP3__V_ALIGNBIT_B32::execute(), Gcn3ISA::Inst_VOP3__V_ALIGNBYTE_B32::execute(), Gcn3ISA::Inst_VOP3__V_MIN3_F32::execute(), Gcn3ISA::Inst_VOP3__V_MIN3_I32::execute(), Gcn3ISA::Inst_VOP3__V_MIN3_U32::execute(), Gcn3ISA::Inst_VOP3__V_MAX3_F32::execute(), Gcn3ISA::Inst_VOP3__V_MAX3_I32::execute(), Gcn3ISA::Inst_VOP3__V_MAX3_U32::execute(), Gcn3ISA::Inst_VOP3__V_MED3_F32::execute(), Gcn3ISA::Inst_VOP3__V_MED3_I32::execute(), Gcn3ISA::Inst_VOP3__V_MED3_U32::execute(), Gcn3ISA::Inst_VOP3__V_SAD_U8::execute(), Gcn3ISA::Inst_VOP3__V_SAD_HI_U8::execute(), Gcn3ISA::Inst_VOP3__V_SAD_U16::execute(), Gcn3ISA::Inst_VOP3__V_SAD_U32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_PK_U8_F32::execute(), Gcn3ISA::Inst_VOP3__V_DIV_FIXUP_F64::execute(), Gcn3ISA::Inst_VOP3__V_DIV_SCALE_F64::execute(), Gcn3ISA::Inst_VOP3__V_DIV_FMAS_F64::execute(), Gcn3ISA::Inst_VOP3__V_MAD_U64_U32::execute(), Gcn3ISA::Inst_VOP3__V_MAD_I64_I32::execute(), Gcn3ISA::Inst_VOP3__V_MAD_U16::execute(), Gcn3ISA::Inst_VOP3__V_MAD_I16::execute(), Gcn3ISA::Inst_VOP3__V_PERM_B32::execute(), Gcn3ISA::Inst_VOP3__V_ADD_F64::execute(), Gcn3ISA::Inst_VOP3__V_MUL_F64::execute(), Gcn3ISA::Inst_VOP3__V_MIN_F64::execute(), Gcn3ISA::Inst_VOP3__V_MAX_F64::execute(), Gcn3ISA::Inst_VOP3__V_LDEXP_F64::execute(), Gcn3ISA::Inst_VOP3__V_MUL_LO_U32::execute(), Gcn3ISA::Inst_VOP3__V_MUL_HI_U32::execute(), Gcn3ISA::Inst_VOP3__V_MUL_HI_I32::execute(), Gcn3ISA::Inst_VOP3__V_LDEXP_F32::execute(), Gcn3ISA::Inst_VOP3__V_BCNT_U32_B32::execute(), Gcn3ISA::Inst_VOP3__V_LSHLREV_B64::execute(), Gcn3ISA::Inst_VOP3__V_LSHRREV_B64::execute(), Gcn3ISA::Inst_VOP3__V_ASHRREV_I64::execute(), Gcn3ISA::Inst_VOP3__V_BFM_B32::execute(), Gcn3ISA::Inst_DS__DS_WRITE_B32::execute(), Gcn3ISA::Inst_DS__DS_WRITE2_B32::execute(), Gcn3ISA::Inst_DS__DS_WRITE2ST64_B32::execute(), Gcn3ISA::Inst_DS__DS_WRITE_B8::execute(), Gcn3ISA::Inst_DS__DS_WRITE_B16::execute(), Gcn3ISA::Inst_DS__DS_READ_B32::execute(), Gcn3ISA::Inst_DS__DS_READ2_B32::execute(), Gcn3ISA::Inst_DS__DS_READ2ST64_B32::execute(), Gcn3ISA::Inst_DS__DS_READ_U8::execute(), Gcn3ISA::Inst_DS__DS_READ_U16::execute(), Gcn3ISA::Inst_DS__DS_WRITE_B64::execute(), Gcn3ISA::Inst_DS__DS_WRITE2_B64::execute(), Gcn3ISA::Inst_DS__DS_READ_B64::execute(), Gcn3ISA::Inst_DS__DS_READ2_B64::execute(), Gcn3ISA::Inst_DS__DS_READ2ST64_B64::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_LOAD_UBYTE::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_LOAD_USHORT::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_LOAD_DWORD::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_STORE_BYTE::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_STORE_SHORT::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_STORE_DWORD::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_WBINVL1::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_WBINVL1_VOL::execute(), Gcn3ISA::Inst_FLAT__FLAT_LOAD_UBYTE::execute(), Gcn3ISA::Inst_FLAT__FLAT_LOAD_USHORT::execute(), Gcn3ISA::Inst_FLAT__FLAT_LOAD_DWORD::execute(), Gcn3ISA::Inst_FLAT__FLAT_LOAD_DWORDX2::execute(), Gcn3ISA::Inst_FLAT__FLAT_LOAD_DWORDX3::execute(), Gcn3ISA::Inst_FLAT__FLAT_LOAD_DWORDX4::execute(), Gcn3ISA::Inst_FLAT__FLAT_STORE_BYTE::execute(), Gcn3ISA::Inst_FLAT__FLAT_STORE_SHORT::execute(), Gcn3ISA::Inst_FLAT__FLAT_STORE_DWORD::execute(), Gcn3ISA::Inst_FLAT__FLAT_STORE_DWORDX2::execute(), Gcn3ISA::Inst_FLAT__FLAT_STORE_DWORDX3::execute(), Gcn3ISA::Inst_FLAT__FLAT_STORE_DWORDX4::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_CMPSWAP::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_ADD::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_CMPSWAP_X2::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_ADD_X2::execute(), HsailISA::Call::MagicAtomicNRAddGlobalU32Reg(), HsailISA::Call::MagicAtomicNRAddGroupU32Reg(), HsailISA::Call::MagicLoadGlobalU32Reg(), HsailISA::Call::MagicSimBreak(), popFromReconvergenceStack(), and Gcn3ISA::ScalarOperand< DataType, Const, NumDwords >::write().

◆ execMask() [2/2]

bool Wavefront::execMask ( int  lane) const

Definition at line 832 of file wavefront.cc.

References reconvergenceStack.

◆ getContext()

void Wavefront::getContext ( const void *  out)

◆ getPred()

VectorMask Wavefront::getPred ( )
inline

◆ getStaticContextSize()

uint32_t Wavefront::getStaticContextSize ( ) const

Returns the size of the static hardware context of a particular wavefront This should be updated everytime the context is changed.

Definition at line 845 of file wavefront.cc.

References barCnt, barrierCnt, barrierId, computeUnit, ComputeUnit::cu_id, initMask, ldsChunk, maxBarCnt, oldBarrierCnt, privBase, spillBase, wfId, ComputeUnit::wfSize(), and wgId.

◆ gpuISA()

TheGpuISA::GPUISA& Wavefront::gpuISA ( )
inline

Definition at line 376 of file wavefront.hh.

◆ init()

void Wavefront::init ( )
virtual

init() is called after all C++ SimObjects have been created and all ports are connected.

Initializations that are independent of unserialization but rely on a fully instantiated and connected SimObject graph should be done here.

Reimplemented from SimObject.

Definition at line 133 of file wavefront.cc.

References reservedVectorRegs, and startVgprIndex.

Referenced by Gcn3ISA::Inst_SMEM__S_LOAD_DWORD::execute(), Gcn3ISA::Inst_SMEM__S_LOAD_DWORDX2::execute(), Gcn3ISA::Inst_SMEM__S_LOAD_DWORDX4::execute(), Gcn3ISA::Inst_SMEM__S_LOAD_DWORDX8::execute(), Gcn3ISA::Inst_SMEM__S_LOAD_DWORDX16::execute(), Gcn3ISA::Inst_SMEM__S_STORE_DWORD::execute(), Gcn3ISA::Inst_SMEM__S_STORE_DWORDX2::execute(), and Gcn3ISA::Inst_SMEM__S_STORE_DWORDX4::execute().

◆ initCallArgMem()

void Wavefront::initCallArgMem ( int  func_args_size_per_item,
int  wf_size 
)
inline

Definition at line 300 of file wavefront.hh.

◆ instructionBufferHasBranch()

bool Wavefront::instructionBufferHasBranch ( )

Definition at line 264 of file wavefront.cc.

References instructionBuffer.

Referenced by FetchUnit::exec().

◆ isGmInstruction()

bool Wavefront::isGmInstruction ( GPUDynInstPtr  ii)

Definition at line 163 of file wavefront.cc.

Referenced by exec().

◆ isLmInstruction()

bool Wavefront::isLmInstruction ( GPUDynInstPtr  ii)

Definition at line 172 of file wavefront.cc.

Referenced by exec().

◆ isOldestInstALU()

bool Wavefront::isOldestInstALU ( )

Definition at line 182 of file wavefront.cc.

References instructionBuffer, S_STOPPED, and status.

Referenced by ScoreboardCheckStage::collectStatistics().

◆ isOldestInstBarrier()

bool Wavefront::isOldestInstBarrier ( )

Definition at line 197 of file wavefront.cc.

References instructionBuffer, S_STOPPED, and status.

◆ isOldestInstFlatMem()

bool Wavefront::isOldestInstFlatMem ( )

Definition at line 249 of file wavefront.cc.

References instructionBuffer, S_STOPPED, and status.

Referenced by ScoreboardCheckStage::collectStatistics().

◆ isOldestInstGMem()

bool Wavefront::isOldestInstGMem ( )

Definition at line 210 of file wavefront.cc.

References instructionBuffer, S_STOPPED, and status.

Referenced by ScoreboardCheckStage::collectStatistics().

◆ isOldestInstLMem()

bool Wavefront::isOldestInstLMem ( )

Definition at line 223 of file wavefront.cc.

References instructionBuffer, S_STOPPED, and status.

Referenced by ScoreboardCheckStage::collectStatistics().

◆ isOldestInstPrivMem()

bool Wavefront::isOldestInstPrivMem ( )

Definition at line 236 of file wavefront.cc.

References instructionBuffer, S_STOPPED, and status.

Referenced by ScoreboardCheckStage::collectStatistics().

◆ pc() [1/2]

uint32_t Wavefront::pc ( ) const

◆ pc() [2/2]

void Wavefront::pc ( uint32_t  new_pc)

Definition at line 839 of file wavefront.cc.

References reconvergenceStack.

◆ popFromReconvergenceStack()

void Wavefront::popFromReconvergenceStack ( )

◆ pushToReconvergenceStack()

void Wavefront::pushToReconvergenceStack ( uint32_t  pc,
uint32_t  rpc,
const VectorMask exec_mask 
)

◆ readCallArgMem()

template<typename CType >
CType Wavefront::readCallArgMem ( int  lane,
int  addr 
)
inline

◆ ready()

int Wavefront::ready ( itype_e  type)

◆ regStats()

void Wavefront::regStats ( )
virtual

Callback to set stat parameters.

This callback is typically used for complex stats (e.g., distributions) that need parameters in addition to a name and a description. Stat names and descriptions should typically be set from the constructor usingo from the constructor using the ADD_STAT macro.

Reimplemented from Stats::Group.

Definition at line 93 of file wavefront.cc.

References Stats::DataWrap< Derived, InfoProxyType >::desc(), dstRegOpDist, Stats::Distribution::init(), SimObject::name(), Stats::DataWrap< Derived, InfoProxyType >::name(), numTimesBlockedDueRAWDependencies, numTimesBlockedDueVrfPortAvail, numTimesBlockedDueWAXDependencies, Stats::Group::regStats(), and srcRegOpDist.

◆ remap()

uint32_t Wavefront::remap ( uint32_t  vgprIndex,
uint32_t  size,
uint8_t  mode = 0 
)

◆ resizeRegFiles()

void Wavefront::resizeRegFiles ( int  num_cregs,
int  num_sregs,
int  num_dregs 
)

◆ rpc()

uint32_t Wavefront::rpc ( ) const

◆ setContext()

void Wavefront::setContext ( const void *  in)

◆ setParent()

void Wavefront::setParent ( ComputeUnit cu)
inline

◆ start()

void Wavefront::start ( uint64_t  _wfDynId,
uint64_t  _base_ptr 
)

Definition at line 155 of file wavefront.cc.

References basePtr, S_RUNNING, status, and wfDynId.

Referenced by ComputeUnit::startWavefront().

◆ updateResources()

void Wavefront::updateResources ( )

◆ waitingAtBarrier()

bool Wavefront::waitingAtBarrier ( int  lane)

Definition at line 775 of file wavefront.cc.

References barCnt, and maxBarCnt.

◆ writeCallArgMem()

template<typename CType >
void Wavefront::writeCallArgMem ( int  lane,
int  addr,
CType  val 
)
inline

Definition at line 314 of file wavefront.hh.

References addr, CallArgMem::setLaneAddr(), and X86ISA::val.

Referenced by ListOperand::set().

Member Data Documentation

◆ _gpuISA

TheGpuISA::GPUISA Wavefront::_gpuISA
private

Definition at line 382 of file wavefront.hh.

Referenced by exec().

◆ actualWgSz

uint32_t Wavefront::actualWgSz[3]

Definition at line 200 of file wavefront.hh.

Referenced by computeActualWgSz(), and ComputeUnit::startWavefront().

◆ actualWgSzTotal

uint32_t Wavefront::actualWgSzTotal

◆ barCnt

std::vector<int> Wavefront::barCnt

◆ barrierCnt

uint32_t Wavefront::barrierCnt

◆ barrierId

uint32_t Wavefront::barrierId

◆ barrierSlots

uint32_t Wavefront::barrierSlots

Definition at line 157 of file wavefront.hh.

Referenced by ComputeUnit::startWavefront().

◆ basePtr

uint64_t Wavefront::basePtr

Definition at line 152 of file wavefront.hh.

Referenced by FetchUnit::initiateFetch(), and start().

◆ callArgMem

CallArgMem* Wavefront::callArgMem

Definition at line 298 of file wavefront.hh.

Referenced by ~Wavefront().

◆ computeUnit

ComputeUnit* Wavefront::computeUnit

Definition at line 165 of file wavefront.hh.

Referenced by HsailISA::Call::calcAddr(), HsailISA::calcPrivAddr(), RegAddrOperand< RegOperandType >::calcVector(), NoRegAddrOperand::calcVector(), HsailISA::LdInst< MemDataType, DestDataType, AddrOperandType >::completeAcc(), HsailISA::AtomicInst< MemDataType, AddrOperandType, NumSrcOperands, HasDst >::completeAcc(), LocalMemPipeline::exec(), GlobalMemPipeline::exec(), ConditionRegisterState::exec(), exec(), HsailISA::Call::execPseudoInst(), HsailISA::LdaInst< DestDataType, AddrOperandType >::execute(), HsailISA::CbrInstBase< SRegOperand >::execute(), HsailISA::LdInst< MemDataType, DestDataType, AddrOperandType >::execute(), HsailISA::Ret::execute(), HsailISA::MemFence::execute(), HsailISA::StInst< MemDataType, SrcDataType, AddrOperandType >::execute(), HsailISA::AtomicInst< MemDataType, AddrOperandType, NumSrcOperands, HasDst >::execute(), Gcn3ISA::Inst_SOPP__S_ENDPGM::execute(), SRegOperand::get(), DRegOperand::get(), getContext(), getStaticContextSize(), HsailISA::MemFence::initiateAcc(), HsailISA::Call::MagicAtomicNRAddGlobalU32Reg(), HsailISA::Call::MagicAtomicNRAddGroupU32Reg(), HsailISA::Call::MagicJoinWFBar(), HsailISA::Call::MagicLoadGlobalU32Reg(), HsailISA::Call::MagicMaskLower(), HsailISA::Call::MagicMaskUpper(), HsailISA::Call::MagicMostSigBroadcast(), HsailISA::Call::MagicMostSigThread(), HsailISA::Call::MagicPanic(), HsailISA::Call::MagicPrefixSum(), HsailISA::Call::MagicPrintLane(), HsailISA::Call::MagicPrintLane64(), HsailISA::Call::MagicPrintWF32(), HsailISA::Call::MagicPrintWF32ID(), HsailISA::Call::MagicPrintWF64(), HsailISA::Call::MagicPrintWFFloat(), HsailISA::Call::MagicPrintWFID64(), HsailISA::Call::MagicReduction(), HsailISA::Call::MagicSimBreak(), HsailISA::Call::MagicWaitWFBar(), HsailISA::Call::MagicXactCasLd(), popFromReconvergenceStack(), ready(), remap(), SRegOperand::set(), DRegOperand::set(), CRegOperand::set(), ListOperand::set(), setContext(), and updateResources().

◆ condRegState

class ConditionRegisterState* Wavefront::condRegState

◆ dispatchId

uint32_t Wavefront::dispatchId

◆ dropFetch

bool Wavefront::dropFetch

◆ dstRegOpDist

Stats::Distribution Wavefront::dstRegOpDist

Definition at line 294 of file wavefront.hh.

Referenced by exec(), and regStats().

◆ gridSz

uint32_t Wavefront::gridSz[3]

Definition at line 196 of file wavefront.hh.

Referenced by computeActualWgSz(), and ComputeUnit::fillKernelState().

◆ initMask

VectorMask Wavefront::initMask

◆ instructionBuffer

std::deque<GPUDynInstPtr> Wavefront::instructionBuffer

◆ kernelArgs

uint8_t* Wavefront::kernelArgs

◆ kernId

int Wavefront::kernId

◆ lastAddr

std::vector<Addr> Wavefront::lastAddr

◆ lastTrace

uint64_t Wavefront::lastTrace

Definition at line 226 of file wavefront.hh.

Referenced by Wavefront().

◆ ldsChunk

LdsChunk* Wavefront::ldsChunk

◆ maxBarCnt

int Wavefront::maxBarCnt

◆ maxDpVgprs

uint32_t Wavefront::maxDpVgprs

Definition at line 177 of file wavefront.hh.

Referenced by getContext(), resizeRegFiles(), setContext(), and Wavefront().

◆ maxDynWaveId

uint32_t Wavefront::maxDynWaveId

Definition at line 205 of file wavefront.hh.

◆ maxSpVgprs

uint32_t Wavefront::maxSpVgprs

Definition at line 175 of file wavefront.hh.

Referenced by getContext(), remap(), resizeRegFiles(), setContext(), and Wavefront().

◆ memReqsInPipe

uint32_t Wavefront::memReqsInPipe

◆ memTraceBusy

int Wavefront::memTraceBusy

Definition at line 225 of file wavefront.hh.

Referenced by Wavefront().

◆ numTimesBlockedDueRAWDependencies

Stats::Scalar Wavefront::numTimesBlockedDueRAWDependencies

Definition at line 290 of file wavefront.hh.

Referenced by VectorRegisterFile::operandsReady(), and regStats().

◆ numTimesBlockedDueVrfPortAvail

Stats::Scalar Wavefront::numTimesBlockedDueVrfPortAvail

Definition at line 284 of file wavefront.hh.

Referenced by regStats().

◆ numTimesBlockedDueWAXDependencies

Stats::Scalar Wavefront::numTimesBlockedDueWAXDependencies

Definition at line 287 of file wavefront.hh.

Referenced by VectorRegisterFile::operandsReady(), and regStats().

◆ oldBarrierCnt

uint32_t Wavefront::oldBarrierCnt

◆ oldDgpr

std::vector<uint64_t> Wavefront::oldDgpr

Definition at line 241 of file wavefront.hh.

Referenced by Wavefront().

◆ oldDgprId

uint32_t Wavefront::oldDgprId

Definition at line 243 of file wavefront.hh.

◆ oldDgprTcnt

uint64_t Wavefront::oldDgprTcnt

Definition at line 245 of file wavefront.hh.

Referenced by Wavefront().

◆ oldVgpr

std::vector<uint32_t> Wavefront::oldVgpr

Definition at line 234 of file wavefront.hh.

Referenced by Wavefront().

◆ oldVgprId

uint32_t Wavefront::oldVgprId

Definition at line 236 of file wavefront.hh.

◆ oldVgprTcnt

uint64_t Wavefront::oldVgprTcnt

Definition at line 238 of file wavefront.hh.

Referenced by Wavefront().

◆ outstandingReqs

uint32_t Wavefront::outstandingReqs

Definition at line 208 of file wavefront.hh.

Referenced by ComputeUnit::AllAtBarrier(), LocalMemPipeline::exec(), GlobalMemPipeline::exec(), HsailISA::LdInst< MemDataType, DestDataType, AddrOperandType >::execute(), HsailISA::MemFence::execute(), HsailISA::StInst< MemDataType, SrcDataType, AddrOperandType >::execute(), HsailISA::AtomicInst< MemDataType, AddrOperandType, NumSrcOperands, HasDst >::execute(), Gcn3ISA::Inst_SMEM__S_LOAD_DWORD::execute(), Gcn3ISA::Inst_SMEM__S_LOAD_DWORDX2::execute(), Gcn3ISA::Inst_SMEM__S_LOAD_DWORDX4::execute(), Gcn3ISA::Inst_SMEM__S_LOAD_DWORDX8::execute(), Gcn3ISA::Inst_SMEM__S_LOAD_DWORDX16::execute(), Gcn3ISA::Inst_SMEM__S_STORE_DWORD::execute(), Gcn3ISA::Inst_SMEM__S_STORE_DWORDX2::execute(), Gcn3ISA::Inst_SMEM__S_STORE_DWORDX4::execute(), Gcn3ISA::Inst_DS__DS_WRITE_B32::execute(), Gcn3ISA::Inst_DS__DS_WRITE2_B32::execute(), Gcn3ISA::Inst_DS__DS_WRITE2ST64_B32::execute(), Gcn3ISA::Inst_DS__DS_WRITE_B8::execute(), Gcn3ISA::Inst_DS__DS_WRITE_B16::execute(), Gcn3ISA::Inst_DS__DS_READ_B32::execute(), Gcn3ISA::Inst_DS__DS_READ2_B32::execute(), Gcn3ISA::Inst_DS__DS_READ2ST64_B32::execute(), Gcn3ISA::Inst_DS__DS_READ_U8::execute(), Gcn3ISA::Inst_DS__DS_READ_U16::execute(), Gcn3ISA::Inst_DS__DS_WRITE_B64::execute(), Gcn3ISA::Inst_DS__DS_WRITE2_B64::execute(), Gcn3ISA::Inst_DS__DS_READ_B64::execute(), Gcn3ISA::Inst_DS__DS_READ2_B64::execute(), Gcn3ISA::Inst_DS__DS_READ2ST64_B64::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_LOAD_UBYTE::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_LOAD_USHORT::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_LOAD_DWORD::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_STORE_BYTE::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_STORE_SHORT::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_STORE_DWORD::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_WBINVL1::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_WBINVL1_VOL::execute(), Gcn3ISA::Inst_FLAT__FLAT_STORE_DWORDX2::execute(), HsailISA::Call::MagicAtomicNRAddGlobalU32Reg(), HsailISA::Call::MagicAtomicNRAddGroupU32Reg(), HsailISA::Call::MagicLoadGlobalU32Reg(), ready(), ComputeUnit::DataPort::recvTimingResp(), and Wavefront().

◆ outstandingReqsRdGm

uint32_t Wavefront::outstandingReqsRdGm

◆ outstandingReqsRdLm

uint32_t Wavefront::outstandingReqsRdLm

◆ outstandingReqsWrGm

uint32_t Wavefront::outstandingReqsWrGm

◆ outstandingReqsWrLm

uint32_t Wavefront::outstandingReqsWrLm

◆ pendingFetch

bool Wavefront::pendingFetch

◆ privBase

Addr Wavefront::privBase

◆ privSizePerItem

uint32_t Wavefront::privSizePerItem

◆ rdGmReqsInPipe

uint32_t Wavefront::rdGmReqsInPipe

◆ rdLmReqsInPipe

uint32_t Wavefront::rdLmReqsInPipe

◆ reconvergenceStack

std::deque<std::unique_ptr<ReconvergenceStackEntry> > Wavefront::reconvergenceStack
private

Stack containing Control Flow Graph nodes (i.e., kernel instructions) to be visited by the wavefront, and the associated execution masks.

The reconvergence stack grows every time the wavefront reaches a divergence point (branch instruction), and shrinks every time the wavefront reaches a reconvergence point (immediate post-dominator instruction).

Definition at line 390 of file wavefront.hh.

Referenced by execMask(), getContext(), pc(), popFromReconvergenceStack(), pushToReconvergenceStack(), and rpc().

◆ reservedVectorRegs

int Wavefront::reservedVectorRegs

◆ roBase

Addr Wavefront::roBase

◆ roSize

uint32_t Wavefront::roSize

◆ simdId

int Wavefront::simdId

◆ spillBase

Addr Wavefront::spillBase

◆ spillSizePerItem

uint32_t Wavefront::spillSizePerItem

◆ spillWidth

uint32_t Wavefront::spillWidth

◆ srcRegOpDist

Stats::Distribution Wavefront::srcRegOpDist

Definition at line 293 of file wavefront.hh.

Referenced by exec(), and regStats().

◆ stalledAtBarrier

bool Wavefront::stalledAtBarrier

◆ startVgprIndex

uint32_t Wavefront::startVgprIndex

◆ status

status_e Wavefront::status

◆ wfDynId

uint64_t Wavefront::wfDynId

◆ wfId

uint32_t Wavefront::wfId

◆ wfSlotId

int Wavefront::wfSlotId

◆ wgId

uint32_t Wavefront::wgId

◆ wgSz

uint32_t Wavefront::wgSz

Definition at line 198 of file wavefront.hh.

Referenced by ComputeUnit::fillKernelState().

◆ workGroupId

uint32_t Wavefront::workGroupId[3]

Definition at line 194 of file wavefront.hh.

Referenced by ComputeUnit::startWavefront().

◆ workGroupSz

uint32_t Wavefront::workGroupSz[3]

Definition at line 195 of file wavefront.hh.

Referenced by computeActualWgSz(), and ComputeUnit::fillKernelState().

◆ workItemFlatId

std::vector<uint32_t> Wavefront::workItemFlatId

Definition at line 192 of file wavefront.hh.

Referenced by ComputeUnit::startWavefront(), and Wavefront().

◆ workItemId

std::vector<uint32_t> Wavefront::workItemId[3]

Definition at line 191 of file wavefront.hh.

Referenced by getContext(), setContext(), ComputeUnit::startWavefront(), and Wavefront().

◆ wrGmReqsInPipe

uint32_t Wavefront::wrGmReqsInPipe

◆ wrLmReqsInPipe

uint32_t Wavefront::wrLmReqsInPipe

The documentation for this class was generated from the following files:

Generated on Thu May 28 2020 16:21:53 for gem5 by doxygen 1.8.13