[clang] Extend `retcon.once` coroutines lowering to optionally produce a normal result (PR #66333)

Chuanqi Xu via cfe-commits cfe-commits at lists.llvm.org
Thu Sep 14 18:53:46 PDT 2023


ChuanqiXu9 wrote:

> > Out of curiousity, why don't we have the problem in the normal return continuation ABI?
> 
> The problem happens when the value is directly used in `coro.end` intrinsic. For example, when we're forwarding coroutine argument as a result. Or, when the value itself is computed before the suspend. Everything else is correctly handled by the present code due to BB split (the corresponding instructions appear in `Cleanup` block for example and correctly spilled).

I still don't understand the motivation fully. Do you say we don't have the problem naturally? Or could you show some motivation examples? (In LLVM IR?)

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


More information about the cfe-commits mailing list