From 0359aedd53838e52351fb0066c5af76182a33517 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sun, 27 Apr 2025 10:56:44 -0700 Subject: [PATCH 1/2] [AMDGPU] Simplify GetMember...::Get (NFC) We can use "constexpr if" to combine the two variants of functions. --- .../AMDGPU/Utils/AMDKernelCodeTUtils.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp index 8997911aa8ae1..ec6bede1a693d 100644 --- a/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp +++ b/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp @@ -72,17 +72,14 @@ using namespace llvm::AMDGPU; class GetMember##member { \ public: \ static const MCExpr *Phony; \ - template * = nullptr> \ - static const MCExpr *&Get(U &C) { \ - assert(IsMCExpr##member::RESULT && \ - "Trying to retrieve member that does not exist."); \ - return C.member; \ - } \ - template * = nullptr> \ - static const MCExpr *&Get(U &C) { \ - return Phony; \ + template static const MCExpr *&Get(U &C) { \ + if constexpr (IsMCExpr##member::RESULT) { \ + assert(IsMCExpr##member::RESULT && \ + "Trying to retrieve member that does not exist."); \ + return C.member; \ + } else { \ + return Phony; \ + } \ } \ }; \ const MCExpr *GetMember##member::Phony = nullptr; From 5467bd581df6f7088c25bf3d620b05e21d432934 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sun, 27 Apr 2025 12:33:26 -0700 Subject: [PATCH 2/2] Address a comment. --- llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp index ec6bede1a693d..0f4edd000d495 100644 --- a/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp +++ b/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp @@ -73,13 +73,10 @@ using namespace llvm::AMDGPU; public: \ static const MCExpr *Phony; \ template static const MCExpr *&Get(U &C) { \ - if constexpr (IsMCExpr##member::RESULT) { \ - assert(IsMCExpr##member::RESULT && \ - "Trying to retrieve member that does not exist."); \ + if constexpr (IsMCExpr##member::RESULT) \ return C.member; \ - } else { \ + else \ return Phony; \ - } \ } \ }; \ const MCExpr *GetMember##member::Phony = nullptr;