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

Reply via email to