LLVM  12.0.0git
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
llvm::AMDGPU::Waitcnt Struct Reference

Represents the counter values to wait for in an s_waitcnt instruction. More...

#include "Target/AMDGPU/Utils/AMDGPUBaseInfo.h"

Collaboration diagram for llvm::AMDGPU::Waitcnt:
Collaboration graph
[legend]

Public Member Functions

 Waitcnt ()
 
 Waitcnt (unsigned VmCnt, unsigned ExpCnt, unsigned LgkmCnt, unsigned VsCnt)
 
bool hasWait () const
 
bool dominates (const Waitcnt &Other) const
 
Waitcnt combined (const Waitcnt &Other) const
 

Static Public Member Functions

static Waitcnt allZero (const IsaVersion &Version)
 
static Waitcnt allZeroExceptVsCnt ()
 

Public Attributes

unsigned VmCnt = ~0u
 
unsigned ExpCnt = ~0u
 
unsigned LgkmCnt = ~0u
 
unsigned VsCnt = ~0u
 

Detailed Description

Represents the counter values to wait for in an s_waitcnt instruction.

Large values (including the maximum possible integer) can be used to represent "don't care" waits.

Definition at line 361 of file AMDGPUBaseInfo.h.

Constructor & Destructor Documentation

◆ Waitcnt() [1/2]

llvm::AMDGPU::Waitcnt::Waitcnt ( )
inline

Definition at line 367 of file AMDGPUBaseInfo.h.

◆ Waitcnt() [2/2]

llvm::AMDGPU::Waitcnt::Waitcnt ( unsigned  VmCnt,
unsigned  ExpCnt,
unsigned  LgkmCnt,
unsigned  VsCnt 
)
inline

Definition at line 368 of file AMDGPUBaseInfo.h.

Member Function Documentation

◆ allZero()

static Waitcnt llvm::AMDGPU::Waitcnt::allZero ( const IsaVersion Version)
inlinestatic

Definition at line 371 of file AMDGPUBaseInfo.h.

References llvm::AMDGPU::IsaVersion::Major.

Referenced by callWaitsOnFunctionReturn().

◆ allZeroExceptVsCnt()

static Waitcnt llvm::AMDGPU::Waitcnt::allZeroExceptVsCnt ( )
inlinestatic

Definition at line 374 of file AMDGPUBaseInfo.h.

◆ combined()

Waitcnt llvm::AMDGPU::Waitcnt::combined ( const Waitcnt Other) const
inline

Definition at line 385 of file AMDGPUBaseInfo.h.

References llvm::AMDGPU::MTBUFFormat::decodeDfmtNfmt(), llvm::AMDGPU::decodeExpcnt(), llvm::AMDGPU::Hwreg::decodeHwreg(), llvm::AMDGPU::decodeLgkmcnt(), llvm::AMDGPU::SendMsg::decodeMsg(), llvm::AMDGPU::decodeVmcnt(), llvm::AMDGPU::decodeWaitcnt(), llvm::AMDGPU::MTBUFFormat::encodeDfmtNfmt(), llvm::AMDGPU::encodeExpcnt(), llvm::AMDGPU::Hwreg::encodeHwreg(), llvm::AMDGPU::encodeLgkmcnt(), llvm::AMDGPU::SendMsg::encodeMsg(), llvm::AMDGPU::encodeVmcnt(), llvm::AMDGPU::encodeWaitcnt(), ExpCnt, F(), llvm::AMDGPU::GcnBufferFormatInfo::Format, llvm::AMDGPU::getExpcntBitMask(), llvm::AMDGPU::Hwreg::getHwreg(), llvm::AMDGPU::Hwreg::getHwregId(), llvm::AMDGPU::getInitialPSInputAddr(), llvm::AMDGPU::getLgkmcntBitMask(), llvm::AMDGPU::SendMsg::getMsgId(), llvm::AMDGPU::SendMsg::getMsgName(), llvm::AMDGPU::SendMsg::getMsgOpId(), llvm::AMDGPU::SendMsg::getMsgOpName(), llvm::AMDGPU::getVmcntBitMask(), llvm::AMDGPU::getWaitcntBitMask(), llvm::AMDGPU::isCompute(), llvm::AMDGPU::isEntryFunctionCC(), llvm::AMDGPU::isShader(), llvm::AMDGPU::Hwreg::isValidHwreg(), llvm::AMDGPU::Hwreg::isValidHwregOffset(), llvm::AMDGPU::Hwreg::isValidHwregWidth(), llvm::AMDGPU::SendMsg::isValidMsgId(), llvm::AMDGPU::SendMsg::isValidMsgOp(), llvm::AMDGPU::SendMsg::isValidMsgStream(), LgkmCnt, LLVM_READNONE, LLVM_READONLY, llvm::min(), llvm::AMDGPU::SendMsg::msgRequiresOp(), llvm::AMDGPU::SendMsg::msgSupportsStream(), Name, llvm::FPOpFusion::Strict, llvm::IndexedInstrProf::Version, VmCnt, and VsCnt.

◆ dominates()

bool llvm::AMDGPU::Waitcnt::dominates ( const Waitcnt Other) const
inline

Definition at line 380 of file AMDGPUBaseInfo.h.

References ExpCnt, LgkmCnt, VmCnt, and VsCnt.

◆ hasWait()

bool llvm::AMDGPU::Waitcnt::hasWait ( ) const
inline

Definition at line 376 of file AMDGPUBaseInfo.h.

Member Data Documentation

◆ ExpCnt

unsigned llvm::AMDGPU::Waitcnt::ExpCnt = ~0u

◆ LgkmCnt

unsigned llvm::AMDGPU::Waitcnt::LgkmCnt = ~0u

◆ VmCnt

unsigned llvm::AMDGPU::Waitcnt::VmCnt = ~0u

◆ VsCnt

unsigned llvm::AMDGPU::Waitcnt::VsCnt = ~0u

Definition at line 365 of file AMDGPUBaseInfo.h.

Referenced by combined(), and dominates().


The documentation for this struct was generated from the following file: