[llvm] [Offload] Define `_NUM_VARIANTS` macros for generated enumerations (PR #147314)
Ross Brunton via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 8 05:25:40 PDT 2025
https://github.com/RossBrunton updated https://github.com/llvm/llvm-project/pull/147314
>From 7f935596c22340f7b7af8379e6b895044f8c0056 Mon Sep 17 00:00:00 2001
From: Ross Brunton <ross at codeplay.com>
Date: Mon, 7 Jul 2025 16:00:43 +0100
Subject: [PATCH 1/2] [Offload] Define `_NUM_VARIANTS` macros for generated
enumerations
---
offload/tools/offload-tblgen/APIGen.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/offload/tools/offload-tblgen/APIGen.cpp b/offload/tools/offload-tblgen/APIGen.cpp
index 35b080e3c8011..2a49ac6cc3e77 100644
--- a/offload/tools/offload-tblgen/APIGen.cpp
+++ b/offload/tools/offload-tblgen/APIGen.cpp
@@ -151,6 +151,12 @@ static void ProcessEnum(const EnumRec &Enum, raw_ostream &OS) {
Enum.getEnumValNamePrefix());
OS << formatv("} {0};\n", Enum.getName());
+
+ // Add field for the number of variants
+ OS << formatv(TAB_1
+ "/// @brief Number of variants for the {0} enumeration\n" TAB_1
+ "#define {0}_NUM_VARIANTS {1}\n",
+ Enum.getEnumValNamePrefix(), EtorVal);
}
static void ProcessStruct(const StructRec &Struct, raw_ostream &OS) {
>From b44dcd793bd1b1d7e1852cc4abebb1cd17ca4d7b Mon Sep 17 00:00:00 2001
From: Ross Brunton <ross at codeplay.com>
Date: Tue, 8 Jul 2025 13:25:25 +0100
Subject: [PATCH 2/2] Use _LAST instead of a macro
---
offload/tools/offload-tblgen/APIGen.cpp | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/offload/tools/offload-tblgen/APIGen.cpp b/offload/tools/offload-tblgen/APIGen.cpp
index 2a49ac6cc3e77..c52642592e934 100644
--- a/offload/tools/offload-tblgen/APIGen.cpp
+++ b/offload/tools/offload-tblgen/APIGen.cpp
@@ -144,19 +144,13 @@ static void ProcessEnum(const EnumRec &Enum, raw_ostream &OS) {
EnumVal.getName(), EtorVal++);
}
- // Add force uint32 val
- OS << formatv(TAB_1 "/// @cond\n" TAB_1
+ // Add last_element/force uint32 val
+ OS << formatv(TAB_1 "/// @cond\n" TAB_1 "{0}_LAST = {1},\n" TAB_1
"{0}_FORCE_UINT32 = 0x7fffffff\n" TAB_1
"/// @endcond\n\n",
- Enum.getEnumValNamePrefix());
+ Enum.getEnumValNamePrefix(), EtorVal);
OS << formatv("} {0};\n", Enum.getName());
-
- // Add field for the number of variants
- OS << formatv(TAB_1
- "/// @brief Number of variants for the {0} enumeration\n" TAB_1
- "#define {0}_NUM_VARIANTS {1}\n",
- Enum.getEnumValNamePrefix(), EtorVal);
}
static void ProcessStruct(const StructRec &Struct, raw_ostream &OS) {
More information about the llvm-commits
mailing list