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

    <tr>
        <th>Summary</th>
        <td>
            [DirectX] Design and Implement TableGen specification of DXIL operation attributes
        </td>
    </tr>

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

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

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

<pre>
    Design and implement a format to specify following DXIL Operations attributes as defined in [`hctdb.py`](https://github.com/microsoft/DirectXShaderCompiler/blob/main/utils/hct/hctdb.py) in their corresponding TableGen records 

- `fn_attr` - Attribute shorthand strings: rn=does not access memory,ro=only reads from memory,
- `is_deriv` - Bool indicating whether this is some kind of derivative
- `is_gradient` - Bool indicating whether this requires a gradient calculation
- `is_feedback` - Bool indicating whether this is a sampler feedback op
- `is_wave`  - Bool indicating whether this requires in-wave, cross-lane functionality
- `requires_uniform_inputs`  - Bool indicating whether this operation requires that all of its inputs are uniform across the wave
- `is_barrier`  - Bool indicating whether this is a barrier operation
- `shader_stages` - shader stages to which this applies, empty for all.
- `is_reserved` - Bool that evaluates (dxil_class == "Reserved")
- `shader_model_translated` - minimum shader model required with translation by linker
- `props` - extra properties

Implement the functionality in TableGen backend, `DXILEmitter`, to generate necessary C++ data structures and/or tables for lowering passes to consume the attribute information. 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVV-P6rgP_TThxQKVFBh44OHO9MdPV1pppd19uG_IbQz1nTTpOi5cvv0qZRhAK63mpZWS-PjYx38wJT4Goq1ZvpplNcFB2yjbukVBd8afl0kd3WVbUX4GGBxw13vqKCggHKJ0qKARUk8NHy5wiN7HM4cjVD--_wa_9ySoHEMCVBWuB6UEmMDRgQM54ADZ86poG3X1rL-YVWGWlbHrVrVPpvxm7M7Y3ZG1HepZEztjdx03ElM8qLG7ioUa_fFni47kLXY9exJjd7WPdX6KHIzdDco-GbtrG71-r77sJhPQlligiSKU-hhcZv8X1p7-TwGEmigugSkqU3y7fqdgVsUh7HNIZlXAFL7dgoPURtE2JyqpcDjmEECCKSsXKUGICtg0lBJ01EW5GPsm0ZRVDP4CQugSHCR299sHl5z2joRPV5-vMXrg4LhBzZTPLWlLAtpyAk6QYkfwzsFBPMBoh8onesY7CjqmoF-AFPp7YMnywc0KGvTN4EeFn3EPRK7G5v1rVBES5rISuNlB7J8Bz3iiDPZllhymo419g1wtaeoxEByG0GS26FkvDx5uZvshcK7qPYd-0PQVj_FW43ff2qICep8zz5q5ZDBAIfjABxxJ5dqDkeZTsDWKMMlXvI_Z-3h_p_IAl8bO2CfFI6WrHNcjuB7l7j233LRXPOx7z5Ry2qjrNXe05FBmzwyFEsmJ3IO-Y9B0Qj9gbnJj1-4X-33jMSUwZWXKCoy1f9wsrTV282-iXXTk9yoYkke9eeg4cDd0N-rjo1u-HZxZW7iZZCXqC3gO7yQP-L3E_iMB9EsFIR-QaI72obm_f863rM1TveRh8TkYcpVScDlRZlXkafe_jlVH1fKhRjhSyHoQBModj3KBN2NfjX0Fh4p5QgyNDmNPZaRdFNCMn8as-3imPEKgx5SuQjUxpKGjkdrnQAUO10HMMcxg4ral25QbnNB2_jJfztd2bV8m7bagJW1sYy2-bJblZrOwbl1vsJwjki1XywlvbWEXxbJYz5eLwr7M0BUrhwVhsSpf7Lo0i4I6ZD_z_tTNohwnnNJA2818sd5MPNbk07hIrA10hvEyy7ysJrLNNtN6OCazKDwnTXcUZfXjBvoY5mZZwcPGuSvymfzruhkbIobcZeO2uXfifdlMBvHb_9glmcTHb9pL_Enjhhip54UxhvZPAAAA__9ag20i">