Prevent obscure and incorrect tail-call optimization.
authorChad Rosier <mcrosier@apple.com>
Fri, 2 Mar 2012 02:50:46 +0000 (02:50 +0000)
committerChad Rosier <mcrosier@apple.com>
Fri, 2 Mar 2012 02:50:46 +0000 (02:50 +0000)
commit74bab7f597b24d847175f8550002d8a014f63c8c
tree6cf987b03e7b39b0d9b6ef1d8e7168a6b606c446
parentb83e2bbfbc107a71632bd42f2be8186554b16e1f
Prevent obscure and incorrect tail-call optimization.

In this instance we are generating the tail-call during legalizeDAG.  The 2nd
floor call can't be a tail call because it clobbers %xmm1, which is defined by
the first floor call.  The first floor call can't be a tail-call because it's
not in the tail position.  The only reasonable way I could think to fix this
in a target-independent manner was to check for glue logic on the copy reg.

rdar://10930395

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151877 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/sibcall-5.ll