]> git.ipfire.org Git - thirdparty/gcc.git/commit
AVR: target/113934 - Use LRA per default.
authorGeorg-Johann Lay <avr@gjlay.de>
Fri, 27 Jun 2025 13:44:40 +0000 (15:44 +0200)
committerGeorg-Johann Lay <avr@gjlay.de>
Fri, 27 Jun 2025 13:45:58 +0000 (15:45 +0200)
commit49d58d8da2281ec66c376ca998d29652e417f4cd
tree4a2fb954c873fa508b877186d7cd34098a1c9267
parentde6124c9e5ed472f567b51fa76f18335cdddbbaf
AVR: target/113934 - Use LRA per default.

Now that the patches for PR120424 are upstream, the last known bug
associated with avr+lra has been fixed: PR118591.  So we can pull the
switch that turns on LRA per default.

This patch only sets -mlra per default.  It doesn't do any Reload related
cleanup or removal from the avr backend, hence -mno-lra still works.

The only new problem is that gcc.dg/torture/pr64088.c fails with LRA
but not with Reload.  Though that test case is awkward since it is UB
but expects the compiler to behave in a specific way which avr-gcc
doesn't do: PR116780.

This patch also avoids a relative recent ICE that breaks building libgcc:
R24:DI is allowed per hard_regno_mode_ok, but R26:SI is disallowed
for Reload for old reasons.  Outcome is that a split2 pattern for
R24:DI = zero_extend:DI (R22:SI) runs into an ICE.

AVR-LibC builds fine with this patch.
The AVR-LibC testsuite passes without errors.

gcc/
PR target/113934
* config/avr/avr.opt (-mlra): Turn on per default.
gcc/config/avr/avr.opt