[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement validation of resource ranges for `RootDescriptors` (PR #140962)

Deric C. via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon May 26 15:44:02 PDT 2025


================
@@ -951,6 +952,108 @@ void SemaHLSL::emitLogicalOperatorFixIt(Expr *LHS, Expr *RHS,
       << NewFnName << FixItHint::CreateReplacement(FullRange, OS.str());
 }
 
+namespace {
+
+// A resource range overlaps with another resource range if they have:
+// - equivalent ResourceClass (SRV, UAV, CBuffer, Sampler)
+// - equivalent resource space
+// - overlapping visbility
+class ResourceRanges {
+public:
+  // KeyT: 32-lsb denotes resource space, and 32-msb denotes resource type enum
+  using KeyT = uint64_t;
+
+  static const unsigned NumVisEnums =
----------------
Icohedron wrote:

When to use `unsigned` as opposed to `uint32_t`? I noticed there has been inconsistency over which type is used.

https://github.com/llvm/llvm-project/pull/140962


More information about the llvm-branch-commits mailing list