[all-commits] [llvm/llvm-project] a96d82: [WebAssembly] Implementation of intrinsic for ref....

Paulo Matos via All-commits all-commits at lists.llvm.org
Mon Dec 6 00:48:28 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a96d8285101546c92116246939c2d53c57b88cf0
      https://github.com/llvm/llvm-project/commit/a96d8285101546c92116246939c2d53c57b88cf0
  Author: Paulo Matos <pmatos at igalia.com>
  Date:   2021-12-06 (Mon, 06 Dec 2021)

  Changed paths:
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/include/llvm/IR/IntrinsicsWebAssembly.td
    M llvm/lib/IR/Function.cpp
    M llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
    M llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
    M llvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.cpp
    M llvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.h
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td
    M llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
    M llvm/test/CodeGen/WebAssembly/funcref-call.ll
    M llvm/test/CodeGen/WebAssembly/funcref-table_call.ll
    A llvm/test/CodeGen/WebAssembly/ref-null.ll
    M llvm/test/MC/WebAssembly/reference-types.s
    M llvm/utils/TableGen/IntrinsicEmitter.cpp

  Log Message:
  -----------
  [WebAssembly] Implementation of intrinsic for ref.null and HeapType removal

This patch implements the intrinsic for ref.null.
In the process of implementing int_wasm_ref_null_func() and
int_wasm_ref_null_extern() intrinsics, it removes the redundant
HeapType.

This also causes the textual assembler syntax for ref.null to
change. Instead of receiving an argument: `func` or `extern`, the
instruction mnemonic is either ref.null_func or ref.null_extern,
without the need for a further operand.

Reviewed By: tlively

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




More information about the All-commits mailing list