diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h index 1e52e1c8063..c278cc55a02 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h @@ -142,6 +142,10 @@ public: return TargetTriple.getOS() == Triple::Mesa3D; } + bool isOpenCLEnv() const { + return TargetTriple.getEnvironment() == Triple::OpenCL; + } + Generation getGeneration() const { return Gen; } @@ -288,6 +292,14 @@ public: return isAmdHsaOS() ? 8 : 4; } + unsigned getImplicitArgNumBytes() const { + if (isMesa3DOS()) + return 16; + if (isAmdHsaOS() && isOpenCLEnv()) + return 32; + return 0; + } + unsigned getStackAlignment() const { // Scratch is allocated in 256 dword per wave blocks. return 4 * 256 / getWavefrontSize(); @@ -521,6 +533,8 @@ public: return SGPRInitBug; } + unsigned getKernArgSegmentSize(unsigned ExplictArgBytes) const; + /// Return the maximum number of waves per SIMD for kernels using \p SGPRs SGPRs unsigned getOccupancyWithNumSGPRs(unsigned SGPRs) const; |