Indirect tail call has to go through a call preserved register since it's after calle...
authorEvan Cheng <evan.cheng@apple.com>
Thu, 4 Feb 2010 02:40:39 +0000 (02:40 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 4 Feb 2010 02:40:39 +0000 (02:40 +0000)
commitdcea16313dfb5ec101daf9483de22daa02e0d59b
treeb9f47a1d5d106c8ade5feeac6e1bb5edb79973ba
parent76706584c2190f4a157ec7a3c89a7098ce9fd880
Indirect tail call has to go through a call preserved register since it's after callee register pops. X86 isel lowering is using EAX / R11 and it was somehow adding that to function live out. That prevented the real function return register from being added to the function live out list and bad things happen.
This fixes 483.xalancbmk (with tail call opt).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95280 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp