[PATCH] D105807: [X86] pr51000 struct return tailcalling

Nathan Sidwell via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 15 13:30:28 PDT 2021


urnathan added inline comments.


================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:4679
+  // is incompatible.
+  if (callIsStructReturn(Outs, Subtarget.isTargetMCU()) == StackStructReturn) {
+    // For a compatible tail call the callee must return our sret pointer. So it
----------------
efriedma wrote:
> I feel like I must be blind here, but this is what we used to call isCalleeStructRet, right? 
> I thought we wanted to check isCallerStructRet?
Not quite.  callIsStructReturn's result is tri-valued.  Previously we were checking != NotStructReturn.  It is sufficient to check == StackStructReturn, as RegStructReturn is tailcallable.  I moved the call to callIsStructReturn here, from the caller, because its the only use of that value.


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

https://reviews.llvm.org/D105807



More information about the llvm-commits mailing list