[all-commits] [llvm/llvm-project] 35cce4: [WebAssembly] Support the new "Lime1" CPU (#112035)

Dan Gohman via All-commits all-commits at lists.llvm.org
Tue Dec 3 16:35:44 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 35cce408eef1a253df12c0023c993d78b180b1f3
      https://github.com/llvm/llvm-project/commit/35cce408eef1a253df12c0023c993d78b180b1f3
  Author: Dan Gohman <dev at sunfishcode.online>
  Date:   2024-12-03 (Tue, 03 Dec 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Basic/Targets/WebAssembly.cpp
    M llvm/docs/ReleaseNotes.md
    M llvm/lib/Target/WebAssembly/WebAssembly.td
    M llvm/test/CodeGen/WebAssembly/target-features-cpus.ll

  Log Message:
  -----------
  [WebAssembly] Support the new "Lime1" CPU (#112035)

This adds WebAssembly support for the new [Lime1 CPU].

First, this defines some new target features. These are subsets of
existing
features that reflect implementation concerns:

- "call-indirect-overlong" - implied by "reference-types"; just the
overlong
encoding for the `call_indirect` immediate, and not the actual reference
   types.

 - "bulk-memory-opt" - implied by "bulk-memory": just `memory.copy` and
   `memory.fill`, and not the other instructions in the bulk-memory
    proposal.

Next, this defines a new target CPU, "lime1", which enables
mutable-globals,
bulk-memory-opt, multivalue, sign-ext, nontrapping-fptoint,
extended-const,
and call-indirect-overlong. Unlike the default "generic" CPU, "lime1" is
meant
to be frozen, and followed up by "lime2" and so on when new features are
desired.

[Lime1 CPU]:
https://github.com/WebAssembly/tool-conventions/blob/main/Lime.md#lime1

---------

Co-authored-by: Heejin Ahn <aheejin at gmail.com>



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