OSDN Git Service

[WebAssembly] Implement tail calls and unify tablegen call classes
authorThomas Lively <tlively@google.com>
Wed, 26 Jun 2019 16:17:15 +0000 (16:17 +0000)
committerThomas Lively <tlively@google.com>
Wed, 26 Jun 2019 16:17:15 +0000 (16:17 +0000)
commit78cbc909591205b5b68966f2dc51731b4fc8bb20
tree9ab717e08a66b292a5fb59b37f098b667c322d27
parent8eda621833e483e202f5e10dc878b2fbe57389ed
[WebAssembly] Implement tail calls and unify tablegen call classes

Summary:
Implements direct and indirect tail calls enabled by the 'tail-call'
feature in both DAG ISel and FastISel. Updates existing call tests and
adds new tests including a binary encoding test.

Reviewers: aheejin

Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D62877

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364445 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
docs/CodeGenerator.rst
lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp
lib/Target/WebAssembly/WebAssemblyFastISel.cpp
lib/Target/WebAssembly/WebAssemblyISD.def
lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
lib/Target/WebAssembly/WebAssemblyInstrCall.td
lib/Target/WebAssembly/WebAssemblyInstrInfo.td
lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
lib/Target/WebAssembly/WebAssemblyPeephole.cpp
lib/Target/WebAssembly/WebAssemblyUtilities.cpp
test/CodeGen/WebAssembly/call.ll
test/CodeGen/WebAssembly/tailcall.ll
test/DebugInfo/WebAssembly/dbg-value-move-reg-stackify.mir
test/MC/WebAssembly/tail-call-encodings.s [new file with mode: 0644]