================
@@ -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
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits