[clang] [CIR] Upstream TryCallOp (PR #165303)

Andy Kaylor via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 3 12:38:12 PST 2025


================
@@ -2707,6 +2707,98 @@ def CIR_CallOp : CIR_CallOpBase<"call", [NoRegionArguments]> {
   ];
 }
 
+def CIR_TryCallOp : CIR_CallOpBase<"try_call",[
+  DeclareOpInterfaceMethods<BranchOpInterface>,
+  Terminator, AttrSizedOperandSegments
+]> {
+  let summary = "try_call operation";
+
+  let description = [{
+    Mostly similar to cir.call but requires two destination
----------------
andykaylor wrote:

The description should mention that this operation is only used after the CFG flattening pass. (That's true, right?) Perhaps describe how a call in a try-block is represented in the initial CIR generated, and then describe how and why it becomes a try_call.

https://github.com/llvm/llvm-project/pull/165303


More information about the cfe-commits mailing list