<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/90403>90403</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[WebAssembly] Support `tailcc` calling convention in wasm backend
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
8051Enthusiast
</td>
</tr>
</table>
<pre>
Currently, llvm's wasm backend does not support the `tailcc` calling convention even when tail calls are supported.
I thought about making a PR that just adds it to the `callingConvSupported` function, but then I wasn't sure if it should handle the absense of the tail-call feature or fast-isel not emitting tail calls.
Example program:
```
target triple = "wasm32-unknown-unknown"
declare tailcc void @void_nullary()
define void @tailcc_tail_call_void_nullary() {
tail call tailcc void @void_nullary()
ret void
}
```
`llc` output:
```
error: <unknown>:0:0: in function tailcc_tail_call_void_nullary void (): WebAssembly doesn't support language-specific or target-specific calling conventions yet
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVE2P4jgQ_TXOpQRy7ITAIQemaaS5rXYPe2w5cZF42rGRXaaXf79yEobZ7f0YCSjZ1Md7Vc-lYjSDQ2xZ_YXVp0IlGn1o97wuXx2NKRoVqei8vrcvKQR0ZO9MvIC1t4mJJsKHihN0qn9Hp0F7jOA8QUzXqw8ENCKwHSdlbN-zHYdeWWvcAL13N3RkvAO8oYOPER1kt9kjggr4SIJ6y_iJ8eNXoNGnYSRQnU8Ek3rPqRT88ivQqAi-pUigtI5gCMg_qq81X7y7_fZImbFckuszgsynSzNYB18zI8dEk0kEBHPJyeLok9UwKqctznlVF9FFBH-Zjxn6JheCCyrKgT7ARUXamIh27glOhigDftJciS2_r3-o6WoRrsEPQU1Mrvdsx9fPfCQVBiSgYLIzkydgQuQpSLFJ7t35D_ewTIglRmNvc0eXOcDNGw2s4tm-uWStCncm9kwcfsSj8WIcfndeYt-yecvg3z5HA2u-LLHwJPmzRQEC0uy1gmhO_8if7bi1s5Z8omuif-sThuADk0dg8uXRD_nK5JGvXzDuuwTgP9mt2Bew8gi_Y3eMEafO3mfJP-SyaN4qNyQ14CZesTcX02cpLFN7Xn1-BxHuSH9jUuhW6oM8qALbsikrKUrR7IuxFb1uDnjY10JVdd3thO64qPe6qSspy5oXphVcVLwS-3InynK_lZ24iGrX1DteoqwUqzhOythtfslbH4bCxJiwPfCKy8KqDm2cl4IQDj9g_jPrqT4Voc0xmy4NkVXcmkjxmYUM2Xmb_NAkVp9gfXn_uw2M-8tKKVKw7Uh0jXnO4szEeTA0pm7b-4mJ87KHZrO5Bv8Ne2LiPKONTJxnNn8GAAD__2uPlso">