This is an archive of the discontinued LLVM Phabricator instance.

[WebAssembly] Treat __cxa_end_catch not longjmpable in Emscripten SjLj
ClosedPublic

Authored by aheejin on Jan 21 2022, 10:44 PM.

Details

Summary

In D117610 we treated __cxa_end_catch longjmpable even though it was
not to make unwind destination relationships correct. But we only need
to do this in Wasm SjLj, and doing this in Emscripten SjLj does not make
the code incorrect but add unnecessary invokes. This CL treats
__cxa_end_catch longjmpable only in Wasm SjLj.

Diff Detail

Event Timeline

aheejin created this revision.Jan 21 2022, 10:44 PM
aheejin requested review of this revision.Jan 21 2022, 10:44 PM
Herald added a project: Restricted Project. · View Herald TranscriptJan 21 2022, 10:44 PM
aheejin added inline comments.Jan 21 2022, 10:45 PM
llvm/test/CodeGen/WebAssembly/lower-em-ehsjlj.ll
50–52

This was just moved to add the CHECK-NOT line above

aheejin edited the summary of this revision. (Show Details)Jan 21 2022, 10:45 PM
aheejin edited the summary of this revision. (Show Details)
dschuff accepted this revision.Jan 24 2022, 2:09 PM
This revision is now accepted and ready to land.Jan 24 2022, 2:09 PM