[PATCH] D115790: [Coroutines] Set presplit attribute in Clang
Chuanqi Xu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Dec 19 19:50:05 PST 2021
ChuanqiXu added a comment.
In D115790#3199905 <https://reviews.llvm.org/D115790#3199905>, @ezhulenev wrote:
> There are two places where in MLIR you can put an attribute to coroutine functions:
>
> 1. https://github.com/llvm/llvm-project/blob/main/mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp#L126
>
> This is the point when coroutine functions are created, and you can attach attribute to the `func` argument
>
> 2. https://github.com/llvm/llvm-project/blob/main/mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp#L325
>
> Another options is to attach attribute to the `op->getParentOfType<FuncOp>` when async runtime operations lowered to `coro.id` intrinsic.
>
> /cc @mehdi_amini to chime in what option is better. I'm not sure though what type of MLIR attribute will be translated to LLVM `"coroutine.presplit"="0"`, `UnitAttr`? Or it must be `IntegerAttr`.
>
> I'm on vacation with limjted access to computer until the end of the year, I can take a look at it myself ~late Dec or early Jan.
Hi, thanks for looking into this. In this func, https://github.com/llvm/llvm-project/blob/main/mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp#L126, I tried to write:
func.setAttr("coroutine.presplit", "0");
But it shows that we could only set the attribute for argument and result type instead of the function itself. How could we make it?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D115790/new/
https://reviews.llvm.org/D115790
More information about the cfe-commits
mailing list