[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