
Summary: Extends the multivalue call infrastructure to tail calls, removes all legacy calls specialized for particular result types, and removes the CallIndirectFixup pass, since all indirect call arguments are now fixed up directly in the post-insertion hook. In order to keep supporting pretty-printed defs and uses in test expectations, MCInstLower now inserts an immediate containing the number of defs for each call and call_indirect. The InstPrinter is updated to query this immediate if it is present and determine which MCOperands are defs and uses accordingly. Depends on D72902. Reviewers: aheejin Subscribers: dschuff, mgorny, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74192
38 lines
1.2 KiB
C++
38 lines
1.2 KiB
C++
//- WebAssemblyISD.def - WebAssembly ISD ---------------------------*- C++ -*-//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
///
|
|
/// \file
|
|
/// This file describes the various WebAssembly ISD node types.
|
|
///
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// NOTE: NO INCLUDE GUARD DESIRED!
|
|
|
|
HANDLE_NODETYPE(CALL)
|
|
HANDLE_NODETYPE(RET_CALL)
|
|
HANDLE_NODETYPE(RETURN)
|
|
HANDLE_NODETYPE(ARGUMENT)
|
|
// A wrapper node for TargetExternalSymbol, TargetGlobalAddress, and MCSymbol
|
|
HANDLE_NODETYPE(Wrapper)
|
|
// A special wapper used in PIC code for __memory_base/__table_base relcative
|
|
// access.
|
|
HANDLE_NODETYPE(WrapperPIC)
|
|
HANDLE_NODETYPE(BR_IF)
|
|
HANDLE_NODETYPE(BR_TABLE)
|
|
HANDLE_NODETYPE(SHUFFLE)
|
|
HANDLE_NODETYPE(SWIZZLE)
|
|
HANDLE_NODETYPE(VEC_SHL)
|
|
HANDLE_NODETYPE(VEC_SHR_S)
|
|
HANDLE_NODETYPE(VEC_SHR_U)
|
|
HANDLE_NODETYPE(THROW)
|
|
HANDLE_NODETYPE(MEMORY_COPY)
|
|
HANDLE_NODETYPE(MEMORY_FILL)
|
|
|
|
// Memory intrinsics
|
|
HANDLE_MEM_NODETYPE(LOAD_SPLAT)
|