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

    <tr>
        <th>Summary</th>
        <td>
            CoverageMappingReader behaves O(N^2) slowly with hundreds thousand of Expansions
        </td>
    </tr>

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

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

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

<pre>
    For example `RISCVInstructionSelector.cpp` (possibly since #110782):

- NumRegions 892,077
- NumFiles 387,470 (Expansions)

It takes bunch of minutes for me.

`llvm-cov` is not required for reproduction. Just add `-Xclang -dump-coverage-mapping` onto `-profile-instr-generate -fcoverage-mapping`. The dump calls CoverageMappingReader for encoded covmap.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsks1upDoQhZ_GbEogKH57weLeTpBypZuRktFotsauBs8Ym_FPJ3n7kUlLySIbWPjUp1OnDvdeLYZoZO2_rL3LeAyrdaNY-R6NymYr38bJOqBXvu2agHXl08Pz-ceD8cFFEZQ1z6RJBOsKse-sK4HhsFvv1azfwCsjCBjWVVX2AzI8sfofVt6x8vbN4TFuT7QoazwMJ2R4Lvv-09ukNHmoh57huekP-v3rzo1PE4n3CfYQIPDf5GGORqxgL7ApEwN5uFgHGxWfxawrtb5uubDX5Fp5MDaAoz9ROZLHhKPdWfm-ZQH_RR-AS5kyyH8Kzc0CuYzbnhDk-EL5xvddmSXxrAn2UO7OXpSmXKXE8oUMOR4I8ssXUwV8XwkSEwTX2sP5pvn_XfJEXJI7vJERVpIEYa8b34tMjrU81See0Vj1eGoRu6bO1rHusGlEXQ8dnwfRdZeyacXQlqLtsEGqMzViiU1VYlU1bY9YyJI3cj51XV-fRDPMrClp40oXKa7CuiVT3kcaq6qu-jrTfCbtj_4gGnqB45Uhpjq58ch4jotnTamVD_4DE1TQNH694kwrv5KHbwyHR9bep-qA1_ZFv8GLCius0UhH0kNYbfTcyHTuj2Zk0elxDWH3qXA4MZwWFdY4F8JuDKdk4vZLF_pFIjCcDuue4XTb7Tri3wAAAP__HrMCCQ">