From acce6b6082684d601e0375818260226259d96b7a Mon Sep 17 00:00:00 2001 From: Stanislav Mekhanoshin Date: Tue, 6 Oct 2020 10:05:43 -0700 Subject: [PATCH] [AMDGPU] Create isGFX9Plus utility function Introduce a utility function to make it more convenient to write code that is the same on the GFX9 and GFX10 subtargets. Use isGFX9Plus in the AsmParser for AMDGPU. Authored By: Joe_Nash Differential Revision: https://reviews.llvm.org/D88908 --- llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp | 6 +++++- llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp | 4 ++++ llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp index fae814a..9e5c7b8 100644 --- a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp +++ b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp @@ -1190,6 +1190,10 @@ public: return AMDGPU::isGFX9(getSTI()); } + bool isGFX9Plus() const { + return AMDGPU::isGFX9Plus(getSTI()); + } + bool isGFX10() const { return AMDGPU::isGFX10(getSTI()); } @@ -4699,7 +4703,7 @@ bool AMDGPUAsmParser::subtargetHasRegister(const MCRegisterInfo &MRI, for (MCRegAliasIterator R(AMDGPU::TTMP12_TTMP13_TTMP14_TTMP15, &MRI, true); R.isValid(); ++R) { if (*R == RegNo) - return isGFX9() || isGFX10(); + return isGFX9Plus(); } // GFX10 has 2 more SGPRs 104 and 105. diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp index 92cbbf3..ae0ff43 100644 --- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp +++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp @@ -1078,6 +1078,10 @@ bool isGFX9(const MCSubtargetInfo &STI) { return STI.getFeatureBits()[AMDGPU::FeatureGFX9]; } +bool isGFX9Plus(const MCSubtargetInfo &STI) { + return isGFX9(STI) || isGFX10(STI); +} + bool isGFX10(const MCSubtargetInfo &STI) { return STI.getFeatureBits()[AMDGPU::FeatureGFX10]; } diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h index c5feadb..e652603 100644 --- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h +++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h @@ -591,6 +591,7 @@ bool isSI(const MCSubtargetInfo &STI); bool isCI(const MCSubtargetInfo &STI); bool isVI(const MCSubtargetInfo &STI); bool isGFX9(const MCSubtargetInfo &STI); +bool isGFX9Plus(const MCSubtargetInfo &STI); bool isGFX10(const MCSubtargetInfo &STI); bool isGCN3Encoding(const MCSubtargetInfo &STI); bool isGFX10_BEncoding(const MCSubtargetInfo &STI); -- 2.7.4