[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 16:07:49 PDT 2025
================
@@ -287,34 +288,40 @@ 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
- << "\n";
+ for (size_t I = 0; I < RS.ParametersContainer.size(); I++) {
+ const auto &[Type, Loc] =
+ RS.ParametersContainer.getTypeAndLocForParameter(I);
+ const dxbc::RootParameterHeader Header =
+ RS.ParametersContainer.getHeader(I);
+
+ OS << indent(Space) << "- Parameter Type: " << Type << "\n";
OS << indent(Space + 2)
- << "Shader Visibility: " << P.Header.ShaderVisibility << "\n";
- switch (P.Header.ParameterType) {
- case llvm::to_underlying(dxbc::RootParameterType::Constants32Bit):
- OS << indent(Space + 2)
- << "Register Space: " << P.Constants.RegisterSpace << "\n";
+ << "Shader Visibility: " << Header.ShaderVisibility << "\n";
+
+ switch (Type) {
+ case llvm::to_underlying(dxbc::RootParameterType::Constants32Bit): {
+ auto Constants = RS.ParametersContainer.getConstant(Loc);
----------------
bogner wrote:
Better to spell the type out here (also we should make this a const ref instead of copying it):
```suggestion
const dxbc::RootConstants &Constants =
RS.ParametersContainer.getConstant(Loc);
```
https://github.com/llvm/llvm-project/pull/137284
More information about the llvm-commits
mailing list