[PATCH] D45653: [X86] Enable sibling-call optimization for functions returning structs

Aleksandr Urakov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 28 12:32:38 PDT 2018


aleksandr.urakov added a comment.

In https://reviews.llvm.org/D45653#1216359, @efriedma wrote:

> I would rather not mess with this... mixing win64 and non-win64 calling conventions is going to be extremely rare in practice, and I don't really want to spend time combing through the ABI documents trying to figure out if anything can go wrong.


Oh, sorry, I've changed another condition accidentally. I wanted to ask you about the next check:
'''
if (isCalleeStructRet != isCallerStructRet)

  return false;

'''

> The problem would just be that EAX/RAX is set to the wrong value.

Yes, you are right, thanks. So the additional check of sret arguments equality is needed.


https://reviews.llvm.org/D45653





More information about the llvm-commits mailing list