[PATCH] D112328: [AArch64] Async unwind - Always place the first LDP at the end when ReverseCSRRestoreSeq is true

Momchil Velikov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 22 09:21:43 PDT 2021


chill created this revision.
Herald added subscribers: hiraditya, kristof.beyls.
chill requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

This patch is in preparation for the async unwind CFI.

Put the first `LDP` the end, so that the load-store optimizer can run
and merge the `LDP` and the `ADD` into a post-index `LDP`.

Do this always and as early as at the time of the initial creation of
the CSR restore instructions, even if that `LDP` is not guaranteed to
be mergeable with a subsequent `SP` increment.

This greatly simplifies the CFI generation for prologue, as otherwise
we have to take extra steps to ensure reordering does not cross CFI
instructions.


https://reviews.llvm.org/D112328

Files:
  llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
  llvm/test/CodeGen/AArch64/reverse-csr-restore-seq.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D112328.381578.patch
Type: text/x-patch
Size: 8825 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211022/59c3570e/attachment.bin>


More information about the llvm-commits mailing list