[Mlir-commits] [mlir] [mlir][IR] Add builtin `TokenType` (PR #195640)

Matthias Springer llvmlistbot at llvm.org
Mon May 25 16:29:04 PDT 2026


================
@@ -136,8 +136,8 @@ def UnrealizedConversionCastOp : Builtin_Op<"unrealized_conversion_cast", [
     ```
   }];
 
-  let arguments = (ins Variadic<AnyType>:$inputs);
-  let results = (outs Variadic<AnyType>:$outputs);
+  let arguments = (ins Variadic<AnyTypeOrToken>:$inputs);
----------------
matthias-springer wrote:

This is an artifact of `async-func-to-async-runtime`. It creates an `async.coro.free` op in a dead basic block. That block is then ignored by the dialect conversion. (It doesn't convert ops in unreachable blocks.) One of its operands has an async type that turns into a token. The producer of the token is defined in another (reachable) block. The dialect conversion inserts a `builtin.unrealized_conversion_cast` op from token -> async type.

Let me try to improve `async-func-to-async-runtime`, so that it never creates dead IR...

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


More information about the Mlir-commits mailing list