[Bug target/97969] [9/10/11 Regression][ARM/Thumb] Certain combo of codegen options leads to compilation infinite loop with growing memory use
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jan 12 16:28:16 GMT 2021
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 <vmakarov@gcc.gnu.org>:
https://gcc.gnu.org/g:cf2ac1c30af0fa783c8d72e527904dda5d8cc330
commit r11-6615-gcf2ac1c30af0fa783c8d72e527904dda5d8cc330
Author: Vladimir N. Makarov <vmakarov@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.
More information about the Gcc-bugs
mailing list