aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineCopyPropagation.cpp
diff options
context:
space:
mode:
authorHeejin Ahn <aheejin@gmail.com>2021-08-23 03:55:55 -0700
committerHeejin Ahn <aheejin@gmail.com>2021-08-24 18:12:52 -0700
commita947b40cafa8a1d7e241699c1400d80c77e9894c (patch)
tree9738091d90f9df2e8e3933849cb8fae0ee5ce008 /llvm/lib/CodeGen/MachineCopyPropagation.cpp
parent6609892a2dcdd1a4f6adefe191b55524861f020c (diff)
downloadllvm-a947b40cafa8a1d7e241699c1400d80c77e9894c.zip
llvm-a947b40cafa8a1d7e241699c1400d80c77e9894c.tar.gz
llvm-a947b40cafa8a1d7e241699c1400d80c77e9894c.tar.bz2
[WebAssembly] Add Wasm SjLj option support for clang
This adds support for Wasm SjLj in clang. Also this sets the new `-mllvm -wasm-enable-eh` option for Wasm EH. Note there is a little unfortunate inconsistency there: Wasm EH is enabled by a clang option `-fwasm-exceptions`, which sets `-mllvm -wasm-enable-eh` in the backend options. It also sets `-exception-model=wasm` but this is done in the common code. Wasm SjLj doesn't have a clang-level option like `-fwasm-exceptions`. `-fwasm-exceptions` was added because each exception model has its corresponding `-f***-exceptions`, but I'm not sure if adding a new option like `-fwasm-sjlj` or something is a good idea. So the current plan is Emscripten sets `-mllvm -wasm-enable-sjlj` if Wasm SJLj is enabled in its settings.js, as it does for Emscripten EH/SjLj (it sets `-mllvm -enable-emscripten-cxx-exceptions` for Emscripten EH and `-mllvm -enable-emscripten-sjlj` for Emscripten SjLj). And setting this enables the exception handling feature, and also sets `-exception-model=wasm`, but this time this is not done in the common code so we do it ourselves. Also note that other exception models have 1-to-1 correspondance with their `-f***-exceptions` flag and their `-exception-model=***` flag, but because we use `-exception-model=wasm` also for Wasm SjLj while `-fwasm-exceptions` still means Wasm EH, there is also a little inconsistency there, but I think it is manageable. Also this adds various error checking and tests. Reviewed By: dschuff Differential Revision: https://reviews.llvm.org/D108582
Diffstat (limited to 'llvm/lib/CodeGen/MachineCopyPropagation.cpp')
0 files changed, 0 insertions, 0 deletions