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

    <tr>
        <th>Summary</th>
        <td>
            llvm-opt-report can’t parse .opt.yaml file
        </td>
    </tr>

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

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

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

<pre>
    ### Description:
While analysing the Spatter Benchmark for possible optimizations, we came across a conflict with llvm-opt-report. We focus on the loops contained in openmp_kernels.c. 

- Compilers Clang 14.0.0 and Clang 13.0.1
- Sources are from [https://github.com/hpcgarage/spatter](https://github.com/hpcgarage/spatter)
- Branch: master
- Commit: a9878dc916e77590b99f76c94bdc1606570bd78c. 

### Issue:
After compiling the original code with the option **-fsave-optimization-record** and **-march=armv8.4-a+sve** we could visualize the openmp_kernels.opt.yaml file correctly using the llvm-opt-report tool. 
When the OpenMP #pragma omp simd is added in the source code (just before each inner loop of the openmp_kernels.c file), the files generated by clang 13.0.1 and clang 14.0.0, contain empty parameters. It causes the reader llvm-opt-report to not be able to parse the files:
>error: YAML:4830:1: error: Type, Pass, Name or Function missing.
>
>Pass:            ''
>^

### Steps to reproduce:

> $ git clone https://github.com/hpcgarage/spatter.git
> $ cd spatter
> $ git checkout a9878dc916e77590b99f76c94bdc1606570bd78c

copy the **configure_omp_clang** file in **./configure/** 
[configure_omp_clang.txt](https://github.com/llvm/llvm-project/files/8687031/configure_omp_clang.txt)
to change the **./src/openmp/openmp_kernels.c** : put the **openmp_kernels.patch** in /spatter
[openmp_kernels.patch.txt](https://github.com/llvm/llvm-project/files/8685956/openmp_kernels.patch.txt)
> $ patch -p1 < openmp_kernels.patch
> $ ./configure/configure_omp_clang
> $ cd build_omp_clang/
> $ make
> $ cd ..
> $ llvm-opt-report build_omp_clang/CMakeFiles/spatter.dir/src/openmp/openmp_kernels.c.opt.yaml
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVV1vozoQ_TXkZRREICThIQ9N2kgrbfeu1CtV-1QZewJuASPbtDf76-_YBPLRSHsr3SpKwJ6PM3POTHMlDusgTvoP3KPhWrZWqiZI7oLoPojunktZIbCGVQcjmwJsifDUMmtRwwYbXtZMv8FeaWiVMTInY0URavmbuTgmiLfwgcBZTVG4JhtgwFWzryS38CFtCVX1Xk_JaaqxVdqG8IwUkHcGVOPzVUq1xjlZJhsUIBvKgU3dvryhbrAyIQ-hh9t_T2Gr6paAawPbihHs2TyMwojqEMNBQgezwfxJdZojQdOUWqsagnRTWtsa14d4R5-CkHZ5yFVNL2XLC6ZZgfRs-mYE6X0Qr77oE2cDgI1m1EvyhJoZd3Wqo5bWnbNstVwJns0WuFymWZRn2X654Nk8F3y2iBbpMsrFcnXViRO534zpcKT1bu8I5L5LA61Ky0IS0XQssKfGH3tBQBBTsLvp3rB3nJ5TTLRxpUV_7zt8NCVluJLuma7fV-F8yoJ4Y97xaOhEobpKwLs0HavkbzxmuyCWEoUHVlewdzKkPJTMVgfoRjFeqQesUtXQg-cSewX9RVEffxKwpCUKagZUOBhZk5aIdCF6UTlL45XQt4AIfe2MhRxJ3wjIeElmDTXOKRLU_hZi7qE6akn57t69GiiQ_JilRPkB-JkEfcf4mUid31HrgHVrD9CSbmokwkwI3yzNUmcoooutkQkH51MPoFEONzA3kPRKIQye4Iw6CJIH1Fppp7Bfd4_f6Xe-SiL6mbmj8e7vQ4sO2E9m_Ej_cPNMQ7_rGu7lUUvjKAnHsOODd6EQZ39BvHSf0TR9uK3ZJ4s0-ASf6tJKdPwk4NGZgs2BJo16qBqEr01gSAaXkbiAYTo_ZyiRv6nO_udZPIfKVXvwBPT6dytQFp3GF5Lii-f_OBhe6XIYuJDAjra-KG90jJxubsQJ7T_2j-vISeb4M6XevtJY0Wsvjni3WqyWUTI7z30Vf1hdRA4v6RDPanOYjeb03c_G-HAakqEM0kVLDT35XhkSFbRDemPfk90lO-nmlsP_04E0SxefoZ8SDC0YJOJvYNrOqKzt9VroC7mwv6b2liSutZl3shLnktldmtTsDT85heHl0fW6-Bx0-0hxdsdWDLMipP4zsePGnoh1IrIkYxMrbYXr66ScNcFDHKyiIMvscT9drvtJp6v1lwmU7v-cg52m8ySZlGsei4S25IyzmKNYCJGkyFYi5yKN53OWTiqWE_Q1aSmI4wY_wIegZ5LQRK7jKI6jdJbM4iRJonCesf1yn5FvlO8XIgnmEdZMVqHDESpdTHRfa94Vhi4raaw5XdIylEWD6NNRfNbZUun1a1dJLBi1Wk98-rWH_y9_MRJR">