[llvm-branch-commits] [llvm] [AArch64][SME] Support split ZPR and PPR area allocation (PR #142392)
Sander de Smalen via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Sep 29 03:14:52 PDT 2025
================
@@ -1422,46 +1448,47 @@ StackOffset AArch64FrameLowering::resolveFrameOffsetReference(
SPOffset += StackOffset::getFixed(AFI->getCalleeSavedStackSize());
}
}
+
// Always use the FP for SVE spills if available and beneficial.
if (hasFP(MF) && (SPOffset.getFixed() ||
FPOffset.getScalable() < SPOffset.getScalable() ||
RegInfo->hasStackRealignment(MF))) {
FrameReg = RegInfo->getFrameRegister(MF);
return FPOffset;
}
-
FrameReg = RegInfo->hasBasePointer(MF) ? RegInfo->getBaseRegister()
: (unsigned)AArch64::SP;
+
return SPOffset;
}
- StackOffset ScalableOffset = {};
+ StackOffset SVEAreaOffset = {};
----------------
sdesmalen-arm wrote:
(this comment relates to the call to `AFI->getSVECalleeSavedStackSize()`, but Github doesn't allow me to put the comment in the right place)
`getSVECalleeSavedStackSize()` doesn't have any meaning in the context of `hasSplitSVEObjects() == true`. Can you add an assert to that function that `hasSplitSVEObjects() == false` to avoid us from accidentally using that value in places we shouldn't?
https://github.com/llvm/llvm-project/pull/142392
More information about the llvm-branch-commits
mailing list