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

    <tr>
        <th>Summary</th>
        <td>
            Bolt instrumentation failing: Assertion `!StateStack.empty() && "corrupt CFI stack"' failed
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            BOLT
      </td>
    </tr>

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

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

<pre>
    Bolt instrumentation is failing when trying to instrument mysqld when target is RISCV

-  Bolt is the extreme version of 19.x, and I have implemented the instrumentation for target RISCV.
- it works fine when i build mysqld with gcc,but it fails when i use llvm
- llvm-bolt --instrumentation-file-append-pid --instrumentation-file=/home/compiler-test/perf/mysqld --instrument ./mysqld -o mysqld.inst

BOLT-INFO: shared object or position-independent executable detected
BOLT-INFO: Target architecture: riscv64 

BOLT-INFO: BOLT version: 158768b4afc878a530a50bac034fc81ad1e5a0ee
BOLT-INFO: first alloc address is 0x0
BOLT-INFO: creating new program header table at address 0x5000000, offset 0x5000000
BOLT-WARNING: debug info will be stripped from the binary. Use -update-debug-sections to keep it.
BOLT-INFO: enabling relocation mode
BOLT-INFO: forcing -jump-tables=move for instrumentation

llvm-bolt: /root/script/riscv_dev/llvm-bolt/bolt/lib/Core/BinaryFunction.cpp:2505: void llvm::bolt::BinaryFunction::annotateCFIState(): Assertion `StateStack.empty() && "corrupt CFI stack"' failed.

 #0 0x0000556f0bbbd23e llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /root/script/riscv_dev/llvm-bolt/llvm/lib/Support/Unix/Signals.inc:723:22
 #1 0x0000556f0bbbd65f PrintStackTraceSignalHandler(void*) /root/script/riscv_dev/llvm-bolt/llvm/lib/Support/Unix/Signals.inc:798:1
 #2 0x0000556f0bbbaaaf llvm::sys::RunSignalHandlers() /root/script/riscv_dev/llvm-bolt/llvm/lib/Support/Signals.cpp:105:20
 #3 0x0000556f0bbbcad6 SignalHandler(int) /root/script/riscv_dev/llvm-bolt/llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x00007f0ad187a520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x00007f0ad18ce9fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #6 0x00007f0ad187a476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #7 0x00007f0ad18607f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #8 0x00007f0ad186071b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #9 0x00007f0ad1871e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#10 0x0000556f0d433712 llvm::bolt::BinaryFunction::annotateCFIState() /root/script/riscv_dev/llvm-bolt/bolt/lib/Core/BinaryFunction.cpp:2506:1
#11 0x0000556f0d432510 llvm::bolt::BinaryFunction::buildCFG(unsigned short) /root/script/riscv_dev/llvm-bolt/bolt/lib/Core/BinaryFunction.cpp:2269:27
#12 0x0000556f0bd087b3 llvm::bolt::RewriteInstance::buildFunctionsCFG()::'lambda'(llvm::bolt::BinaryFunction&, unsigned short)::operator()(llvm::bolt::BinaryFunction&, unsigned short) const /root/script/riscv_dev/llvm-bolt/bolt/lib/Rewrite/RewriteInstance.cpp:3364:24

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0V11v6yoW_TXkBdnC4M-HPKTp-E5Ho3NH7blzHisM2wmnNngAp-m_H2G7TZr2SKe3alUpGG_WXmux-TB3Tu00wBplVyi7XvHR741d_-B69y-AVWPk0_rKdB4r7bwde9Cee2U0Vg63XHVK7_DjHjT29im0vTmLxP2T-18nlwBud-DDuNubu-1_EdkgsokwntEd9nvAcPQWesAHsC4kMS1OqviI6BZzLfEN3vMDYNUPHQR8kNOoS2qtsc_ZplTxlEh5_Gjsg8Ot0jBTUrgZVSdfaCq_xzsh0D9qdLVF5bYZfRgWdLrnEaMD3HWHfsIMjagJAqLogkXUqg4iPgygZTQo-YsIxK4RrfemB0RrYfpBdWAjD84jWg9gW0Trhd45AI7P-s0iIA7vZ1-v_vz39-jmW_0nYhvs9tyCxKb5CcJjY_FgnJoYKC0hEAyIcAQxet50gCV4EB7kJdD32VRuxV6FiNFC6LbKiUOe4ndSh4fn2QzPSVYWedmkvBVlUfKMEZ6RhgvC0laUCZcJZJwAXOK0yjqPedcZgbmUFpwLNUOO5DJSWOA-VKKGRzxYs7O8x3vgEkJRBHXcv0CQY0amv1Bhpm0d-LO-BfnH5vbbzbc_AriEZtxhpVuDH1XX4Qaw81YNA0jcWtNP5dgoze1TjP9ygKNxkNxDNA2MHIhguwur5AFgwMrHl_xB82ZaVRY6I-aC7o1864ixIoRFP8d-iCZlDrHr3hxgWgAXxTbPzUu9BgREa2tMqDMnrBpCY5rJewkHROtTLK2Xn041iNZbY0OxXk0y61FPmmIxDIhtaEaygH0wSs7LhG0Q2ywpEdu8HjX3ca2N5x629c1d-EW0RLQKMBvnwE4WoJxM7-48Fw8x9IN_msMwojmiOUaUCmPtOHi8rW-wC3GIUkSLaf2CjGcLMKKMhMIhhGRZ3pKmaSRlcMbWPbm58R-rtJ8yfrdcBF6nIMsf743zFng_Mdhipf3M57dtndCebb0bh8HY0P2XVsfQoXaady5WWiC2KSgL_tJFQnIpIc9afMF3Bvgn17IDi2gZJgXRzVeSrErENsnCkV5w5Jy379l8O-pXVN3LzH6W5DO7uTiTqTYpWeixC3qCyxxfeva1k5om7MyvdCFUtITLpCx4RgmevFjQjmV-n6dRp_R4jHZ6nF-I2Jk4R_SKHFOaURLWzgyYvQYUULUCD35vgcv7h7CBfQi9yqtWnNDzS7ppkeOdmwR-lHZa5Cfg4jVwToqWYd4Y6z8GS8uiZSfY8g1s0nwYMGlOgNWFAQlU-ccAWQXVIjys6Vf7kkwZKxL6yV30q3b5fKnbQDu5oE2zhPw27ekGtq3_QLQc9XQXldjtpzXzReRpHs4WWizsX-9SkpRFw95lfwuPVnm40c5zLeCM_nMGN-uYD6_wT4uO943kiBavDo9fWjKfJG-MmGPNAJZ7Y5cUnwHEwmjn_7a_ixWn1rMpi8eM5WnwOEVks5JrJitW8RWskyKltKoIrVb7dZ4w2iQtZ6Jhos0ykZdSlAyqpshZTuVKrSmhGWFJmSRZQcq4zAQVVZm3WVFkskxRSqDnqosD0djY3Uo5N8I6YUlRkVXHG-jc9GVDabg8hftAdr2y61nYuHMoJZ1y3p0QvPIdvP_Js3zvvLmYIJp88m6yGm233ns_TCcirRGtd8rvxyYWpj87UwLtwZpwj0e0nsQ6ROtF72FN_x8AAP__AmhY5g">