[PATCH] D115029: [AArch64] Try to fold lsl + ldr/str

JinGu Kang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 3 04:03:23 PST 2021


jaykang10 added a comment.

In D115029#3169432 <https://reviews.llvm.org/D115029#3169432>, @dmgreen wrote:

> Could this just update the code in https://github.com/llvm/llvm-project/blob/1f5510326375cb9a7c747aab26080699f7952d74/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp#L510?

Ah, you are right! It looks the `isWorthFoldingSHL` is doing same thing and it will work within a block.
However, if the `lsl` is in different block with the `ldr/str`, it would not work because there would be `CopyFromReg` for `lsl` in the block of `ldr/str`.

> It sounds like FeatureLSLFast could be more generally enabled, depending on what the conditions are for when this is fast.

Yep, I agree with you. At least, we need to enable it for neoverse.


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

https://reviews.llvm.org/D115029



More information about the llvm-commits mailing list