Enable sibling call optimization of libcalls which are expanded during
authorEvan Cheng <evan.cheng@apple.com>
Tue, 30 Nov 2010 23:55:39 +0000 (23:55 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Tue, 30 Nov 2010 23:55:39 +0000 (23:55 +0000)
commit3d2125c9dbac695c93f42c0f59fd040e413fd711
tree1f7e426fb325a457b03fafbc84f4f6446af3c270
parent3f8c110dc643847363686d543a56c23c41353ab0
Enable sibling call optimization of libcalls which are expanded during
legalization time. Since at legalization time there is no mapping from
SDNode back to the corresponding LLVM instruction and the return
SDNode is target specific, this requires a target hook to check for
eligibility. Only x86 and ARM support this form of sibcall optimization
right now.
rdar://8707777

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120501 91177308-0d34-0410-b5e6-96231b3b80d8
13 files changed:
include/llvm/CodeGen/Analysis.h
include/llvm/Target/TargetLowering.h
lib/CodeGen/Analysis.cpp
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
lib/Target/ARM/ARMFrameInfo.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMISelLowering.h
lib/Target/X86/README.txt
lib/Target/X86/X86FrameInfo.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
test/CodeGen/ARM/call-tc.ll
test/CodeGen/X86/sibcall-5.ll [new file with mode: 0644]