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)