浏览代码

Add gfx904 and gfx906 to GPU Arch

Differential Revision: https://reviews.llvm.org/D53472


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@344996 91177308-0d34-0410-b5e6-96231b3b80d8
Yaxun Liu 6 年之前
父节点
当前提交
8da6768e21
共有 3 个文件被更改,包括 14 次插入0 次删除
  1. 2 0
      include/clang/Basic/Cuda.h
  2. 10 0
      lib/Basic/Cuda.cpp
  3. 2 0
      lib/Basic/Targets/NVPTX.cpp

+ 2 - 0
include/clang/Basic/Cuda.h

@@ -62,6 +62,8 @@ enum class CudaArch {
   GFX810,
   GFX810,
   GFX900,
   GFX900,
   GFX902,
   GFX902,
+  GFX904,
+  GFX906,
   LAST,
   LAST,
 };
 };
 const char *CudaArchToString(CudaArch A);
 const char *CudaArchToString(CudaArch A);

+ 10 - 0
lib/Basic/Cuda.cpp

@@ -90,6 +90,10 @@ const char *CudaArchToString(CudaArch A) {
     return "gfx900";
     return "gfx900";
   case CudaArch::GFX902: // TBA
   case CudaArch::GFX902: // TBA
     return "gfx902";
     return "gfx902";
+  case CudaArch::GFX904: // TBA
+    return "gfx904";
+  case CudaArch::GFX906: // TBA
+    return "gfx906";
   }
   }
   llvm_unreachable("invalid enum");
   llvm_unreachable("invalid enum");
 }
 }
@@ -124,6 +128,8 @@ CudaArch StringToCudaArch(llvm::StringRef S) {
       .Case("gfx810", CudaArch::GFX810)
       .Case("gfx810", CudaArch::GFX810)
       .Case("gfx900", CudaArch::GFX900)
       .Case("gfx900", CudaArch::GFX900)
       .Case("gfx902", CudaArch::GFX902)
       .Case("gfx902", CudaArch::GFX902)
+      .Case("gfx904", CudaArch::GFX904)
+      .Case("gfx906", CudaArch::GFX906)
       .Default(CudaArch::UNKNOWN);
       .Default(CudaArch::UNKNOWN);
 }
 }
 
 
@@ -233,6 +239,8 @@ CudaVirtualArch VirtualArchForCudaArch(CudaArch A) {
   case CudaArch::GFX810:
   case CudaArch::GFX810:
   case CudaArch::GFX900:
   case CudaArch::GFX900:
   case CudaArch::GFX902:
   case CudaArch::GFX902:
+  case CudaArch::GFX904:
+  case CudaArch::GFX906:
     return CudaVirtualArch::COMPUTE_AMDGCN;
     return CudaVirtualArch::COMPUTE_AMDGCN;
   }
   }
   llvm_unreachable("invalid enum");
   llvm_unreachable("invalid enum");
@@ -277,6 +285,8 @@ CudaVersion MinVersionForCudaArch(CudaArch A) {
   case CudaArch::GFX810:
   case CudaArch::GFX810:
   case CudaArch::GFX900:
   case CudaArch::GFX900:
   case CudaArch::GFX902:
   case CudaArch::GFX902:
+  case CudaArch::GFX904:
+  case CudaArch::GFX906:
     return CudaVersion::CUDA_70;
     return CudaVersion::CUDA_70;
   }
   }
   llvm_unreachable("invalid enum");
   llvm_unreachable("invalid enum");

+ 2 - 0
lib/Basic/Targets/NVPTX.cpp

@@ -188,6 +188,8 @@ void NVPTXTargetInfo::getTargetDefines(const LangOptions &Opts,
       case CudaArch::GFX810:
       case CudaArch::GFX810:
       case CudaArch::GFX900:
       case CudaArch::GFX900:
       case CudaArch::GFX902:
       case CudaArch::GFX902:
+      case CudaArch::GFX904:
+      case CudaArch::GFX906:
       case CudaArch::LAST:
       case CudaArch::LAST:
         break;
         break;
       case CudaArch::UNKNOWN:
       case CudaArch::UNKNOWN: