[PATCH] D141913: WIP: Unwindabort: Add "unwindabort" syntax for the "call" instruction.

Jon Roelofs via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 26 16:22:07 PDT 2023


jroelofs added inline comments.


================
Comment at: llvm/docs/ExceptionHandling.rst:307
+In order to efficiently support these semantics, LLVM's :ref:`i_call` has an
+`unwindabort` flag. This flag causes construction of the unwind tables to mark
+the callsite in such a way that the personality function knows to call
----------------
suggest: s/This flag/The presence of this flag/


================
Comment at: llvm/docs/ExceptionHandling.rst:309
+the callsite in such a way that the personality function knows to call
+std::terminate if an unwind is attempted through this stack frame -- without
+requiring the generation of a landingpad containing an explicit terminate call,
----------------



================
Comment at: llvm/docs/LangRef.rst:11861
    - The return type must not undergo automatic conversion to an `sret` pointer.
+   - The call cannot be 'unwindabort'.
 
----------------
Maybe I missed it in the Discourse thread, but can you elaborate on why `musttail` and `unwindabort` are mutually exclusive?


================
Comment at: llvm/include/llvm/Bitcode/LLVMBitCodes.h:529
+  CALL_FMF = 17, // Call has optional fast-math-flags.
+  CALL_UNWINDABORT = 18
 };
----------------
Trailing comma makes this nicer for the next addition to the list.


================
Comment at: llvm/lib/IR/Verifier.cpp:3640-3644
+  if (CI.isUnwindAbort()) {
+    Check(CI.getFunction()->hasPersonalityFn(),
+          "Call with unwindabort needs to be in a function with a personality.",
+          &CI);
+  }
----------------



Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D141913



More information about the llvm-commits mailing list