[PATCH] D128190: [WinEH] Apply funclet operand bundles to nounwind intrinsics that lower to function calls

David Chisnall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Jul 24 06:11:39 PDT 2022


theraven accepted this revision.
theraven added a comment.
This revision is now accepted and ready to land.

LGTM, a couple of extra comments would help.



================
Comment at: llvm/include/llvm/IR/IntrinsicInst.h:110
 
+  // Check if this intrinsic might lower into a regular function call
+  static bool mayLowerToFunctionCall(Intrinsic::ID IID);
----------------
Minor nit, should be /// for a doc comment.


================
Comment at: llvm/lib/IR/IntrinsicInst.cpp:61
+  case Intrinsic::objc_sync_enter:
+  case Intrinsic::objc_sync_exit:
+    return true;
----------------
I'm curious why memcpy and friends don't need to be on this list.  Do they get expanded at a different point?  Or is it that the front end inserts a memcpy call and the optimiser that turns them into intrinsics and back preserves operand bundles?  It would be a good idea to have a comment explaining why these specific ones are on the list and not other libc (or math library) functions that may appear in cleanup blocks.  From the code in `InlineFunction.cpp`, it looks as if this is a problem only for intrinsics that may throw, which excludes most of the C standard ones?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D128190



More information about the cfe-commits mailing list