[PATCH] D94049: [WebAssembly] Fix catch unwind mismatches

Thomas Lively via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 15 21:39:13 PST 2021


tlively added inline comments.


================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp:905-906
+    // put the 'delegate' BB in between. We normally create a split BB and make
+    // it a successor of the original BB (PostSplit == true), but in case the BB
+    // is an EH pad and the split pos is before 'catch', we should preserve the
+    // BB's property, including that it is an EH pad, in the later part of the
----------------
What is an example of when the split position could be before `catch`?


================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp:1261
 bool WebAssemblyCFGStackify::fixCatchUnwindMismatches(MachineFunction &MF) {
-  // TODO implement
-  return false;
+  // There is another kind of unwind destination mismatches than call unwind
+  // mismatches, which we will call "catch unwindmismatches". See this example
----------------



================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp:1262
+  // There is another kind of unwind destination mismatches than call unwind
+  // mismatches, which we will call "catch unwindmismatches". See this example
+  // after the marker placement:
----------------



================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp:1315-1316
+        // anything
+        if (MI.getOpcode() == WebAssembly::CATCH_ALL)
+          ;
+
----------------
~Is this supposed to be a `continue`?~ Oh, I see it's just there in service of the `else if`s below. I found this confusing when I first saw it (especially without braces). I think it would be clearer if structured a different way.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D94049



More information about the llvm-commits mailing list