[all-commits] [llvm/llvm-project] a8a371: [AArch64][SME2] Preserve ZT0 state around function...

Kerry McLaughlin via All-commits all-commits at lists.llvm.org
Sat Jan 20 04:06:13 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a8a3711e745286fd26f726b3397dbe5fb03ea465
      https://github.com/llvm/llvm-project/commit/a8a3711e745286fd26f726b3397dbe5fb03ea465
  Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
  Date:   2024-01-20 (Sat, 20 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.h
    M llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
    M llvm/lib/Target/AArch64/Utils/AArch64SMEAttributes.h
    A llvm/test/CodeGen/AArch64/sme-zt0-state.ll
    M llvm/unittests/Target/AArch64/SMEAttributesTest.cpp

  Log Message:
  -----------
  [AArch64][SME2] Preserve ZT0 state around function calls (#78321)

If a function has ZT0 state and calls a function which does not
preserve ZT0, the caller must save and restore ZT0 around the call.
If the caller shares ZT0 state and the callee is not shared ZA, we must
additionally call SMSTOP/SMSTART ZA around the call.

This patch adds new AArch64ISDNodes for spilling & filling ZT0.
Where requiresPreservingZT0 is true, ZT0 state will be preserved
across a call.




More information about the All-commits mailing list