[Committed] RISC-V: Fix mem-to-mem VLS move pattern[PR111566]

Jeff Law jeffreyalaw@gmail.com
Tue Sep 26 13:35:04 GMT 2023

On 9/26/23 07:15, Juzhe-Zhong wrote:
> The mem-to-mem insn pattern is splitted from reg-to-mem/mem-to-reg/reg-to-reg
> causes ICE in RA since RA prefer they stay together.
> Now, we split mem-to-mem as a pure pre-RA split pattern and only allow
> define_insn match mem-to-mem VLS move in pre-RA stage (Forbid mem-to-mem move after RA).
> Tested no difference. Committed.
> 	PR target/111566
> gcc/ChangeLog:
> 	* config/riscv/vector.md (*mov<mode>_mem_to_mem):
> gcc/testsuite/ChangeLog:
> 	* gcc.target/riscv/rvv/fortran/pr111566.f90: New test.
ChangeLog for the vector.md is missing.

In general we shouldn't be allowing mem->mem in most patterns since the 
hardware doesn't actually implement such instructions.  I suspect that's 
the real problem here and that ultimately you're just papering over it.


More information about the Gcc-patches mailing list