================ @@ -205,7 +205,57 @@ getRootDescriptorsBindingInfo(const mcdxbc::RootSignatureDesc &RSD, return RDs; } -static void validateRootSignatureBindings(Module &M, +static void reportIfDeniedShaderStageAccess(Module &M, dxbc::RootFlags Flags, + dxbc::RootFlags Mask) { + if ((Flags & Mask) == Mask) { + SmallString<128> Message; + raw_svector_ostream OS(Message); + OS << "Shader has root bindings but root signature uses a DENY flag to " + "disallow root binding access to the shader stage."; + M.getContext().diagnose(DiagnosticInfoGeneric(Message)); + } +} + +static void validateDeniedStagedNotInUse(Module &M, + const mcdxbc::RootSignatureDesc &RSD, + const dxil::ModuleMetadataInfo &MMI) { + dxbc::RootFlags Flags = dxbc::RootFlags(RSD.Flags); + ---------------- inbelic wrote:
Can we add a validation to `RootsignatureValidations` like `validateShaderStage(Flags, ShaderProfile)` so that it can be re-used in the frontend? https://github.com/llvm/llvm-project/pull/153287 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits