[PATCH] D150803: [WebAssembly] Add a new `wasm_async` clang attribute for marking async functions.

Brendan Dahl via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed May 17 10:45:32 PDT 2023


brendandahl created this revision.
brendandahl added a reviewer: sbc100.
Herald added subscribers: pmatos, asb, jdoerfert, ecnelises, sunfish, hiraditya, jgravelle-google, dschuff.
Herald added a reviewer: aaron.ballman.
Herald added a project: All.
brendandahl requested review of this revision.
Herald added subscribers: llvm-commits, cfe-commits, aheejin.
Herald added projects: clang, LLVM.

The attribute may be attached to a function definition, which indicates
the function will be used with JavaScript promise integration (JSPI). The
attribute will cause the creation of a custom section named "async" that
contains each wasm_async function's index value.

A new patchable relocation type for function indexes had to be created so
the custom section could be updated during linking.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D150803

Files:
  clang/include/clang/Basic/Attr.td
  clang/include/clang/Basic/AttrDocs.td
  clang/lib/CodeGen/TargetInfo.cpp
  clang/lib/Sema/SemaDeclAttr.cpp
  clang/test/CodeGen/WebAssembly/wasm-async.c
  clang/test/Misc/pragma-attribute-supported-attributes-list.test
  lld/test/wasm/async.ll
  lld/test/wasm/merge-async-section.ll
  lld/wasm/InputChunks.cpp
  lld/wasm/InputFiles.cpp
  llvm/include/llvm/BinaryFormat/WasmRelocs.def
  llvm/include/llvm/MC/MCExpr.h
  llvm/lib/MC/MCExpr.cpp
  llvm/lib/MC/WasmObjectWriter.cpp
  llvm/lib/Object/WasmObjectFile.cpp
  llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h
  llvm/test/CodeGen/WebAssembly/async.ll
  llvm/test/MC/WebAssembly/async.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D150803.523110.patch
Type: text/x-patch
Size: 25741 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230517/cd39274e/attachment-0001.bin>


More information about the cfe-commits mailing list