[llvm] [clang] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

Chuanqi Xu via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 29 01:55:04 PST 2024


https://github.com/ChuanqiXu9 commented:

Thanks for looking into this. I haven't looked it in details. Given this is complex, it should take a relative longer time.

Here is some quick feedbacks:
- Every time we change the non-static data members of AST nodes, we need to update the serializations. Otherwise, modules won't work.
- Every time we change the LLVM intrinsics, we need to change the documentation.
- Every time we change the LLVM with a functional change, we need a test in the LLVM part.

And there is something I haven't fully understand:
- I feel odd about `helperFunction`. I don't understand the necessity and I feel we should make it in the middle end.
- I feel odd about `IsSuspendNoThrow`. Can't we make it simply during the CodeGen time by the attribute of `await_suspend`?.
- I am wondering if we can get rid of the introduction of `OpaqueFramePtr` from `CoroutineSuspendExpr` either in CodeGen part or in Sema part.

But I am not sure if my feelings are correct. I need more time looking into it.

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


More information about the llvm-commits mailing list