[llvm] [NFC] Refactoring MCDXBC to support out of order storage of root parameters (PR #137284)
Justin Bogner via llvm-commits
llvm-commits at lists.llvm.org
Wed May 14 12:03:42 PDT 2025
================
@@ -287,22 +288,26 @@ PreservedAnalyses RootSignatureAnalysisPrinter::run(Module &M,
OS << indent(Space) << "Version: " << RS.Version << "\n";
OS << indent(Space) << "RootParametersOffset: " << RS.RootParameterOffset
<< "\n";
- OS << indent(Space) << "NumParameters: " << RS.Parameters.size() << "\n";
+ OS << indent(Space) << "NumParameters: " << RS.ParametersContainer.size()
+ << "\n";
Space++;
- for (auto const &P : RS.Parameters) {
- OS << indent(Space) << "- Parameter Type: " << P.Header.ParameterType
+ for (auto const &Info : RS.ParametersContainer) {
+ OS << indent(Space) << "- Parameter Type: " << Info.Header.ParameterType
<< "\n";
OS << indent(Space + 2)
- << "Shader Visibility: " << P.Header.ShaderVisibility << "\n";
- switch (P.Header.ParameterType) {
- case llvm::to_underlying(dxbc::RootParameterType::Constants32Bit):
+ << "Shader Visibility: " << Info.Header.ShaderVisibility << "\n";
+ std::optional<mcdxbc::ParametersView> P =
+ RS.ParametersContainer.getParameter(&Info);
+ if (!P)
+ continue;
+ if (std::holds_alternative<const dxbc::RootConstants *>(*P)) {
+ auto *Constants = std::get<const dxbc::RootConstants *>(*P);
OS << indent(Space + 2)
- << "Register Space: " << P.Constants.RegisterSpace << "\n";
+ << "Register Space: " << Constants->RegisterSpace << "\n";
OS << indent(Space + 2)
- << "Shader Register: " << P.Constants.ShaderRegister << "\n";
+ << "Shader Register: " << Constants->ShaderRegister << "\n";
OS << indent(Space + 2)
- << "Num 32 Bit Values: " << P.Constants.Num32BitValues << "\n";
- break;
+ << "Num 32 Bit Values: " << Constants->Num32BitValues << "\n";
}
----------------
bogner wrote:
Not part of this change per se, but did we forget to update the printer when we added handling of root descriptors?
https://github.com/llvm/llvm-project/pull/137284
More information about the llvm-commits
mailing list