From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gcc-patches:master commit in: 16.0.0/gentoo/
Date: Mon, 18 Aug 2025 23:08:37 +0000 (UTC) [thread overview]
Message-ID: <1755558509.fc24904e190e6c785f7c4640ab00d214e397d49e.sam@gentoo> (raw)
commit: fc24904e190e6c785f7c4640ab00d214e397d49e
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 18 23:08:29 2025 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Aug 18 23:08:29 2025 +0000
URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=fc24904e
16.0.0: update TLS patch
Signed-off-by: Sam James <sam <AT> gentoo.org>
...he-TLS-call-before-all-FLAGS_REG-setting-.patch | 417 ++++++++++++++-------
1 file changed, 291 insertions(+), 126 deletions(-)
diff --git a/16.0.0/gentoo/86_all_PR121572_x86-Place-the-TLS-call-before-all-FLAGS_REG-setting-.patch b/16.0.0/gentoo/86_all_PR121572_x86-Place-the-TLS-call-before-all-FLAGS_REG-setting-.patch
index 497ee1c..d998713 100644
--- a/16.0.0/gentoo/86_all_PR121572_x86-Place-the-TLS-call-before-all-FLAGS_REG-setting-.patch
+++ b/16.0.0/gentoo/86_all_PR121572_x86-Place-the-TLS-call-before-all-FLAGS_REG-setting-.patch
@@ -1,8 +1,7 @@
-From 81d358d3e24e18744e1c000672c5317d606c91ee Mon Sep 17 00:00:00 2001
-Message-ID: <81d358d3e24e18744e1c000672c5317d606c91ee.1755464442.git.sam@gentoo.org>
+From 93b90830524746278635ddac3a5841caa7139baf Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Sun, 17 Aug 2025 13:50:05 -0700
-Subject: [PATCH] x86: Place the TLS call before all register setting BBs
+Date: Sat, 16 Aug 2025 14:04:33 -0700
+Subject: [PATCH v3] x86: Place the TLS call before all register setting BBs
We can't place a TLS call before a conditional jump in a basic block like
@@ -37,15 +36,10 @@ gcc/
* config/i386/i386-features.cc (replace_tls_call): Add a bitmap
argument and put the updated TLS instruction in the bitmap.
(ix86_get_dominator_for_reg): New.
+ (ix86_emit_tls_call): Likewise.
(ix86_place_single_tls_call): Add 2 bitmap arguments for updated
- GNU and GNU2 TLS instructions. Add the live flag register to the
- bitmap. Insert the __tls_get_addr call before INSN if it replaces
- a __tls_get_addr call. Mark FLAGS register as dead if INSN
- replaced the GNU2 TLS instruction. Clear the live register bitmap
- only for hard register. If there is a conditional jump in the
- basic block or any live caller-saved registers aren't dead at the
- end of the basic block, get the basic block which dominates all
- basic blocks which set the live registers.
+ GNU and GNU2 TLS instructions. Call ix86_emit_tls_call to emit
+ TLS instruction. Correct debug dump for before instruction.
gcc/testsuite/
@@ -57,19 +51,19 @@ gcc/testsuite/
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
---
- gcc/config/i386/i386-features.cc | 136 ++++++++++++++++----
- gcc/testsuite/gcc.target/i386/pr121572-1a.c | 41 ++++++
- gcc/testsuite/gcc.target/i386/pr121572-1b.c | 18 +++
- gcc/testsuite/gcc.target/i386/pr121572-2a.c | 39 ++++++
+ gcc/config/i386/i386-features.cc | 329 +++++++++++++-------
+ gcc/testsuite/gcc.target/i386/pr121572-1a.c | 41 +++
+ gcc/testsuite/gcc.target/i386/pr121572-1b.c | 18 ++
+ gcc/testsuite/gcc.target/i386/pr121572-2a.c | 39 +++
gcc/testsuite/gcc.target/i386/pr121572-2b.c | 6 +
- 5 files changed, 215 insertions(+), 25 deletions(-)
+ 5 files changed, 327 insertions(+), 106 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/i386/pr121572-1a.c
create mode 100644 gcc/testsuite/gcc.target/i386/pr121572-1b.c
create mode 100644 gcc/testsuite/gcc.target/i386/pr121572-2a.c
create mode 100644 gcc/testsuite/gcc.target/i386/pr121572-2b.c
diff --git a/gcc/config/i386/i386-features.cc b/gcc/config/i386/i386-features.cc
-index f0bdc5c1880b..903f2b0b4789 100644
+index f0bdc5c1880..b1211ca916a 100644
--- a/gcc/config/i386/i386-features.cc
+++ b/gcc/config/i386/i386-features.cc
@@ -3684,10 +3684,12 @@ ix86_broadcast_inner (rtx op, machine_mode mode,
@@ -97,7 +91,7 @@ index f0bdc5c1880b..903f2b0b4789 100644
if (dump_file)
{
fprintf (dump_file, "\nReplace:\n\n");
-@@ -3732,15 +3737,48 @@ replace_tls_call (rtx src, auto_bitmap &tls_call_insns)
+@@ -3732,15 +3737,211 @@ replace_tls_call (rtx src, auto_bitmap &tls_call_insns)
}
}
@@ -128,49 +122,82 @@ index f0bdc5c1880b..903f2b0b4789 100644
+ return bb;
+}
+
- /* Generate a TLS call of KIND with VAL and copy the call result to DEST,
- at entry of the nearest dominator for basic block map BBS, which is in
- the fake loop that contains the whole function, so that there is only
-- a single TLS CALL of KIND with VAL in the whole function. If
-- TLSDESC_SET isn't nullptr, insert it before the TLS call. */
-+ a single TLS CALL of KIND with VAL in the whole function.
-+ UPDATED_GNU_TLS_INSNS contains instructions which replace the GNU TLS
-+ instructions. UPDATED_GNU2_TLS_INSNS contains instructions which
-+ replace the GNU2 TLS instructions. If TLSDESC_SET isn't nullptr,
-+ insert it before the TLS call. */
-
- static void
- ix86_place_single_tls_call (rtx dest, rtx val, x86_cse_kind kind,
-- bitmap bbs, rtx tlsdesc_set = nullptr)
-+ auto_bitmap &bbs,
-+ auto_bitmap &updated_gnu_tls_insns,
-+ auto_bitmap &updated_gnu2_tls_insns,
-+ rtx tlsdesc_set = nullptr)
- {
- basic_block bb = nearest_common_dominator_for_set (CDI_DOMINATORS, bbs);
- while (bb->loop_father->latch
-@@ -3748,6 +3786,7 @@ ix86_place_single_tls_call (rtx dest, rtx val, x86_cse_kind kind,
- bb = get_immediate_dominator (CDI_DOMINATORS,
- bb->loop_father->header);
-
-+place_tls_call:
- rtx_insn *insn = BB_HEAD (bb);
- while (insn && !NONDEBUG_INSN_P (insn))
- {
-@@ -3824,7 +3863,8 @@ ix86_place_single_tls_call (rtx dest, rtx val, x86_cse_kind kind,
- auto_bitmap live_caller_saved_regs;
- bitmap in = df_live ? DF_LIVE_IN (bb) : DF_LR_IN (bb);
-
-- bool flags_live_p = bitmap_bit_p (in, FLAGS_REG);
-+ if (bitmap_bit_p (in, FLAGS_REG))
-+ bitmap_set_bit (live_caller_saved_regs, FLAGS_REG);
-
- unsigned int i;
-
-@@ -3845,13 +3885,46 @@ ix86_place_single_tls_call (rtx dest, rtx val, x86_cse_kind kind,
- if (!NONDEBUG_INSN_P (insn))
- continue;
-
++/* Emit a TLS_SET instruction of KIND in basic block BB. Store the
++ insertion point in *BEFORE_P for emit_insn_before or in *AFTER_P
++ for emit_insn_after. UPDATED_GNU_TLS_INSNS contains instructions
++ which replace the GNU TLS instructions. UPDATED_GNU2_TLS_INSNS
++ contains instructions which replace the GNU2 TLS instructions. */
++
++static rtx_insn *
++ix86_emit_tls_call (rtx tls_set, x86_cse_kind kind, basic_block bb,
++ rtx_insn **before_p, rtx_insn **after_p,
++ auto_bitmap &updated_gnu_tls_insns,
++ auto_bitmap &updated_gnu2_tls_insns)
++{
++ rtx_insn *tls_insn;
++
++ do
++ {
++ rtx_insn *insn = BB_HEAD (bb);
++ while (insn && !NONDEBUG_INSN_P (insn))
++ {
++ if (insn == BB_END (bb))
++ {
++ insn = NULL;
++ break;
++ }
++ insn = NEXT_INSN (insn);
++ }
++
++ /* TLS_GD and TLS_LD_BASE instructions are normal functions which
++ clobber caller-saved registers. TLSDESC instructions only
++ clobber FLAGS. If any registers clobbered by TLS instructions
++ are live in this basic block, we must insert TLS instructions
++ after all live registers clobbered are dead. */
++
++ auto_bitmap live_caller_saved_regs;
++ bitmap in = df_live ? DF_LIVE_IN (bb) : DF_LR_IN (bb);
++
++ if (bitmap_bit_p (in, FLAGS_REG))
++ bitmap_set_bit (live_caller_saved_regs, FLAGS_REG);
++
++ unsigned int i;
++
++ /* Get all live caller-saved registers for TLS_GD and TLS_LD_BASE
++ instructions. */
++ if (kind != X86_CSE_TLSDESC)
++ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
++ if (call_used_regs[i]
++ && !fixed_regs[i]
++ && bitmap_bit_p (in, i))
++ bitmap_set_bit (live_caller_saved_regs, i);
++
++ if (bitmap_empty_p (live_caller_saved_regs))
++ {
++ if (insn == BB_HEAD (bb))
++ {
++ *before_p = insn;
++ tls_insn = emit_insn_before (tls_set, insn);
++ }
++ else
++ {
++ insn = insn ? PREV_INSN (insn) : BB_END (bb);
++ *after_p = insn;
++ tls_insn = emit_insn_after (tls_set, insn);
++ }
++ return tls_insn;
++ }
++
++ bool repeat = false;
++
++ /* Search for REG_DEAD notes in this basic block. */
++ FOR_BB_INSNS (bb, insn)
++ {
++ if (!NONDEBUG_INSN_P (insn))
++ continue;
++
++ /* NB: Conditional jump is the only instruction which reads
++ flags register and changes control flow. */
+ if (JUMP_P (insn))
+ {
+ /* This must be a conditional jump. */
@@ -184,25 +211,27 @@ index f0bdc5c1880b..903f2b0b4789 100644
+ we can't place a call before nor after a conditional
+ jump. */
+ bb = ix86_get_dominator_for_reg (FLAGS_REG, bb);
-+ goto place_tls_call;
++
++ /* Start over again. */
++ repeat = true;
++ break;
+ }
+
- /* Check if FLAGS register is live. */
- set = single_set (insn);
- if (set)
- {
- rtx dest = SET_DEST (set);
-- if (REG_P (dest) && REGNO (dest) == FLAGS_REG)
-- flags_live_p = true;
++ /* Check if FLAGS register is live. */
++ rtx set = single_set (insn);
++ if (set)
++ {
++ rtx dest = SET_DEST (set);
+ if (REG_P (dest))
+ {
+ if (bitmap_bit_p (updated_gnu_tls_insns,
+ INSN_UID (insn)))
+ {
-+ /* Insert the __tls_get_addr call before INSN which
-+ replaces a __tls_get_addr call. */
-+ before = insn;
-+ goto insert_before;
++ /* Insert the __tls_get_addr call before INSN
++ which replaces a __tls_get_addr call. */
++ *before_p = insn;
++ tls_insn = emit_insn_before (tls_set, insn);
++ return tls_insn;
+ }
+ if (bitmap_bit_p (updated_gnu2_tls_insns,
+ INSN_UID (insn)))
@@ -213,67 +242,206 @@ index f0bdc5c1880b..903f2b0b4789 100644
+ else if (REGNO (dest) == FLAGS_REG)
+ bitmap_set_bit (live_caller_saved_regs, FLAGS_REG);
+ }
- }
++ }
++
++ rtx link;
++ for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
++ if (REG_NOTE_KIND (link) == REG_DEAD
++ && REG_P (XEXP (link, 0)))
++ {
++ /* Mark the live caller-saved register as dead. */
++ for (i = REGNO (XEXP (link, 0));
++ i < END_REGNO (XEXP (link, 0));
++ i++)
++ if (i < FIRST_PSEUDO_REGISTER)
++ bitmap_clear_bit (live_caller_saved_regs, i);
++
++ if (bitmap_empty_p (live_caller_saved_regs))
++ {
++ *after_p = insn;
++ tls_insn = emit_insn_after (tls_set, insn);
++ return tls_insn;
++ }
++ }
++ }
++
++ /* NB: Start over again for conditional jump. */
++ if (repeat)
++ continue;
++
++ /* If any live caller-saved registers aren't dead at the end of
++ this basic block, get the basic block which dominates all
++ basic blocks which set the remaining live registers. */
++ auto_bitmap set_bbs;
++ bitmap_iterator bi;
++ unsigned int id;
++ EXECUTE_IF_SET_IN_BITMAP (live_caller_saved_regs, 0, id, bi)
++ {
++ basic_block set_bb = ix86_get_dominator_for_reg (id, bb);
++ bitmap_set_bit (set_bbs, set_bb->index);
++ }
++ bb = nearest_common_dominator_for_set (CDI_DOMINATORS, set_bbs);
++ }
++ while (true);
++}
++
+ /* Generate a TLS call of KIND with VAL and copy the call result to DEST,
+ at entry of the nearest dominator for basic block map BBS, which is in
+ the fake loop that contains the whole function, so that there is only
+- a single TLS CALL of KIND with VAL in the whole function. If
+- TLSDESC_SET isn't nullptr, insert it before the TLS call. */
++ a single TLS CALL of KIND with VAL in the whole function.
++ UPDATED_GNU_TLS_INSNS contains instructions which replace the GNU TLS
++ instructions. UPDATED_GNU2_TLS_INSNS contains instructions which
++ replace the GNU2 TLS instructions. If TLSDESC_SET isn't nullptr,
++ insert it before the TLS call. */
- rtx link;
-@@ -3863,29 +3936,30 @@ ix86_place_single_tls_call (rtx dest, rtx val, x86_cse_kind kind,
- for (i = REGNO (XEXP (link, 0));
- i < END_REGNO (XEXP (link, 0));
- i++)
+ static void
+ ix86_place_single_tls_call (rtx dest, rtx val, x86_cse_kind kind,
+- bitmap bbs, rtx tlsdesc_set = nullptr)
++ auto_bitmap &bbs,
++ auto_bitmap &updated_gnu_tls_insns,
++ auto_bitmap &updated_gnu2_tls_insns,
++ rtx tlsdesc_set = nullptr)
+ {
+ basic_block bb = nearest_common_dominator_for_set (CDI_DOMINATORS, bbs);
+ while (bb->loop_father->latch
+@@ -3748,17 +3949,6 @@ ix86_place_single_tls_call (rtx dest, rtx val, x86_cse_kind kind,
+ bb = get_immediate_dominator (CDI_DOMINATORS,
+ bb->loop_father->header);
+
+- rtx_insn *insn = BB_HEAD (bb);
+- while (insn && !NONDEBUG_INSN_P (insn))
+- {
+- if (insn == BB_END (bb))
+- {
+- insn = NULL;
+- break;
+- }
+- insn = NEXT_INSN (insn);
+- }
+-
+ rtx rax = nullptr, rdi;
+ rtx eqv = nullptr;
+ rtx caddr;
+@@ -3766,7 +3956,6 @@ ix86_place_single_tls_call (rtx dest, rtx val, x86_cse_kind kind,
+ rtx clob;
+ rtx symbol;
+ rtx tls;
+- rtx_insn *tls_insn;
+
+ switch (kind)
+ {
+@@ -3808,94 +3997,13 @@ ix86_place_single_tls_call (rtx dest, rtx val, x86_cse_kind kind,
+ gcc_unreachable ();
+ }
+
++ /* Emit the TLS CALL insn. */
+ rtx_insn *before = nullptr;
+ rtx_insn *after = nullptr;
+- if (insn == BB_HEAD (bb))
+- before = insn;
+- else
+- after = insn ? PREV_INSN (insn) : BB_END (bb);
+-
+- /* TLS_GD and TLS_LD_BASE instructions are normal functions which
+- clobber caller-saved registers. TLSDESC instructions only clobber
+- FLAGS. If any registers clobbered by TLS instructions are live
+- in this basic block, we must insert TLS instructions after all live
+- registers clobbered are dead. */
+-
+- auto_bitmap live_caller_saved_regs;
+- bitmap in = df_live ? DF_LIVE_IN (bb) : DF_LR_IN (bb);
+-
+- bool flags_live_p = bitmap_bit_p (in, FLAGS_REG);
+-
+- unsigned int i;
+-
+- /* Get all live caller-saved registers for TLS_GD and TLS_LD_BASE
+- instructions. */
+- if (kind != X86_CSE_TLSDESC)
+- for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
+- if (call_used_regs[i]
+- && !fixed_regs[i]
+- && bitmap_bit_p (in, i))
+- bitmap_set_bit (live_caller_saved_regs, i);
+-
+- if (!bitmap_empty_p (live_caller_saved_regs))
+- {
+- /* Search for REG_DEAD notes in this basic block. */
+- FOR_BB_INSNS (bb, insn)
+- {
+- if (!NONDEBUG_INSN_P (insn))
+- continue;
+-
+- /* Check if FLAGS register is live. */
+- set = single_set (insn);
+- if (set)
+- {
+- rtx dest = SET_DEST (set);
+- if (REG_P (dest) && REGNO (dest) == FLAGS_REG)
+- flags_live_p = true;
+- }
+-
+- rtx link;
+- for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
+- if (REG_NOTE_KIND (link) == REG_DEAD
+- && REG_P (XEXP (link, 0)))
+- {
+- /* Mark the live caller-saved register as dead. */
+- for (i = REGNO (XEXP (link, 0));
+- i < END_REGNO (XEXP (link, 0));
+- i++)
- bitmap_clear_bit (live_caller_saved_regs, i);
-
- /* Check if FLAGS register is dead. */
- if (REGNO (XEXP (link, 0)) == FLAGS_REG)
- flags_live_p = false;
-+ if (i < FIRST_PSEUDO_REGISTER)
-+ bitmap_clear_bit (live_caller_saved_regs, i);
-
- if (bitmap_empty_p (live_caller_saved_regs))
- {
+-
+- if (bitmap_empty_p (live_caller_saved_regs))
+- {
- /* All live caller-saved registers are dead after
- this instruction. Since TLS instructions
- clobber FLAGS register, it must be dead where
- the TLS will be inserted after. */
- if (flags_live_p)
- gcc_unreachable ();
- after = insn;
- goto insert_after;
- }
- }
- }
-
+- after = insn;
+- goto insert_after;
+- }
+- }
+- }
+-
- /* All live caller-saved registers should be dead at the end
- of this basic block. */
- gcc_unreachable ();
-+ /* If any live caller-saved registers aren't dead at the end
-+ of this basic block, get the basic block which dominates all
-+ basic blocks which set the remaining live registers. */
-+ auto_bitmap set_bbs;
-+ bitmap_iterator bi;
-+ unsigned int id;
-+ EXECUTE_IF_SET_IN_BITMAP (live_caller_saved_regs, 0, id, bi)
-+ {
-+ basic_block set_bb = ix86_get_dominator_for_reg (id, bb);
-+ bitmap_set_bit (set_bbs, set_bb->index);
-+ }
-+ bb = nearest_common_dominator_for_set (CDI_DOMINATORS, set_bbs);
-+ goto place_tls_call;
- }
-
- /* Emit the TLS CALL insn. */
-@@ -3895,7 +3969,10 @@ insert_after:
- tls_insn = emit_insn_after (tls, after);
- }
- else
+- }
+-
+- /* Emit the TLS CALL insn. */
+- if (after)
+- {
+-insert_after:
+- tls_insn = emit_insn_after (tls, after);
+- }
+- else
- tls_insn = emit_insn_before (tls, before);
-+ {
-+insert_before:
-+ tls_insn = emit_insn_before (tls, before);
-+ }
++ rtx_insn *tls_insn = ix86_emit_tls_call (tls, kind, bb, &before,
++ &after,
++ updated_gnu_tls_insns,
++ updated_gnu2_tls_insns);
rtx_insn *tlsdesc_insn = nullptr;
if (tlsdesc_set)
-@@ -4213,6 +4290,8 @@ pass_x86_cse::x86_cse (void)
+@@ -3936,7 +4044,7 @@ insert_after:
+ print_rtl_single (dump_file, tlsdesc_insn);
+ print_rtl_single (dump_file, tls_insn);
+ fprintf (dump_file, "\nbefore:\n\n");
+- print_rtl_single (dump_file, insn);
++ print_rtl_single (dump_file, before);
+ fprintf (dump_file, "\n");
+ }
+ }
+@@ -4213,6 +4321,8 @@ pass_x86_cse::x86_cse (void)
basic_block bb;
rtx_insn *insn;
unsigned int i;
@@ -282,7 +450,7 @@ index f0bdc5c1880b..903f2b0b4789 100644
df_set_flags (DF_DEFER_INSN_RESCAN);
-@@ -4333,7 +4412,10 @@ pass_x86_cse::x86_cse (void)
+@@ -4333,7 +4443,10 @@ pass_x86_cse::x86_cse (void)
case X86_CSE_TLS_LD_BASE:
case X86_CSE_TLSDESC:
broadcast_reg = gen_reg_rtx (load->mode);
@@ -294,7 +462,7 @@ index f0bdc5c1880b..903f2b0b4789 100644
load->broadcast_reg = broadcast_reg;
break;
-@@ -4399,6 +4481,8 @@ pass_x86_cse::x86_cse (void)
+@@ -4399,6 +4512,8 @@ pass_x86_cse::x86_cse (void)
load->val,
load->kind,
load->bbs,
@@ -303,7 +471,7 @@ index f0bdc5c1880b..903f2b0b4789 100644
PATTERN (load->def_insn));
break;
case X86_CSE_VEC_DUP:
-@@ -4442,7 +4526,9 @@ pass_x86_cse::x86_cse (void)
+@@ -4442,7 +4557,9 @@ pass_x86_cse::x86_cse (void)
ix86_place_single_tls_call (load->broadcast_reg,
load->val,
load->kind,
@@ -316,7 +484,7 @@ index f0bdc5c1880b..903f2b0b4789 100644
case X86_CSE_CONSTM1_VECTOR:
diff --git a/gcc/testsuite/gcc.target/i386/pr121572-1a.c b/gcc/testsuite/gcc.target/i386/pr121572-1a.c
new file mode 100644
-index 000000000000..270d8ff5cb6d
+index 00000000000..270d8ff5cb6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr121572-1a.c
@@ -0,0 +1,41 @@
@@ -363,7 +531,7 @@ index 000000000000..270d8ff5cb6d
+}
diff --git a/gcc/testsuite/gcc.target/i386/pr121572-1b.c b/gcc/testsuite/gcc.target/i386/pr121572-1b.c
new file mode 100644
-index 000000000000..8a6089109f50
+index 00000000000..8a6089109f5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr121572-1b.c
@@ -0,0 +1,18 @@
@@ -387,7 +555,7 @@ index 000000000000..8a6089109f50
+#include "pr121572-1a.c"
diff --git a/gcc/testsuite/gcc.target/i386/pr121572-2a.c b/gcc/testsuite/gcc.target/i386/pr121572-2a.c
new file mode 100644
-index 000000000000..38b254657d35
+index 00000000000..38b254657d3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr121572-2a.c
@@ -0,0 +1,39 @@
@@ -432,7 +600,7 @@ index 000000000000..38b254657d35
+/* { dg-final { scan-assembler-times "call\[ \t\]__tls_get_addr@PLT" 1 { target { ! ia32 } } } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr121572-2b.c b/gcc/testsuite/gcc.target/i386/pr121572-2b.c
new file mode 100644
-index 000000000000..33d700243249
+index 00000000000..33d70024324
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr121572-2b.c
@@ -0,0 +1,6 @@
@@ -442,8 +610,5 @@ index 000000000000..33d700243249
+#include "pr121572-2a.c"
+
+/* { dg-final { scan-assembler-times "call\[ \t\]\\*__gmpfr_emax@TLSCALL\\(%(?:r|e)ax\\)" 1 { target { ! ia32 } } } } */
-
-base-commit: 6f63044a7ae63a276a4f6d3108849e093c690bc6
--
2.50.1
-
next reply other threads:[~2025-08-18 23:08 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-18 23:08 Sam James [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-10-21 0:33 [gentoo-commits] proj/gcc-patches:master commit in: 16.0.0/gentoo/ Sam James
2025-10-19 22:41 Sam James
2025-10-18 18:22 Sam James
2025-10-13 2:49 Sam James
2025-10-09 7:31 Sam James
2025-10-09 2:26 Sam James
2025-10-09 2:26 Sam James
2025-10-05 23:05 Sam James
2025-10-05 22:50 Sam James
2025-10-02 11:05 Sam James
2025-10-02 11:04 Sam James
2025-10-02 4:55 Sam James
2025-10-02 1:18 Sam James
2025-10-02 0:40 Sam James
2025-10-02 0:36 Sam James
2025-10-02 0:30 Sam James
2025-09-17 18:41 Sam James
2025-09-17 3:04 Sam James
2025-09-16 19:23 Sam James
2025-09-14 11:26 Sam James
2025-09-13 13:16 Sam James
2025-09-07 22:42 Sam James
2025-09-06 2:42 Sam James
2025-09-05 12:44 Sam James
2025-09-01 8:04 Sam James
2025-08-31 22:43 Sam James
2025-08-30 14:06 Sam James
2025-08-30 8:05 Sam James
2025-08-30 6:57 Sam James
2025-08-30 0:12 Sam James
2025-08-29 21:26 Sam James
2025-08-29 21:02 Sam James
2025-08-29 20:24 Sam James
2025-08-29 20:18 Sam James
2025-08-29 18:38 Sam James
2025-08-29 12:15 Sam James
2025-08-28 17:57 Sam James
2025-08-28 5:27 Sam James
2025-08-27 4:19 Sam James
2025-08-26 23:42 Sam James
2025-08-26 4:48 Sam James
2025-08-26 0:56 Sam James
2025-08-25 3:55 Sam James
2025-08-24 23:42 Sam James
2025-08-21 16:11 Sam James
2025-08-20 20:45 Sam James
2025-08-20 14:10 Sam James
2025-08-20 1:16 Sam James
2025-08-20 1:10 Sam James
2025-08-19 16:30 Sam James
2025-08-18 23:52 Sam James
2025-08-17 22:45 Sam James
2025-08-17 21:01 Sam James
2025-08-17 16:30 Sam James
2025-08-17 15:44 Sam James
2025-08-17 15:10 Sam James
2025-08-16 23:06 Sam James
2025-08-05 0:23 Sam James
2025-07-30 22:35 Sam James
2025-07-30 0:44 Sam James
2025-07-30 0:44 Sam James
2025-07-25 18:49 Sam James
2025-07-23 11:22 Sam James
2025-07-22 23:56 Sam James
2025-07-21 14:02 Sam James
2025-07-21 1:12 Sam James
2025-07-14 16:03 Sam James
2025-07-14 4:09 Sam James
2025-07-14 2:55 Sam James
2025-07-14 2:55 Sam James
2025-07-14 2:40 Sam James
2025-07-13 23:11 Sam James
2025-07-13 1:09 Sam James
2025-07-12 15:24 Sam James
2025-07-12 15:23 Sam James
2025-07-10 12:34 Sam James
2025-07-10 1:22 Sam James
2025-07-10 0:50 Sam James
2025-07-07 20:49 Sam James
2025-07-06 22:41 Sam James
2025-07-03 1:29 Sam James
2025-06-30 6:26 Sam James
2025-06-29 0:29 Sam James
2025-06-19 16:59 Sam James
2025-06-19 0:58 Sam James
2025-06-19 0:58 Sam James
2025-06-18 21:17 Sam James
2025-06-18 9:53 Sam James
2025-06-18 9:06 Sam James
2025-06-13 12:03 Sam James
2025-06-12 20:34 Sam James
2025-06-12 14:05 Sam James
2025-06-12 7:27 Sam James
2025-06-12 5:46 Sam James
2025-06-11 5:05 Sam James
2025-06-11 3:19 Sam James
2025-06-01 22:39 Sam James
2025-05-31 18:48 Sam James
2025-05-11 22:52 Sam James
2025-05-10 15:28 Sam James
2025-05-09 23:29 Sam James
2025-05-05 14:39 Sam James
2025-05-05 13:05 Sam James
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1755558509.fc24904e190e6c785f7c4640ab00d214e397d49e.sam@gentoo \
--to=sam@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox