[PATCH] D68889: [WebAssembly] Allow multivalue types in block signature operands
Thomas Lively via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 11 14:13:37 PDT 2019
tlively created this revision.
tlively added reviewers: aheejin, dschuff, aardappel.
Herald added subscribers: llvm-commits, sunfish, hiraditya, jgravelle-google, sbc100.
Herald added a project: LLVM.
Renames `ExprType` to the more apt `BlockType` and adds a variant for
multivalue blocks. Currently non-void blocks are only generated at the
end of functions where the block return type needs to agree with the
function return type, and that remains true for multivalue
blocks. That invariant means that the actual signature does not need
to be stored in the block signature `MachineOperand` because it can be
inferred by `WebAssemblyMCInstLower` from the return type of the
parent function. `WebAssemblyMCInstLower` continues to lower block
signature operands to immediates when possible but lowers multivalue
signatures to function type symbols. The AsmParser and Disassembler
are updated to handle multivalue block types as well.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D68889
Files:
llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
llvm/lib/Target/WebAssembly/Disassembler/LLVMBuild.txt
llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp
llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp
llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.h
llvm/test/CodeGen/WebAssembly/multivalue.ll
llvm/test/MC/Disassembler/WebAssembly/wasm-error.txt
llvm/test/MC/WebAssembly/basic-assembly.s
llvm/tools/llvm-mc/Disassembler.cpp
llvm/tools/llvm-mc/Disassembler.h
llvm/tools/llvm-mc/llvm-mc.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D68889.224676.patch
Type: text/x-patch
Size: 24640 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191011/2a2aa0c1/attachment.bin>
More information about the llvm-commits
mailing list