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

--- Comment #19 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Vladimir Makarov <vmaka...@gcc.gnu.org>:

https://gcc.gnu.org/g:2341f675edadd6370147d2bc55ca7761a7ecfaa1

commit r15-7700-g2341f675edadd6370147d2bc55ca7761a7ecfaa1
Author: Vladimir N. Makarov <vmaka...@redhat.com>
Date:   Tue Feb 25 15:01:15 2025 -0500

    [PR115458][LRA]: Run split sub-pass more times

      In this PR case LRA needs to provide too many hard regs for insn
    reloads, where some reload pseudos require 8 aligned regs for
    themselves.  As the last attempt, LRA tries to split live ranges of
    hard regs for insn reload pseudos.  It is a very rare case.  An
    inheritance pseudo involving a reload pseudo of the insn can be
    spilled in the assignment sub-pass run right after splitting and we need
    to run split sub-pass for the inheritance pseudo now.

    gcc/ChangeLog:

            PR target/115458
            * lra-int.h (LRA_MAX_FAILED_SPLITS): Define and check its value.
            (lra_split_hard_reg_for): Change prototype.
            * lra.cc (lra): Try to split hard reg range several times after a
            failure.
            * lra-assigns.cc (lra_split_hard_reg_for): Add an arg, a flag of
            giving up.  Report asm error and nullify the asm insn depending on
            the arg value.

    gcc/testsuite/ChangeLog:

            PR target/115458
            * g++.target/riscv/pr115458.C: New.

Reply via email to