[llvm] [AArch64][Windows] Fix swift async context slot placement (PR #212922)

Saleem Abdulrasool via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 31 15:50:33 PDT 2026


================
@@ -2858,8 +2852,7 @@ bool AArch64FrameLowering::assignCalleeSavedSpillSlots(
     MFI.setIsCalleeSavedObjectIndex(FrameIdx, true);
 
     // Grab 8 bytes below FP for the extended asynchronous frame info.
-    if (hasFP(MF) && AFI->hasSwiftAsyncContext() && !IsWindows &&
-        Reg == AArch64::FP) {
+    if (hasFP(MF) && AFI->hasSwiftAsyncContext() && Reg == AArch64::FP) {
       FrameIdx = MFI.CreateStackObject(8, Alignment, true);
----------------
compnerd wrote:

I don't think that the alignment on its own is going to fix this. The movement is fine - but we should figure out if we need the wider alignment on the spill. Is the reason for the 16-byte alignment on the first that we just need the frame area to be 16-byte aligned, and the rest can be safely 8-byte aligned (which is preferable), or do we need to ensure the 16-byte alignment on the async context?

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


More information about the llvm-commits mailing list