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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR] SPIRV should not implement its own interface generation logic
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir:spirv
      </td>
    </tr>

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

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

<pre>
    SPIRV currently reimplements interface generation (for e.g. [availability](https://github.com/llvm/llvm-project/blob/d34fbf2d9bf4d372d25087d2ded9573b17ce7632/mlir/tools/mlir-tblgen/SPIRVUtilsGen.cpp#L223 )). This is really clunky and makes it hard to change the generation of "normal" interfaces because we effectively have to maintain two code paths. The SPIRV logic should be removed, and likely generate an intermediate .td file that contains an ODS definition of the interface.


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUks1upDgQx5_GXEpBdAENHDgk22IVKatdJTtzN3YZamLslm066rcfQTqJRprLXEAlWVX_j5-MkSdH1Iv6QSBKl1hOkl1MAlHUp0yuafahf-YLhaZostHra__y3-Pzd1BrCOSSvUIgXs6WFnIpArtEwUhFMJGjIBN7BwJb4wNQPuUg6gd5kWzlyJbTVdQnge2c0jmK8l7gIHCYOM3rmCu_CBysvXz87s7B_yCVBA6j9aPAQZeVGQ3qbjSVLhvUWBdto1GT7uqmHA-NouZYosBhsRwEDsl7G2_jXRrtRE7gsFv6ltjGv8nl6nwWWD4hliCwE9jl8P_METhCIGntFZRd3esVpNOwyFeKwAlmGTQkD2qWbiJI8y8ReAMC0fmwSCsQv3KKMJKSayR4IyBjSCW-kL3CLC-07VskuyTZQXrzoLwmOMs0x00TwXsX1k-sIM5-tRpGgkCLv5AW-Ncu0fLrtvCmhkC69_MLad7mPGkwbDfNMoHy-7m4Pfv39AKaDDv-MLHZ-tSei-Ikivv3b6b7UndlJzPqD8emrOtjURXZ3B9MqYq2MrquGsRRaYW60Uekse0OZWsy7rHAsjgcEIuqqIq8laZF7I6Guq5qZC2qghbJNt8oyH2YMo5xpb7uuqbOrBzJxhvDe83lfTxzuNwgDv0Oz7hOUVSF5Zji16LEye78__P0-Czq0y3RW5bOJ_iEGzhF8G_u94zvHWRrsP0fw7yb2aDc_fwMAAD__8MFMF0">