[clang] [CIR] Change previous coroutine builtins to have their own coro intrinsic ops (PR #211699)

via cfe-commits cfe-commits at lists.llvm.org
Sun Jul 26 16:46:45 PDT 2026


================
@@ -4702,6 +4619,131 @@ def CIR_CoReturnOp : CIR_Op<"co_return", [
   let hasLLVMLowering = false;
 }
 
+//===----------------------------------------------------------------------===//
+// Coroutine intrinsics
+//===----------------------------------------------------------------------===//
+
+class CIR_CoroIntrinsicOp<string mnem, dag ins, dag outs,
+                          list<Trait> traits = []>
+                          : CIR_Op<"coro.intrinsic." # mnem, traits> {
+  let hasLLVMLowering = 1;
+  let arguments = ins;
+  let results = outs;
+
+  let assemblyFormat = [{
+    `(` operands `)` `:` functional-type(operands, results) attr-dict
+  }];
+}
+//===----------------------------------------------------------------------===//
+// Coroutine intrinsic IdOp
+//===----------------------------------------------------------------------===//
+
+// TODO: This operation should return an MLIR `token` once the type becomes
+// available. `CIR_UInt32` is used as a temporary placeholder.
----------------
Andres-Salamanca wrote:

Yes, I already have a PR that introduces a token-like type for this. It was blocked because the recommendation was to wait for the MLIR token type to be available https://github.com/llvm/llvm-project/pull/194515

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


More information about the cfe-commits mailing list