public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Richard Sandiford <rsandifo@gcc.gnu.org>
To: gcc-cvs@gcc.gnu.org
Subject: [gcc r10-10996] aarch64: Fix GTY markup for arm_sve.h [PR106491]
Date: Wed, 21 Sep 2022 13:17:52 +0000 (GMT)	[thread overview]
Message-ID: <20220921131752.692E83858018@sourceware.org> (raw)

https://gcc.gnu.org/g:c3fda946dedbb08df8eb46bb0120938c08f09742

commit r10-10996-gc3fda946dedbb08df8eb46bb0120938c08f09742
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Wed Sep 21 14:17:43 2022 +0100

    aarch64: Fix GTY markup for arm_sve.h [PR106491]
    
    It turns out that GTY(()) markers in definitions like:
    
      GTY(()) tree scalar_types[NUM_VECTOR_TYPES];
    
    are not effective and are silently ignored.  The GTY(()) has
    to come after an extern or static.
    
    The externs associated with the SVE ACLE GTY variables are in
    aarch64-sve-builtins.h.  This file is not in tm_include_list because
    we don't want every target-facing file to include it.  It therefore
    isn't in the list of GC header files either.
    
    In this case that's a blessing in disguise, since the variables
    belong to a namespace and gengtype doesn't understand namespaces.
    I think the fix is instead to add an extra extern before each
    variable declaration, similarly to varasm.cc and vtable-verify.cc.
    (This works due to a "using namespace" at the end of the file.)
    
    gcc/
            PR target/106491
            * config/aarch64/aarch64-sve-builtins.cc (scalar_types)
            (acle_vector_types, acle_svpattern, acle_svprfop): Add GTY
            markup to (new) extern declarations instead of to the main
            definition.
    
    (cherry picked from commit 6bf5a704d36243c4c04b17a9408ebe881beb0051)

Diff:
---
 gcc/config/aarch64/aarch64-sve-builtins.cc | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc b/gcc/config/aarch64/aarch64-sve-builtins.cc
index 336a1db662b..cb4564c821c 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins.cc
@@ -530,7 +530,8 @@ static CONSTEXPR const function_group_info function_groups[] = {
 };
 
 /* The scalar type associated with each vector type.  */
-GTY(()) tree scalar_types[NUM_VECTOR_TYPES];
+extern GTY(()) tree scalar_types[NUM_VECTOR_TYPES];
+tree scalar_types[NUM_VECTOR_TYPES];
 
 /* The single-predicate and single-vector types, with their built-in
    "__SV..._t" name.  Allow an index of NUM_VECTOR_TYPES, which always
@@ -538,13 +539,16 @@ GTY(()) tree scalar_types[NUM_VECTOR_TYPES];
 static GTY(()) tree abi_vector_types[NUM_VECTOR_TYPES + 1];
 
 /* Same, but with the arm_sve.h "sv..._t" name.  */
-GTY(()) tree acle_vector_types[MAX_TUPLE_SIZE][NUM_VECTOR_TYPES + 1];
+extern GTY(()) tree acle_vector_types[MAX_TUPLE_SIZE][NUM_VECTOR_TYPES + 1];
+tree acle_vector_types[MAX_TUPLE_SIZE][NUM_VECTOR_TYPES + 1];
 
 /* The svpattern enum type.  */
-GTY(()) tree acle_svpattern;
+extern GTY(()) tree acle_svpattern;
+tree acle_svpattern;
 
 /* The svprfop enum type.  */
-GTY(()) tree acle_svprfop;
+extern GTY(()) tree acle_svprfop;
+tree acle_svprfop;
 
 /* The list of all registered function decls, indexed by code.  */
 static GTY(()) vec<registered_function *, va_gc> *registered_functions;

                 reply	other threads:[~2022-09-21 13:17 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220921131752.692E83858018@sourceware.org \
    --to=rsandifo@gcc.gnu.org \
    --cc=gcc-cvs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).