[all-commits] [llvm/llvm-project] f6a6d4: [AArch64][SME] Support saving/restoring ZT0 in the...

Benjamin Maxwell via All-commits all-commits at lists.llvm.org
Tue Nov 25 02:33:45 PST 2025


  Branch: refs/heads/users/MacDue/mirzt0_3
  Home:   https://github.com/llvm/llvm-project
  Commit: f6a6d49f1f6956c1cb66ce9ec1fba60c48d73c7f
      https://github.com/llvm/llvm-project/commit/f6a6d49f1f6956c1cb66ce9ec1fba60c48d73c7f
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2025-11-25 (Tue, 25 Nov 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

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
      share ZT0 (i.e., no ZT0 attributes).
    * This state indicates ZT0 must be saved to the save slot, but
      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 those
      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.

Change-Id: I14be4a7f8b998fe667bfaade5088f88039515f91


  Commit: 847d29696ab63afc6ed4b1c426e61e9fe124e612
      https://github.com/llvm/llvm-project/commit/847d29696ab63afc6ed4b1c426e61e9fe124e612
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M llvm/lib/Target/AArch64/MachineSMEABIPass.cpp

  Log Message:
  -----------
  Make transistions to OFF explicit

Change-Id: I80a6f954f308269684f205098ee43eb20e1bd670


  Commit: 2ccc561d37b0338d7dfb029cd0c75479760c9d42
      https://github.com/llvm/llvm-project/commit/2ccc561d37b0338d7dfb029cd0c75479760c9d42
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M llvm/lib/Target/AArch64/MachineSMEABIPass.cpp

  Log Message:
  -----------
  Add comment

Change-Id: I29831358c352e68eb5838bb4d8f2e424ba415adb


  Commit: 47a8e8fa504d0cc0df919876f0f46b16e0737527
      https://github.com/llvm/llvm-project/commit/47a8e8fa504d0cc0df919876f0f46b16e0737527
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M llvm/lib/Target/AArch64/MachineSMEABIPass.cpp

  Log Message:
  -----------
  TODO

Change-Id: Ib00ead9b59fdf77151ea21a26341d3d4b6502a32


  Commit: 840c0801a2663504878c4736fbc29005863132a9
      https://github.com/llvm/llvm-project/commit/840c0801a2663504878c4736fbc29005863132a9
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

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

  Log Message:
  -----------
  Add extra test (and missing transition)

Change-Id: If4df9272e1951487a0491b734293f3265024c6a9


  Commit: b769f41acc4e04a402f5e287443822c797ce27d7
      https://github.com/llvm/llvm-project/commit/b769f41acc4e04a402f5e287443822c797ce27d7
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M llvm/lib/Target/AArch64/MachineSMEABIPass.cpp

  Log Message:
  -----------
  Remove [[maybe_unused]]

Change-Id: I762a5672deffef003dea39832f8fa11c202a78cb


Compare: https://github.com/llvm/llvm-project/compare/34d359105ad4...b769f41acc4e

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