[PATCH] D47349: [AArch64] Limit inlining string functions with strict alignment

Evandro Menezes via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 25 09:15:25 PDT 2018


evandro added a comment.

In https://reviews.llvm.org/D47349#1111849, @efriedma wrote:

> If I'm following correctly, the problem here is that we don't have paired load/store operations for byte operations, so the threshold is roughly double what it should be. StrictAlign isn't really a good proxy for that; it doesn't have anything to do with whether a particular memcpy will lower to paired operations. Ideally, we should probably come up with some callback to give a bonus to paired operations rather than penalize all operations in StrictAlign mode.


The problem is less the lack of paired byte wide loads and stores than having to use byte wide loads and stores.  Fortunately,

> That said, just checking StrictAlign might be a good enough approximation for now; most code isn't built with strict alignment.  Needs an comment explaining what you're doing, though.

OK

> Given you're just checking the subtarget, I don't think you need to make getMaxStoresPerMemcpy virtual; you can just modify AArch64TargetLowering::AArch64TargetLowering.

The sub-target doesn't exist in the base class though.


Repository:
  rL LLVM

https://reviews.llvm.org/D47349





More information about the llvm-commits mailing list