<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/64933>64933</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang optimization issue in coroutines(not allocations)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
kelbon
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/5hTE69j1b
starting row 82 in asm there are something strange in 'trunk', im 99% sure someone apply 'cold' attribute or 'never inline' to all functions in final suspend or smth like.
All calls must be inlined, its literaly one-row functions.
```asm
g1() [clone .resume]: # @g1() [clone .resume]
push rbx
sub rsp, 16
cmp byte ptr [rdi + 44], 0
je .LBB8_1
lea rbx, [rdi + 16]
mov qword ptr [rdi], 0
call std::__n4861::coroutine_handle<dd::generator_promise<int> >::from_address(void*)
mov qword ptr [rsp + 8], rax
lea rdi, [rsp + 8]
call std::__n4861::coroutine_handle<dd::generator_promise<int> >::operator std::__n4861::coroutine_handle<void>() const
mov rdi, rbx
mov rsi, rax
call dd::generator_promise<int>::await_suspend(std::__n4861::coroutine_handle<void>) const
mov qword ptr [rsp], rax
mov rdi, rsp
call std::__n4861::coroutine_handle<void>::address() const
mov rdi, rax
add rsp, 16
pop rbx
jmp qword ptr [rax] # TAILCALL
.LBB8_1:
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8Vc1u47oOfhpmIzSwJduxF16kaQNcoMvZB7LFxGplyVeU2-k8_YFsp00ynTkzmxMEISL-fR8pipJInyxiDfk95A8rOYbO-foFTePsqnHqve5CGAjEFvge-P7kVONMWDt_Ar7_AXyfd98ei-o5bSB5gGQ7_1KQPmh7Yt69sZIzbZmknoUOPTLpkZHrMXTRgoKX9oTRBPgm-NG-AN8A3zHds6oCnjMaFw9nkclhMO_RtHVGAd8wGYLXzRiQOR_PLb6iZ9oabTHqg2PSGHYcbRu0sxQzHbWVhtFIA1oV_agPHTP6BdeXNLbGsFYaQ6wfKbAGl7BqgheIGR3QS_POnMW7yPUjy1UcKJL5K6mfT04p8BJ4xSC_b03ktfZIY4-QP4DYsl9-gAsGWfJb_ynD2WEYqYvSN9-vFTQ2k_Q0RDppsajbfpjOm_eAbAg-pvBKM-D3LMtifL5jyXWsZ5zl-un-vjyk10qDcsrOd5eh0uInqL17neT_35xXF6m_zhkbwyioeDfF9nCwWVmk85_WeTcGbfHQSasMgtipxe6EFr0Mzh8G73pNUadtAPHIQDzONkfv-oNUyiMR8PLVaQV8C7z6E7g0TPTKBbSX57LHMkz1Vvpcikvb_4ibG2aTP48-0RePy31rnaXwdR0WYp8X7UNB-roUlyz_Hfysl29Sh8MyssDLv8f_W_C3Tfypfb8gS8N5bCKZOFZ_i2tm93HbbnHeJrwFJJX6cozP4-_maf7syvMy39eM5XfIH758bb5t__e02z49ze7nCRe3T9tK1UJVopIrrNOi4puq2iTZqqtlmRdV1hZ5rkTVYNOqJBUKq2JTVJtWHle65gkXSclFmiUlz9bHsmiKNtvwVgl1FClkCfZSm7Uxr31cPStNNGJdZJUQKyMbNDRtMM4tvrFJCZzHhebr6HPXjCeCLDGaAn1GCToYrFsj7Ym5Iehe_5Dx8Z4jxD3x0bbYGetC3CSunYwIeLUavbldkDp0Y7NuXQ98HzMt4m7w7hnbAHw_RSfg-wn_PwEAAP__R84vfA">