Added tail call optimization to the x86 back end. It can be
authorArnold Schwaighofer <arnold.schwaighofer@gmail.com>
Thu, 11 Oct 2007 19:40:01 +0000 (19:40 +0000)
committerArnold Schwaighofer <arnold.schwaighofer@gmail.com>
Thu, 11 Oct 2007 19:40:01 +0000 (19:40 +0000)
commitc85e1716f0e45e4c18a9ef2fbe431a51ac3a4252
treee6e745a81699085d757db166e645f8a6639cde7a
parent68c8411ef591818d89c6a81098a328fcd75be72a
Added tail call optimization to the x86 back end. It can be
enabled by passing -tailcallopt to llc.  The optimization is
performed if the following conditions are satisfied:
* caller/callee are fastcc
* elf/pic is disabled OR
  elf/pic enabled + callee is in module + callee has
  visibility protected or hidden

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42870 91177308-0d34-0410-b5e6-96231b3b80d8
16 files changed:
include/llvm/Target/TargetLowering.h
include/llvm/Target/TargetOptions.h
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
lib/Target/TargetMachine.cpp
lib/Target/X86/README.txt
lib/Target/X86/X86CallingConv.td
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
lib/Target/X86/X86InstrInfo.cpp
lib/Target/X86/X86InstrInfo.td
lib/Target/X86/X86InstrX86-64.td
lib/Target/X86/X86MachineFunctionInfo.h
lib/Target/X86/X86RegisterInfo.cpp
test/CodeGen/X86/tailcall1.ll [new file with mode: 0644]
test/CodeGen/X86/tailcallpic1.ll [new file with mode: 0644]
test/CodeGen/X86/tailcallpic2.ll [new file with mode: 0644]