Add support for generating TargetFrameIndex in complex patterns for
indexed addressing modes in SVE. Additionally, add missing load/stores
to getMemOpInfo and getLoadStoreImmIdx.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td | ||
---|---|---|
2246 | If these patterns are no longer needed, does the same thing apply to the two remaining uses of am_sve_fi? https://github.com/llvm/llvm-project/blob/888af47095d5a7121c1d78566df59c292f30ceaf/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td#L2304-L2305 ... and if so could am_sve_fi be removed? I'm guessing here that these are no longer necessary because some other part of the lowering handles it after your change, and I see that STR_PXI and LDR_PXI are already handled around there. |
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td | ||
---|---|---|
2246 | Not in their current state, no. The Other uses of arm_sve_fi are in places that don't have patterns for that the indexed complex patterns that have changed. I did consider changing those instruction patterns, but it's not clear to me why they have been written like that, and given it's not causing an issue I opted to leave them as is. |
Seeing a crash after this. Created a bug report here: https://github.com/llvm/llvm-project/issues/53781
If these patterns are no longer needed, does the same thing apply to the two remaining uses of am_sve_fi?
https://github.com/llvm/llvm-project/blob/888af47095d5a7121c1d78566df59c292f30ceaf/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td#L2304-L2305
https://github.com/llvm/llvm-project/blob/888af47095d5a7121c1d78566df59c292f30ceaf/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td#L2314-L2315
... and if so could am_sve_fi be removed? I'm guessing here that these are no longer necessary because some other part of the lowering handles it after your change, and I see that STR_PXI and LDR_PXI are already handled around there.