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

    <tr>
        <th>Summary</th>
        <td>
            [GlobalISel] CSEMIRBuilder Performance
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            llvm:globalisel
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          Pierre-vh
      </td>
    </tr>
</table>

<pre>
    Opening this issue to track performance improvement ideas for CSEMIRBuilder in GlobalISel.

I did some profiling and I found that CSEMIRBuilder takes a non-negligible amount of time, about 2%.
0.8% of that is MachineIRBuilder::buildInstr, so that means CSEMIRBuilder adds a 150% overhead to a normal MIR builder.

![image](https://github.com/llvm/llvm-project/assets/29600849/f3463047-ba7b-466c-96c3-05cd16453033)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUksFu2zwMx59GvhAJZMmyo4MPafPlQw7FivYJKIuxtcpSIMkB9vaDnW3FetvFhAHizx-pH-bsxkDUM_XE1KnCpUwx9a-OUqLdfapMtD_6bzcKLoxQJpfB5bwQlAgl4fABN0rXmGYMA4GbbyneaaZQwFnCDNeY4Pn9v5fL29PivKUELsD_Phr0l3fye8ZPjB8f3wtYZyHHmeCW4tX5dSQGCxe4xiVYKBOWL2kFPygDQohhF2j0bnTGE-Acl1AgXqG4mZh4BjRxKSCYUL9m8v2BCbW1rLEuwwsOkwv0J5zJI5NHs_5cQi5pjcnx0T4ThvyFBa1dUWrFt-A7pYnQrpda-dKMHl4ub2Ae7X-tzkTN1JObcSSmTkwcplJueQUQZybOoyvTYvZDnJk4e3__XXa3FL_TUJg4Y85UMhNnoVvOD41m4nyVTSt50-0MdmbXtO2w0-0gd1wNtm4bJbmUTOgHQmV7abXUWFFfd7VSuuZcVFMvDD-Q5VYjx1rVXFrV1pwP0g7YtbqtXC-4aLiqJddcCrHXa6nNoWuathMNsYbTjM7vV-Z9TGO1OdTrWsuu8mjI501AIbbl5HHcDHGZPBNi9TL1275mGTNruHe55M-04orfDP4Ui6nTl9d5_fS0WpLv__nCG_N64Q37ZwAAAP__yD8E4A">