[mlir] Implement lowering to LLVM of async.execute ops with token dependencies
authorEugene Zhulenev <ezhulenev@google.com>
Fri, 30 Oct 2020 12:19:42 +0000 (05:19 -0700)
committerEugene Zhulenev <ezhulenev@google.com>
Fri, 30 Oct 2020 12:59:03 +0000 (05:59 -0700)
commitf507aa17b791af3028d321ccfb83c5bfaf315f02
treec74a66056f8a0cd92ec632b902559cac1be8602f
parent52ff86d25598175d3304498b14c0f6c780e46ae3
[mlir] Implement lowering to LLVM of async.execute ops with token dependencies

Add support for lowering `async.execute` operations with token dependencies

Example:

```
%dep = ... : !async.token
%token = async.execute[%dep] {
...
}
```

Token dependencies lowered to `async.await` operations inside the outline coroutine body.

Reviewed By: herhut, mehdi_amini, ftynse

Differential Revision: https://reviews.llvm.org/D89958
mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp
mlir/test/Conversion/AsyncToLLVM/convert-to-llvm.mlir
mlir/test/mlir-cpu-runner/async.mlir