[all-commits] [llvm/llvm-project] e6cbba: [libc++abi][WebAssembly] Support Wasm EH

Heejin Ahn via All-commits all-commits at lists.llvm.org
Fri Sep 22 00:34:49 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e6cbba749490a20127359a3fbd05d8db7faef535
  Author: Heejin Ahn <aheejin at gmail.com>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M libcxxabi/include/cxxabi.h
    M libcxxabi/src/cxa_exception.cpp
    M libcxxabi/src/cxa_exception.h
    M libcxxabi/src/cxa_personality.cpp

  Log Message:
  [libc++abi][WebAssembly] Support Wasm EH

This adds Wasm-specific libc++abi changes to support Wasm exception
handling (https://github.com/WebAssembly/exception-handling).

Wasm EH requires `__USING_WASM_EXCEPTIONS__` to be defined. Wasm EH's
LSDA handling mostly shares that of SjLj EH.
Changes are:
- In Wasm, a destructor returns its argument.
- Wasm EH currently only has one phase (search) that does both search
  and cleanup. So added an additional `set_registers` to support that.

The bulk of these changes was added back in Mar 2020 in
https://github.com/emscripten-core/emscripten/pull/10577 to emscripten
repo and has been used ever since. Now we'd like to upstream this so
that other toolchains that don't use emscripten libraries, e.g., WASI,
can use this too.

Companion patch: D158919

Reviewed By: dschuff, #libc_abi, phosek

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

More information about the All-commits mailing list