Jeff Law wrote:

> Anyway, we're processing the input reload for insn 73.  We see that insn 
> 71's SET_DEST is the same as the input reload.  The input reload's 
> reloadreg is a0.  Replacing (reg:SI 48) with a0 in insn 71 produces an 
> insn which is recognized and which satisfies its constraints.  However, 
> we have a0 used within an increment addressing mode and elsewhere in the 
> same insn, which is invalid RTL.  Eventually we blow up in cselib due to 
> the invalid RTL.

I see, this analysis makes sense to me, and the fix looks straightforward.
Thanks for looking into this!

>       PR middle-end/52306
>       * reload1.c (emit_input_reload_insns): Do not create invalid RTL
>       when changing the SET_DEST of a prior insn to avoid an input
>       reload.

This is OK.

Thanks,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU/Linux compilers and toolchain
  ulrich.weig...@de.ibm.com

Reply via email to