On 1/19/25 7:32 AM, Jin Ma wrote:
gcc/ChangeLog:

        * config/riscv/riscv.md: Change 'r' to 'p'.

gcc/testsuite/ChangeLog:

        * gcc.target/riscv/prefetch-zicbop-ice.c: New test.
As expected, there's more to this issue than just adjusting constraints or predicates.

As Tsukasa noted a while back the current builtin is largely useless as the most natural ways to pass instruction addresses simply don't work.

The builtin expansion path we're using is custom to the backend and as a result we don't get the usual methods to force arguments into registers, so we'd need to turn the relevant patters into expanders with a corresponding pattern. We'll need to make the operands fairly loose on the expander, then force things into registers for the pattern.

And there's the question of the extraneous imm5 operand in the pattern. And there's a nonzero possibility that we need to adjust the API as well.

The net is I think we should fix the obvious ICE, but that the deeper issues should wait for gcc-16's new development window.


Jeff

Reply via email to