[llvm] [AArch64][SME] Implement the SME ABI (ZA state management) in Machine IR (PR #149062)

Gaƫtan Bossu via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 14 08:44:13 PDT 2025


================
@@ -86,6 +90,30 @@ let usesCustomInserter = 1, Defs = [SP] in {
 def : Pat<(i64 (AArch64AllocateSMESaveBuffer GPR64:$size)),
           (AllocateSMESaveBuffer $size)>;
 
+//===----------------------------------------------------------------------===//
+// New SME ABI lowering ISD nodes/pseudos (-aarch64-new-sme-abi)
+//===----------------------------------------------------------------------===//
+
+let hasSideEffects = 1 in {
+  def InOutZAUsePseudo : Pseudo<(outs), (ins), []>, Sched<[]>;
+  def RequiresZASavePseudo : Pseudo<(outs), (ins), []>, Sched<[]>;
----------------
gbossu wrote:

Nit: AFAIR those are just marker nodes and they will eventually be eliminated. Would it make sense to mark them as `Meta`?

https://github.com/llvm/llvm-project/pull/149062


More information about the llvm-commits mailing list