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

    <tr>
        <th>Summary</th>
        <td>
            [AMDGPU] Compiler crash in `AMDGPUAsmPrinter` with circular function call involvement
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AMDGPU
      </td>
    </tr>

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

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

<pre>
    ```
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 small.ll %s -o -

define amdgpu_kernel void @kernel() {
entry:
  call void @callee1()
  ret void
}

define void @callee1() #0 {
entry:
  call void @callee2()
  ret void
}

define void @callee2() #0 {
entry:
  call void @callee1()
  ret void
}

attributes #0 = { noinline }
```

The crash is because of stack overflow. `evaluateAsRelocatable -> evaluateAsRelocatableImpl -> evaluateAsRelocatableImpl -> evaluateAsRelocatable -> ...`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykU01vpDgQ_TXFpQTyB9DhwKGzbK_2sKsompxHxhSNJ8Zu2YZM_v2IbqJIo1ySkcDIVL33qkqvVIzm7IhaqO5BiDgZm4xyIARUXaaWNPnQvv3Nej-8tlCz_WEdsCPIe3x8-h_kEa3VmM8pmIslkJ2ah7N2uZqH7Z2iwnzWlwVkdx5_NoxhnJW1hbUIooqYe8x3yus50Ggc4cZyWb4_U3BkcfVmQCjZ7QriDkSDcLi_Qcil8ApyJ0DUyr5DtgsRv2HeMgKla8IufOg-qOBDAgQh2aeUxZ8qi68qf6ZnlVIw_ZIo7jqy27TQeePsVtN7_m8-uJ7fJkIdVJzQROxJqyUS-hFjUvoZ_UphtP6lQKgZrcouKtExPpL1WiXVW8Ic5N_4Yejf-WK_Hr6FiqKAmhXZ0MqhkY3KqOUHyTk7lFxmU9vLklHPNNdlw1jN-MDHuuzH8qCoqWSdmVYwUXLO7oTkjMviUMqSGl1Wqm_qw1hDyWhWZrP1Ohc-nDMT40It51VVi8yqnmzct61X-pncAPJ4_K_75-Fp37rQbti8X84RSmZNTPGdLZlkr9u6Q6oO__LzxVgKb4N323Rv4WOcH4JxiQLUDF9MmlCboBerAo6L08l4d3OMcau3K83kUrYE204pXeJmK3ECcTqbNC19of0M4rTVsn_yS_A_SCcQp2ubEcRp73Rtxa8AAAD__9n2To4">