From: Yaxun Liu Date: Thu, 11 Jul 2019 17:50:09 +0000 (+0000) Subject: [HIP] Add GPU arch gfx1010, gfx1011, and gfx1012 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ac0a6267a5f7d55a288edccbff47925d9ddb4fc2;p=clang [HIP] Add GPU arch gfx1010, gfx1011, and gfx1012 Differential Revision: https://reviews.llvm.org/D64364 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@365799 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/Cuda.h b/include/clang/Basic/Cuda.h index df35e1b93b..ef5d24dcf8 100644 --- a/include/clang/Basic/Cuda.h +++ b/include/clang/Basic/Cuda.h @@ -66,6 +66,9 @@ enum class CudaArch { GFX906, GFX908, GFX909, + GFX1010, + GFX1011, + GFX1012, LAST, }; const char *CudaArchToString(CudaArch A); diff --git a/lib/Basic/Cuda.cpp b/lib/Basic/Cuda.cpp index d19925ab10..f2b6c8cd3e 100644 --- a/lib/Basic/Cuda.cpp +++ b/lib/Basic/Cuda.cpp @@ -113,6 +113,12 @@ const char *CudaArchToString(CudaArch A) { return "gfx908"; case CudaArch::GFX909: // TBA return "gfx909"; + case CudaArch::GFX1010: // TBA + return "gfx1010"; + case CudaArch::GFX1011: // TBA + return "gfx1011"; + case CudaArch::GFX1012: // TBA + return "gfx1012"; } llvm_unreachable("invalid enum"); } @@ -151,6 +157,9 @@ CudaArch StringToCudaArch(llvm::StringRef S) { .Case("gfx906", CudaArch::GFX906) .Case("gfx908", CudaArch::GFX908) .Case("gfx909", CudaArch::GFX909) + .Case("gfx1010", CudaArch::GFX1010) + .Case("gfx1011", CudaArch::GFX1011) + .Case("gfx1012", CudaArch::GFX1012) .Default(CudaArch::UNKNOWN); } @@ -264,6 +273,9 @@ CudaVirtualArch VirtualArchForCudaArch(CudaArch A) { case CudaArch::GFX906: case CudaArch::GFX908: case CudaArch::GFX909: + case CudaArch::GFX1010: + case CudaArch::GFX1011: + case CudaArch::GFX1012: return CudaVirtualArch::COMPUTE_AMDGCN; } llvm_unreachable("invalid enum"); @@ -312,6 +324,9 @@ CudaVersion MinVersionForCudaArch(CudaArch A) { case CudaArch::GFX906: case CudaArch::GFX908: case CudaArch::GFX909: + case CudaArch::GFX1010: + case CudaArch::GFX1011: + case CudaArch::GFX1012: return CudaVersion::CUDA_70; } llvm_unreachable("invalid enum"); @@ -336,6 +351,9 @@ CudaVersion MaxVersionForCudaArch(CudaArch A) { case CudaArch::GFX810: case CudaArch::GFX900: case CudaArch::GFX902: + case CudaArch::GFX1010: + case CudaArch::GFX1011: + case CudaArch::GFX1012: return CudaVersion::CUDA_80; default: return CudaVersion::LATEST; diff --git a/lib/Basic/Targets/NVPTX.cpp b/lib/Basic/Targets/NVPTX.cpp index 8ca36fbcc3..f69e9d84c7 100644 --- a/lib/Basic/Targets/NVPTX.cpp +++ b/lib/Basic/Targets/NVPTX.cpp @@ -193,6 +193,9 @@ void NVPTXTargetInfo::getTargetDefines(const LangOptions &Opts, case CudaArch::GFX906: case CudaArch::GFX908: case CudaArch::GFX909: + case CudaArch::GFX1010: + case CudaArch::GFX1011: + case CudaArch::GFX1012: case CudaArch::LAST: break; case CudaArch::UNKNOWN: diff --git a/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp b/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp index 88a86930cc..48dcbbf3ca 100644 --- a/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp +++ b/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp @@ -4930,6 +4930,9 @@ void CGOpenMPRuntimeNVPTX::checkArchForUnifiedAddressing( case CudaArch::GFX906: case CudaArch::GFX908: case CudaArch::GFX909: + case CudaArch::GFX1010: + case CudaArch::GFX1011: + case CudaArch::GFX1012: case CudaArch::UNKNOWN: break; case CudaArch::LAST: @@ -4985,6 +4988,9 @@ static std::pair getSMsBlocksPerSM(CodeGenModule &CGM) { case CudaArch::GFX906: case CudaArch::GFX908: case CudaArch::GFX909: + case CudaArch::GFX1010: + case CudaArch::GFX1011: + case CudaArch::GFX1012: case CudaArch::UNKNOWN: break; case CudaArch::LAST: