[llvm] [AMDGPU] Simplify GetMember...::Get (NFC) (PR #137536)

via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 27 11:13:32 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-amdgpu

Author: Kazu Hirata (kazutakahirata)

<details>
<summary>Changes</summary>

We can use "constexpr if" to combine the two variants of functions.


---
Full diff: https://github.com/llvm/llvm-project/pull/137536.diff


1 Files Affected:

- (modified) llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp (+8-11) 


``````````diff
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 <typename U, typename std::enable_if_t<IsMCExpr##member::RESULT,  \
-                                                    U> * = nullptr>            \
-    static const MCExpr *&Get(U &C) {                                          \
-      assert(IsMCExpr##member::RESULT &&                                       \
-             "Trying to retrieve member that does not exist.");                \
-      return C.member;                                                         \
-    }                                                                          \
-    template <typename U, typename std::enable_if_t<!IsMCExpr##member::RESULT, \
-                                                    U> * = nullptr>            \
-    static const MCExpr *&Get(U &C) {                                          \
-      return Phony;                                                            \
+    template <typename U> 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;

``````````

</details>


https://github.com/llvm/llvm-project/pull/137536


More information about the llvm-commits mailing list