[PATCH] D113967: [RISCV] Reverse the order of loading/storing callee-saved registers.

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 17 16:28:34 PST 2021


craig.topper added a comment.

Additional context I got from Andrew Waterman

  The ability to partially hide the latency of a cache miss using a non-blocking cache is more of a secondary concern.  The latency of a load hit is the parameter we're more sensitive to.
  
  The problem manifests primarily in in-order processors, where the ret instruction will be stalled until its operands are available, hence speculative execution past the ret instruction will not occur.  Single-issue in-order processors with at least two cycles of load-use delay are likely to manifest this stall.  In-order superscalars are likely to manifest this stall even with smaller load-use delays.
  
  While this is much less of an issue for out-of-order processors, this change has some value even there: the earlier an instructions' operands are available, the lower its occupancy in the issue window, reducing pressure on issue-window capacity.




Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D113967/new/

https://reviews.llvm.org/D113967



More information about the llvm-commits mailing list