12.0.1-0.13

This commit is contained in:
Jakub Jelinek 2022-04-01 15:19:26 +02:00
parent 967fa9b141
commit fc9926357a
6 changed files with 70 additions and 222 deletions

1
.gitignore vendored
View File

@ -67,3 +67,4 @@
/gcc-12.0.1-20220222.tar.xz
/gcc-12.0.1-20220306.tar.xz
/gcc-12.0.1-20220308.tar.xz
/gcc-12.0.1-20220401.tar.xz

View File

@ -1,5 +1,5 @@
%global DATE 20220308
%global gitrev a525ce3ad147ce96a7c5fad4099fe2155af45324
%global DATE 20220401
%global gitrev 8c714de722b2df674be4eda3e525a9c4a1eee009
%global gcc_version 12.0.1
%global gcc_major 12
# Note, gcc_release must be integer, if you want to add suffixes to
@ -120,7 +120,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
Release: %{gcc_release}.12%{?dist}
Release: %{gcc_release}.13%{?dist}
# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
# GCC Runtime Exception.
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
@ -270,9 +270,6 @@ Patch8: gcc12-no-add-needed.patch
Patch9: gcc12-Wno-format-security.patch
Patch10: gcc12-rh1574936.patch
Patch11: gcc12-d-shared-libphobos.patch
Patch12: gcc12-pr104781.patch
Patch13: gcc12-pr104777.patch
Patch14: gcc12-pr104839.patch
Patch100: gcc12-fortran-fdec-duplicates.patch
Patch101: gcc12-fortran-flogical-as-integer.patch
@ -794,9 +791,6 @@ to NVidia PTX capable devices if available.
%patch10 -p0 -b .rh1574936~
%endif
%patch11 -p0 -b .d-shared-libphobos~
%patch12 -p0 -b .pr104781~
%patch13 -p0 -b .pr104777~
%patch14 -p0 -b .pr104839~
%if 0%{?rhel} >= 9
%patch100 -p1 -b .fortran-fdec-duplicates~
@ -3170,6 +3164,71 @@ end
%endif
%changelog
* Fri Apr 1 2022 Jakub Jelinek <jakub@redhat.com> 12.0.1-0.13
- update from trunk
- PRs ada/104767, ada/104861, analyzer/95000, analyzer/99771,
analyzer/103533, analyzer/104308, analyzer/104793, analyzer/104863,
analyzer/104943, analyzer/104954, analyzer/104955, analyzer/104979,
analyzer/104997, analyzer/105017, analyzer/105057, analyzer/105074,
analyzer/105087, c++/39751, c++/58646, c++/59426, c++/65396,
c++/71637, c++/84964, c++/87820, c++/92918, c++/93280, c++/95999,
c++/96329, c++/96437, c++/96440, c++/96645, c++/96780, c++/98644,
c++/99445, c++/100474, c++/101030, c++/101515, c++/101767, c++/102045,
c++/102071, c++/102123, c++/102137, c++/102489, c++/102538,
c++/102740, c++/102869, c++/102990, c++/103177, c++/103291,
c++/103299, c++/103337, c++/103455, c++/103460, c++/103769,
c++/103943, c++/103968, c++/104008, c++/104108, c++/104284,
c++/104476, c++/104527, c++/104568, c++/104583, c++/104608,
c++/104620, c++/104622, c++/104623, c++/104641, c++/104752,
c++/104806, c++/104823, c++/104846, c++/104847, c++/104944,
c++/104994, c++/105003, c++/105006, c++/105035, c++/105050,
c++/105061, c++/105064, c++/105067, c++/105092, c/82283, c/84685,
c/98198, c/104711, d/103528, d/104911, d/105004, debug/104564,
debug/104778, fortran/50549, fortran/100892, fortran/103039,
fortran/103560, fortran/103691, fortran/104126, fortran/104570,
fortran/104571, fortran/104811, fortran/104849, fortran/104999,
ipa/102513, ipa/103083, ipa/103171, ipa/104813, jit/63854,
libgcc/86224, libgomp/105042, libstdc++/92546, libstdc++/103407,
libstdc++/104242, libstdc++/104859, libstdc++/104866,
libstdc++/104870, libstdc++/104875, libstdc++/104990,
libstdc++/105021, libstdc++/105027, lto/102426, middle-end/90115,
middle-end/98420, middle-end/99578, middle-end/100680,
middle-end/102330, middle-end/103597, middle-end/104086,
middle-end/104285, middle-end/104436, middle-end/104774,
middle-end/104786, middle-end/104869, middle-end/104885,
middle-end/104892, middle-end/104966, middle-end/104971,
middle-end/104975, middle-end/105032, middle-end/105049, other/65095,
other/102664, other/104899, other/105114, rtl-optimization/103775,
rtl-optimization/104814, rtl-optimization/104961,
rtl-optimization/104989, rtl-optimization/105028,
rtl-optimization/105091, sanitizer/105093, target/86722, target/91229,
target/94680, target/96882, target/99754, target/102125,
target/102215, target/102772, target/102986, target/103074,
target/104004, target/104666, target/104688, target/104714,
target/104762, target/104783, target/104790, target/104815,
target/104818, target/104829, target/104840, target/104842,
target/104857, target/104868, target/104882, target/104890,
target/104898, target/104902, target/104903, target/104910,
target/104916, target/104923, target/104925, target/104946,
target/104952, target/104957, target/104963, target/104967,
target/104974, target/104976, target/104977, target/104978,
target/104982, target/104998, target/105000, target/105011,
target/105052, target/105058, target/105066, target/105068,
testsuite/102841, testsuite/104759, testsuite/105055,
testsuite/105085, tree-optimization/80334, tree-optimization/84201,
tree-optimization/90356, tree-optimization/98335,
tree-optimization/100834, tree-optimization/101895,
tree-optimization/102008, tree-optimization/102586,
tree-optimization/102645, tree-optimization/102943,
tree-optimization/104645, tree-optimization/104755,
tree-optimization/104851, tree-optimization/104880,
tree-optimization/104941, tree-optimization/104942,
tree-optimization/104960, tree-optimization/104970,
tree-optimization/105012, tree-optimization/105053,
tree-optimization/105056, tree-optimization/105070,
tree-optimization/105080, tree-optimization/105094,
tree-optimization/105109
* Tue Mar 8 2022 Jakub Jelinek <jakub@redhat.com> 12.0.1-0.12
- fix up promoted SUBREG handling (#2045160, PR rtl-optimization/104839)
- fix up check for asm goto (PR rtl-optimization/104777)

View File

@ -1,61 +0,0 @@
2022-03-08 Marek Polacek <polacek@redhat.com>
PR rtl-optimization/104777
* rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
ASM_OPERANDS_LABEL_VEC has at least one element.
* gcc.dg/torture/tls/pr104777.c: New test.
--- gcc/rtl.cc
+++ gcc/rtl.cc
@@ -765,7 +765,7 @@ classify_insn (rtx x)
return CALL_INSN;
if (ANY_RETURN_P (x))
return JUMP_INSN;
- if (GET_CODE (x) == ASM_OPERANDS && ASM_OPERANDS_LABEL_VEC (x))
+ if (GET_CODE (x) == ASM_OPERANDS && ASM_OPERANDS_LABEL_LENGTH (x))
return JUMP_INSN;
if (GET_CODE (x) == SET)
{
@@ -794,7 +794,7 @@ classify_insn (rtx x)
if (has_return_p)
return JUMP_INSN;
if (GET_CODE (XVECEXP (x, 0, 0)) == ASM_OPERANDS
- && ASM_OPERANDS_LABEL_VEC (XVECEXP (x, 0, 0)))
+ && ASM_OPERANDS_LABEL_LENGTH (XVECEXP (x, 0, 0)))
return JUMP_INSN;
}
#ifdef GENERATOR_FILE
--- gcc/testsuite/gcc.dg/torture/tls/pr104777.c
+++ gcc/testsuite/gcc.dg/torture/tls/pr104777.c
@@ -0,0 +1,30 @@
+/* PR rtl-optimization/104777 */
+/* { dg-do compile } */
+/* { dg-require-effective-target tls } */
+
+int savestate_r;
+int savestate_ssb;
+extern void abort();
+__thread int loop;
+void f (void)
+{
+ int savestate_r0_5;
+ int savestate_r1_6;
+
+ __asm__("" : "=m" (savestate_ssb), "=r" (savestate_r));
+ savestate_r0_5 = savestate_r;
+ if (savestate_r0_5 == 0)
+ {
+ __asm__ __volatile__("" : : "m" (loop));
+ abort ();
+ }
+
+ __asm__("" : "=m" (savestate_ssb), "=r" (savestate_r));
+ savestate_r1_6 = savestate_r;
+ if (savestate_r1_6 != 0)
+ return;
+
+ __asm__ __volatile__("" : : "m" (loop));
+ abort ();
+
+}

View File

@ -1,81 +0,0 @@
Since eh_return doesn't work with stack realignment, disable SSE on
unwind-c.c and unwind-dw2.c to avoid stack realignment with the 4-byte
incoming stack to avoid SSE usage which is caused by
commit 609e8c492d62d92465460eae3d43dfc4b2c68288
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat Feb 26 14:17:23 2022 -0800
x86: Always return pseudo register in ix86_gen_scratch_sse_rtx
when pseudo vector registers are used to expand memset.
gcc/
PR target/104781
* config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
stack realignment with eh_return or regparm nested function.
* config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
gcc/testsuite/
PR target/104781
* gcc.target/i386/eh_return-1.c: Add -mincoming-stack-boundary=4.
* gcc.target/i386/eh_return-2.c: Likewise.
--- gcc/config/i386/i386.cc
+++ gcc/config/i386/i386.cc
@@ -9444,12 +9444,15 @@ ix86_expand_epilogue (int style)
rtx sa = EH_RETURN_STACKADJ_RTX;
rtx_insn *insn;
- /* %ecx can't be used for both DRAP register and eh_return. */
- if (crtl->drap_reg)
- gcc_assert (REGNO (crtl->drap_reg) != CX_REG);
+ /* Stack realignment doesn't work with eh_return. */
+ if (crtl->stack_realign_needed)
+ sorry ("Stack realignment not supported with "
+ "%<__builtin_eh_return%>");
/* regparm nested functions don't work with eh_return. */
- gcc_assert (!ix86_static_chain_on_stack);
+ if (ix86_static_chain_on_stack)
+ sorry ("regparm nested function not supported with "
+ "%<__builtin_eh_return%>");
if (frame_pointer_needed)
{
--- gcc/config/i386/i386.h.jj 2022-02-25 12:06:45.535493490 +0100
+++ gcc/config/i386/i386.h 2022-03-08 11:20:43.207043370 +0100
@@ -2848,6 +2848,12 @@ extern enum attr_cpu ix86_schedule;
#define NUM_X86_64_MS_CLOBBERED_REGS 12
#endif
+/* __builtin_eh_return can't handle stack realignment, so disable SSE in
+ libgcc functions that call it. */
+#ifndef __x86_64__
+#define LIBGCC2_UNWIND_ATTRIBUTE __attribute__((target ("no-sse")))
+#endif
+
/*
Local variables:
version-control: t
--- gcc/testsuite/gcc.target/i386/eh_return-1.c
+++ gcc/testsuite/gcc.target/i386/eh_return-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -march=haswell -mno-avx512f -mtune-ctrl=avx256_move_by_pieces" } */
+/* { dg-options "-O2 -mincoming-stack-boundary=4 -march=haswell -mno-avx512f -mtune-ctrl=avx256_move_by_pieces" } */
struct _Unwind_Context
{
--- gcc/testsuite/gcc.target/i386/eh_return-2.c
+++ gcc/testsuite/gcc.target/i386/eh_return-2.c
@@ -1,6 +1,6 @@
/* PR target/101772 */
/* { dg-do compile } */
-/* { dg-additional-options "-O0 -march=x86-64 -mstackrealign" } */
+/* { dg-additional-options "-O0 -mincoming-stack-boundary=4 -march=x86-64 -mstackrealign" } */
struct _Unwind_Context _Unwind_Resume_or_Rethrow_this_context;

View File

@ -1,70 +0,0 @@
2022-03-08 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/104839
* simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
(simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
instead of incorrect 0 in SUBREG_PROMOTED_SET.
* gcc.c-torture/execute/pr104839.c: New test.
--- gcc/simplify-rtx.cc.jj 2022-02-23 09:17:04.000000000 +0100
+++ gcc/simplify-rtx.cc 2022-03-08 16:31:20.823246404 +0100
@@ -1527,7 +1527,7 @@ simplify_context::simplify_unary_operati
if (partial_subreg_p (temp))
{
SUBREG_PROMOTED_VAR_P (temp) = 1;
- SUBREG_PROMOTED_SET (temp, 1);
+ SUBREG_PROMOTED_SET (temp, SRP_SIGNED);
}
return temp;
}
@@ -1662,7 +1662,7 @@ simplify_context::simplify_unary_operati
if (partial_subreg_p (temp))
{
SUBREG_PROMOTED_VAR_P (temp) = 1;
- SUBREG_PROMOTED_SET (temp, 0);
+ SUBREG_PROMOTED_SET (temp, SRP_UNSIGNED);
}
return temp;
}
--- gcc/testsuite/gcc.c-torture/execute/pr104839.c.jj 2022-03-08 16:46:51.418440078 +0100
+++ gcc/testsuite/gcc.c-torture/execute/pr104839.c 2022-03-08 16:46:27.044774203 +0100
@@ -0,0 +1,37 @@
+/* PR rtl-optimization/104839 */
+
+__attribute__((noipa)) short
+foo (void)
+{
+ return -1;
+}
+
+__attribute__((noipa)) int
+bar (void)
+{
+ short i = foo ();
+ if (i == -2)
+ return 2;
+ long k = i;
+ int j = -1;
+ volatile long s = 300;
+ if (k < 0)
+ {
+ k += s;
+ if (k < 0)
+ j = 0;
+ }
+ else if (k >= s)
+ j = 0;
+ if (j != -1)
+ return 1;
+ return 0;
+}
+
+int
+main ()
+{
+ if (bar () != 0)
+ __builtin_abort ();
+ return 0;
+}

View File

@ -1,4 +1,4 @@
SHA512 (gcc-12.0.1-20220308.tar.xz) = 4c714250c056d680ab5135317185e89e28ed9f6a70a5943eab3c610c38907b9696d07b141cda8d703a1fd1b93cf2407c0f92ab452c9f797c3da472748aed8844
SHA512 (gcc-12.0.1-20220401.tar.xz) = 6297c2c9828b9098ca5dad79ac5233d178264a5327522fbc61fce66940d4c551e37a7b5b070fe24942343c35920effef1cc8abf973e81105939bbb557bcf5846
SHA512 (isl-0.18.tar.bz2) = 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94
SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c
SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7