[PATCH] D136361: [AArch64][SME] Disable GlobalISel/FastISel for SME functions.

David Sherwood via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 27 11:52:31 PDT 2022


david-arm added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64FastISel.cpp:5121
+  SMEAttrs CallerAttrs(*FuncInfo.Fn);
+  if (!CallerAttrs.hasStreamingInterface() && CallerAttrs.hasStreamingBody())
+    return nullptr;
----------------
Should we also check for arm_new_za here too?


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:21892
+                                     /*BodyOverridesInterface=*/false) ||
+        CallerAttrs.requiresLazySave(CalleeAttrs))
+      return true;
----------------
I guess this covers most cases, except I'm not sure what happens at -O0 if the caller is in a shared-ZA function and contains something like a 128-bit FP IR that ends up getting lowered to a library call to a private-ZA function. Maybe this just works and we just a need a test for it?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D136361



More information about the llvm-commits mailing list