[all-commits] [llvm/llvm-project] 131708: [AArch64][SME] Support saving/restoring ZT0 in the...
Benjamin Maxwell via All-commits
all-commits at lists.llvm.org
Mon Dec 1 01:56:11 PST 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 1317083530b95fcf052f3017394a7719a67546fa
https://github.com/llvm/llvm-project/commit/1317083530b95fcf052f3017394a7719a67546fa
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2025-12-01 (Mon, 01 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
M llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
M llvm/test/CodeGen/AArch64/sme-peephole-opts.ll
M llvm/test/CodeGen/AArch64/sme-za-exceptions.ll
M llvm/test/CodeGen/AArch64/sme-zt0-state.ll
Log Message:
-----------
[AArch64][SME] Support saving/restoring ZT0 in the MachineSMEABIPass (#166362)
This patch extends the MachineSMEABIPass to support ZT0. This is done
with the addition of two new states:
- `ACTIVE_ZT0_SAVED`
* This is used when calling a function that shares ZA, but does not
share ZT0 (i.e., no ZT0 attributes)
* This state indicates ZT0 must be saved to the save slot, but ZA must
remain on, with no lazy save setup
- `LOCAL_COMMITTED`
* This is used for saving ZT0 in functions without ZA state
* This state indicates ZA is off and ZT0 has been saved
* This state is general enough to support ZA, but the required
transitions have not been implementedâ€
To aid with readability, the state transitions have been reworked to a
switch of `transitionFrom(<FromState>).to(<ToState>)`, rather than
nested ifs, which helps manage more transitions.
†This could be implemented to handle some cases of undefined behavior
better.
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