================
@@ -316,6 +316,32 @@ findOverlappingRanges(llvm::SmallVector<RangeInfo> &Infos)
{
return Overlaps;
}
+llvm::SmallVector<RangeInfo>
+findUnboundRanges(const llvm::SmallVectorImpl<RangeInfo> &Ranges,
+ const llvm::ArrayRef<RangeInfo> &Bindings) {
+ llvm::SmallVector<RangeInfo> Unbounds;
+ for (const auto &Range : Ranges) {
+ bool Bound = false;
+ // hlsl::rootsig::RangeInfo Range;
+ // Range.Space = ResBinding.Space;
+ // Range.LowerBound = ResBinding.LowerBound;
+ // Range.UpperBound = Range.LowerBound + ResBinding.Size - 1;
+
+ for (const auto &Binding : Bindings) {
+ if (Range.Space == Binding.Space &&
+ Range.LowerBound >= Binding.LowerBound &&
+ Range.UpperBound <= Binding.UpperBound) {
----------------
inbelic wrote:
I will forward [this
comment](https://github.com/llvm/llvm-project/pull/146785#discussion_r2211828192),
just so it doesn't get lost:
> Ah yep, sorry.
>
> I guess my original question was about something like:
>
> ```
> struct FooData { float data };
> ConstantBuffer<FooData> Foo[4] : register(b0);
>
> [RootSignature(DescriptorTable(CBV(b0, numDescriptors =2), CBV(b2,
> numDescriptors = 2))]
> ```
>
> Are all registers successfully bound? IIUC, the current logic wouldn't get
> something like that
https://github.com/llvm/llvm-project/pull/146785
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits