[PATCH] D67327: [ARM] Fix for MVE narrow load/store stack accesses
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 17 03:36:36 PDT 2019
dmgreen updated this revision to Diff 220467.
dmgreen added a comment.
The widening/narrowing MVE loads and stores, like MVE_VLDRBU32 (the B with the 32, in this example) can only take "thumb" registers as they only have 3 bits for the Rn operand. Which is what I meant by "can't take SP". This is not something that any other stack load/store has had to deal with in the past, and hence RegClass->contains(ARM::SP) is added here to check for such cases. Similar to https://reviews.llvm.org/D66285.
The other MVE loads/stores, like a MVE_VLDRBU8 do have the full 4 bits needed for "Thumb2" register, so do not hit the same problem. They can accept a SP and it will only be a problem for frame indices if the offset is out of range of the instruction.
I've added another test for that second case.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D67327/new/
https://reviews.llvm.org/D67327
Files:
llvm/lib/Target/ARM/ARMFrameLowering.cpp
llvm/test/CodeGen/Thumb2/mve-stacksplot.mir
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67327.220467.patch
Type: text/x-patch
Size: 10531 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190917/f15291c6/attachment.bin>
More information about the llvm-commits
mailing list