| Message ID | orh5x6x2cn.fsf@lxoliva.fsfla.org |
|---|---|
| State | Dropped |
| Headers |
Return-Path: <gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E56C23857B96 for <patchwork@sourceware.org>; Sat, 13 Sep 2025 07:02:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E56C23857B96 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256 header.s=google header.b=blCHc0gr X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) by sourceware.org (Postfix) with ESMTPS id BDD693857C5F for <gcc-patches@gcc.gnu.org>; Sat, 13 Sep 2025 07:02:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BDD693857C5F Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org BDD693857C5F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::42d ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1757746928; cv=none; b=INquFFoMMRMD+8TbTbSFA1HIPtqU0F3pC3DxbbDNVYyDQxYsKuZfmw6cD4dR3zxbpC/SQSb6v8+FAB+04Mh8rcIeAAUWCy5GawvVgWeUh3n8dTzKFqg8kS9WhfnH26C/uhySoZyOmO6r2RnTEuKGAEaIwjzi+TDcGU4z+3HFgyY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1757746928; c=relaxed/simple; bh=OpLolbReY8dpGOqnT7AA12cbJqOPz9yxM4ShoTxj0VY=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=unma/NhjKUzc4Ppb8R+0F/3KNXEqFFlV/hyWIVw+eqQOlXIyKSXUtV6HkE1r6WhDKS4kM9AqtD7+v3910tF2DMbNT1mQHYNlGL3RtyxtJO7mys+Awe8MWYYi16aOoDthxaUBWSrLgdtM1Tv1izY1gRWGcNrdh2L4Vt1snZAGHnU= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BDD693857C5F Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-77256e75eacso2374428b3a.0 for <gcc-patches@gcc.gnu.org>; Sat, 13 Sep 2025 00:02:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1757746927; x=1758351727; darn=gcc.gnu.org; h=mime-version:user-agent:message-id:in-reply-to:date:references :organization:subject:cc:to:from:from:to:cc:subject:date:message-id :reply-to; bh=v8iuC7f66zs2ENVT+lRYC85tnNLTACBrLR4xMD6GciQ=; b=blCHc0gr7/ptX/JceXTnq4mTabySbkLXeU4hr+JnSd63nF+u4ow6idBPTna0aR3g42 s99KQoMV/4ftNUNci8YRLRGqlDLuyQq8IPf4TfP8EuXNQhyyMwk/Efb/rMIPpRFc62Qa Yw9TfooAMnNZshekTvnkGmPV5oM7kZXiW5qo2/Hu06QxnPB5qYntDmkDVbcV/4UZdpGX tnNsF9dv9ixzm2j+3iSXyPX+rgU+aKrI7xfD1nQSFXQrIKewlXuXwtRH4FwK4MSylzHy l265MsUZPM4eHu74EpPj3KNVD/LEiVMPOxamExKjbgKiaX8bGu1S4K/u+hne7szR0vlT lcew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757746927; x=1758351727; h=mime-version:user-agent:message-id:in-reply-to:date:references :organization:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=v8iuC7f66zs2ENVT+lRYC85tnNLTACBrLR4xMD6GciQ=; b=XOs1yNFagZbaShDBk18Cd6knG3brD9wiy5E1zYasYj1p2p/vSziBE7r3gy79WRzpXO vYTZJ7pWN5u5cT2Kr+Kx7UTtqAYzw6xiP/dto0ffcoiX7rwGAA/Fcx+fPAh0qoNNoGpt MP0jGKNQn3RTCIFsAbyExgEBDuqBUslIbqfrrcKT2V82OWF82YI7psZWb7UitLzxx1YA FViEQMIdU1TcDr9SwmR+rhcDnPnWLg+rxvZMGh0l1+wziRUIz23glM8+fPep+CGurfxT QP5NuPSRJl/7TtRiIuQdLXhLf8R/Gib6B1PrHAnIBZVocwmmmSmew0g3iDHDfSyXkECo YNSw== X-Gm-Message-State: AOJu0YxXgusxKm21HEGkuQegf5SUskZFNmlB8ooseQlldxyeEJ6TK6en aW9Sk3FltRo4BE6xOh4hfLs2ShoaLmvpwczsq8qaO4/7YTi9o354IX8vIMkfE4UV+yP4ij8JeET 5JjngKQ== X-Gm-Gg: ASbGncs9kc6/PFi5LzVebXEXcaWm5ZyICzKeCq+Ni7BYFs/UXsmEBg3fHNnnc57vO5m cOWqSlZkHSxUq5HMaaOLm9Qkyi3DeHzvYMr1l6ky2lgHh8KxaFG8RfsjB9Uxsr11TL1NlLK82gf 1YGOsNdQ3SFsj4LyidUToVqa81sjzvGuonulgz0Q9EpwKRWPPIUAEdvXSdXIGTj5W/bZndWDlme /Vkz/qTLe4RZpe283LuIFYSILKt29FbRSD0NLdXrsh0uKEExNbpOw81KQJoaLZ/SLJ0lMq8d74+ hJpxXP4FW2dHw8nTVG6LiIWnnaiTvpnp13HPSjREABV8f2bJnQhOdeHV8kj9VyoBYr6eUDnhBGS bh1Oybhd+H3b241WlaHYv5klIRQ== X-Google-Smtp-Source: AGHT+IHXjY7glH5JVvIq3+5Z/JKNAhggR9wSwIPHhk2jPpwtr7n7aE245WtanQH1srMjfR7jBgaAUw== X-Received: by 2002:a05:6a21:999b:b0:245:fdeb:d273 with SMTP id adf61e73a8af0-26029fa0baamr6824159637.4.1757746926807; Sat, 13 Sep 2025 00:02:06 -0700 (PDT) Received: from free.home ([2804:7f1:218c:71:f23c:affb:45e1:1f0a]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b54a36d0d5bsm6679311a12.22.2025.09.13.00.02.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 13 Sep 2025 00:02:06 -0700 (PDT) Received: from livre (livre.home [172.31.160.2]) by free.home (8.15.2/8.15.2) with ESMTPS id 58D71iXk2083683 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Sat, 13 Sep 2025 04:01:45 -0300 From: Alexandre Oliva <oliva@adacore.com> To: gcc-patches@gcc.gnu.org Cc: Vladimir Makarov <vmakarov@redhat.com>, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>, Mike Stump <mikestump@comcast.net>, Richard Earnshaw <richard.earnshaw@arm.com>, Tamar Christina <tamar.christina@arm.com>, Kyrylo Tkachov <ktkachov@nvidia.com> Subject: [PATCH 1v1/2] [aarch64] [testsuite] accept ldr after failed ira-remat Organization: Free thinker, does not speak for AdaCore References: <orldmix3cw.fsf@lxoliva.fsfla.org> Date: Sat, 13 Sep 2025 04:01:44 -0300 In-Reply-To: <orldmix3cw.fsf@lxoliva.fsfla.org> (Alexandre Oliva's message of "Sat, 13 Sep 2025 03:39:59 -0300") Message-ID: <orh5x6x2cn.fsf@lxoliva.fsfla.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Scanned-By: MIMEDefang 2.84 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, WEIRD_QUOTING 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.30 Precedence: list List-Id: Gcc-patches mailing list <gcc-patches.gcc.gnu.org> List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe> List-Archive: <https://gcc.gnu.org/pipermail/gcc-patches/> List-Post: <mailto:gcc-patches@gcc.gnu.org> List-Help: <mailto:gcc-patches-request@gcc.gnu.org?subject=help> List-Subscribe: <https://gcc.gnu.org/mailman/listinfo/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe> Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org |
| Series |
sme/nonlocal_goto_* tests fail remat with PIE
|
|
Commit Message
Alexandre Oliva
Sept. 13, 2025, 7:01 a.m. UTC
When -fPIE is enabled (by default), nonlocal_goto tests fail because ira drops reg equivalences for function invariants such as stack addresses, and then, instead of the expected add instructions, we get ldr to restore the pseudo holding the address, as it ends up living in a stack slot across a call. Tested o aarch64-linux-gnu with --enable-default-pie. Ok to install? for gcc/testsuite/ChangeLog * gcc.target/aarch64/sme/nonlocal_goto_1.c: Accept ldr. * gcc.target/aarch64/sme/nonlocal_goto_2.c: Likewise. * gcc.target/aarch64/sme/nonlocal_goto_3.c: Likewise. --- .../gcc.target/aarch64/sme/nonlocal_goto_1.c | 2 +- .../gcc.target/aarch64/sme/nonlocal_goto_2.c | 2 +- .../gcc.target/aarch64/sme/nonlocal_goto_3.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
Comments
Hi Alexander, > -----Original Message----- > From: Alexandre Oliva <oliva@adacore.com> > Sent: Saturday, September 13, 2025 8:02 AM > To: gcc-patches@gcc.gnu.org > Cc: Vladimir Makarov <vmakarov@redhat.com>; Rainer Orth <ro@CeBiTec.Uni- > Bielefeld.DE>; Mike Stump <mikestump@comcast.net>; Richard Earnshaw > <Richard.Earnshaw@arm.com>; Tamar Christina <Tamar.Christina@arm.com>; > Kyrylo Tkachov <ktkachov@nvidia.com> > Subject: [PATCH 1v1/2] [aarch64] [testsuite] accept ldr after failed ira-remat > > > When -fPIE is enabled (by default), nonlocal_goto tests fail because > ira drops reg equivalences for function invariants such as stack > addresses, and then, instead of the expected add instructions, we get > ldr to restore the pseudo holding the address, as it ends up living in > a stack slot across a call. > > Tested o aarch64-linux-gnu with --enable-default-pie. Ok to install? > I have a slight preference for this one so we still see if the PIE codegen changes. So OK. Thanks, Tamar > > for gcc/testsuite/ChangeLog > > * gcc.target/aarch64/sme/nonlocal_goto_1.c: Accept ldr. > * gcc.target/aarch64/sme/nonlocal_goto_2.c: Likewise. > * gcc.target/aarch64/sme/nonlocal_goto_3.c: Likewise. > --- > .../gcc.target/aarch64/sme/nonlocal_goto_1.c | 2 +- > .../gcc.target/aarch64/sme/nonlocal_goto_2.c | 2 +- > .../gcc.target/aarch64/sme/nonlocal_goto_3.c | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c > b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c > index 11578279b9287..de9702e744519 100644 > --- a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c > +++ b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c > @@ -17,7 +17,7 @@ void run(void (*)()); > ** ldr x16, \1 > ** tbz x16, 0, .* > ** smstart sm > -** add x0, .* > +** (add|ldr) x0, .* > ** ldr x16, \1 > ** tbz x16, 0, .* > ** smstop sm > diff --git a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c > b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c > index 37dbcbae1a4f8..598db3cad38dd 100644 > --- a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c > +++ b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c > @@ -9,7 +9,7 @@ void run(void (*)()); > ** smstop sm > ** bl [^\n]*[cC]ache[^\n]* > ** smstart sm > -** add x0, .* > +** (add|ldr) x0, .* > ** smstop sm > ** bl run > ** smstart sm > diff --git a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c > b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c > index ae661653f3028..9aedd088d7807 100644 > --- a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c > +++ b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c > @@ -11,7 +11,7 @@ void run(void (*)()); > ** smstop sm > ** bl [^\n]*[cC]ache[^\n]* > ** smstart sm > -** add x0, .* > +** (add|ldr) x0, .* > ** smstop sm > ** bl run > ** smstart sm > > -- > Alexandre Oliva, happy hacker https://blog.lx.oliva.nom.br/ > Free Software Activist FSFLA co-founder GNU Toolchain Engineer > More tolerance and less prejudice are key for inclusion and diversity. > Excluding neuro-others for not behaving ""normal"" is *not* inclusive!
On Sep 19, 2025, Tamar Christina <Tamar.Christina@arm.com> wrote: > I have a slight preference for this one so we still see if the PIE codegen > changes. Thanks. With the RA change in, we don't have a need for the workarounds any more, so I'm *not* planning to check them in.
diff --git a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c index 11578279b9287..de9702e744519 100644 --- a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c @@ -17,7 +17,7 @@ void run(void (*)()); ** ldr x16, \1 ** tbz x16, 0, .* ** smstart sm -** add x0, .* +** (add|ldr) x0, .* ** ldr x16, \1 ** tbz x16, 0, .* ** smstop sm diff --git a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c index 37dbcbae1a4f8..598db3cad38dd 100644 --- a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c +++ b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c @@ -9,7 +9,7 @@ void run(void (*)()); ** smstop sm ** bl [^\n]*[cC]ache[^\n]* ** smstart sm -** add x0, .* +** (add|ldr) x0, .* ** smstop sm ** bl run ** smstart sm diff --git a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c index ae661653f3028..9aedd088d7807 100644 --- a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c +++ b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c @@ -11,7 +11,7 @@ void run(void (*)()); ** smstop sm ** bl [^\n]*[cC]ache[^\n]* ** smstart sm -** add x0, .* +** (add|ldr) x0, .* ** smstop sm ** bl run ** smstart sm