[PATCH] D71556: [AArch64][SVE] Implement intrinsic for non-faulting loads

Sander de Smalen via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 17 06:29:53 PST 2019


sdesmalen added a comment.

In D71556#1786465 <https://reviews.llvm.org/D71556#1786465>, @efriedma wrote:

> I'm not sure it's legal to transform a non-faulting load to a load with a non-faulting flag?  At least, we'd need to consider the implications of that very carefully.  In particular, I'm concerned about the interaction with intrinsics that read/write FFR.  I mean, you could specify that loads marked MONonFaulting actually write to the FFR register, but that seems confusing.
>
> It seems simpler to preserve the intrinsic until isel, at least for now.


I missed this comment earlier, but that's a valid point. For SVE having side-effects is assumed from the non-faulting flag. We hoped to latch on to the MLOAD here to reuse code and benefit from legalization in case we want to add a more generic mechanism in the future to use such loads directly in the loop-vectorizer.

Perhaps we can clarify the intent that the non-faulting mode may have side-effects by renaming the flag to something like `NonFaultingWithSideEffects`? Otherwise we can stick with the intrinsics as you suggest.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D71556





More information about the cfe-commits mailing list