https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119966
Dimitar Dimitrov <dimitar at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Blocks| |113934
Status|RESOLVED |REOPENED
Resolution|FIXED |---
--- Comment #12 from Dimitar Dimitrov <dimitar at gcc dot gnu.org> ---
https://gcc.gnu.org/pipermail/gcc-patches/2025-June/685837.html should address
the rootcause for this bug. Unfortunately it breaks not only or1k (PR120587),
but also AVR.
AVR still defaults to old reload (PR113934), but a target-specific workaround
in avr_hard_regno_mode_ok:
if (GET_MODE_SIZE (mode) >= 4
&& regno >= REG_X
// This problem only concerned the old reload.
&& ! avropt_lra_p)
return false;
Causes multiple ICE in recog:
/mnt/nvme/dinux/local-workspace/gcc/gcc/diagnostic-global-context.cc:517
0xd6346f crash_signal
/mnt/nvme/dinux/local-workspace/gcc/gcc/toplev.cc:321
0xd12354 classify_insn(rtx_def*)
/mnt/nvme/dinux/local-workspace/gcc/gcc/rtl.cc:626
0x90c961 emit(rtx_def*, bool)
/mnt/nvme/dinux/local-workspace/gcc/gcc/emit-rtl.cc:5621
0x912b2a expand_seq
/mnt/nvme/dinux/local-workspace/gcc/gcc/emit-rtl.cc:7064
0x912b2a complete_seq(unsigned char const*, rtx_def**)
/mnt/nvme/dinux/local-workspace/gcc/gcc/emit-rtl.cc:7083
0x90a80e try_split(rtx_def*, rtx_insn*, int)
/mnt/nvme/dinux/local-workspace/gcc/gcc/emit-rtl.cc:3957
0xce1e35 split_insn
/mnt/nvme/dinux/local-workspace/gcc/gcc/recog.cc:3479
0xce76e7 split_all_insns()
/mnt/nvme/dinux/local-workspace/gcc/gcc/recog.cc:3583
0xce7798 execute
/mnt/nvme/dinux/local-workspace/gcc/gcc/recog.cc:4507
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113934
[Bug 113934] Switch avr to LRA