[mlir][async] Fix missing dialect dependency in async-to-async-runtime
authorrkayaith <rkayaith@gmail.com>
Tue, 11 Oct 2022 20:46:26 +0000 (16:46 -0400)
committerrkayaith <rkayaith@gmail.com>
Wed, 12 Oct 2022 05:10:08 +0000 (01:10 -0400)
The specific case I hit this was when lowering an `async.execute` that's
not inside a `func.func` op, e.g.:
```
llvm.func @foo() {
  %token = async.execute {
    async.yield
  }
  llvm.return
}
```

Reviewed By: bondhugula

Differential Revision: https://reviews.llvm.org/D135742

mlir/include/mlir/Dialect/Async/Passes.td

index 76311b5..16fb862 100644 (file)
@@ -51,7 +51,7 @@ def AsyncToAsyncRuntime : Pass<"async-to-async-runtime", "ModuleOp"> {
            "Rewrite functions with blocking async.runtime.await as coroutines "
            "with async.runtime.await_and_resume.">,
   ];
-  let dependentDialects = ["async::AsyncDialect"];
+  let dependentDialects = ["async::AsyncDialect", "func::FuncDialect"];
 }
 
 def AsyncRuntimeRefCounting : Pass<"async-runtime-ref-counting"> {