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

    <tr>
        <th>Summary</th>
        <td>
            aarch64 backend: Assertion error with running LLC on code built with CFI
        </td>
    </tr>

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

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

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

<pre>
    ```
; ModuleID = 'a.ll'
source_filename = "ld-temp.o"
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64-none-linux-android21"

%struct.ngtcp2_crypto_aead = type { i8*, i64 }
%struct.ngtcp2_crypto_aead_ctx = type { i8* }

; Function Attrs: noinline optnone
define internal fastcc void @decrypt_pkt() unnamed_addr #0 !type !0 !type !1 {
entry:
  br i1 false, label %cont, label %trap, !nosanitize !2

trap:                                             ; preds = %entry
  unreachable, !nosanitize !2

cont:                                             ; preds = %entry
  %call = call i32 undef(i8* undef, %struct.ngtcp2_crypto_aead* undef, %struct.ngtcp2_crypto_aead_ctx* undef, i8* undef, i64 undef, i8* undef, i64 undef, i8* undef, i64 undef)
  ret void
}

attributes #0 = { noinline optnone }

!0 = !{i64 0, !"_ZTSFlPhPK18ngtcp2_crypto_aeadPKhmS4_mlP16ngtcp2_crypto_kmPFiS_S2_PK22ngtcp2_crypto_aead_ctxS4_mS4_mS4_mEE"}
!1 = !{i64 0, !"_ZTSFlPvPKvS1_mS1_mlS_S_E.generalized"}
!2 = !{}
```

When building with llc:

```
$ llc a.ll
llc: /data/users/lanza/toolchain-13.x/external/llvm-project/llvm/lib/CodeGen/PrologEpilogInserter.cpp:343: void (anonymous namespace)::PEI::calculateCallFrameInfo(llvm::MachineFunction &): Assertion `!MFI.isMaxCall
FrameSizeComputed() || (MFI.getMaxCallFrameSize() == MaxCallFrameSize && MFI.adjustsStack() == AdjustsStack)' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0.      Program arguments: llc reduced.ll
1.      Running pass 'Function Pass Manager' on module 'reduced.ll'.
2.      Running pass 'Prologue/Epilogue Insertion & Frame Finalization' on function '@decrypt_pkt'
 #0 0x00000000035555f3 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/users/lanza/toolchain-13.x/build/Release/toolchain/bin/llc+0x35555f3)
 #1 0x000000000355332e llvm::sys::RunSignalHandlers() (/data/users/lanza/toolchain-13.x/build/Release/toolchain/bin/llc+0x355332e)
 #2 0x0000000003555abf SignalHandler(int) Signals.cpp:0:0
 #3 0x00007f2a5da6b130 __restore_rt (/usr/lib/libpthread.so.0+0x15130)
 #4 0x00007f2a5d4fe530 raise /home/engshare/third-party2/glibc/2.30/src/glibc-2.30/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #5 0x00007f2a5d4e551d abort /home/engshare/third-party2/glibc/2.30/src/glibc-2.30/stdlib/abort.c:81:7
 #6 0x00007f2a5d4f54c3 __assert_fail_base /home/engshare/third-party2/glibc/2.30/src/glibc-2.30/assert/assert.c:89:7
 #7 0x00007f2a5d4f5533 (/usr/lib/libc.so.6+0x35533)
 #8 0x00000000029ffae7 (anonymous namespace)::PEI::runOnMachineFunction(llvm::MachineFunction&) PrologEpilogInserter.cpp:0:0
 #9 0x00000000028abf5e llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/data/users/lanza/toolchain-13.x/build/Release/toolchain/bin/llc+0x28abf5e)
#10 0x0000000002d16238 llvm::FPPassManager::runOnFunction(llvm::Function&) (/data/users/lanza/toolchain-13.x/build/Release/toolchain/bin/llc+0x2d16238)
#11 0x0000000002d1cba1 llvm::FPPassManager::runOnModule(llvm::Module&) (/data/users/lanza/toolchain-13.x/build/Release/toolchain/bin/llc+0x2d1cba1)
#12 0x0000000002d168ec llvm::legacy::PassManagerImpl::run(llvm::Module&) (/data/users/lanza/toolchain-13.x/build/Release/toolchain/bin/llc+0x2d168ec)
#13 0x0000000001babb72 main (/data/users/lanza/toolchain-13.x/build/Release/toolchain/bin/llc+0x1babb72)
#14 0x00007f2a5d4e5dc5 __libc_start_main /home/engshare/third-party2/glibc/2.30/src/glibc-2.30/csu/../csu/libc-start.c:308:16
#15 0x0000000001ba915a _start /home/engshare/third-party2/glibc/2.30/src/glibc-2.30/csu/../sysdeps/x86_64/start.S:122:0
fish: Job 3, 'llc reduced.ll' terminated by signal SIGABRT (Abort)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNWFmP2zYQ_jXeF8KCRFmy_OAH7-F0myxqxAEK9EWgKNpWQ1ECSW3W-fWdIeVD6rZJ0Q1aw9ZBDme-uUkXTXlcTtKw_4b3k3A1iW_JU1N2Ujzek0kMPzpngZRw8wSm6TQX-a6SQrFa9DRUllMr6jZo4NkTWqb3wpKSWSbZsensiVRM60m8EtMqgxv-YjqtohQe3AXf0hk8pDMYpkgA16mKqR_b4thIiNVVK89YGNP8AJSqUWIqK9W9TJkqdVOVNDqv7K80MVZ33AZqb3lLc66PrW1yJljp2NljC3zntwTQUiC_IwAOBu6_vT7n9uUVHleLzxZfd4rbqlFkZa02oCdRTaUAuiBNa1EPT1uKHY5VygqtmCQ7Zizn5BlUI5NZWAonPm8_2wkaaUE6hU4qc1aWGkwTh3CJPB4aDV4iROilCGX1EUD4N0IKTaoIZEkj0ACSFULCkoQ3yg4GrGYtDgA71RimKlt9dcwHNndUoOI_-aCRWi1K0_s48Rh7gJ3SgvEDK6T4tniH-k3FoymYlG7OPVQxBUzgLPCC93n_htj-OmC-mxAja0A8EoIh-i_nFiflNKQXxldvwmHsMgjXquisMH1woXUg0MfR-6eYd8HnTBkBPcoNe89Bgua_fdqu5eaweR9lf1Z-8_5Qb2d5LTdROpz9XG_W1Tbf0nzzntLXzYYrT7-HB6wGl1TGHPgGpufN--dtBMvhJ0FU_hDshRKaSQi1csSOXrG7jI_qrbv-ehCKFF0ly0rtyZfKHoiU_JyCr6-kMyQirjq7Eb8EBK6x6MKtMwKqCV1Lpr7iu20aCWlSqWkUBxBBa_HiCwnSyOd62urmd8Ft_4q3qoDrXVOKd0LB00Y3stk_tBVcHxWwh_UBbzGf41mM0n0tohkDvx_rpjMEK5BpGRcYVaBSvNo8PPoHyBbeSWbFHaTNWgPho9pBC8mceEfyBIkNkXSukBOaej5kZVC-GwOb0Ohp_RhU5om9IDNvEcdyC665a-oWwrTsy-JkfgdfhImLoIP0q870J7r4Hl04nvUgUoKLWfl7Z6zZWsY_D1etBjML6KBQQ6FtloEHt_nwsNo-ENMVdWUJA__vIdvaRkM_a8jB2hY7ARgdvjBnAjRK0Og9vBNoaNAGuOxKQexBEK6ZOZACREF55aIX4WSTsqvbcyyFgS9p4Mk96EOggXY1lDPXdTCeoMx1HECebBj1Cz5CL8HobJnBbJ-fPbLBgSem2F5oVBKGareDQKorbnTeo6J_wdEHVwfGX_sI6wTxQdY7njgPkHWlMN8YDvcCd5fwmI8bYb9x8RUqfAlPnziBzy4ml1gzR9MHqIYW64z3SbvAvQpIzb7kDZRmwWoXBnfYjp3b0fvfnXou2-H-UUjBsLFeSHDWXTGh6W340iO9VGVQJRqpEsdUvKYKGHlb7cFgP0HISAcq--FoEcwALR0bnhU7MsCFrdLb0Q-bvqyE7ndmFPeM5jvKkpKlRQROzXMtjG20yCF3vGKd0efyBdfWHsBhZWCaIHQgowQWDiDOBpxnO5EAZ80qg3G8PjQ1ai3U3hyYdgY4VLqctkzbI4XXPUgB_dc0QL5ro_lpcHoacnrBQxDg29GUokWjd6p68QPPDizsV-HuJAdY0JMIt8AXoMkQqEiSqCSsaJzubwLUlt5wjqnDkCGGq0RKR8ZKZjwGNzBXknMsc3nB3sxynu35wSNaDBHNx4ggCF-PBY5RkF5CdRAF2XWg0sVux8T8u9uZ7tQvatSw_q6Z-V5G_qapjqJ_MUCXQRIl10k_Yo-F-QrYq4hGUH5cVejRno2NJWxQjmkZpWj_K2wb1ODUWf43inicA0WikSK8YNF3KOIP2sMI6Yd-vBKIcaAEHXsjE_xKCSn2jB_7iL-o81i38qzSf6QKIh2oEl-rEhWsKOaU1LD6B-LoxQxwzMaluuQJlEksQrmxUADzHtRbVEluulNz8Y9u0olxFTMOM_8fyxleMjLTIkoY8cDeHtOl4b1kaZ7OXKNBbFv3Dw-9VLpdZQ64G_25KUjsj2Dz0c4Udn1QJGvYCMKmnhRH4psr2T6-W91-_IRuXmHzunjjdHi6KZdxuYgX7MZWVopl_2eR2zoLVQ4PFkLrRvvzmO43qx8-3OGGk8ORyJ3YrJ--Wz_edFouh9v2PUx1RcAbd5bqj1TDg1ZlTCfQKskszLKbwzJM5vOEhxFPwzQtwp2II8GyrMjYYrGgu92N-7vFLCfJLZw3lfhCHAs8eyb3N9WShhS_CY1mMxoFJRdJQRduq7TLRAq7YwFBJ8-niRu9dJDwiAGTsoIzy2USEh0sK4QTB_xZZw8NrMCMuXGClw74H9KDDVM">