gcc15: 15.2.0 -> 15.3.0 (#532074)

This commit is contained in:
Philip Taron 2026-06-18 00:02:21 +00:00 committed by GitHub
commit eb7592ed12
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 5 additions and 93 deletions

View file

@ -54,6 +54,8 @@
# GCC
gcc = [
"https://gcc.gnu.org/pub/gcc/"
"https://sourceware.org/pub/gcc/"
"https://mirror.koddos.net/gcc/"
"https://bigsearcher.com/mirrors/gcc/"
"ftp://ftp.nluug.nl/mirror/languages/gcc/"

View file

@ -14,7 +14,7 @@
}@packageSetArgs:
let
versions = {
"15.2.0".officialRelease.sha256 = "sha256-Q4/ZloJrDIJIWinaA6ctcdbjVBqD7HAt9Ccfb+Al0k4=";
"15.3.0".officialRelease.sha256 = "sha256-+lnBvu+JlfJ8TXHB3yJ1hxiTFdPm+v8btDBuYbDFMOs=";
}
// gccVersions;

View file

@ -1,87 +0,0 @@
Without the change `libhwy-1.3.0` ICEs when built for aarch64-linux as:
https://github.com/NixOS/nixpkgs/pull/320616#issuecomment-3764400891
Upstream report: http://gcc.gnu.org/PR120718
Upstream fix: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=d755aa03db0ad5b71ee7f39b09c92870789f2f00
Fetched as:
$ curl -L 'https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=d755aa03db0ad5b71ee7f39b09c92870789f2f00' > aarch64-sve-rtx.patch
From: Richard Sandiford <richard.sandiford@arm.com>
Date: Thu, 14 Aug 2025 16:56:50 +0000 (+0100)
Subject: Remove MODE_COMPOSITE_P test from simplify_gen_subreg [PR120718]
X-Git-Url: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=d755aa03db0ad5b71ee7f39b09c92870789f2f00
Remove MODE_COMPOSITE_P test from simplify_gen_subreg [PR120718]
simplify_gen_subreg rejected subregs of literal constants if
MODE_COMPOSITE_P. This was added by the fix for PR96648 in
g:c0f772894b6b3cd8ed5c5dd09d0c7917f51cf70f. Jakub said:
As for the simplify_gen_subreg change, I think it would be desirable
to just avoid creating SUBREGs of constants on all targets and for all
constants, if simplify_immed_subreg simplified, fine, otherwise punt,
but as we are late in GCC11 development, the patch instead guards this
behavior on MODE_COMPOSITE_P (outermode) - i.e. only conversions to
powerpc{,64,64le} double double long double - and only for the cases where
simplify_immed_subreg was called.
I'm not sure about relaxing the codes further, since subregs might
be wanted for CONST, SYMBOL_REF and LABEL_REF. But removing the
MODE_COMPOSITE_P is needed to fix PR120718, where we get an ICE
from generating a subreg of a V2SI const_vector.
Unlike the trunk version, this backport does not remove the
VOIDmode test; see PR121501.
gcc/
PR rtl-optimization/120718
* simplify-rtx.cc (simplify_context::simplify_gen_subreg):
Remove MODE_COMPOSITE_P condition.
gcc/testsuite/
PR rtl-optimization/120718
* gcc.target/aarch64/sve/acle/general/pr120718.c: New test.
---
diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc
index 88d31a71c05a..8d4cbf1371a3 100644
--- a/gcc/simplify-rtx.cc
+++ b/gcc/simplify-rtx.cc
@@ -8317,14 +8317,11 @@ simplify_context::simplify_gen_subreg (machine_mode outermode, rtx op,
if (GET_CODE (op) == SUBREG
|| GET_CODE (op) == CONCAT
- || GET_MODE (op) == VOIDmode)
- return NULL_RTX;
-
- if (MODE_COMPOSITE_P (outermode)
- && (CONST_SCALAR_INT_P (op)
- || CONST_DOUBLE_AS_FLOAT_P (op)
- || CONST_FIXED_P (op)
- || GET_CODE (op) == CONST_VECTOR))
+ || GET_MODE (op) == VOIDmode
+ || CONST_SCALAR_INT_P (op)
+ || CONST_DOUBLE_AS_FLOAT_P (op)
+ || CONST_FIXED_P (op)
+ || GET_CODE (op) == CONST_VECTOR)
return NULL_RTX;
if (validate_subreg (outermode, innermode, op, byte))
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr120718.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr120718.c
new file mode 100644
index 000000000000..9ca0938e36bf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr120718.c
@@ -0,0 +1,12 @@
+/* { dg-options "-O2" } */
+
+#include <arm_sve.h>
+typedef int __attribute__((vector_size(8))) v2si;
+typedef struct { int x; int y; } A;
+void bar(A a);
+void foo()
+{
+ A a;
+ *(v2si *)&a = (v2si){0, (int)svcntd_pat(SV_ALL)};
+ bar(a);
+}

View file

@ -112,9 +112,6 @@ optionals noSysDirs (
# c++tools: Don't check --enable-default-pie.
# --enable-default-pie breaks bootstrap gcc otherwise, because libiberty.a is not found
++ optional (is14 || is15) ./c++tools-dont-check-enable-default-pie.patch
# http://gcc.gnu.org/PR120718 backport (will be inclkuded in 15.3.0) to
# fix `highway-1.3.0` ICE on aarch64-linux.
++ optional is15 ./15/aarch64-sve-rtx.patch
## 2. Patches relevant on specific platforms ####################################

View file

@ -1,7 +1,7 @@
let
majorMinorToVersionMap = {
"16" = "16.1.0";
"15" = "15.2.0";
"15" = "15.3.0";
"14" = "14.3.0";
"13" = "13.4.0";
};
@ -15,7 +15,7 @@ let
# 3 digits: releases (14.2.0)
# 4 digits: snapshots (14.2.1.20250322)
"16.1.0" = "sha256-UO+02Uwzl6/zsNYaWr10i03THZ0/Kre+BbFx02pRD3k=";
"15.2.0" = "sha256-Q4/ZloJrDIJIWinaA6ctcdbjVBqD7HAt9Ccfb+Al0k4=";
"15.3.0" = "sha256-+lnBvu+JlfJ8TXHB3yJ1hxiTFdPm+v8btDBuYbDFMOs=";
"14.3.0" = "sha256-4Nx3KXYlYxrI5Q+pL//v6Jmk63AlktpcMu8E4ik6yjo=";
"13.4.0" = "sha256-nEzm27BAVo/cVFWIrAPFy8lajb8MeqSQFwhDr7WcqPU=";
}