[WebAssembly] Rename Emscripten EH functions
Renaming for some Emscripten EH functions has so far been done in
wasm-emscripten-finalize tool in Binaryen. But recently we decided to
make a compilation/linking path that does not rely on
wasm-emscripten-finalize for modifications, so here we move that
functionality to LLVM.
Invoke wrappers are generated in LowerEmscriptenEHSjLj pass, but final
wasm types are not available in the IR pass, we need to rename them at
the end of the pipeline.
This patch also removes uses of emscripten_longjmp_jmpbuf in
LowerEmscriptenEHSjLj pass, replacing that with emscripten_longjmp.
emscripten_longjmp_jmpbuf is lowered to emscripten_longjmp, but
previously we generated calls to emscripten_longjmp_jmpbuf in
LowerEmscriptenEHSjLj pass because it takes jmp_buf* instead of i32.
But we were able use ptrtoint to make it use emscripten_longjmp
directly here.
Addresses:
https://github.com/WebAssembly/binaryen/issues/3043
https://github.com/WebAssembly/binaryen/issues/3081
Companions:
https://github.com/WebAssembly/binaryen/pull/3191
https://github.com/emscripten-core/emscripten/pull/12399
this isn't an override, right? should it go after the functions that are part of the AsmPrinter implementation?