commit: 2dd1daa1a22e7590ab905ce0e84dde60675bec1b Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Thu Aug 21 16:10:58 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Thu Aug 21 16:11:28 2025 +0000 URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=2dd1daa1
16.0.0: drop upstreamed TLS ICE patch Signed-off-by: Sam James <sam <AT> gentoo.org> 16.0.0/gentoo/88_all_PR121607-TLS-ICE.patch | 173 ---------------------------- 16.0.0/gentoo/README.history | 1 - 2 files changed, 174 deletions(-) diff --git a/16.0.0/gentoo/88_all_PR121607-TLS-ICE.patch b/16.0.0/gentoo/88_all_PR121607-TLS-ICE.patch deleted file mode 100644 index a156cb1..0000000 --- a/16.0.0/gentoo/88_all_PR121607-TLS-ICE.patch +++ /dev/null @@ -1,173 +0,0 @@ -From e22c8a8cd7aef8938722e0ea6719dd1298d48812 Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" <[email protected]> -Date: Wed, 20 Aug 2025 06:59:48 -0700 -Subject: [PATCH] x86-64: Emit the TLS call after NOTE_INSN_BASIC_BLOCK -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -For a basic block with only a label: - -(code_label 78 11 77 3 14 (nil) [1 uses]) -(note 77 78 54 3 [bb 3] NOTE_INSN_BASIC_BLOCK) - -emit the TLS call after NOTE_INSN_BASIC_BLOCK, instead of before -NOTE_INSN_BASIC_BLOCK, to avoid - -x.c: In function ‘aout_16_write_syms’: -x.c:54:1: error: NOTE_INSN_BASIC_BLOCK is missing for block 3 - 54 | } - | ^ -x.c:54:1: error: NOTE_INSN_BASIC_BLOCK 77 in middle of basic block 3 -during RTL pass: x86_cse -x.c:54:1: internal compiler error: verify_flow_info failed - -gcc/ - - PR target/121607 - * config/i386/i386-features.cc (ix86_emit_tls_call): Emit the - TLS call after NOTE_INSN_BASIC_BLOCK in a basic block with only - a label. - -gcc/testsuite/ - - PR target/121607 - * gcc.target/i386/pr121607-1a.c: New test. - * gcc.target/i386/pr121607-1b.c: Likewise. - -Signed-off-by: H.J. Lu <[email protected]> ---- - gcc/config/i386/i386-features.cc | 24 +++++++-- - gcc/testsuite/gcc.target/i386/pr121607-1a.c | 59 +++++++++++++++++++++ - gcc/testsuite/gcc.target/i386/pr121607-1b.c | 6 +++ - 3 files changed, 86 insertions(+), 3 deletions(-) - create mode 100644 gcc/testsuite/gcc.target/i386/pr121607-1a.c - create mode 100644 gcc/testsuite/gcc.target/i386/pr121607-1b.c - -diff --git a/gcc/config/i386/i386-features.cc b/gcc/config/i386/i386-features.cc -index 7869ee22b67..514d2a5d378 100644 ---- a/gcc/config/i386/i386-features.cc -+++ b/gcc/config/i386/i386-features.cc -@@ -3795,7 +3795,18 @@ ix86_emit_tls_call (rtx tls_set, x86_cse_kind kind, basic_block bb, - while (insn && !NONDEBUG_INSN_P (insn)) - { - if (insn == BB_END (bb)) -- break; -+ { -+ /* This must be a basic block with only a label: -+ -+ (code_label 78 11 77 3 14 (nil) [1 uses]) -+ (note 77 78 54 3 [bb 3] NOTE_INSN_BASIC_BLOCK) -+ -+ */ -+ gcc_assert (NOTE_P (insn) -+ && NOTE_KIND (insn) == NOTE_INSN_BASIC_BLOCK); -+ insn = NULL; -+ break; -+ } - insn = NEXT_INSN (insn); - } - -@@ -3824,14 +3835,21 @@ ix86_emit_tls_call (rtx tls_set, x86_cse_kind kind, basic_block bb, - - if (bitmap_empty_p (live_caller_saved_regs)) - { -- if (insn == BB_HEAD (bb) || insn == BB_END (bb)) -+ if (insn == BB_HEAD (bb)) - { - *before_p = insn; - tls_insn = emit_insn_before (tls_set, insn); - } - else - { -- insn = PREV_INSN (insn); -+ /* Emit the TLS call after NOTE_INSN_BASIC_BLOCK in a -+ basic block with only a label: -+ -+ (code_label 78 11 77 3 14 (nil) [1 uses]) -+ (note 77 78 54 3 [bb 3] NOTE_INSN_BASIC_BLOCK) -+ -+ */ -+ insn = insn ? PREV_INSN (insn) : BB_END (bb); - *after_p = insn; - tls_insn = emit_insn_after (tls_set, insn); - } -diff --git a/gcc/testsuite/gcc.target/i386/pr121607-1a.c b/gcc/testsuite/gcc.target/i386/pr121607-1a.c -new file mode 100644 -index 00000000000..4c047068e3a ---- /dev/null -+++ b/gcc/testsuite/gcc.target/i386/pr121607-1a.c -@@ -0,0 +1,59 @@ -+/* { dg-do compile { target *-*-linux* } } */ -+/* { dg-options "-O2 -fpic -fplt -mtls-dialect=gnu -fno-semantic-interposition -fstack-protector" } */ -+ -+typedef enum -+{ -+ bfd_error_invalid_error_code -+} bfd_error_type; -+thread_local bfd_error_type bfd_error; -+int aout_16_write_syms___trans_tmp_1; -+short aout_16_write_syms_g_0_0; -+void xvec_0 (long, void *); -+ -+typedef struct -+{ -+ int output_section; -+} asection; -+ -+void bfd_asymbol_section (); -+ -+struct pdp11_external_nlist -+{ -+ char e_desc[2]; -+ char e_type[1]; -+ char e_ovly[10]; -+} translate_to_native_sym_flags (struct pdp11_external_nlist *sym_pointer) -+{ -+ asection *sec; -+ sym_pointer->e_type[0] &= 5; -+ bfd_asymbol_section (); -+ if (sec == 0) -+ { -+ bfd_error_type error_tag; -+ bfd_error = error_tag; -+ } -+ if (sec->output_section) -+ { -+ bfd_error_type error_tag; -+ bfd_error = error_tag; -+ } -+} -+ -+bool -+aout_16_write_syms (void *abfd) -+{ -+ for (; aout_16_write_syms___trans_tmp_1;) -+ { -+ struct pdp11_external_nlist nsp; -+ if (abfd) -+ { -+ xvec_0 (aout_16_write_syms_g_0_0, nsp.e_desc); -+ nsp.e_ovly[0] = 0; -+ } -+ else -+ nsp.e_type[0] = 0; -+ translate_to_native_sym_flags (&nsp); -+ } -+} -+ -+/* { dg-final { scan-assembler-times "call\[ \t\]__tls_get_addr@PLT" 2 { target { ! ia32 } } } } */ -diff --git a/gcc/testsuite/gcc.target/i386/pr121607-1b.c b/gcc/testsuite/gcc.target/i386/pr121607-1b.c -new file mode 100644 -index 00000000000..366306702c7 ---- /dev/null -+++ b/gcc/testsuite/gcc.target/i386/pr121607-1b.c -@@ -0,0 +1,6 @@ -+/* { dg-do compile { target *-*-linux* } } */ -+/* { dg-options "-O2 -fpic -fplt -mtls-dialect=gnu2 -fno-semantic-interposition -fstack-protector" } */ -+ -+#include "pr121607-1a.c" -+ -+/* { dg-final { scan-assembler-times "call\[ \t\]\\*bfd_error@TLSCALL\\(%(?:r|e)ax\\)" 2 { target { ! ia32 } } } } */ --- -2.50.1 diff --git a/16.0.0/gentoo/README.history b/16.0.0/gentoo/README.history index a3bc300..53a4c78 100644 --- a/16.0.0/gentoo/README.history +++ b/16.0.0/gentoo/README.history @@ -2,7 +2,6 @@ - 86_all_PR121572_x86-Place-the-TLS-call-before-all-FLAGS_REG-setting-.patch - 87_all_PR121553-Revert-c-P2036R3-Change-scope-of-lambda-trailing-ret.patch - + 88_all_PR121607-TLS-ICE.patch 11 20 August 2025
