[PATCH] D62344: [AArch64] Preserve X8 for thunks ending in variadic musttail calls

Reid Kleckner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 23 18:28:15 PDT 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL361585: [AArch64] Preserve X8 for thunks ending in variadic musttail calls (authored by rnk, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D62344?vs=201059&id=201111#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D62344/new/

https://reviews.llvm.org/D62344

Files:
  llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/trunk/test/CodeGen/AArch64/vararg-tallcall.ll


Index: llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp
===================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp
+++ llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp
@@ -3207,6 +3207,12 @@
                                        FuncInfo->getForwardedMustTailRegParms();
       CCInfo.analyzeMustTailForwardedRegisters(Forwards, RegParmTypes,
                                                CC_AArch64_AAPCS);
+
+      // Conservatively forward X8, since it might be used for aggregate return.
+      if (!CCInfo.isAllocated(AArch64::X8)) {
+        unsigned X8VReg = MF.addLiveIn(AArch64::X8, &AArch64::GPR64RegClass);
+        Forwards.push_back(ForwardedRegister(X8VReg, AArch64::X8, MVT::i64));
+      }
     }
   }
 
Index: llvm/trunk/test/CodeGen/AArch64/vararg-tallcall.ll
===================================================================
--- llvm/trunk/test/CodeGen/AArch64/vararg-tallcall.ll
+++ llvm/trunk/test/CodeGen/AArch64/vararg-tallcall.ll
@@ -28,7 +28,7 @@
 attributes #1 = { noinline optnone "thunk" }
 
 ; CHECK: mov     v16.16b, v0.16b
-; CHECK: ldr     x8, [x0]
-; CHECK: ldr     x8, [x8]
+; CHECK: ldr     x9, [x0]
+; CHECK: ldr     x9, [x9]
 ; CHECK: mov     v0.16b, v16.16b
-; CHECK: br      x8
+; CHECK: br      x9


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D62344.201111.patch
Type: text/x-patch
Size: 1321 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190524/70fc9b42/attachment.bin>


More information about the llvm-commits mailing list