[llvm] [Offload] Define `_NUM_VARIANTS` macros for generated enumerations (PR #147314)

Ross Brunton via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 7 08:01:27 PDT 2025


https://github.com/RossBrunton created https://github.com/llvm/llvm-project/pull/147314

None

>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] [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) {



More information about the llvm-commits mailing list