[PATCH] D133900: [AArch64][SME] Set up a lazy-save/restore around calls.

Kerry McLaughlin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 27 03:26:10 PDT 2022


kmclaughlin updated this revision to Diff 463163.
kmclaughlin marked 2 inline comments as done.
kmclaughlin added a comment.

- Changed LowerCall to allocate a lazy-save buffer and TPIDR2 block if `RequiresLazySave` is true but the TPIDR2 object has not yet been set in AArch64FunctionInfo. This is possible where requiresLazySave finds no calls in the function, but the function contains an instruction which will be lowered to a lib call (e.g. a 128 bit floating-point add).
- Renamed requiresLazySave to requiresBufferForLazySave.
- Added a function for allocating the buffer & TPIDR2 object (allocateLazySaveBuffer).
- Added a test case to sme-shared-za-interface.ll for the scenario described above.


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

https://reviews.llvm.org/D133900

Files:
  llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/lib/Target/AArch64/AArch64ISelLowering.h
  llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
  llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
  llvm/lib/Target/AArch64/AArch64RegisterInfo.h
  llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
  llvm/test/CodeGen/AArch64/sme-lazy-save-call.ll
  llvm/test/CodeGen/AArch64/sme-shared-za-interface.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D133900.463163.patch
Type: text/x-patch
Size: 25115 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220927/aa554df7/attachment.bin>


More information about the llvm-commits mailing list