Jeffrey Law <[email protected]> writes: > 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):
Ah. Is this with -mlra or with reload? Although, since they're execution failures, I suppose it needs looking into either way. If you think it would be better to revert for now then that's fine with me FWIW. Thanks, Richard > > I won't list them all. Given how many are execution failures, there's > likely a code generation failure in there somewhere. > > A few of them: > > rx-sim: gcc: gcc.c-torture/execute/20001009-2.c -O0 execution test > rx-sim: gcc: gcc.c-torture/execute/20020614-1.c -O0 execution test > rx-sim: gcc: gcc.c-torture/execute/20050410-1.c -O1 execution test > rx-sim: gcc: gcc.c-torture/execute/20050410-1.c -O2 execution test > rx-sim: gcc: gcc.c-torture/execute/20050410-1.c -O2 -flto > -fno-use-linker-plugin -flto-partition=none execution test > rx-sim: gcc: gcc.c-torture/execute/20050410-1.c -O3 -g execution test > rx-sim: gcc: gcc.c-torture/execute/20050410-1.c -Os execution test > rx-sim: gcc: gcc.c-torture/execute/921016-1.c -O0 execution test > rx-sim: gcc: gcc.c-torture/execute/960311-1.c -O1 execution test > rx-sim: gcc: gcc.c-torture/execute/960311-2.c -O1 execution test > rx-sim: gcc: gcc.c-torture/execute/980617-1.c -O0 execution test > rx-sim: gcc: gcc.c-torture/execute/990324-1.c -O0 execution test > rx-sim: gcc: gcc.c-torture/execute/990326-1.c -O0 execution test > > Anyway, seems like something for Yoshinori to look into. > > Jeff
