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

    <tr>
        <th>Summary</th>
        <td>
            TableGen backends as plugins
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            enhancement,
            tablegen
      </td>
    </tr>

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

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

<pre>
    Currently all backends are built into each tblgen binary, `llvm-tblgen`, `clang-tblgen`, `lldb-tblgen` etc. It would be good to have the ability to load a new backend as a plugin.

This would:
* Remove the need for several copies of the compiler (which can be confusing to developers and packagers of llvm).
* Allow faster development of backends in C++.

You can currently write a backend externally by emitting JSON and parsing that with whatever you want, but you won't have the TableGen APIs you'd have in C++.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxkkkFvwzYMhX-NfCEa2HLtxAcf0hQZusM2rL3sSEm0rVWRDImOl38_KEmTATsZImXqe48PU7KjJ-pF8yaa9wIXnkLs3_Fszeds9TcxFyqYS39YYiTP7gLoHCjU3-RNAowEarGOwXoOQKgnYOVG8qCsx3gR8gCiLZ07n15uDdGW96J26Mf_VZ0z6lkEYr2BD4Y1LM6AIhhDMMABJjwT8ESAyjrLl1xzAQ0geFp_EAETIMxuGa3fiHIvyv3XZNNtnKjzWcg9_EmncB_niQwMIUKiM0V0oMNsKUEYrm0dTrN1FEHI3TpZPYFGn7l08MOSrB8ziKEzuTBTTIDewIz6G8d8CgNkL4TsNven986FFQZMTPHnvxN5zlcfPlsPByHfhHy7i_grLNeH9WMva7RMgA_h9A9T9OjcBdQF6GSZM9yvn7__dmeKN9oJGVbLE6wTctYMl7DAip7zRtTCt3PwQm75afsXKke_kIf9Hx8pXxFya27t_9AWpq9NV3dYUF9tm3rX7rZlXUx9V8sSqdrWSrW6VZVpKlRDp3BXtxIHKmwvS9mU27osu9emrDetanXVDcZsu64i1YjXkk5o3SYbuglxLGxKC_VVU8muKxwqcumabCnJT-g1ZV-FlEIehJScBeSUSZmzH_trSNUyJvFaOps4PSezZUf9Q_Iz_-merVQs0fUT85xyquRRyONoeVrURoeTkMfb1q-flzmGv0mzkMcrcRLyeIc-9_LfAAAA__-NVzFO">