================
@@ -32,6 +32,9 @@ struct RangeInfo {
   llvm::dxil::ResourceClass Class;
   uint32_t Space;
   llvm::dxbc::ShaderVisibility Visibility;
+
+  // The index retains its original position before being sorted by group.
+  size_t Index;
----------------
inbelic wrote:

Okay, so I messed around with this a bit yesterday.

The problem is that when we store a `RangeInfo` into the underlying 
`IntervalMap`, 
[here](https://github.com/llvm/llvm-project/blob/7f19795d36aeca72dd8e6da56498496c00ad204b/llvm/include/llvm/Frontend/HLSL/RootSignatureValidations.h#L60).
 We need to either store the associated index with it (as a member, or, as a 
`std::pair<size_t, const RangeInfo *>`, or, we will need to let the caller 
define an external mapping of `const RangeInfo *` -> `size_t`.

So I don't think we really solve what we want to by passing it in as a 
`std::pair`.

Here is a quick prototype of having an external mapping: 
https://github.com/inbelic/llvm-project/pull/1/files.

What do you think is the right approach? I think having the index as a member 
might be the simplest interface.

https://github.com/llvm/llvm-project/pull/147115
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to