<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzVV91urDYQfhr2xgqyDewuF1xkzzZSpVSp2geoDDiLsyxGttnk5Ok7Niw_CzlJzjltVWTZ4Bl_8-OZsUll_jX5tcqbzAhZoTNTgqUlR5U06Cy0sO-iQimwoVLKGrHSFLI5FKjRPEdGIpZlXGvEKsSUYl99D-89fNv2twY9HDz6BT0QYMjRwysyBR-kCCT0RBQzqBQVR5T4A4L-4CISdYu-yFNdcsNRztPmAPo_SnVizkDgfaCtLsFE1TslT0jW5iYVmmfmphQnYdAzR4-yAW7ZGNCCGacKsAH1tUWsGVgvKqMkOFFUB8fhxGrkrfG9ddqfRvHqYAr0B-88DZSJePjumvs8yxLQwbam0uJQgadBAsqQF-wR9oLdeKmlMC_aUS_awxAOg2P3Nru2EbsR1HaB7UJvs7fjT6T0xH9LGrSLL3pH6UIqg9IrFywBzN14YhDrHt2epcg9GnfkTceH4LFcwiI82e7YY1gaRJldLPpdQvbVirWvHt25Fg8LJsgjhKcB4ckhhO51AWERZYR0HJCOA9LxDaQ30ezTBp8NNNFG2FM7HO0QLCyyLr5SdD-2ff--58IPe67VLr1oN9ZnIklx06hqnEMX6lUGtv39_X6HtOG1dpWjq2Wuf_WC5dwFQ8oyT0FfZJg6cMhbxRlUI49S5kMhgbGrU42CumAQf-FZY1xx08AORdWjG4_eFfLEYRBaN1xfXoildDgb67WX7fqvdQji_Jn8FAppO7kDFY61tOFLQHH0XHDF2x11UGvcxf4OEUKtsczPgJFabuJyhuW5spXe7dEL7p8QE7Kd267amd-VdOdDhHGAStZUWcFzq8HcxLctW4DSRtY1IHVib6Hsgok5LAvc_lTs1NoHWBdMO2_XQRQwDaXbhczIMT4ZhaRyADTAVtm5vVO_zfx1wSFbCEAcX8chifvpz8Y-xSPELohvvOAX2Oqe8O2MoHRRJxr007MsseTQkYd8Gba69RUc0D0F3GkJrVFgzeRewc5MlPYLtJ6cgf26tgCG19PHyfQH8lX_L3KURJ_P0XgIOVju4u6dFCXpeykaxpvtOyn6AQsXMP_bXCXpG7l6cVyflHSSQOMzhgQT0vecsCScQUzzl0Qzhs-cu2S9gD-qOJsr4_bfrFH_fHbj5ezGV_m6ypMgj4OYrVgDfx4qyZTQRrAKrt0MBsNXjSqTwpjaZTu9g3YQpmhSP5Mn-CjL82W4qZV8gtv9OJyjYBtFqyKhwZakOaFpGGAckXDzGKZRuolTzigjeboCo3ipE3A9FIeKPyMHYQtFtF_9uAYioZhCIyCbkiD2cRTHPE5ztiaPONrEXog5BHDpWxxfqsNKJQ4SfjY0EEvwix6I4B97IeZOYdDQCFPy5DeQan9SxOyXr7vhtP9GeuW0S5xqfwMbI7DM>53855</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Missing induction variables at Og and Os
        </td>
    </tr>

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

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

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

<pre>
    Induction variable not visible in body loop although used to access an array.

At Og, O1 and Oz the variable i is not visible at line 21.
At Os the variable i is not visible at line 15.
Complete debug information at O2 and O3.

>From opt-bisect-limit we found out that the optimization pass introducing the bug is `Loop Strength Reduction`.

```
volatile unsigned int c = 0;

int a[2][4][4] = {{{1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4}}, {{1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4}}};
unsigned short b[4] = {1, 2, 3, 4};

int main (void)
{
    int i, j, k;
    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 4; j++)
        {
            for (k = 0; k < 4; k++)
            {
                c = a[i][j][k];
            }
        }
    }
    for (i = 0; i < 4; i++)
    {
        c = b[i];
    }
    return 0;
}
```

LLDB steps at Og, O1, Oz:
```
(lldb) target create "a.out"
Current executable set to '/home/issues/issue17/a.out' (x86_64).
(lldb) b 21
Breakpoint 1: where = a.out`main + 112 at a.c:21:13, address = 0x0000000000401180
(lldb) r
Process 5003 launched: '/home/issue17/a.out' (x86_64)
Process 5003 stopped
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
    frame #0: 0x0000000000401180 a.out`main at a.c:21:13
   18       }
   19       for (i = 0; i < 4; i++)
   20       {
-> 21                c = b[i];
   22       }
   23       return 0;
   24   }
(lldb) frame var
(int) i = <variable not available>

(int) j = 4
(int) k = 4
```

LLDB steps at Os:
```
(lldb) target create "a.out"
Current executable set to '/home/issues/issue17/a.out' (x86_64).
(lldb) b 15
Breakpoint 1: where = a.out`main + 19 at a.c:15:21, address = 0x000000000040111b
(lldb) r
Process 4978 launched: '/home/issues/issue17/a.out' (x86_64)
Process 4978 stopped
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
    frame #0: 0x000000000040111b a.out`main at a.c:15:21
   12           {
   13               for (k = 0; k < 4; k++)
   14               {
-> 15                        c = a[i][j][k];
   16               }
   17           }
   18       }
(lldb) frame var
(int) i = <variable not available>

(int) j = 0
(int) k = 0
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVV1tvrDYQ_jXsixWEzW154CF7tpEqpUrV_oDKgLN4l8XINpuc_PqODctlISdJ1YuKLBs8428unhmbTBTf05_ros01FzW6UMlpVjFUC40uXHHzzmuUARuqhGgQrXQp2kOJWsUKpAWiec6UQrRGVEr63XW8vePdd_29Rk8Hh3xDTxgYCvT0hnTJRikccTUTRTWqeM0Qwe6IoD65CIf9om_i3FRMM1SwrD2A_s9Cnqk1EHifSKeLP1P1QYozEo2-y7hiub6r-Jlr9MLQs2iBW7QatKDaqgJsQH3rEBsK1vNaSwFO5PXBclixCjmR92ic9ruWrD7oEv3Gek8DZSYevvtmPy-iAnSwra0VP9TgaZCAcuT4e-Q5_m661FCoE-6IE-5hCMbBsjvxrmvYbAQxnW-6wIn3ZvwbKQPx35IG7eqLwVGqFFKj7MYFawBLN54pxLpDthfBC4ckPTnu-RA8hosbhKPpTgOGoUGUmcV82CVkXo1Y8-qQnW3JuGCGPEE4jghHixDY1xWEVZQJ0mlEOo1Ip3eQ3kUzTxd8JtB4F2HHbjiZwV9ZZFx8o-h-avv-Y88Fn_Zcp1121W6qz0ySZLqV9TSHrtSbDOz6x8f9DinNGmUrR1_LbP_m-Ou5C4ZUVZGBvkhTeWCQt5JRqEYOIdSFQgJjX6daCXVBI_bK8lbb4qaAHYqqQ2KHPJTizGDgSrVMXV-wofQ4sfHa6zb6IwpAnLuQn0Eh7SZ3oMKpESZ8MSiOXkomWbejFiry-tjfIYyJMZa6OTASw41tztCikKbS2z169YYn8DDeLm2X3cyvUtjzIfQ8H1W0rfOSFUaDpYnvW7YCpbRoGkDqxd5D2QUTC1jm2_2p6bmzD7CumGberIMooApKtw2ZiWNcPAlJaQGI7xlll_bO_bbw1xUHbyEAveQ2DnEyTH819ok3QeyD-M7xf4KtHgg_zghCVnUi_jC9yBJDDix5zJdxqztfwQE9UMCdhtAZBdbM7hX0QnllvkDr2Rk4rOsKYHA7fZpNfyJf1f8iR3H49RxNxpCD5TbuPkhRnH2UokESbz9I0U9YuIL53-Yqzt7J1avjhqQkswSanjHYn5H-ygmLgwXEPH9xuGD4yrmLoxX8ScWJb4zb_7BG_fPZ7a1nt3eTr5si9YvET-hGc12x9BcIP3PL5ot_lv6I7i73atPKKi21bmwNIA_QDlyXbebm4gwfVXW5DneNFEe480-DPPS3Ybgp04w8kwBTnG9JkbMojliU0ML3i22cRVFEN2Aqq1QKGwIlo2YvyEKY8hHuNzwlHoGGQxwQ7CeuFyYJS7KCRvjZC-PECTwGQVm5Rg9XyMNGplYl-IFQQKy40mokwq-GueQyKw7waQs_YzLNJbBxWgOZwqDZxiqRWiP-BNykm6M">