[WebAssembly] Support select and block for reference types
authorHeejin Ahn <aheejin@gmail.com>
Mon, 30 Nov 2020 09:39:13 +0000 (01:39 -0800)
committerHeejin Ahn <aheejin@gmail.com>
Wed, 2 Dec 2020 03:16:57 +0000 (19:16 -0800)
commit60653e24b6297f2830b9de649f575840ecb364b6
treea5ebb77fd9a153e88063f81ed133e66c1b2c7772
parentce5e21868c22479df62ebd8884adc1bd7c964433
[WebAssembly] Support select and block for reference types

This adds missing `select` instruction support and block return type
support for reference types. Also refactors WebAssemblyInstrRef.td and
rearranges tests in reference-types.s. Tests don't include `exnref`
types, because we currently don't support `exnref` for `ref.null` and
the type will be removed soon anyway.

Reviewed By: tlively, sbc100, wingo

Differential Revision: https://reviews.llvm.org/D92359
llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp
llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp
llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td
llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp
llvm/test/MC/WebAssembly/reference-types.s