[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