[PATCH] D159186: [AArch64][SME] Enable TPIDR2 lazy-save for za_preserved

Sander de Smalen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 30 06:53:00 PDT 2023


sdesmalen added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:7319
+
+  bool RequiresLazySave = CallerAttrs.requiresLazySave(CalleeAttrs);
+  if (RequiresLazySave) {
----------------
`requiresLazySave` should return `true`, even when the function has the `aarch64_pstate_za_preserved` attribute. That also makes this code below a bit simpler.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:7331
+                                 CalleeAttrs.hasPreservedZAInterface() &&
+                                 !CalleeAttrs.hasStreamingCompatibleInterface();
+  if (HasPreservedZAInterface) {
----------------
Streaming-properties are orthogonal to ZA, so don't belong in this condition.


================
Comment at: llvm/lib/Target/AArch64/Utils/AArch64SMEAttributes.h:79
   bool hasPrivateZAInterface() const { return !hasSharedZAInterface(); }
-  bool preservesZA() const { return Bitmask & ZA_Preserved; }
+  bool hasPreservedZAInterface() const { return Bitmask & ZA_Preserved; }
   bool hasZAState() const {
----------------
Could you keep the original name please?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D159186/new/

https://reviews.llvm.org/D159186



More information about the llvm-commits mailing list