[all-commits] [llvm/llvm-project] 28857d: [WebAssembly] Split and recombine multivalue calls...

Thomas Lively via All-commits all-commits at lists.llvm.org
Tue Jan 21 11:31:37 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 28857d14a86b1e99a9d2795636a5faf17674f5a2
      https://github.com/llvm/llvm-project/commit/28857d14a86b1e99a9d2795636a5faf17674f5a2
  Author: Thomas Lively <tlively at google.com>
  Date:   2020-01-21 (Tue, 21 Jan 2020)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrCall.td

  Log Message:
  -----------
  [WebAssembly] Split and recombine multivalue calls for ISel

Summary:
Multivalue calls both take and return an arbitrary number of
arguments, but ISel only supports one or the other in a single
instruction. To get around this, calls are modeled as two pseudo
instructions during ISel. These pseudo instructions, CALL_PARAMS and
CALL_RESULTS, are recombined into a single CALL MachineInstr in a
custom emit hook.

RegStackification and the MC layer will additionally need to be made
aware of multivalue calls before the tests will produce correct
output.

Reviewers: aheejin, dschuff

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

Tags: #llvm

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




More information about the All-commits mailing list