https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123223
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |16.0
Summary|[16 Regression][gcn] ICE: |[16 Regression][gcn] ICE:
|RTL check: expected code |RTL check: expected code
|'reg', have 'subreg' in |'reg', have 'subreg' in
|rhs_regno, at rtl.h:1946 |rhs_regno, at rtl.h:1946
| |(since
| |r16-6263-gaf1f68b4e365ca)
CC| |aoliva at gcc dot gnu.org
--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Bisecting points at
r16-6263-gaf1f68b4e365caa06603598ec6b5b491fc00b40b
Author: Alexandre Oliva
Date: Fri Dec 19 04:57:05 2025 -0300
[lra] take scratch as implicit unused output reloads [PR55212]
When trying to convert the SH port to use LRA, the first issue I hit
was the need for dealing with former scratch registers at places we
didn't need to on other ports, treating them like unused output
reloads instead of rejecting them.
for gcc/ChangeLog
PR target/55212
* lra-constraints.cc (match_reload): Treat former scratch
regs as implicit unused output reloads.
(process_alt_operands): Likewise.
(curr_insn_transform): Likewise.