[PATCH] D143361: [RISCV] Support __builtin_nontemporal_load/store by MachineMemOperand

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 24 11:38:36 PST 2023


craig.topper added a comment.

In D143361#4150627 <https://reviews.llvm.org/D143361#4150627>, @reames wrote:

> The way other targets appear to be approach this is to modify ISEL.  Can you explain why you believe the late hint insertion pass is the right approach here?  The alternative would be to have a family of non-temporal pseudos which expanded into a hint + a memory op.  I don't have a strong opinion, just curious for the justification.

I think this was to reduce the number of vector pseudos required. There 2088 vector pseudos today if you considered unit stride, strided, indexed(with different eews for index). Then there are segment versions of those with different seqment sizes. Then there are masked, unmasked, and tail undisturbed versions. For full generality we would need to apply non-temporal hint to all of them. Though __builtin_nontemporal_load doesn't need all of those variations we could have target specific intrinsics that do.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D143361



More information about the llvm-commits mailing list