<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/58861>58861</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [AMDGPU] `SI annotate control flow` pass failed with error `failed to annotate CFG`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          HazyFish
      </td>
    </tr>
</table>

<pre>
    ## Description

The following IR code containing an infinite loop (which should compile) cause `SI annotate control flow` pass to fail with error `failed to annotate CFG` when targeting `amdgcn`.
The problem does not exist when targeting `x86_64`, `aarch64`, `wasm64`, or `riscv64`.

## Minimal Reproduction

https://godbolt.org/z/snsTaonnr

### Code

```ll
define void @f(i1 %0, i1 %1) {
BB:
  br label %BB1

BB1:                                              ; preds = %BB, %BB3
  br i1 %0, label %BB3, label %BB2

BB2:                                              ; preds = %BB2, %BB1
  br i1 %1, label %BB3, label %BB2

BB3:                                              ; preds = %BB2, %BB1
  br i1 true, label %BB1, label %BB4

BB4:                                              ; preds = %BB3
  ret void
}
```

### Stack Trace

```
LLVM ERROR: failed to annotate CFG
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ./llvm-project/build-debug/bin/llc -mtriple=amdgcn ./crash-reports/dagisel-amdgcn/2.ll
1.      Running pass 'CallGraph Pass Manager' on module './crash-reports/dagisel-amdgcn/2.ll'.
2.      Running pass 'SI annotate control flow' on function '@f'
 #0 0x00000000047ada8a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:569:11
 #1 0x00000000047adc3b PrintStackTraceSignalHandler(void*) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:636:1
 #2 0x00000000047ac286 llvm::sys::RunSignalHandlers() /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Signals.cpp:104:5
 #3 0x00000000047ae365 SignalHandler(int) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007fa6c9d59980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #5 0x00007fa6c8c49e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007fa6c8c4b7f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #7 0x00000000046d5934 llvm::report_fatal_error(llvm::Twine const&, bool) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/ErrorHandling.cpp:125:5
 #8 0x00000000046d57a2 /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/ErrorHandling.cpp:83:3
 #9 0x0000000001534f91 (anonymous namespace)::SIAnnotateControlFlow::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp:385:10
#10 0x0000000003c55c66 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1430:23
#11 0x0000000002e1c64d (anonymous namespace)::CGPassManager::RunPassOnSCC(llvm::Pass*, llvm::CallGraphSCC&, llvm::CallGraph&, bool&, bool&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Analysis/CallGraphSCCPass.cpp:179:20
#12 0x0000000002e1bfde (anonymous namespace)::CGPassManager::RunAllPassesOnSCC(llvm::CallGraphSCC&, llvm::CallGraph&, bool&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Analysis/CallGraphSCCPass.cpp:476:10
#13 0x0000000002e1b95f (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Analysis/CallGraphSCCPass.cpp:542:18
#14 0x0000000003c56539 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1545:23
#15 0x0000000003c560ad llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:16
#16 0x0000000003c5ad71 llvm::legacy::PassManager::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1672:3
#17 0x0000000000d38a5c compileModule(char**, llvm::LLVMContext&) /home/henry/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:737:41
#18 0x0000000000d36e02 main /home/henry/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:418:13
#19 0x00007fa6c8c2cc87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#20 0x0000000000d3660a _start (./llvm-project/build-debug/bin/llc+0xd3660a)
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzFWElT4zgU_jXJRZWULe-HHEJYmimopoDuw1xSsq3EnpEllyR3YH79PMlJvADTNAM0FWzt73vb52enIn9cTLAHP3RKVSbLWpeCT5zTibNsr_cFRRvBmNiVfIsub1EmcgoXrknJzRDhqOQbaGuKmBA1muB4V5RZgVQhGpbD2qouGZ3gBGWkURRNQufuEvZxoYluz5KCoQ3IgClUE6WQFmhDSoZ2pS4QlVJIs80M0dxMHnevzi_Mpl1BOdJEbqk2oGCIVPk249CYd4rUUqSMVigXVCE4ANGHUulnNj_E4Tr0oTHBK3sYkVnRH9gRVR37LThZquyHHZv3Dbg37zVYqCIM3VIAkTfZ2M6F1rWaeLD8HH5bkaeC6bmQW-j9A_-Kq3siOJdPzzbHr8ArgxlAZn-MtQM5BR9R9EOUOZr4zga8VLrgq8Bq0DZd46NJdNLuODkxcGwToVQiRlLKzLKTE7cvynQ9WPIrfxPvBJxBcwWt0_ZMa1jT8HoyexB74r1RHw_h4PeAg4943Cd43F_D430oHi0bOpI_xucP8fjvgefoJUm1jaq9jOh0FIDPx-udJtnf6F6S7PmwbbtXV9-v0dnt7ddbA_mF7Lcrb67OlndnSDVpVWpEUNpsAVktpDbrR8kFnNKkc-Al6DD243CbQWb-RTMN3VKphipogKgc-C1jDbCeBgrJJFEFSgG9NuD3qd6qkzdVfcwZwwLJjRRbSSoE3NJUlGsDAs2fykubkuWznAJs0yu5XZKhWaWBk4E8vdOWz-xmi2HWqmdA5mRbKspme8rD53h-SHvXoLhtuKVqy6wTHK0IYxeS1AW6MSPXhJMtlTCBBEcVsBOjZtnrRZm1Vhx-TtyLZN8K3DTcsqFZ2jJTtI8tCBQHOQ_O4c-PSE5igqzPwM7eUj2qtnEjS66tF9qYwnG3SJLdWigtKQFPh5buuLZUh88LUVFzo1w-wp1sWM0aZf5nRs-nnjrES5nC9a6pjWGg9Y2XD2ag3HLC1BwiBgQHYQJX1-3UccfqZF6KRtjbM75A4DHjlNgmF15-BuDQCw3gDi8e4c1wHD5nfnD5ADaESvzOgA9Is9rkmOsYFgs6pN4IKfXCAI1N-Ul-951oaEZ_Dy7akDBL8iBJYget15IqLSRdA0lZe-1Pb4uPGSt58zDb8qadqHUBEZzPlZjD8_DEeXAxnALqdGKCvpg48xMaR0iS0tRce44x9AeHZbPV9z92f6bHLp5D1kGVYfWAxtwkP7g3p7VJ-6ZVEwZ-WDSADO726LmNdFMCOB2ScIQkjTYuIqmwmr4Oic5ba9hdVkg8EhINXB6CWcHQvbS3pLXeEE3Y2paQA1a435l6CPhI6T0rpEKwdw6PMyPWxh8Q4iF0cTAM3XisR0TwR4OITVHidRiSPgY38PxNYkqdmHDBHyvRQLlMKqpqy61Ja8G7y-We1lctq58bUm9t3_Cv_HxP7AOzd4Phu9j63pbt0Fhen17cfDOKPwdrr7YXB5Y8juWIO3jAeFkQZGGf4c5vzCPy8IT8ZN0ub-FyRbcke-yhOISR7zlww16ny-DpgqmbhX7-MyeuLp4oCGRuxr7yu9VqoJ8ZtU-iVc9Cx2LCrg5fmByk2LD5DoZaAmk9qtIwVR-OwXuwVmT0xT3H45Gx0k1O32asJWNmmD5jsbcZ51Ms4kfhKBW8sUWSYPMGi9j8uLZV5MAWh6HPUjDwzYugG3cK-qNcDwMv-ZmC1y8QwIcr-N_JH_jBKPmDsXIOyXvBxuxJXR7vz7usanbU6ndpE3iWlcNOmXCkDMkj9-fK_HZF3DDC3XPVKDKoUZzci0mQHb6IHUMoK4i0vDqiVvP6a55h9EH_f_ga2EXZbtZe95gjzxSrvtthjkeYQ-pgVJGSf4R4HxIUDNczWTKsHXGWQRW7XpvicK00gZLugOU1dWSmmkM52zbtpD3HFpWe73dVpXnjccbaQyKhVrDhite_vNsivd1_rNJH3zemdOGGYRSHcYDxNF94eeIlZKpLzehiEpzsa5rg9FXfTPffR175yXTaSLZ4-4eRII5Dd1osPCdJUgeHsRdnaQxN19uEAXH8HPRKUzq136GU0WaCMac7ZI-ANqg1LRfYwdh1nRgq39jH88hLfT_J3TglMaVRMPEdCu5mc4PDfA6dyoWFBMZWMMlKpVU3CWaANxhqjWfOJ40uhFx8If88AvRiamUvLPZ_AREe3gw">