From patchwork Tue Sep 20 14:29:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Sandiford X-Patchwork-Id: 1320 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5044:0:0:0:0:0 with SMTP id h4csp1494472wrt; Tue, 20 Sep 2022 07:31:07 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6FTS5Azz4esC26xFSH8DLq9IfOd5E6SDbcKSnxisUy1w6ZjzERbDSQDKAoyUrNmBx6C9Ks X-Received: by 2002:a05:6402:5246:b0:452:76a7:934d with SMTP id t6-20020a056402524600b0045276a7934dmr20644450edd.137.1663684267100; Tue, 20 Sep 2022 07:31:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663684267; cv=none; d=google.com; s=arc-20160816; b=o8+Z+qDRx8I2hC4+m5CevU6fWePsgM8F5VCCt/XWtS0bmdNYF+dsXD+moynk4iWVfC YKFJw8XRpJH1ooxt3KGCq64Ts2wgflaNKsbVcK9Oaq29S4QPDQiXk4mkNHS8JwtBWNDp 7Pf2fu89nRO54k0OCgBQY7/9sJ2xs7I9u9QkhbjIB5QismlTJR+SoHVq3QUyyO5qVjQ7 XwG+VbD2OjEtC0OA2LuRKHlf3QeuDEI9lYmRPMxnuMCyprZ45oSJCGXrcmCLJufWN92c bXakm8x1c3ZPLCgPuDf7I7ZMwN1drNJkOKwDRcd1zokqxV6yjk2FSqnKyRaYjsNNOukP vm0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:mime-version :user-agent:message-id:date:subject:mail-followup-to:to:dmarc-filter :delivered-to:dkim-signature:dkim-filter; bh=cre9bwMyQdfIIL4F0Ov1TiBQcD1e5jDI2QqzhRK9zlQ=; b=dATpPMh2iu6kGWLtFyBBiBnmuqj209RD9W9ZX3PZIDrDzxR+gn0GiE+1YniVGQnPjb u6uUTbuk348mZZbWRo9SDTx/zPTXtFBgtCI6B+CL8U2G9vkC1IGqi5EozVVK7BDJWoZp LTChrpAHX2AVuUSCjsZo7dcCDxupbebPk8egWaZ2rRXyrjTtIwcSMCJkHzLrGD7c7OvE zL98rSf31eFLpA1rL5+PP6prA8KLpGHOy4f/p9JeEqIwqm9NAhn5cPeRJjCMj9VOdTQm /Sz+biScmhpbs+7oHI28E8UTrbqkJpXkmCJDKy5B+v9+G2ZVqXUj9rub4Aiqo2mdod+Y 5jKA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=xqkUFbXa; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id qw37-20020a1709066a2500b0077cfdda438csi1270509ejc.35.2022.09.20.07.31.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Sep 2022 07:31:07 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=xqkUFbXa; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 139553857340 for ; Tue, 20 Sep 2022 14:30:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 139553857340 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1663684232; bh=cre9bwMyQdfIIL4F0Ov1TiBQcD1e5jDI2QqzhRK9zlQ=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=xqkUFbXa/iUugkWtRA4/VV+l3PiShQ1zYEGfyUD/T+MhXWVv1pVCvZI9TgYTeQZ0M wxsrICft4Vk3EtPkVZfYyNjhOlzkWx2KQ25B8Q5MqBpjST6LgCy/Yb+6CmQJyMgRLK MJ22kK0JqT9B4kkeCIzAFSbWH1EXVS2i/cVtNTKc= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id BA067385AC1C for ; Tue, 20 Sep 2022 14:29:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BA067385AC1C Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CAA86ED1 for ; Tue, 20 Sep 2022 07:29:08 -0700 (PDT) Received: from localhost (e121540-lin.manchester.arm.com [10.32.98.62]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E8E443F73D for ; Tue, 20 Sep 2022 07:29:01 -0700 (PDT) To: gcc-patches@gcc.gnu.org Mail-Followup-To: gcc-patches@gcc.gnu.org, richard.sandiford@arm.com Subject: [pushed] aarch64: Fix GTY markup for arm_sve.h [PR106491] Date: Tue, 20 Sep 2022 15:29:00 +0100 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 X-Spam-Status: No, score=-47.7 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_NONE, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Richard Sandiford via Gcc-patches From: Richard Sandiford Reply-To: Richard Sandiford Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1744499394474494243?= X-GMAIL-MSGID: =?utf-8?q?1744499394474494243?= 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.) Tested on aarch64-linux-gnu & pushed. I'll backport to branches over the next few days. Richard 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. --- 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 9d78b270e47..12d9beee4da 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_functions;