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

    <tr>
        <th>Summary</th>
        <td>
            [debuginfo] [optimizations]A specific combination of function optimization passes triggers debug information of local variables missing
        </td>
    </tr>

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

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

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

<pre>
    LLVM 18.1.2 (commit [261aae0c](https://github.com/llvm/llvm-project/commit/26a1d6601d727a96f4301d0d8647b5a42760ae0c))
LLVM 17.0.6 (commit, [6009fe18](https://github.com/llvm/llvm-project/commit/6009708b4367171ccdbf4b5905cb6a803753fe18))

Reproduce with:
```compiling pipeline
clang -g -O0 case.c -Xclang -disable-O0-optnone -emit-llvm -c -o case.bc
opt -passes='function<eager-inv>(float2int,lower-constant-intrinsics,loop(loop-rotate<no-header-duplication;no-prepare-for-lto>,loop-deletion),loop-distribute,inject-tli-mappings,loop-vectorize<no-interleave-forced-only;vectorize-forced-only;>,loop-load-elim,instcombine<max-iterations=1000;no-use-loop-info>,simplifycfg<bonus-inst-threshold=1;forward-switch-cond;switch-range-to-icmp;switch-to-lookup;no-keep-loops;hoist-common-insts;sink-common-insts;speculate-blocks;simplify-cond-branch>,vector-combine,instcombine<max-iterations=1000;no-use-loop-info>,loop-unroll<O2>,transform-warning,sroa<preserve-cfg>,instcombine<max-iterations=1000;no-use-loop-info>,loop-mssa(licm<allowspeculation>),alignment-from-assumptions,loop-sink,instsimplify,div-rem-pairs,tailcallelim,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-sink-common-insts;speculate-blocks;simplify-cond-branch>)' case.bc  -o case.opt.bc
llc --relocation-model=pic case.opt.bc -o case.s
clang case.s -o case.out
```

Results:

We cannot get debug information of local variables  on line 16 and on line 24.

```
(lldb) file case.out
Current executable set to '/home/ad/Downloads/lldb/reproduce_bugs/case.out' (x86_64).
(lldb) b case.c:16
Breakpoint 1: where = case.out`calculateValue + 4 at case.c:16:21, address = 0x0000000000001144
(lldb) r
Process 34498 launched: '/home/ad/Downloads/lldb/reproduce_bugs/case.out' (x86_64)
Process 34498 stopped
* thread #1, name = 'case.out', stop reason = breakpoint 1.1
    frame #0: 0x0000555555555144 case.out`calculateValue at case.c:16:21
   13   static long calculateValue(void)
   14   { 
   15       struct Data localData1 = {21,235,1,4294967292,5,2};
-> 16            for (globalVar1 = 0; (globalVar1 < (-21)); globalVar1 = globalVar1 - 5)
   17       { 
   18    struct Data localData2 = {40,32,97,0,7,44};
   19           globalData2 = globalData1;
(lldb) fr v
(lldb) s
Process 34498 stopped
* thread #1, name = 'case.out', stop reason = step in
    frame #0: 0x000055555555514f case.out`calculateValue at case.c:24:1
   21    return localData2.field2;
   22       }
   23       return localData1.field4;
-> 24        }
   25   
   26   int main (void)
 27     {
(lldb) fr v
(lldb) 
```
and the same problem exists in GDB.
```
Breakpoint 2, calculateValue () at case.c:16
16          for (globalVar1 = 0; (globalVar1 < (-21)); globalVar1 = globalVar1 - 5)
(gdb) info locals
No locals.
(gdb) s
24      }
(gdb) info locals
No locals.
``` 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8V0-T46oR_zTMhcKFQJasgw9je53LSzaVwya3VwhaNlkEKkAzs-_TpwD_0fyp1GztS1wuy7ToX3f_aBpahKBPFmCL1ju0PjyIOZ6d34KaR-fiQ-_Uj-1vv337K642q2rFMGIb6cZRR4zWO9ZUQgCVaH1AbHOOcQqIPyJ2ROx40vE89yvpRsSOxjxdH2Ty7t8gI2LHAoTYkTWiUk1DK9WyVnTNUHNaKao2Td32a1GztqHZDuvSlx4QfSxOtSu6au5OIbZPfjWUdgNUm1_1K-G0dNPXvGmrtpJS9UPdrzu6ln0jNpS3a57tLPwqv_-AyTs1S8DPOp6T8fKyoeUr3Thpo-0JT3oCoy2UCdIIe8LkhMlXiqUIsJKY_OsiVTqI3gD5SombonUWMIFRR5L8x0Ri4opOLwuamyImkwgBAuIHxNphtjJqZxHfgziBJ9o-If4Fsc1gnIhM20Shcc_giXQ2RGEj0TZ6bYOWIb9zE2Kb9CDeRREB8b115AxCgSdqnoyWotjYWUcmD5PwQAbniYkuG8sgRIGBPC-RdxHpEL3u5wiI7bVNy0Gi0WQU06Tt6WqfPIGMzus_Lra1jeANiKdsRoIizpofiO9u897IF14YJxQBo8dsMUTpxj6tBt-P4oXoCD4Hk_irKKUlqDkAydraDpeQgh4no4cfcjghvu-dnQNJeCSePYSzMyohIL4bnH8WXpHwrKM8J5YV4rvLyAt7AhId0XKc7uLokrnv81TMfweYsv2A-O7sdIgkpayz2WISBm2_v5NNIGcjIpDeOPm9TCtOZy9I74WV5xJOYY5c2fg1bvJwtt4Zg_j-KyvS6IUNg_MjeRbeantKLHonEN9PHgL4JyCZzS9_hvkxBJHyVssR8b0wxj1fCcm5-qWkoTD6ZEewkQzejUSEMI9TsXIBStReHLrSh9he6SfiYSST0D5NjUIbKYy5ZNans8M68lMJYh35IEdeJUjanB_lSFL9xTTpEGuvFQffqo-b4q0CGSMxIR6MK0WBjE6BQfwwabmcfVMOyzpYJHfgOb4po69LbphNDPdam3__CVgKa13EJ4hYQT-fcEoNP2Z_sBtw8s3gJ-F1qq4BY2dxqsi4arCw6jZk9WqJ_NYJtjFG9Yh1eNAG3ni8n70HGzG8gJxjsoMDRBwdRqxF7Hh2IyB2FAqx48E921SWQj6ZEuTRX4-T3_s5lcHjDZ216fR72TS_NzVi3eqdM_3lGEH8sWrK250H8X1y2kZcIf6In8_gASN-uDvdUClMyYNvwsyAEdvhGov4Co0_sioduUIpDyFkCPpCF5-qqut3Lvki-bt3Mmnxuu422IjZyjOo5NCfy8lH1kJ00wTq6tojThtRKIwYzxFZMRZGEGsXuOlVUsUeRHA2z-gXbK6qgogxxoPPGIzTFFKhZX39VHX9X8j-iOYrbsUxRrQLUUQtsXF5myy1Eds8Oa1ugSedOuugdofvsnWWJU9D9LOM-CCiKJsh_atK-O0uLzHja8T26V_NurprWtYxxPZJyFB7SGdqBiaIf0n75go9OJ_W4mRcL8w34QtqqtXvxPskIclavkzxHX6jtRgSvH4VX3sz-DrGTZF_GCC7BlhTxPY8hdOlBU6j9KzrZWAJrbtZSZ_izh3pPq5uWsui4PHTO2H4H-dmiDBhbT-dlMMnk5LVKTNvsKwqzHiIs7cLileDBqPYkkXGFmt1uIv5TfwWpSoo9eskY9ecXmCUlL6PSx6mnTkKbfG7ncHa67743HJ9WPjTERHPgENidvKuNzBieNEhBqwt_stht_pQb1GFU-7hdwU3tRVvS0HWTM__1-5KOCX4dGqWRblk7d-uw9XbqZcJrF4u0M8gXZnCD2rLVcc78QDbqq04ayjn9cN5S9d84MNQUdVRqBmVClinekqrRvasqx70llFW07pqaMc363rVCbmmFXTrgQNIoVBNYRTarFL3tHL-9KBDmGG72Wwa_mBEDybkrpgxC884v0SMpSbZb3PHmM-dmpq01HeUqKPJ7XS-bORr6PqQulI3RT3qPy6X1vXhEae7lh7STShfbW83kmubhpcquDRyOHp9OoEPn7vMjDoEbU8Pszfbn26Ec8zpaM2c_CcAAP__gWfv3Q">