[PATCH] D106525: [WebAssembly] Make Emscripten EH work with Emscripten SjLj

Derek Schuff via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 23 15:27:19 PDT 2021


dschuff accepted this revision.
dschuff added inline comments.
This revision is now accepted and ready to land.


================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp:238
   std::set<std::string> EHAllowlistSet;
+  // Functions that contains calls to setjmp
+  SmallPtrSet<Function *, 8> SetjmpUsers;
----------------



================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp:786
+      replaceLongjmpWithEmscriptenLongjmp(LongjmpF, EmLongjmpF);
+    // Only traverse functions that uses setjmp in order not to insert
+    // unnecessary prep / cleanup code in every function
----------------



================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp:834
 
+      // If setjmp/longjmp handling is enabled, the thrown value can be not an
+      // exception but a longjmp. If the current function contains calls to
----------------
I think this first sentence would be clearer as "the thrown value can be either an exception or a longjmp", or "could be a longjmp instead of an exception". Likewise in the comment below.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106525/new/

https://reviews.llvm.org/D106525



More information about the llvm-commits mailing list