[all-commits] [llvm/llvm-project] c2293b: [WebAssembly] Implement the wide-arithmetic propos...

Alex Crichton via All-commits all-commits at lists.llvm.org
Wed Oct 23 11:40:20 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c2293b33ddc6c722178087d85b2b4312ea830d12
      https://github.com/llvm/llvm-project/commit/c2293b33ddc6c722178087d85b2b4312ea830d12
  Author: Alex Crichton <alex at alexcrichton.com>
  Date:   2024-10-23 (Wed, 23 Oct 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Basic/Targets/WebAssembly.cpp
    M clang/lib/Basic/Targets/WebAssembly.h
    M clang/test/Driver/wasm-features.c
    M clang/test/Preprocessor/wasm-target-features.c
    M llvm/lib/Target/WebAssembly/WebAssembly.td
    M llvm/lib/Target/WebAssembly/WebAssemblyISD.def
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td
    M llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
    A llvm/test/CodeGen/WebAssembly/wide-arithmetic.ll

  Log Message:
  -----------
  [WebAssembly] Implement the wide-arithmetic proposal (#111598)

This commit implements the [wide-arithmetic] proposal which has recently
reached phase 2 in the WebAssembly proposals process. The goal here is
to implement support in LLVM for emitting these instructions which are
gated behind a new feature flag by default. A new `wide-arithmetic`
feature flag is introduced which gates these four new instructions from
being emitted.

Emission of each instruction itself is relatively simple given LLVM's
preexisting lowering rules and infrastructure. The main gotcha is that
due to the multi-result nature of all of these instructions it needed
the lowerings to be implemented in C++ rather than in TableGen.

[wide-arithmetic]: https://github.com/WebAssembly/wide-arithmetic



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list