[PATCH] D99272: [AArch64] Adds a pre-indexed paired Load/Store optimization for LDR-STR.
Stelios Ioannou via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 9 04:44:05 PDT 2021
stelios-arm marked 2 inline comments as done.
stelios-arm added a comment.
In D99272#2647947 <https://reviews.llvm.org/D99272#2647947>, @SjoerdMeijer wrote:
> Hi Stelios, many thanks for putting this together, good stuff.
> I will do a code-review a bit later, but as there's potential for some corner cases here, first a testing question. Did you do a bootstrap build and e.g. ran the llvm test suite?
This was done for the second revision.
================
Comment at: llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:2215
+ // instruction is a LDRQpre.
+ if (MI.hasOrderedMemoryRef() && MI.getOpcode() != AArch64::LDRQpre)
return false;
----------------
dmgreen wrote:
> stelios-arm wrote:
> > For `LDRQpre` , `MI.hasOrderedMemoryRef()`results to true because the instruction has no memory reference information, and conservatively assumes it wasn't preserved. Therefore, I added:
> > ```
> > && MI.getOpcode() != AArch64::LDRQpre
> > ```
> > to ignore it for this instruction. I suppose there is a better way of doing it, but I am not yet sure how.
> Why does the LDRQpre have no memory operand?
I added an explanation in the new revision (Point 5). This is going to be addressed in another patch and this patch will be updated accordingly.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D99272/new/
https://reviews.llvm.org/D99272
More information about the llvm-commits
mailing list