https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123137

--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
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.
  • [Bug tree-optimization/123137] ... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to