https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123137
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to GCC Commits from comment #6) > The master branch has been updated by Richard Biener <[email protected]>: > > https://gcc.gnu.org/g:d96b9b689fbf892a4b51d5115a494ee846b0bbd2 > > commit r16-7568-gd96b9b689fbf892a4b51d5115a494ee846b0bbd2 > Author: Richard Biener <[email protected]> > Date: Wed Feb 18 10:05:02 2026 +0100 > > target/123137 - improve TLS call placement validity check > > When we search for a point in an inseration candidate block that has > incoming live call clobbered regs we look for REG_DEAD notes of > those and indication of FLAGS reg becoming live. But we consider > insns like > > (insn 807 805 6 2 (parallel [ > (set (subreg:SI (reg:HI 509) 0) > (lshiftrt:SI (reg:SI 514) > (const_int 16 [0x10]))) > (clobber (reg:CC 17 flags)) > ]) > "/home/packages/tmp/onednn-3.9.1+ds/src/cpu/x64/brgemm/jit_brgemm_amx_uker. > cpp":1891:25 1213 {*lshrsi3_1} > (expr_list:REG_UNUSED (reg:CC 17 flags) > (expr_list:REG_DEAD (reg:SI 514) > (nil)))) > > making the FLAGS_REG live despite the REG_UNUSED note or the setter > being a CLOBBER. The following optimizes this by in turn honoring > REG_UNUSED for FLAGS_REG, pruning it immediately again. > > This reduces required expensive iteration to other candidate BBs, > reducing compile-time for the testcase in the PR from hours to 6s. > > PR target/123137 > * config/i386/i386-features.cc (ix86_emit_tls_call): Improve > local FLAGS_REG liveness calculation. > > * g++.dg/torture/pr124137.C: New testcase. That was for PR124137
