r345198 - Add gfx909 to GPU Arch
Author: tpr Date: Wed Oct 24 14:19:02 2018 New Revision: 345198 URL: http://llvm.org/viewvc/llvm-project?rev=345198&view=rev Log: Add gfx909 to GPU Arch Subscribers: jholewinski, cfe-commits Differential Revision: https://reviews.llvm.org/D53558 Modified: cfe/trunk/include/clang/Basic/Cuda.h cfe/trunk/lib/Basic/Cuda.cpp cfe/trunk/lib/Basic/Targets/NVPTX.cpp Modified: cfe/trunk/include/clang/Basic/Cuda.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Cuda.h?rev=345198&r1=345197&r2=345198&view=diff == --- cfe/trunk/include/clang/Basic/Cuda.h (original) +++ cfe/trunk/include/clang/Basic/Cuda.h Wed Oct 24 14:19:02 2018 @@ -64,6 +64,7 @@ enum class CudaArch { GFX902, GFX904, GFX906, + GFX909, LAST, }; const char *CudaArchToString(CudaArch A); Modified: cfe/trunk/lib/Basic/Cuda.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Cuda.cpp?rev=345198&r1=345197&r2=345198&view=diff == --- cfe/trunk/lib/Basic/Cuda.cpp (original) +++ cfe/trunk/lib/Basic/Cuda.cpp Wed Oct 24 14:19:02 2018 @@ -94,6 +94,8 @@ const char *CudaArchToString(CudaArch A) return "gfx904"; case CudaArch::GFX906: // TBA return "gfx906"; + case CudaArch::GFX909: // TBA +return "gfx909"; } llvm_unreachable("invalid enum"); } @@ -130,6 +132,7 @@ CudaArch StringToCudaArch(llvm::StringRe .Case("gfx902", CudaArch::GFX902) .Case("gfx904", CudaArch::GFX904) .Case("gfx906", CudaArch::GFX906) + .Case("gfx909", CudaArch::GFX909) .Default(CudaArch::UNKNOWN); } @@ -241,6 +244,7 @@ CudaVirtualArch VirtualArchForCudaArch(C case CudaArch::GFX902: case CudaArch::GFX904: case CudaArch::GFX906: + case CudaArch::GFX909: return CudaVirtualArch::COMPUTE_AMDGCN; } llvm_unreachable("invalid enum"); @@ -287,6 +291,7 @@ CudaVersion MinVersionForCudaArch(CudaAr case CudaArch::GFX902: case CudaArch::GFX904: case CudaArch::GFX906: + case CudaArch::GFX909: return CudaVersion::CUDA_70; } llvm_unreachable("invalid enum"); Modified: cfe/trunk/lib/Basic/Targets/NVPTX.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/NVPTX.cpp?rev=345198&r1=345197&r2=345198&view=diff == --- cfe/trunk/lib/Basic/Targets/NVPTX.cpp (original) +++ cfe/trunk/lib/Basic/Targets/NVPTX.cpp Wed Oct 24 14:19:02 2018 @@ -190,6 +190,7 @@ void NVPTXTargetInfo::getTargetDefines(c case CudaArch::GFX902: case CudaArch::GFX904: case CudaArch::GFX906: + case CudaArch::GFX909: case CudaArch::LAST: break; case CudaArch::UNKNOWN: ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 666ef0d - [AMDGPU] Add gfx602, gfx705, gfx805 targets
Author: Tim Renouf Date: 2020-10-10T17:22:22+01:00 New Revision: 666ef0db208bb3880115bdc133e72e954ed55300 URL: https://github.com/llvm/llvm-project/commit/666ef0db208bb3880115bdc133e72e954ed55300 DIFF: https://github.com/llvm/llvm-project/commit/666ef0db208bb3880115bdc133e72e954ed55300.diff LOG: [AMDGPU] Add gfx602, gfx705, gfx805 targets At AMD, in an internal audit of our code, we found some corner cases where we were not quite differentiating targets enough for some old hardware. This commit is part of fixing that by adding three new targets: * The "Oland" and "Hainan" variants of gfx601 are now split out into gfx602. LLPC (in the GPUOpen driver) and other front-ends could use that to avoid using the shaderZExport workaround on gfx602. * One variant of gfx703 is now split out into gfx705. LLPC and other front-ends could use that to avoid using the shaderSpiCsRegAllocFragmentation workaround on gfx705. * The "TongaPro" variant of gfx802 is now split out into gfx805. TongaPro has a faster 64-bit shift than its former friends in gfx802, and a subtarget feature could be set up for that to take advantage of it. This commit does not make that change; it just adds the target. V2: Add clang changes. Put TargetParser list in order. V3: AMDGCNGPUs table in TargetParser.cpp needs to be in GPUKind order, so fix the GPUKind order. Differential Revision: https://reviews.llvm.org/D88916 Change-Id: Ia901a7157eb2f73ccd9f25dbacec38427312377d Added: Modified: clang/include/clang/Basic/Cuda.h clang/lib/Basic/Cuda.cpp clang/lib/Basic/Targets/AMDGPU.cpp clang/lib/Basic/Targets/NVPTX.cpp clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp clang/test/CodeGenOpenCL/amdgpu-features.cl clang/test/Driver/amdgpu-macros.cl clang/test/Driver/amdgpu-mcpu.cl clang/test/Driver/cuda-arch-translation.cu clang/test/Misc/target-invalid-cpu-note.c llvm/docs/AMDGPUUsage.rst llvm/include/llvm/BinaryFormat/ELF.h llvm/include/llvm/Support/TargetParser.h llvm/lib/Object/ELFObjectFile.cpp llvm/lib/ObjectYAML/ELFYAML.cpp llvm/lib/Support/TargetParser.cpp llvm/lib/Target/AMDGPU/AMDGPU.td llvm/lib/Target/AMDGPU/GCNProcessors.td llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml llvm/test/tools/llvm-readobj/ELF/amdgpu-elf-headers.test llvm/tools/llvm-readobj/ELFDumper.cpp Removed: diff --git a/clang/include/clang/Basic/Cuda.h b/clang/include/clang/Basic/Cuda.h index 93394f31abdc..417d40c28adf 100644 --- a/clang/include/clang/Basic/Cuda.h +++ b/clang/include/clang/Basic/Cuda.h @@ -57,14 +57,17 @@ enum class CudaArch { SM_80, GFX600, GFX601, + GFX602, GFX700, GFX701, GFX702, GFX703, GFX704, + GFX705, GFX801, GFX802, GFX803, + GFX805, GFX810, GFX900, GFX902, diff --git a/clang/lib/Basic/Cuda.cpp b/clang/lib/Basic/Cuda.cpp index 7de42c1b90e5..42a8a097b1fd 100644 --- a/clang/lib/Basic/Cuda.cpp +++ b/clang/lib/Basic/Cuda.cpp @@ -73,15 +73,18 @@ CudaArchToStringMap arch_names[] = { SM(75), // Turing SM(80), // Ampere GFX(600), // tahiti -GFX(601), // pitcairn, verde, oland,hainan +GFX(601), // pitcairn, verde +GFX(602), // oland, hainan GFX(700), // kaveri GFX(701), // hawaii GFX(702), // 290,290x,R390,R390x GFX(703), // kabini mullins GFX(704), // bonaire +GFX(705), GFX(801), // carrizo GFX(802), // tonga,iceland GFX(803), // fiji,polaris10 +GFX(805), // tongapro GFX(810), // stoney GFX(900), // vega, instinct GFX(902), GFX(904), GFX(906), GFX(908), GFX(909), diff --git a/clang/lib/Basic/Targets/AMDGPU.cpp b/clang/lib/Basic/Targets/AMDGPU.cpp index ba9be72af971..42db207b9ce5 100644 --- a/clang/lib/Basic/Targets/AMDGPU.cpp +++ b/clang/lib/Basic/Targets/AMDGPU.cpp @@ -228,6 +228,7 @@ bool AMDGPUTargetInfo::initFeatureMap( Features["gfx9-insts"] = true; LLVM_FALLTHROUGH; case GK_GFX810: +case GK_GFX805: case GK_GFX803: case GK_GFX802: case GK_GFX801: @@ -236,6 +237,7 @@ bool AMDGPUTargetInfo::initFeatureMap( Features["dpp"] = true; Features["s-memrealtime"] = true; LLVM_FALLTHROUGH; +case GK_GFX705: case GK_GFX704: case GK_GFX703: case GK_GFX702: @@ -244,6 +246,7 @@ bool AMDGPUTargetInfo::initFeatureMap( Features["ci-insts"] = true; Features["flat-address-space"] = true; LLVM_FALLTHROUGH; +case GK_GFX602: case GK_GFX601: case GK_GFX600: break; diff --git a/clang/lib/Basic/Targets/NVPTX.cpp b/clang/lib/Basic/Targets/NVPTX.cpp index aae89477e97d..3780f1cc250c 100644 --- a/clang/lib/B
[clang] 89d41f3 - [AMDGPU] Add gfx1033 target
Author: Tim Renouf Date: 2020-11-03T16:27:48Z New Revision: 89d41f3a2b820c17edeb86a2e9d458ca69eca34e URL: https://github.com/llvm/llvm-project/commit/89d41f3a2b820c17edeb86a2e9d458ca69eca34e DIFF: https://github.com/llvm/llvm-project/commit/89d41f3a2b820c17edeb86a2e9d458ca69eca34e.diff LOG: [AMDGPU] Add gfx1033 target Differential Revision: https://reviews.llvm.org/D90447 Change-Id: If2650fc7f31bbdd49c76e74a9ca8e3734d769761 Added: Modified: clang/include/clang/Basic/Cuda.h clang/lib/Basic/Cuda.cpp clang/lib/Basic/Targets/AMDGPU.cpp clang/lib/Basic/Targets/NVPTX.cpp clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp clang/test/CodeGenOpenCL/amdgpu-features.cl clang/test/Driver/amdgpu-macros.cl clang/test/Driver/amdgpu-mcpu.cl llvm/docs/AMDGPUUsage.rst llvm/include/llvm/BinaryFormat/ELF.h llvm/include/llvm/Support/TargetParser.h llvm/lib/Object/ELFObjectFile.cpp llvm/lib/ObjectYAML/ELFYAML.cpp llvm/lib/Support/TargetParser.cpp llvm/lib/Target/AMDGPU/GCNProcessors.td llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll llvm/test/CodeGen/AMDGPU/hsa-note-no-func.ll llvm/test/MC/AMDGPU/gfx1011_dlops.s llvm/test/MC/AMDGPU/gfx1030_err.s llvm/test/MC/AMDGPU/gfx1030_new.s llvm/test/MC/Disassembler/AMDGPU/gfx1011_dasm_dlops.txt llvm/test/MC/Disassembler/AMDGPU/gfx1030_dasm_new.txt llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml llvm/test/tools/llvm-readobj/ELF/amdgpu-elf-headers.test llvm/tools/llvm-readobj/ELFDumper.cpp Removed: diff --git a/clang/include/clang/Basic/Cuda.h b/clang/include/clang/Basic/Cuda.h index 887030e2c49f..b3a2e99fe931 100644 --- a/clang/include/clang/Basic/Cuda.h +++ b/clang/include/clang/Basic/Cuda.h @@ -82,6 +82,7 @@ enum class CudaArch { GFX1030, GFX1031, GFX1032, + GFX1033, LAST, }; diff --git a/clang/lib/Basic/Cuda.cpp b/clang/lib/Basic/Cuda.cpp index 5977084b5cc1..d9f79a1a10d5 100644 --- a/clang/lib/Basic/Cuda.cpp +++ b/clang/lib/Basic/Cuda.cpp @@ -88,7 +88,7 @@ CudaArchToStringMap arch_names[] = { GFX(810), // stoney GFX(900), // vega, instinct GFX(902), GFX(904), GFX(906), GFX(908), GFX(909), GFX(90c), -GFX(1010), GFX(1011), GFX(1012), GFX(1030), GFX(1031) +GFX(1010), GFX(1011), GFX(1012), GFX(1030), GFX(1031), GFX(1032), GFX(1033) // clang-format on }; #undef SM diff --git a/clang/lib/Basic/Targets/AMDGPU.cpp b/clang/lib/Basic/Targets/AMDGPU.cpp index 5ee887d464c6..4d6a9a5e0b51 100644 --- a/clang/lib/Basic/Targets/AMDGPU.cpp +++ b/clang/lib/Basic/Targets/AMDGPU.cpp @@ -174,6 +174,7 @@ bool AMDGPUTargetInfo::initFeatureMap( // XXX - What does the member GPU mean if device name string passed here? if (isAMDGCN(getTriple())) { switch (llvm::AMDGPU::parseArchAMDGCN(CPU)) { +case GK_GFX1033: case GK_GFX1032: case GK_GFX1031: case GK_GFX1030: diff --git a/clang/lib/Basic/Targets/NVPTX.cpp b/clang/lib/Basic/Targets/NVPTX.cpp index 7a8ae0d7ce72..b7f0dce33d2b 100644 --- a/clang/lib/Basic/Targets/NVPTX.cpp +++ b/clang/lib/Basic/Targets/NVPTX.cpp @@ -207,6 +207,7 @@ void NVPTXTargetInfo::getTargetDefines(const LangOptions &Opts, case CudaArch::GFX1030: case CudaArch::GFX1031: case CudaArch::GFX1032: + case CudaArch::GFX1033: case CudaArch::LAST: break; case CudaArch::UNUSED: diff --git a/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp b/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp index 6fe99ed89dab..a3540bd30ab3 100644 --- a/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp +++ b/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp @@ -4647,6 +4647,7 @@ void CGOpenMPRuntimeGPU::processRequiresDirective( case CudaArch::GFX1030: case CudaArch::GFX1031: case CudaArch::GFX1032: + case CudaArch::GFX1033: case CudaArch::UNUSED: case CudaArch::UNKNOWN: break; @@ -4714,6 +4715,7 @@ static std::pair getSMsBlocksPerSM(CodeGenModule &CGM) { case CudaArch::GFX1030: case CudaArch::GFX1031: case CudaArch::GFX1032: + case CudaArch::GFX1033: case CudaArch::UNUSED: case CudaArch::UNKNOWN: break; diff --git a/clang/test/CodeGenOpenCL/amdgpu-features.cl b/clang/test/CodeGenOpenCL/amdgpu-features.cl index 67ddf6c70df1..813b39d9ec7b 100644 --- a/clang/test/CodeGenOpenCL/amdgpu-features.cl +++ b/clang/test/CodeGenOpenCL/amdgpu-features.cl @@ -19,6 +19,7 @@ // RUN: %clang_cc1 -triple amdgcn -target-cpu gfx1030 -S -emit-llvm -o - %s | FileCheck --check-prefix=GFX1030 %s // RUN: %clang_cc1 -triple amdgcn -target-cpu gfx1031 -S -emit-llvm -o - %s | FileCheck --check-prefix=GFX1031 %s // RUN: %clang_cc1 -triple amdgcn -target-cpu gfx1032 -S -emit-llvm -o - %s | FileCheck --check-prefix=GFX1032 %s +// RUN: %clang_cc1 -triple amdgcn -target-cpu gfx1033 -S -emit-llvm -o - %s | FileCh
[clang] ee3e642 - [AMDGPU] Add gfx90c target
Author: Tim Renouf Date: 2020-11-03T16:27:43Z New Revision: ee3e642627575bc8fb0a7008f8a02c891e172b7b URL: https://github.com/llvm/llvm-project/commit/ee3e642627575bc8fb0a7008f8a02c891e172b7b DIFF: https://github.com/llvm/llvm-project/commit/ee3e642627575bc8fb0a7008f8a02c891e172b7b.diff LOG: [AMDGPU] Add gfx90c target This differentiates the Ryzen 4000/4300/4500/4700 series APUs that were previously included in gfx909. Differential Revision: https://reviews.llvm.org/D90419 Change-Id: Ia901a7157eb2f73ccd9f25dbacec38427312377d Added: Modified: clang/include/clang/Basic/Cuda.h clang/lib/Basic/Cuda.cpp clang/lib/Basic/Targets/AMDGPU.cpp clang/lib/Basic/Targets/NVPTX.cpp clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp clang/test/CodeGenOpenCL/amdgpu-features.cl clang/test/Driver/amdgpu-macros.cl clang/test/Driver/amdgpu-mcpu.cl llvm/docs/AMDGPUUsage.rst llvm/include/llvm/BinaryFormat/ELF.h llvm/include/llvm/Support/TargetParser.h llvm/lib/Object/ELFObjectFile.cpp llvm/lib/ObjectYAML/ELFYAML.cpp llvm/lib/Support/TargetParser.cpp llvm/lib/Target/AMDGPU/AMDGPU.td llvm/lib/Target/AMDGPU/GCNProcessors.td llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml llvm/test/tools/llvm-readobj/ELF/amdgpu-elf-headers.test llvm/tools/llvm-readobj/ELFDumper.cpp Removed: diff --git a/clang/include/clang/Basic/Cuda.h b/clang/include/clang/Basic/Cuda.h index 501e47b0e2c2..887030e2c49f 100644 --- a/clang/include/clang/Basic/Cuda.h +++ b/clang/include/clang/Basic/Cuda.h @@ -75,6 +75,7 @@ enum class CudaArch { GFX906, GFX908, GFX909, + GFX90c, GFX1010, GFX1011, GFX1012, diff --git a/clang/lib/Basic/Cuda.cpp b/clang/lib/Basic/Cuda.cpp index 42a8a097b1fd..5977084b5cc1 100644 --- a/clang/lib/Basic/Cuda.cpp +++ b/clang/lib/Basic/Cuda.cpp @@ -87,7 +87,7 @@ CudaArchToStringMap arch_names[] = { GFX(805), // tongapro GFX(810), // stoney GFX(900), // vega, instinct -GFX(902), GFX(904), GFX(906), GFX(908), GFX(909), +GFX(902), GFX(904), GFX(906), GFX(908), GFX(909), GFX(90c), GFX(1010), GFX(1011), GFX(1012), GFX(1030), GFX(1031) // clang-format on }; diff --git a/clang/lib/Basic/Targets/AMDGPU.cpp b/clang/lib/Basic/Targets/AMDGPU.cpp index 0b3aebdfa15c..5ee887d464c6 100644 --- a/clang/lib/Basic/Targets/AMDGPU.cpp +++ b/clang/lib/Basic/Targets/AMDGPU.cpp @@ -222,6 +222,7 @@ bool AMDGPUTargetInfo::initFeatureMap( Features["dot1-insts"] = true; Features["dot2-insts"] = true; LLVM_FALLTHROUGH; +case GK_GFX90C: case GK_GFX909: case GK_GFX904: case GK_GFX902: diff --git a/clang/lib/Basic/Targets/NVPTX.cpp b/clang/lib/Basic/Targets/NVPTX.cpp index 26c5b26beeef..7a8ae0d7ce72 100644 --- a/clang/lib/Basic/Targets/NVPTX.cpp +++ b/clang/lib/Basic/Targets/NVPTX.cpp @@ -200,6 +200,7 @@ void NVPTXTargetInfo::getTargetDefines(const LangOptions &Opts, case CudaArch::GFX906: case CudaArch::GFX908: case CudaArch::GFX909: + case CudaArch::GFX90c: case CudaArch::GFX1010: case CudaArch::GFX1011: case CudaArch::GFX1012: diff --git a/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp b/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp index 08903a1444c2..6fe99ed89dab 100644 --- a/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp +++ b/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp @@ -4640,6 +4640,7 @@ void CGOpenMPRuntimeGPU::processRequiresDirective( case CudaArch::GFX906: case CudaArch::GFX908: case CudaArch::GFX909: + case CudaArch::GFX90c: case CudaArch::GFX1010: case CudaArch::GFX1011: case CudaArch::GFX1012: @@ -4706,6 +4707,7 @@ static std::pair getSMsBlocksPerSM(CodeGenModule &CGM) { case CudaArch::GFX906: case CudaArch::GFX908: case CudaArch::GFX909: + case CudaArch::GFX90c: case CudaArch::GFX1010: case CudaArch::GFX1011: case CudaArch::GFX1012: diff --git a/clang/test/CodeGenOpenCL/amdgpu-features.cl b/clang/test/CodeGenOpenCL/amdgpu-features.cl index 6a27c047d58c..67ddf6c70df1 100644 --- a/clang/test/CodeGenOpenCL/amdgpu-features.cl +++ b/clang/test/CodeGenOpenCL/amdgpu-features.cl @@ -12,6 +12,7 @@ // RUN: %clang_cc1 -triple amdgcn -target-cpu gfx906 -S -emit-llvm -o - %s | FileCheck --check-prefix=GFX906 %s // RUN: %clang_cc1 -triple amdgcn -target-cpu gfx908 -S -emit-llvm -o - %s | FileCheck --check-prefix=GFX908 %s // RUN: %clang_cc1 -triple amdgcn -target-cpu gfx909 -S -emit-llvm -o - %s | FileCheck --check-prefix=GFX909 %s +// RUN: %clang_cc1 -triple amdgcn -target-cpu gfx90c -S -emit-llvm -o - %s | FileCheck --check-prefix=GFX90C %s // RUN: %clang_cc1 -triple amdgcn -target-cpu gfx1010 -S -emit-llvm -o - %s | FileCheck --check-prefix=GFX1010 %s // RUN: %clang_cc1 -t