[llvm] [AArch64][SVE] Move incorrectly placed assert (PR #144318)
Benjamin Maxwell via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 16 02:01:43 PDT 2025
https://github.com/MacDue updated https://github.com/llvm/llvm-project/pull/144318
>From c7d7ded31e4bec436a88ec72565f664441cc4480 Mon Sep 17 00:00:00 2001
From: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: Mon, 16 Jun 2025 08:46:15 +0000
Subject: [PATCH 1/2] [AArch64][SVE] Move incorrectly placed assert
This assert is only valid if FPAfterSVECalleeSaves is true, for the
default layout resolving CSR works correctly.
---
llvm/lib/Target/AArch64/AArch64FrameLowering.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp b/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
index 2650c621e19f6..787a74b978999 100644
--- a/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+++ b/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
@@ -2896,8 +2896,6 @@ StackOffset AArch64FrameLowering::resolveFrameOffsetReference(
isTargetWindows(MF) && AFI->getSVECalleeSavedStackSize();
if (isSVE) {
- assert(-ObjectOffset > (int64_t)AFI->getSVECalleeSavedStackSize() &&
- "Math isn't correct for CSRs with FPAfterSVECalleeSaves");
StackOffset FPOffset =
StackOffset::get(-AFI->getCalleeSaveBaseToFrameRecordOffset(), ObjectOffset);
StackOffset SPOffset =
@@ -2905,6 +2903,8 @@ StackOffset AArch64FrameLowering::resolveFrameOffsetReference(
StackOffset::get(MFI.getStackSize() - AFI->getCalleeSavedStackSize(),
ObjectOffset);
if (FPAfterSVECalleeSaves) {
+ assert(-ObjectOffset > (int64_t)AFI->getSVECalleeSavedStackSize() &&
+ "Math isn't correct for CSRs with FPAfterSVECalleeSaves");
FPOffset += StackOffset::getScalable(AFI->getSVECalleeSavedStackSize());
}
// Always use the FP for SVE spills if available and beneficial.
>From 309c6299028c153cd1b933442f6dc33d0e92810c Mon Sep 17 00:00:00 2001
From: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: Mon, 16 Jun 2025 09:01:31 +0000
Subject: [PATCH 2/2] Format
---
llvm/lib/Target/AArch64/AArch64FrameLowering.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp b/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
index 787a74b978999..7ffe779f2408d 100644
--- a/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+++ b/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
@@ -2904,7 +2904,7 @@ StackOffset AArch64FrameLowering::resolveFrameOffsetReference(
ObjectOffset);
if (FPAfterSVECalleeSaves) {
assert(-ObjectOffset > (int64_t)AFI->getSVECalleeSavedStackSize() &&
- "Math isn't correct for CSRs with FPAfterSVECalleeSaves");
+ "Math isn't correct for CSRs with FPAfterSVECalleeSaves");
FPOffset += StackOffset::getScalable(AFI->getSVECalleeSavedStackSize());
}
// Always use the FP for SVE spills if available and beneficial.
More information about the llvm-commits
mailing list