[HIP] Add GPU arch gfx1010, gfx1011, and gfx1012
authorYaxun Liu <Yaxun.Liu@amd.com>
Thu, 11 Jul 2019 17:50:09 +0000 (17:50 +0000)
committerYaxun Liu <Yaxun.Liu@amd.com>
Thu, 11 Jul 2019 17:50:09 +0000 (17:50 +0000)
Differential Revision: https://reviews.llvm.org/D64364

llvm-svn: 365799

clang/include/clang/Basic/Cuda.h
clang/lib/Basic/Cuda.cpp
clang/lib/Basic/Targets/NVPTX.cpp
clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp

index df35e1b..ef5d24d 100644 (file)
@@ -66,6 +66,9 @@ enum class CudaArch {
   GFX906,
   GFX908,
   GFX909,
+  GFX1010,
+  GFX1011,
+  GFX1012,
   LAST,
 };
 const char *CudaArchToString(CudaArch A);
index d19925a..f2b6c8c 100644 (file)
@@ -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;
index 8ca36fb..f69e9d8 100644 (file)
@@ -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:
index 88a8693..48dcbbf 100644 (file)
@@ -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<unsigned, unsigned> 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: