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

    <tr>
        <th>Summary</th>
        <td>
            Document GlobalISel's combiner guidelines
        </td>
    </tr>

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

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

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

<pre>
    @tschuett made a good point that our approach to writing combiners in GlobalISel needs some documentation here: https://github.com/llvm/llvm-project/pull/91922

This issue is to track that initial work on elaborating things like:
 * Combiner best practices
 * Rationales for what we do
 * Artifact vs regular combiner
 * Notable exceptions to the above and why they're there

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUUs-SmzwMfxpz0XwZELAsBw75NpNOLz20fQGBFXDX2IwlNs3bdyDbbXrsBTy25qffPxJxY2DuTP2_qU8ZrTrF1BHPnCSGrI_21pkqVxmmlVVhJstAMMZoYYkuKOhECnFNQMuSIg0TaIRrcurCCEOcexc4CbgAn3zsyX_-xh4CsxWQODPYOKwzByV1McDEiU15hEl1EVMeDZ4Nnken09ofhjgbPHv_9vv335LiDx7U4HlZvTd4bosW0eQnkx_v3--TE3AiK4OTjZomGl7vrF1w6sjDNaZXiAHYUx8T7cx1cmEU8O5143PHAoNHeHmXBD2LwpJoUDewPEx83aWQZ4FLTHDdVl03oQ8zx6TuQoPCm0DicfWUPsx6GPsSlXrPwD8HXjbUu4SJgfr4xkDBwnW6bTc3g03i7ZT4jpDZrrRt2VLGXdEU9XOODZbZ1NUXZluhLSq6XJoWsbb5pX5um6enp5Kem8x1mGOV10VdtDXm5QGHPKey6NvGMldFYaqcZ3L-sKVwiGnMdou7Fsu8zTz17GXvFOJf-RpEgy8GcQ-xPI57JZyw317qU5a6Pdd-HcVUuXei8meHOvXcnd4BH_pksJEP-2BcnWXvAku2Jt_9c5V2KbKVaVPzKwAA__9UEwmB">