[all-commits] [llvm/llvm-project] 400faf: [AArch64][SME] Treat agnostic ZA invokes like priv...

Benjamin Maxwell via All-commits all-commits at lists.llvm.org
Tue Oct 14 01:31:42 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 400faf912e40c17c79f58fd5d599fc9268221466
      https://github.com/llvm/llvm-project/commit/400faf912e40c17c79f58fd5d599fc9268221466
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2025-10-14 (Tue, 14 Oct 2025)

  Changed paths:
    M llvm/lib/Target/AArch64/Utils/AArch64SMEAttributes.cpp
    M llvm/test/CodeGen/AArch64/sme-za-exceptions.ll

  Log Message:
  -----------
  [AArch64][SME] Treat agnostic ZA invokes like private ZA callees (#162684)

An invoke of an agnostic ZA function behaves like a private ZA callee.
If the invoke does not return normally (and we end up in an exception
block in the caller), ZA must be committed to the caller's save buffer
(and off).

We can ensure this by setting up a ZA save before an agnostic ZA invoke.
This will result in the agnostic ZA invoke committing ZA to its caller's
save buffer, rather than its local buffer, which allows us to reload the
correct contents of ZA within exception blocks.

Note: This also means we must restore ZA on the non-exceptional path
from the `invoke` (since ZA could have been committed to the save buffer
in either case).



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list