On 5/16/2026 9:06 AM, [email protected] wrote:
On Wed, 13 May 2026 01:44:55 +0900,
Jeffrey Law wrote:
On 5/12/2026 5:40 AM, Richard Sandiford wrote:
Yoshinori Sato <[email protected]> writes:
The LRA was confused and looping due to the definition of the register class.
The LRA yielded incorrect results because the manipulation of stack frames
and the movement of double words relied heavily on existing reloads.
These changes ensure that the correct code is generated even when the "-mlra"
option is specified.
v5 changes.
- Moved the XEXP extractions inside the PLUS check in rx_legitimize_address.
- Replaced the magic number 8 with UNITS_PER_WORD * 2.
- Fixed the C comment style.
- Reverted the redundant changes in rx_modes_tieable_p.
- Added the missing function comments for rx_get_subword, rx_split_double_move,
and rx_relax_double_operands.
- Removed the redundant checks in rx_relax_double_operands and fixed the
indentation.
- Removed the redundant emit_insn and DONE in the movdi and movdf expanders.
- Replaced the output template of *ashlsi3_lra with "#" since it is
always split.
Thanks, LGTM. Pushed to trunk as r17-468-g7ec6968058b393
(with a slightly tweaked changelog).
THanks. There's still work to do. I spun my tester after this change
on the rx port:
Tests that now fail, but worked before (431 tests):
I won't list them all. Given how many are execution failures, there's
likely a code generation failure in there somewhere.
The code extension was causing incorrect output.
Optimization mitigated this issue, so I didn't notice it.
The attached changes now allow the test to pass.
Yea. I threw that into my tester overnight and that addressed all 431
regressions. I'll push it shortly.
Thanks!
jeff