<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/65792>65792</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[WebAssembly] Adding the WASM personality to a function without EH forces stack pointer usage
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
SingleAccretion
</td>
</tr>
</table>
<pre>
The reproduction for this is an empty function with a call compiled with `-fwasm-exceptions`:
```llvm
target triple = "wasm32-unknown-wasi"
declare i32 @__gxx_wasm_personality_v0(...)
declare void @extern_func()
define void @func() personality ptr @__gxx_wasm_personality_v0 {
call void @extern_func()
ret void
}
```
```
clang -c repro.ll -fwasm-exceptions -O2
wasm-objdump -d repro.o
```
```
00008b func[1] <func>:
00008c: 23 80 80 80 80 00 | global.get 0 <env.__stack_pointer>
000092: 1a | drop
000093: 10 80 80 80 80 00 | call 0 <env.extern_func>
000099: 0b | end
```
Expected result: no redundant `__stack_pointer` access.
Actual result: redundant `__stack_pointer` access.
This is hit in actual code when the function starts out with some EH that is dropped by optimizations.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVE2PozgQ_TXmUgI5JiRw4JCedDSX1R5mpDkiY1fAM8ZGtukk--tXNtlO9-xs7y5CJLbrPVe9-uDeq8EgtqR6ItUx40sYrWu_KDNoPAjhMChrst7KW_t1RHA4OysXEXfhbB2EUXlQHrgBnOZwg_Ni1tOLCiNwEFxrEHaalUa5bpIdzc8X7qccrwLnaO3JjpLyQOiR0EP8n16tX6Z1K3A3YIDg1KwRSHkEwlikKFm-mB_GXkx-4V4Rxu4c6StRaO4QVMmAbGnXDddrF2HdjM5bw7UKt-6FElYXRUFY8x72YpWMOLwGdKaLoRFWv5r9ZXxW5mH7MII3d8Ac3IceANk_rXywSvYvdwM4DMno7sv--JN4v1wKzc0AuVgTWWgNf8sE5L_fNUwHtv8ul2mGXN4x9r_cQymldZ-KgVRPG1IdgZSf0rJ8fk00JDNBygOwEmr6eCmF14fsP8Ggbc91EWuARiY0L0XX-cDFj262ygR0kfjB2rDIuuHwT09klc7ObzFlwtAPPUnJefXhbXbe399ELtonDBr5S5WerzOKgFFZv-gQEcaCQ7kYyU2IjfJzkDsKXAj0vlgpDiIsXL8h-F_o9fv13sOjCqAM8JVSWIlwGdFAGPHR1j5wFzzYJazN7O2E8PwZwshDJImaziihv4Gdg5rUHzyVVZHJtpRN2fAM282u2W6apmqqbGz7Rkrc1bt9xSrWl_V2v61kI5nYnM9N3VSZahllJW1ovamrpqqKqtqzMxMbLum54ZTGNpm40kUcGIV1Q6a8X7DdVfuGZZr3qH2acIwZvEA6jJOiOmaujZi8XwZPtlQrH_yDJaig02j8hv3Be5x6fYulfJBSmSHp8u3w5bd3jR4s8PdDMEr1_DlOS4EeUkLgnhBYPB8wW5xuxxBmHzuDnQg7DSqMS18IOxF2SmNw_clnZ7-jCISdUhSesFOK8s8AAAD__8rvwzg">