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

    <tr>
        <th>Summary</th>
        <td>
            Verification of Accurate Debug Information in BOLT After Optimizations
        </td>
    </tr>

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

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

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

<pre>
    Hello @ayermolo, 
I would like to inquire about the methods or processes employed by BOLT to ensure that the debug information remains accurate after optimizations. Specifically, after an optimization pass is applied, what mechanisms are used to verify that the updated debug information correctly reflects the transformed code?

While BOLT significantly improves the performance of binaries, it is crucial to retain the integrity of debug information, especially for profiling, debugging, and future code maintenance. Mismatches between the optimized code and the debug data can lead to confusion and errors during development.

Questions:

1. Are there specific verification tests or processes that check the accuracy of debug information post-optimization?
2. How does BOLT handle complex transformations that may affect source-to-binary mappings?
3. Are there any known limitations or challenges in maintaining accurate debug info during BOLT 's optimization process?

Thank you for your time and any insights you can provide regarding this matter.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsVMFu40YM_Rr5QsSQx04cH3TIdmHsAi0WRYP2TM1QEpvRjDqkkqpfX8zIG7vpXmzYeiQf33siinAfiJrq_lN1_3mDsw4xNc9DSomIaNNGtzRfyPsI1aHGhdIYfazMT1DVn6v66Su8xdk78PxCoBE4_DVzIsA2zgo6EIykQ3QCMcGUoiUREqBx8nEhB-0Cn779_JxLKcicCHTAtdBRO_fAoYtpROUYINGIHATQ2jmhEmCnlCBOyiP_UzCyhd8mstyxRe-XTHQFYfgPDiYUARbAafJMLgPf8uSR7ICBZRTARDALuUzulRJ3y5XcPDlUcj8gaWNKZNUvkKjzZFVKgSYMklHkwEZH1f68Krh-_jGwp1WK7EjhH3ITHqcUX2ltMlEqg4IliB20HDAxSSbPmrexabaMPjNOpMihlHFQ6hPrkov-xzhXk2TRsmLQrUZ17Dn0-Vkp6C8_MDjoZs1G5S0gG6IUMqMt_MIyotqBBFrSN6J1_EX3y-KlxdVfh4pgMYAnLErbGLpZspIZSCnFJODmxKEHR6_k4zRS0O2ter_OJMX9av90-_9uC08lUpQI5JKL1Uu2q11Koh_CWUy2A9mXwnNNm_2xeDBF0bvbZL0ba7bwJb6BiySrsQMG57Nu4-Tp72si1uCuY0dcALuOrILEOVm603hXfF5gxGni0Mv7hP3tehgWeAnxLYDnkfXSNCawA3pPoScBDqthyCHL-f4eXdf6rnQhXJmjfHhrVpE-hPd5wPACS5xLeJY4J1AeV6czLQ7C_aBSINnrHGl2BIl6TC7P04EFRlSltN24Zu9O-xNuqNkdzaOpH2tjNkOzP-LR2drZ4717dBaN7e6Ppt259viArjYbbkxtDru6fqhPh2NttofudLQPp5119dHct6fqUOcb4rfev47bmPoNi8zU7HY78_iw8diSl3IMjckSVMbks5iajL9r516qQ-1ZVK4dlNVT8_ttqGIHT9-1_Vy0_XoTGQ6rvE_lMH27vV6bOflmUJ1Kks25MueedZjbrY1jZc556OXrbkrxT7JamXPZQSpzvqzx2ph_AwAA__-I3A3x">