On 05/10/2018 11:45 PM, A. Skrobov wrote: > On Fri, May 11, 2018 at 12:09 AM, Jeff Law <l...@redhat.com> wrote: >> >> My recollection is that auto-increment addressing modes should not >> appear in the RTL in the CSE pass. > > Fair enough; but they're explicitly listed in the big switch block in > hash_rtx_cb (). > Should my added line change from "invalidate_dest (XEXP (x, 0));" to > "gcc_unreachable ();" ? > Such a patch wouldn't need a testcase, I suppose. To change into a gcc_unreachable we'd need to verify that hash_rtx_cb is never called from outside the CSE pass.
If we look in sel-sched-ir.c we see that it calls into hash_rtx_cb (sigh, bad modularity). I'm not at all familiar with how the hashing is used within the selective scheduler, so I can't really say what the selective scheduler *should* be doing here. Note that if you were generating these insns using your own port, you can get the same effect by using a PARALLEL rather than an auto-increment. PARALLELs are supported throughout the RTL IL. jeff