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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] Explicit resource binding
        </td>
    </tr>

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

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

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

<pre>
    This is a task to implement explicit resource binding. Some work has already been done, but according to @bogner there are some still some loose ends.

For example, I tried this code and it maps `t3` register to `u3` space:

https://godbolt.org/z/Go3W5qrEq

```
RWBuffer<int> In : register(u0);
RWBuffer<int> Out : register(u1);
RWBuffer<float4> foo : register(t3);

[numthreads(8,1,1)]
void main(uint GI : SV_GroupIndex) {
  Out[GI] = In[GI] * In[GI];
}
```
produces
```
; Resource Bindings:
;
; Name Type  Format         Dim      ID      HLSL Bind  Count
; ------------------------------ ---------- ------- ----------- ------- -------------- ------
; UAV     i32         buf      U0             u0     1
; UAV     i32         buf      U1             u1 1
;                                       UAV     f32         buf      U2 u3     1
```
 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVN9vozgQ_muGl1EjsEMgDzwkTclFWt1J2_3xeDIwBF_BZv2j295ffzKkTbqbnjpK7Bmb75tPzDDCWnlURAWkW0h3kfCu06bo6EE7EVW6eS6-dNKitCjQCfuATqMcxp4GUg7paexlLR0astqbmrCSqpHquMB7PRD-1OYBO2FR9IZE84wVkcJGKwJ2i5V3KOpam4AIxLCMK31UZNB1ZAiFIbSBxzrZ97Pba20JSTV2AfEO4s28ltogPYmgLFAf0BlJDbogvtYNoVANSoeDGC3CKnYcVjEaOkrrQj4dDv10aEdRE_DNJX3n3GjDGSuBlUfdVLp3C22OwMp_gZV7zb-nP8zdj0sQrOLTbwo_f9_6tiUD_FYqB_wODwqBb15VAMt9DGwNfPse4i_vfoMk70DaXgu3DKhW619Rjl-iTmu6VX5wXSiVBZbnwG6T-b-GdDc_9Khlg4OQKqSWyuH-MHHff_t7b7QfD6qhJ2BrhOxEjkE1pNv9AdIdAt_hQZ1DtrkIz4Ky3dV3OBrd-Jrs1UvgW_z80ojbuRHtuZCv3HyLf4qB8MvzSIilNoNw-GI7OczOYTfvf3y6_zSxId5qr9yZ5OZ_DX938co1XkWdk3zdfJtkSM5eNVa-nZ2vMV6an8Pko-jkLTq5RH7MXvjbq_wMPX-j6G29MGoK3qz5WkRUJBnjacZYzqKuaPMmy1fNKosprZp41baMV0mVJ7xOeFVRJAsWs2WcJzzJ4-UyWWRJxnndVjkTPKE8g2VMg5D9ou8fh_ChRtJaT0USc56vo15U1Ntp6jGm6CdOt8BYGIKmCKCbyh8tLONeWmfPNE66fhqXoS9CB9-9NwMjb_ril8EhXeerRa0HYGWgPG03o9H_UO2AlZMQC6w8KX0s2H8BAAD__w1Vi7Q">