Skip to content

Commit 8979ab7

Browse files
author
joaosaffran
committed
adding support on analysis printer
1 parent bb1a61f commit 8979ab7

File tree

2 files changed

+43
-6
lines changed

2 files changed

+43
-6
lines changed

llvm/lib/Target/DirectX/DXILRootSignature.cpp

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -558,14 +558,12 @@ PreservedAnalyses RootSignatureAnalysisPrinter::run(Module &M,
558558
OS << "Definition for '" << F.getName() << "':\n";
559559

560560
// start root signature header
561-
Space++;
562561
OS << indent(Space) << "Flags: " << format_hex(RS.Flags, 8) << "\n";
563562
OS << indent(Space) << "Version: " << RS.Version << "\n";
564563
OS << indent(Space) << "RootParametersOffset: " << RS.RootParameterOffset
565564
<< "\n";
566565
OS << indent(Space) << "NumParameters: " << RS.ParametersContainer.size()
567566
<< "\n";
568-
Space++;
569567
for (size_t I = 0; I < RS.ParametersContainer.size(); I++) {
570568
const auto &[Type, Loc] =
571569
RS.ParametersContainer.getTypeAndLocForParameter(I);
@@ -588,7 +586,7 @@ PreservedAnalyses RootSignatureAnalysisPrinter::run(Module &M,
588586
<< "Num 32 Bit Values: " << Constants.Num32BitValues << "\n";
589587
break;
590588
}
591-
case llvm::to_underlying(dxbc::RootParameterType::CBV):
589+
case llvm::to_underlying(dxbc::RootParameterType::CBV):
592590
case llvm::to_underlying(dxbc::RootParameterType::UAV):
593591
case llvm::to_underlying(dxbc::RootParameterType::SRV): {
594592
const dxbc::RTS0::v2::RootDescriptor &Descriptor =
@@ -601,8 +599,29 @@ PreservedAnalyses RootSignatureAnalysisPrinter::run(Module &M,
601599
OS << indent(Space + 2) << "Flags: " << Descriptor.Flags << "\n";
602600
break;
603601
}
602+
case llvm::to_underlying(dxbc::RootParameterType::DescriptorTable): {
603+
const mcdxbc::DescriptorTable &Table =
604+
RS.ParametersContainer.getDescriptorTable(Loc);
605+
OS << indent(Space+ 2) << "NumRanges: " << Table.Ranges.size() << "\n";
606+
607+
for(const dxbc::RTS0::v2::DescriptorRange Range : Table){
608+
OS << indent(Space + 2) << "- Range Type: " << Range.RangeType
609+
<< "\n";
610+
OS << indent(Space + 4) << "Register Space: " << Range.RegisterSpace
611+
<< "\n";
612+
OS << indent(Space + 4) << "Base Shader Register: " << Range.BaseShaderRegister
613+
<< "\n";
614+
OS << indent(Space + 4) << "Num Descriptors: " << Range.NumDescriptors
615+
<< "\n";
616+
OS << indent(Space + 4) << "Offset In Descriptors From Table Start: " << Range.OffsetInDescriptorsFromTableStart
617+
<< "\n";
618+
if(RS.Version > 1)
619+
OS << indent(Space + 4) << "Flags: " << Range.Flags
620+
<< "\n";
621+
}
622+
break;
623+
}
604624
}
605-
Space--;
606625
}
607626
OS << indent(Space) << "NumStaticSamplers: " << 0 << "\n";
608627
OS << indent(Space) << "StaticSamplersOffset: " << RS.StaticSamplersOffset

llvm/test/CodeGen/DirectX/ContainerData/RootSignature-Parameters.ll

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,19 @@ attributes #0 = { "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }
1212

1313
!dx.rootsignatures = !{!2} ; list of function/root signature pairs
1414
!2 = !{ ptr @main, !3 } ; function, root signature
15-
!3 = !{ !4, !5, !6 } ; list of root signature elements
15+
!3 = !{ !4, !5, !6, !7 } ; list of root signature elements
1616
!4 = !{ !"RootFlags", i32 1 } ; 1 = allow_input_assembler_input_layout
1717
!5 = !{ !"RootConstants", i32 0, i32 1, i32 2, i32 3 }
1818
!6 = !{ !"RootSRV", i32 1, i32 4, i32 5, i32 6 }
19+
!7 = !{ !"DescriptorTable", i32 0, !8, !9 }
20+
!8 = !{ !"SRV", i32 0, i32 0, i32 -1, i32 -1, i32 4 }
21+
!9 = !{ !"UAV", i32 5, i32 1, i32 10, i32 5, i32 2 }
1922

2023
;CHECK-LABEL: Definition for 'main':
2124
;CHECK-NEXT: Flags: 0x000001
2225
;CHECK-NEXT: Version: 2
2326
;CHECK-NEXT: RootParametersOffset: 24
24-
;CHECK-NEXT: NumParameters: 2
27+
;CHECK-NEXT: NumParameters: 3
2528
;CHECK-NEXT: - Parameter Type: 1
2629
;CHECK-NEXT: Shader Visibility: 0
2730
;CHECK-NEXT: Register Space: 2
@@ -32,5 +35,20 @@ attributes #0 = { "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }
3235
;CHECK-NEXT: Register Space: 5
3336
;CHECK-NEXT: Shader Register: 4
3437
;CHECK-NEXT: Flags: 6
38+
;CHECK-NEXT: - Parameter Type: 0
39+
;CHECK-NEXT: Shader Visibility: 0
40+
;CHECK-NEXT: NumRanges: 2
41+
;CHECK-NEXT: - Range Type: 0
42+
;CHECK-NEXT: Register Space: 4294967295
43+
;CHECK-NEXT: Base Shader Register: 0
44+
;CHECK-NEXT: Num Descriptors: 0
45+
;CHECK-NEXT: Offset In Descriptors From Table Start: 4294967295
46+
;CHECK-NEXT: Flags: 4
47+
;CHECK-NEXT: - Range Type: 1
48+
;CHECK-NEXT: Register Space: 10
49+
;CHECK-NEXT: Base Shader Register: 1
50+
;CHECK-NEXT: Num Descriptors: 5
51+
;CHECK-NEXT: Offset In Descriptors From Table Start: 5
52+
;CHECK-NEXT: Flags: 2
3553
;CHECK-NEXT: NumStaticSamplers: 0
3654
;CHECK-NEXT: StaticSamplersOffset: 0

0 commit comments

Comments
 (0)