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

--- Comment #27 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Przemyslaw Wirkus
<wir...@gcc.gnu.org>:

https://gcc.gnu.org/g:eb13f3f81d56910626529af52e03e74770ffca98

commit r10-9880-geb13f3f81d56910626529af52e03e74770ffca98
Author: Vladimir N. Makarov <vmaka...@redhat.com>
Date:   Tue Jan 12 11:26:15 2021 -0500

    [PR97969] LRA: Transform pattern `plus (plus (hard reg, const), pseudo)`
after elimination

    LRA can loop infinitely on targets without `reg + imm` insns.  Register
elimination
    on such targets can increase register pressure resulting in permanent
    stack size increase and changing elimination offset.  To avoid such
situation, a simple
    transformation can be done to avoid register pressure increase after
    generating reload insns containing eliminated hard regs.

    gcc/ChangeLog:

            PR target/97969
            * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
            of pattern 'plus (plus (hard reg, const), pseudo)'.

    gcc/testsuite/ChangeLog:

            PR target/97969
            * gcc.target/arm/pr97969.c: New.

    (cherry picked from commit cf2ac1c30af0fa783c8d72e527904dda5d8cc330)

Reply via email to