From 666ef0db208bb3880115bdc133e72e954ed55300 Mon Sep 17 00:00:00 2001 From: Tim Renouf Date: Tue, 6 Oct 2020 18:23:59 +0100 Subject: [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 --- llvm/lib/Object/ELFObjectFile.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'llvm/lib/Object/ELFObjectFile.cpp') diff --git a/llvm/lib/Object/ELFObjectFile.cpp b/llvm/lib/Object/ELFObjectFile.cpp index 91ed60a..1807a57 100644 --- a/llvm/lib/Object/ELFObjectFile.cpp +++ b/llvm/lib/Object/ELFObjectFile.cpp @@ -414,6 +414,8 @@ StringRef ELFObjectFileBase::getAMDGPUCPUName() const { return "gfx600"; case ELF::EF_AMDGPU_MACH_AMDGCN_GFX601: return "gfx601"; + case ELF::EF_AMDGPU_MACH_AMDGCN_GFX602: + return "gfx602"; // AMDGCN GFX7. case ELF::EF_AMDGPU_MACH_AMDGCN_GFX700: @@ -426,6 +428,8 @@ StringRef ELFObjectFileBase::getAMDGPUCPUName() const { return "gfx703"; case ELF::EF_AMDGPU_MACH_AMDGCN_GFX704: return "gfx704"; + case ELF::EF_AMDGPU_MACH_AMDGCN_GFX705: + return "gfx705"; // AMDGCN GFX8. case ELF::EF_AMDGPU_MACH_AMDGCN_GFX801: @@ -434,6 +438,8 @@ StringRef ELFObjectFileBase::getAMDGPUCPUName() const { return "gfx802"; case ELF::EF_AMDGPU_MACH_AMDGCN_GFX803: return "gfx803"; + case ELF::EF_AMDGPU_MACH_AMDGCN_GFX805: + return "gfx805"; case ELF::EF_AMDGPU_MACH_AMDGCN_GFX810: return "gfx810"; -- cgit v1.1