]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
IBM Z: Add GTY marker to builtin data structures
authorAndreas Krebbel <krebbel@linux.ibm.com>
Tue, 14 Nov 2023 10:33:45 +0000 (11:33 +0100)
committerAndreas Krebbel <krebbel@linux.ibm.com>
Tue, 14 Nov 2023 10:40:08 +0000 (11:40 +0100)
This adds GTY markers to s390_builtin_types, s390_builtin_fn_types,
and s390_builtin_decls. These were missing causing problems in
particular when using builtins after including a precompiled header.

Unfortunately the declaration of these data structures use enum values
from s390-builtins.h.  This file however is not included everywhere
and is rather large.  In order to include it only for the purpose of
gtype-desc.cc we place a preprocessed copy of it in the build
directory and include only this.

This is going to be backported to GCC 12 and 13.

gcc/ChangeLog:

* config.gcc: Add s390-gen-builtins.h to target_gtfiles.
* config/s390/s390-builtins.h (s390_builtin_types)
(s390_builtin_fn_types, s390_builtin_decls): Add GTY marker.
* config/s390/t-s390 (EXTRA_GTYPE_DEPS): Add s390-gen-builtins.h.
Add build rule for s390-gen-builtins.h.

gcc/config.gcc
gcc/config/s390/s390-builtins.h
gcc/config/s390/t-s390

index ba6d63e33ac66ad1ced3c17e22ceca7d62e4ccfe..c1460ca354e8f7baea3229312b17c63bd45f760a 100644 (file)
@@ -571,6 +571,7 @@ s390*-*-*)
        d_target_objs="s390-d.o"
        extra_options="${extra_options} fused-madd.opt"
        extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
+       target_gtfiles="./s390-gen-builtins.h"
        ;;
 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
 sh[123456789lbe]*-*-* | sh-*-*)
index 45bba876828b54a26205cd627b4f68d1ce5bb99f..84676fe5b3f203ef891cb78ef879017cb57351bd 100644 (file)
@@ -88,8 +88,8 @@ enum s390_builtin_ov_type_index
 
 #define MAX_OV_OPERANDS 6
 
-extern tree s390_builtin_types[BT_MAX];
-extern tree s390_builtin_fn_types[BT_FN_MAX];
+extern GTY(()) tree s390_builtin_types[BT_MAX];
+extern GTY(()) tree s390_builtin_fn_types[BT_FN_MAX];
 
   /* Builtins.  */
 
@@ -172,6 +172,6 @@ opflags_for_builtin (int fcode)
     return opflags_builtin[fcode];
 }
 
-extern tree s390_builtin_decls[S390_BUILTIN_MAX +
-                              S390_OVERLOADED_BUILTIN_MAX +
-                              S390_OVERLOADED_BUILTIN_VAR_MAX];
+extern GTY(()) tree s390_builtin_decls[S390_BUILTIN_MAX +
+                                      S390_OVERLOADED_BUILTIN_MAX +
+                                      S390_OVERLOADED_BUILTIN_VAR_MAX];
index 828818bed2d4bdf1b8a26573244d3b563a06431b..4ab9718f6e2734c63e02127fd9a5f9734f0b8ed3 100644 (file)
@@ -19,6 +19,7 @@
 TM_H += $(srcdir)/config/s390/s390-builtins.def
 TM_H += $(srcdir)/config/s390/s390-builtin-types.def
 PASSES_EXTRA += $(srcdir)/config/s390/s390-passes.def
+EXTRA_GTYPE_DEPS += ./s390-gen-builtins.h
 
 s390-c.o: $(srcdir)/config/s390/s390-c.cc \
   $(srcdir)/config/s390/s390-protos.h $(CONFIG_H) $(SYSTEM_H) coretypes.h \
@@ -30,3 +31,6 @@ s390-c.o: $(srcdir)/config/s390/s390-c.cc \
 s390-d.o: $(srcdir)/config/s390/s390-d.cc
        $(COMPILE) $<
        $(POSTCOMPILE)
+
+s390-gen-builtins.h: $(srcdir)/config/s390/s390-builtins.h
+       $(COMPILER) -E $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< > $@