On 8/21/2026 3:32 AM, Bohan Lei wrote:
Models that have hardware prefetchers prefer sorted store instructions.
The autoprefetcher model is based on that of AArch64.  We start with
only AUTOPREFETCHER_OFF and AUTOPREFETCHER_WEAK, leaving the strong
model for further work.  The support of a strong model is only useful
after max_issue is supported.  It is little work to implement one like
Arm's, but some research may need to be done of its benefits.

gcc/ChangeLog:

        * config/riscv/riscv.cc (struct riscv_tune_param): New member.
        (xt_c9501_tune_info): Set autoprefetcher model to weak.
        (riscv_override_options_internal): Set
        param_sched_autopref_queue_depth based on autoprefetcher model.

gcc/testsuite/ChangeLog:

        * gcc.target/riscv/autopref-xt-c9501fdvt.c: New test.
Yea, I have a long term TODO to investigate this space.  We had a local hack in our spec builds for adjusting the autoprefetch queue depth that I inherited.  No explanation or anything (and predates putting those config files in git for internal work).  I tried to rip it out a while back and did see meaningful performance deltas, but never had the time to dive into those performance differences.

Anyway, this patch is OK for the trunk.  THanks.

Jeff

Reply via email to