summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/include/clang/Basic/Cuda.h3
-rw-r--r--clang/lib/Basic/Cuda.cpp18
-rw-r--r--clang/lib/Basic/Targets/NVPTX.cpp3
-rw-r--r--clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp6
4 files changed, 30 insertions, 0 deletions
diff --git a/clang/include/clang/Basic/Cuda.h b/clang/include/clang/Basic/Cuda.h
index df35e1b93ba..ef5d24dcf88 100644
--- a/clang/include/clang/Basic/Cuda.h
+++ b/clang/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/clang/lib/Basic/Cuda.cpp b/clang/lib/Basic/Cuda.cpp
index d19925ab107..f2b6c8cd3ee 100644
--- a/clang/lib/Basic/Cuda.cpp
+++ b/clang/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/clang/lib/Basic/Targets/NVPTX.cpp b/clang/lib/Basic/Targets/NVPTX.cpp
index 8ca36fbcc38..f69e9d84c70 100644
--- a/clang/lib/Basic/Targets/NVPTX.cpp
+++ b/clang/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/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp b/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
index 88a86930ccd..48dcbbf3cab 100644
--- a/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
+++ b/clang/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<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:
OpenPOWER on IntegriCloud