[llvm] [AArch64][SME] Fix frame lowering not using a base pointer for SME functions. (PR #91643)

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Fri May 10 11:47:26 PDT 2024


================
@@ -552,7 +552,8 @@ bool AArch64RegisterInfo::hasBasePointer(const MachineFunction &MF) const {
     if (hasStackRealignment(MF))
       return true;
 
-    if (MF.getSubtarget<AArch64Subtarget>().hasSVE()) {
+    auto &ST = MF.getSubtarget<AArch64Subtarget>();
+    if (ST.hasSVEorSME()) {
----------------
efriedma-quic wrote:

Really what you want is `ST.hasSVE() || (ST.hasSME() && SMEAttrs(MF->getFunction).hasStreamingInterfaceOrBody())`. Maybe the subtarget should expose a helper for this.

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


More information about the llvm-commits mailing list