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

--- Comment #18 from CVS 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:cf2ac1c30af0fa783c8d72e527904dda5d8cc330

commit r11-6615-gcf2ac1c30af0fa783c8d72e527904dda5d8cc330
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.

Reply via email to