Add 'musttail' marker to call instructions
authorReid Kleckner <reid@kleckner.net>
Thu, 24 Apr 2014 20:14:34 +0000 (20:14 +0000)
committerReid Kleckner <reid@kleckner.net>
Thu, 24 Apr 2014 20:14:34 +0000 (20:14 +0000)
commit710c1a449dd7bee747ecf9c344a6f6d5461a158d
tree112a9b219c12b5a90996ac964c861b3526f25266
parent870200a833584ca4e05f5d1258265451d8b871eb
Add 'musttail' marker to call instructions

This is similar to the 'tail' marker, except that it guarantees that
tail call optimization will occur.  It also comes with convervative IR
verification rules that ensure that tail call optimization is possible.

Reviewers: nicholas

Differential Revision: http://llvm-reviews.chandlerc.com/D3240

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207143 91177308-0d34-0410-b5e6-96231b3b80d8
21 files changed:
docs/LangRef.rst
include/llvm/IR/CallSite.h
include/llvm/IR/Instructions.h
lib/AsmParser/LLLexer.cpp
lib/AsmParser/LLParser.cpp
lib/AsmParser/LLParser.h
lib/AsmParser/LLToken.h
lib/Bitcode/Reader/BitcodeReader.cpp
lib/Bitcode/Writer/BitcodeWriter.cpp
lib/IR/AsmWriter.cpp
lib/IR/Verifier.cpp
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM64/ARM64ISelLowering.cpp
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/X86/X86ISelLowering.cpp
test/Bitcode/tailcall.ll [new file with mode: 0644]
test/CodeGen/X86/musttail.ll [new file with mode: 0644]
test/Verifier/musttail-invalid.ll [new file with mode: 0644]
test/Verifier/musttail-valid.ll [new file with mode: 0644]