diff options
| author | Arnold Schwaighofer <arnold.schwaighofer@gmail.com> | 2007-10-11 19:40:01 +0000 |
|---|---|---|
| committer | Arnold Schwaighofer <arnold.schwaighofer@gmail.com> | 2007-10-11 19:40:01 +0000 |
| commit | 9ccea99165d2e5cb4fba57b0d02e56651e2ae28c (patch) | |
| tree | b0726d27dcf2a842adb38aef6a374c5e2aee9b9e /llvm/lib/Target/X86/X86InstrInfo.cpp | |
| parent | 29cfef59ff083be23222631e4ebbe7f695ef8386 (diff) | |
| download | bcm5719-llvm-9ccea99165d2e5cb4fba57b0d02e56651e2ae28c.tar.gz bcm5719-llvm-9ccea99165d2e5cb4fba57b0d02e56651e2ae28c.zip | |
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
llvm-svn: 42870
Diffstat (limited to 'llvm/lib/Target/X86/X86InstrInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp index 986aa0bc806..9d5e6371199 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.cpp +++ b/llvm/lib/Target/X86/X86InstrInfo.cpp @@ -706,6 +706,8 @@ bool X86InstrInfo::BlockHasNoFallThrough(MachineBasicBlock &MBB) const { if (MBB.empty()) return false; switch (MBB.back().getOpcode()) { + case X86::TCRETURNri: + case X86::TCRETURNdi: case X86::RET: // Return. case X86::RETI: case X86::TAILJMPd: |

