[all-commits] [llvm/llvm-project] ca9ba7: [WebAssembly] Replace all calls with generalized m...

Thomas Lively via All-commits all-commits at lists.llvm.org
Tue Feb 18 16:01:48 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: ca9ba76481f1d2bf1bcf488e235f89847f39c6a4
      https://github.com/llvm/llvm-project/commit/ca9ba76481f1d2bf1bcf488e235f89847f39c6a4
  Author: Thomas Lively <tlively at google.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

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

  Log Message:
  -----------
  [WebAssembly] Replace all calls with generalized multivalue calls

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




More information about the All-commits mailing list