<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/64863>64863</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[AMDGPU] Backend code generation fails on internal function at O0
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:AMDGPU
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
jhuber6
</td>
</tr>
</table>
<pre>
The following LLVM-IR will crash the `llc` backend when run at `O0`. See also the [godbolt link](https://godbolt.org/z/Yoddhba7z).
```llvm
target triple = "amdgcn-amd-amdhsa"
define internal i32 @foo() {
ret i32 0
}
```
Invoking `llc` with `-O0` gives us the following failures.
```
$ llc <source> -O0 -march=amdgcn -mcpu=gfx1030
llc: /root/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp:154: virtual bool llvm::AMDGPUResourceUsageAnalysis::runOnModule(llvm::Module&): Assertion `MF && "function must have been generated already"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/llc -o /app/output.s -x86-asm-syntax=intel -O0 -march=amdgcn -mcpu=gfx1030 <source>
1. Running pass 'Function register usage analysis' on module '<source>'.
#0 0x00000000033ba0e8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x33ba0e8)
#1 0x00000000033b781c SignalHandler(int) Signals.cpp:0:0
#2 0x00007ff09e1b1420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#3 0x00007ff09dc7400b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
#4 0x00007ff09dc53859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
#5 0x00007ff09dc53729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
#6 0x00007ff09dc64fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#7 0x0000000000bed37a (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0xbed37a)
#8 0x0000000002c179b2 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2c179b2)
#9 0x000000000075ee42 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#10 0x000000000069a6c6 main (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x69a6c6)
#11 0x00007ff09dc55083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#12 0x00000000007557fe _start (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x7557fe)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVk1v4zgS_TX0pSCDImV9HHxw4vZuAx0k6HQvsCeDkkofHYoUSCpx-tcvKMmOlcUMMjMJ7CQixVePr16RJaxta4W4JZsbstmvxOAabba_miFHE69yXb5ufzQIlZZSv7Sqhm_f_nMXfP0OL62UUBhhG3ANAomplAWJKeSieEJVwkuDCsygQDg_e09JTNfwiAhCWj0t2tzUusy1dCBb9UQ2e8LSxrneEr4j7EDYYZ5fa1MTdvhN2OG_uiybXCS_CcvWhO4J3ZGYTh8pn7tpyAlTowNn2l4iEL4HwpjoyrpQgehK_22sIIzNCOPvEqtWIbTKoVFCQssZkIhWWhOWEpYBSW6mNwEMunGezgDJ_h2X6fGretZPXrc3gV5a1_jHYJQEoG6f0cJgR0nehK5EKweD9v0e50cWgZQFEH5r9WAKJPwLBPcUgk6YoiF8P20Wgq7oB8L3dXUKKZ9XeyZ8B4QdjNaOsIMXLuiN_oXF-dH_aXPCDj9GKQk77O72_3r4efnnO06Rf1pR404J-Wpbuy76nvBduIl8gOfWuEFIyLWWMILyHeG7P1k_vWAGda_udDlIJCx9W3geignLPP7OWjSu1crreXeAcSb2qa4GVYwT3WAdNOIZIUdUUKNCIxyWIKRBUb56C7BkVBvLWeuHb192j1_ADnnXOhCQDzUY7LVx4DS8M2jrmiFfF7q70m2pZmvtgJawAwhVQqsKOZQ4ZnuqH18xzogC5_CPThRPUA6dV3IaomtCswejayM6EKYeOlTOzjnUvY9S6K5vJZoAT73UBo0fk0LVgTirZANnBvVE2CFv1cizgEB7CNH3Hmhw_eDWFoJTGgfCdoF9VU6cCN_7mpAfMdjCkRP50JP_Pijlbd0La4Gw5HBOkMG6tQ4NDN4HIM5GYAn49I0Z9wsWuCyZtQLCOAV6oucfznNBMb1ym32dXfVgWuVGcX94tRfOMuLlqK0zKLrRRLf-FBhL3lf-P5KYsBt6mml53154h-94J2lYwGNbKyH_LVQpPX4605iGz-VFx-8FiM1ASVXRDMM8jBiF49Ggddrg0bh5F1M9n9L4GEeBbNVwCmo1TBO9a3w9rK1e05FxGEWMLvjy6zBlkUSU5mBEa_ED-IVHjkfkiFOaL5CjJfKGp5sMRK4_xPwKmbF0ky2QN--Rk0tOP4yZsCVmvMSMo6qM_xom51UZLzCTay_QHEueiM_y3oS2CJdeh2NFmGQ5uyoZibUoXueqEdbeCSVqNF-7Xl4O6D88mD-L9kxrwTtbyJRsECMGc4zLfVE0whC2Gz-3V7vyrcutVg5PbmYqZfH_FeUrc3Gk0DgTcRFDJ1r1WZubIC978zHDd1bd0JTD8eidc7ROGHe8IvBR80Y05Yso7J2Cm6RCmPA_a28T6FvUc-eyKre8zHgmVrgN44zFLGZRuGq2iLzMyyiqeMZZVIVpVbI8E2WYUhbSUqzaLaOM05SFId8kLFxXoSh5TGnBQ05FVpGIYidaufbZ9s3iarx0t3GUxnwlRY7Sjj0uY3N_emlDfAOw2a_Mdry186G2JKKytc6-gbnWybFHnpds9nAzt7mFLvHcVfjrzDcS1t9cly7y0ooIB_d0NRi5_fstxLih_wUAAP__89WKNg">