When creating handles for dynamic resources in llvm we'll represent it with a llvm.dx.handle.fromHeap intrinsic that creates a target type. There's more information in #90553 but generally this will look something like so:
; RWStructuredBuffer<float4> Buf = ResourceDescriptorHeap[2];
%buf = call target("dx.Buffer", <4 x f32>, 1, 0)
@llvm.dx.handle.fromHeap.tdx.Buffer_v4f32_1_0(
i32 2, i1 false)
This will need to be lowered to createHandleFromHeap + annotateHandle dxil operations.
Depends on:
Acceptance Criteria
- The llvm intrinsic and dxil operation are defined
- Emitting dxil will translate the llvm intrinsic to the appropriate dxil ops.