[gcc r17-2939] aarch64: Use variadic arguments

Karl Meakin via Gcc-cvs <[email protected]> Tue, 4 Aug 2026 14:24:17 +0000 (GMT)
Newsgroups gmane.comp.gcc.cvs
Message-ID <[email protected]>
https://gcc.gnu.org/g:291a1a78d6f43d3273d290bbfe28dda39da274b4

commit r17-2939-g291a1a78d6f43d3273d290bbfe28dda39da274b4
Author: Karl Meakin <[email protected]>
Date:   Tue Sep 16 17:30:11 2025 +0000

    aarch64: Use variadic arguments
    
    When defining various index enums (eg `vector_type_index`,
    `mode_suffix_index`) we are only interested in the name (the first
    argument). So all the other arguments to the `DEF_` macro can be ignored
    by using `...`.
    
    gcc/ChangeLog:
    
            * config/aarch64/aarch64-builtins.h (DEF_SIMD_TYPE): Use
            variadic arguments.
            * config/aarch64/aarch64-acle-builtins.h (DEF_SVE_TYPE): Likewise.
            (DEF_SVE_MODE): Likewise.
            (DEF_SVE_NEON_TYPE_SUFFIX): Likewise.
            (DEF_SME_ZA_SUFFIX): Likewise.
            (DEF_SVE_GROUP_SUFFIX): Likewise.

Diff:
---
 gcc/config/aarch64/aarch64-acle-builtins.h | 14 +++++---------
 gcc/config/aarch64/aarch64-builtins.h      |  2 +-
 2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/gcc/config/aarch64/aarch64-acle-builtins.h b/gcc/config/aarch64/aarch64-acle-builtins.h
index 415cdaaf757f..c9b030f6eb61 100644
--- a/gcc/config/aarch64/aarch64-acle-builtins.h
+++ b/gcc/config/aarch64/aarch64-acle-builtins.h
@@ -111,8 +111,7 @@ const unsigned int CP_WRITE_ZT0 = 1U << 10;
    "vector types" for brevity.  */
 enum vector_type_index
 {
-#define DEF_SVE_TYPE(ACLE_NAME, NCHARS, ABI_NAME, SCALAR_TYPE) \
-  VECTOR_TYPE_ ## ACLE_NAME,
+#define DEF_SVE_TYPE(ACLE_NAME, ...) VECTOR_TYPE_##ACLE_NAME,
 #include "aarch64-sve-builtins.def"
   NUM_VECTOR_TYPES
 };
@@ -199,7 +198,7 @@ enum type_class_index
    and the first type suffix.  */
 enum mode_suffix_index
 {
-#define DEF_SVE_MODE(NAME, BASE, DISPLACEMENT, UNITS) MODE_##NAME,
+#define DEF_SVE_MODE(NAME, ...) MODE_##NAME,
 #include "aarch64-sve-builtins.def"
   MODE_none
 };
@@ -209,11 +208,8 @@ enum mode_suffix_index
    element size.  */
 enum type_suffix_index
 {
-#define DEF_SVE_NEON_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE, \
-				 NEON64, NEON128)		     \
-  TYPE_SUFFIX_ ## NAME,
-#define DEF_SME_ZA_SUFFIX(NAME, BITS, MODE) \
-  TYPE_SUFFIX_ ## NAME,
+#define DEF_SVE_NEON_TYPE_SUFFIX(NAME, ...) TYPE_SUFFIX_##NAME,
+#define DEF_SME_ZA_SUFFIX(NAME, ...) TYPE_SUFFIX_##NAME,
 #include "aarch64-sve-builtins.def"
   NUM_TYPE_SUFFIXES
 };
@@ -223,7 +219,7 @@ enum type_suffix_index
    and the number of vectors in the largest tuple argument.  */
 enum group_suffix_index
 {
-#define DEF_SVE_GROUP_SUFFIX(NAME, VG, VECTORS_PER_TUPLE) GROUP_##NAME,
+#define DEF_SVE_GROUP_SUFFIX(NAME, ...) GROUP_##NAME,
 #include "aarch64-sve-builtins.def"
   GROUP_none,
   NUM_GROUP_SUFFIXES
diff --git a/gcc/config/aarch64/aarch64-builtins.h b/gcc/config/aarch64/aarch64-builtins.h
index 29e3b85a29da..372d3a5b0888 100644
--- a/gcc/config/aarch64/aarch64-builtins.h
+++ b/gcc/config/aarch64/aarch64-builtins.h
@@ -60,9 +60,9 @@ enum aarch64_type_qualifiers
   qualifier_modal_float = 0x2000,
 };
 
-#define DEF_SIMD_TYPE(E, M, Q, G) E,
 enum aarch64_simd_type
 {
+#define DEF_SIMD_TYPE(NAME, ...) NAME,
 #include "aarch64-simd-builtin-types.def"
   ARM_NEON_H_TYPES_LAST
 };