https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The comment in riscv.cc: /* We can't call gen_reg_rtx from a splitter, because this might realloc the regno_reg_rtx array, which would invalidate reg rtx pointers in the combine undo buffer. */ bool can_create_pseudo = can_create_pseudo_p () && ! in_splitter; is no longer true after r12-8030-g61bee6aed26eb3 so you should be able to get rid of the `&& ! in_splitter` part.