[all-commits] [llvm/llvm-project] 17e85c: [AArch64] Async unwind - Always place the first LD...
Momchil Velikov via All-commits
all-commits at lists.llvm.org
Thu Feb 24 10:57:32 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 17e85cd4109ca778a1b0f1a6521b16112ea1e766
https://github.com/llvm/llvm-project/commit/17e85cd4109ca778a1b0f1a6521b16112ea1e766
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2022-02-24 (Thu, 24 Feb 2022)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/test/CodeGen/AArch64/reverse-csr-restore-seq.mir
Log Message:
-----------
[AArch64] Async unwind - Always place the first LDP at the end when ReverseCSRRestoreSeq is true
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.
Reviewed By: danielkiss
Differential Revision: https://reviews.llvm.org/D112328
More information about the All-commits
mailing list