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

    <tr>
        <th>Summary</th>
        <td>
            Request for CommandGuide/llvm-opt-report
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          k-arrows
      </td>
    </tr>
</table>

<pre>
    I have opened this issue to write a request for llvm-opt-report command documentation:
https://www.llvm.org/docs/CommandGuide/llvm-opt-report.html

 I would like an explanation for the case where the specific line is output twice like the following test program.

```c
#include <iostream>

#define N 1024

float fa[N];

void init_memory_float(float *start, float* end) {
  float state = 1.0;
 while (start != end) {
    state *= 1.1;
    *start = state;
 start++;
  }
}

int main(){

  init_memory_float(&fa[0], &fa[N]);

  return 0;
}
```

```console
$ clang++ -c -Wall -Wextra repro.cpp -o repro.o -O3 -fsave-optimization-record
$ llvm-opt-report repro.opt.yaml -o repro.lst
$ tail -n 27 repro.lst
< repro.cpp
 1     | #include <iostream>
 2     |
 3     | #define N 1024
 4     |
 5     | float fa[N];
 6     |
 7     | void init_memory_float(float *start, float* end) {
 8     |   float state = 1.0;
 [[
  > init_memory_float(float*, float*):
 9     |   while (start != end) {
  > main:
 9  U4 |   while (start != end) {
 ]]
10     |     state *= 1.1;
11     |     *start = state;
12     | start++;
13     |   }
14     | }
15     |
16     | int main(){
17     |
18 I   |   init_memory_float(&fa[0], &fa[N]);
19 |
20     |   return 0;
21     | }
```

In the above example, line number 9 is output twice. This test program is reduced from llvm-test-suite.
(Original : https://github.com/llvm/llvm-test-suite/blob/main/SingleSource/UnitTests/Vectorizer/gcc-loops.cpp)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVs1u2zgQfhr6MpAhkpJtHXxwknqRSwts2-2xoKmxzS1FakkqTvr0C1K2pDg_28UuYAhhZuab4cf5E96rg0Fck_KGlHcz0YWjdesfmXDOnvxsZ-un9T0cxQOCbdFgDeGoPCjvO4Rg4eRUQBDg8K8OfYC9daD1Q5PZNmQOW-sCSNs0wtRQW9k1aIIIyhrCNyS_I_nmGELr44ltCdueTqd5tJ9bdyBsW1vpCdve9gi_dapGwrZXDubH0OgerP_CPZxsp2vQ6geCMICPrRYm-U0RhiOCFB7hdESH6ehblGqvJGhlEJQH24W2CxBOSmIPFNX2Vmt7UuYAIV63dfbgRDOfeieLvP_J85lxZaTuagTCb5X1waFoCP_wzIjxGvfR9UegOSumsr22IsBekPLmIynvCL-ZSh-sqkEZFb432Fj39D2pE7bqzQjb-CBcIOwWzpINoKkJq4Asz0jQi8AHEWKUd0Dn-eAHTkelEQhbJSQgjEaVlyBwAWCbHoOOGABDKMlB0hzF5xhv4m-0Icu781WHP9JXmQCNUIawFWHVEMHF7DU2CFskBvPIILuFyzkxyqorUgEchs4ZGFkYQ7i87-uPbo23Gi-vWoDUwhz6m0EmIfsmtIbsGz4GF8umdXYu2xYyez5YyD5xyPZePGBMctWonylzM4fSunpEvq6zs30b5k-i0SOi9mE0CkJpyAyw5Qspvx3jOdNAIT3cMvL1bhYDu2iez3xq-UpqQ3FlUA4Gb-U7LK5MloPJ_1IEqwHuH-ohNcsxSfmHt13HUpg4TZl2ybFq4u9XSyw6S5k_Rfla_DuUSGp5zmaaT6J4p4Apfab3Ti3TIRVerWrKJ0BDUdFizJfhf-Xz96bD-8MbDYAuryxWcD_4-i9dgVYjKJsy9qJNMPryIq92jHuTBorY2QcEfBRNqzGGkOaP6ZodOqiuB9EcvsTxO509UcVh3UmsYe9s07eFqJH5TgW8zCa2-uTUQRmhgfANPB-7BxWO3W4ubXMer5cpO-IQtt1puyNs2xO__azMQeNn2zkZhV-NCl_Qhziv_0AZrFM_0UVsKTNtbetTX2HVrF7zuuKVmOGaLpZVuSo4Xc2Oa8rzYikXrOL5MuelQF7msigXVbFa5rgQM7VmOeM5Z5yWlJareVFWvJY8r1ZcVnwhSJFjI5QeVohZWlTWC7oolzMtdqh9WnUYM3jqtxjCWNx83Drdd9cdPClyrXzwI0pQQeP698mO8_5GMuucXv8iw62zf6IMhG1TOJG-FO7fAQAA___yz72K">