[PATCH] D74192: [WebAssembly] Replace all calls with generalized multivalue calls

Thomas Lively via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 6 20:51:04 PST 2020


tlively created this revision.
tlively added a reviewer: aheejin.
Herald added subscribers: llvm-commits, sunfish, hiraditya, jgravelle-google, sbc100, mgorny, dschuff.
Herald added a project: LLVM.
tlively updated this revision to Diff 243074.
tlively added a comment.

- Resolve small TODO


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 <https://reviews.llvm.org/D72902>.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D74192

Files:
  llvm/lib/Target/WebAssembly/CMakeLists.txt
  llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp
  llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h
  llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
  llvm/lib/Target/WebAssembly/WebAssembly.h
  llvm/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyISD.def
  llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyInstrCall.td
  llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
  llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyUtilities.cpp
  llvm/test/CodeGen/WebAssembly/atomic-fence.mir
  llvm/test/CodeGen/WebAssembly/byval.ll
  llvm/test/CodeGen/WebAssembly/call-pic.ll
  llvm/test/CodeGen/WebAssembly/call.ll
  llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll
  llvm/test/CodeGen/WebAssembly/eh-labels.mir
  llvm/test/CodeGen/WebAssembly/exception.ll
  llvm/test/CodeGen/WebAssembly/f16.ll
  llvm/test/CodeGen/WebAssembly/f32.ll
  llvm/test/CodeGen/WebAssembly/f64.ll
  llvm/test/CodeGen/WebAssembly/frem.ll
  llvm/test/CodeGen/WebAssembly/function-bitcasts.ll
  llvm/test/CodeGen/WebAssembly/global.ll
  llvm/test/CodeGen/WebAssembly/libcalls.ll
  llvm/test/CodeGen/WebAssembly/llround-conv-i32.ll
  llvm/test/CodeGen/WebAssembly/lower-em-ehsjlj-options.ll
  llvm/test/CodeGen/WebAssembly/lower-global-dtors.ll
  llvm/test/CodeGen/WebAssembly/mem-intrinsics.ll
  llvm/test/CodeGen/WebAssembly/reg-stackify.ll
  llvm/test/CodeGen/WebAssembly/return-address-emscripten.ll
  llvm/test/CodeGen/WebAssembly/returned.ll
  llvm/test/CodeGen/WebAssembly/signext-arg.ll
  llvm/test/CodeGen/WebAssembly/simd-unsupported.ll
  llvm/test/CodeGen/WebAssembly/tailcall.ll
  llvm/test/CodeGen/WebAssembly/unsupported-function-bitcasts.ll
  llvm/test/CodeGen/WebAssembly/unused-argument.ll
  llvm/test/DebugInfo/WebAssembly/dbg-value-move-clone.mir
  llvm/test/DebugInfo/WebAssembly/dbg-value-move-reg-stackify.mir
  llvm/test/MC/WebAssembly/basic-assembly.s
  llvm/test/MC/WebAssembly/reloc-code.ll
  llvm/test/MC/WebAssembly/weak-alias.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D74192.243074.patch
Type: text/x-patch
Size: 94949 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200207/a876fac4/attachment.bin>


More information about the llvm-commits mailing list