Skip to content

Commit b9e300b

Browse files
committed
Serialize reserved scratch size
1 parent 618c897 commit b9e300b

8 files changed

+19
-1
lines changed

llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -713,7 +713,8 @@ yaml::SIMachineFunctionInfo::SIMachineFunctionInfo(
713713
ArgInfo(convertArgumentInfo(MFI.getArgInfo(), TRI)),
714714
PSInputAddr(MFI.getPSInputAddr()), PSInputEnable(MFI.getPSInputEnable()),
715715
MaxMemoryClusterDWords(MFI.getMaxMemoryClusterDWords()),
716-
Mode(MFI.getMode()), HasInitWholeWave(MFI.hasInitWholeWave()) {
716+
Mode(MFI.getMode()), HasInitWholeWave(MFI.hasInitWholeWave()),
717+
ScratchReservedForDynamicVGPRs(MFI.getScratchReservedForDynamicVGPRs()) {
717718
for (Register Reg : MFI.getSGPRSpillPhysVGPRs())
718719
SpillPhysVGPRS.push_back(regToString(Reg, TRI));
719720

llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,8 @@ struct SIMachineFunctionInfo final : public yaml::MachineFunctionInfo {
299299

300300
bool HasInitWholeWave = false;
301301

302+
unsigned ScratchReservedForDynamicVGPRs = 0;
303+
302304
SIMachineFunctionInfo() = default;
303305
SIMachineFunctionInfo(const llvm::SIMachineFunctionInfo &,
304306
const TargetRegisterInfo &TRI,
@@ -350,6 +352,8 @@ template <> struct MappingTraits<SIMachineFunctionInfo> {
350352
YamlIO.mapOptional("longBranchReservedReg", MFI.LongBranchReservedReg,
351353
StringValue());
352354
YamlIO.mapOptional("hasInitWholeWave", MFI.HasInitWholeWave, false);
355+
YamlIO.mapOptional("scratchReservedForDynamicVGPRs",
356+
MFI.ScratchReservedForDynamicVGPRs, 0);
353357
}
354358
};
355359

llvm/test/CodeGen/MIR/AMDGPU/long-branch-reg-all-sgpr-used.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
; CHECK-NEXT: sgprForEXECCopy: '$sgpr100_sgpr101'
4545
; CHECK-NEXT: longBranchReservedReg: ''
4646
; CHECK-NEXT: hasInitWholeWave: false
47+
; CHECK-NEXT: scratchReservedForDynamicVGPRs: 0
4748
; CHECK-NEXT: body:
4849
define amdgpu_kernel void @long_branch_used_all_sgprs(ptr addrspace(1) %arg, i32 %cnd) #0 {
4950
entry:
@@ -311,6 +312,7 @@
311312
; CHECK-NEXT: sgprForEXECCopy: '$sgpr100_sgpr101'
312313
; CHECK-NEXT: longBranchReservedReg: ''
313314
; CHECK-NEXT: hasInitWholeWave: false
315+
; CHECK-NEXT: scratchReservedForDynamicVGPRs: 0
314316
; CHECK-NEXT: body:
315317
define amdgpu_kernel void @long_branch_high_num_sgprs_used(ptr addrspace(1) %arg, i32 %cnd) #0 {
316318
entry:

llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-after-pei.ll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
; AFTER-PEI-NEXT: sgprForEXECCopy: ''
4545
; AFTER-PEI-NEXT: longBranchReservedReg: ''
4646
; AFTER-PEI-NEXT: hasInitWholeWave: false
47+
; AFTER-PEI-NEXT: scratchReservedForDynamicVGPRs: 0
4748
; AFTER-PEI-NEXT: body:
4849
define amdgpu_kernel void @scavenge_fi(ptr addrspace(1) %out, i32 %in) #0 {
4950
%wide.sgpr0 = call <32 x i32> asm sideeffect "; def $0", "=s" () #0

llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-long-branch-reg-debug.ll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
; CHECK-NEXT: sgprForEXECCopy: '$sgpr100_sgpr101'
4545
; CHECK-NEXT: longBranchReservedReg: '$sgpr2_sgpr3'
4646
; CHECK-NEXT: hasInitWholeWave: false
47+
; CHECK-NEXT: scratchReservedForDynamicVGPRs: 0
4748
; CHECK-NEXT: body:
4849
define amdgpu_kernel void @uniform_long_forward_branch_debug(ptr addrspace(1) %arg, i32 %arg1) #0 !dbg !5 {
4950
bb0:

llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-long-branch-reg.ll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
; CHECK-NEXT: sgprForEXECCopy: '$sgpr100_sgpr101'
4545
; CHECK-NEXT: longBranchReservedReg: '$sgpr2_sgpr3'
4646
; CHECK-NEXT: hasInitWholeWave: false
47+
; CHECK-NEXT: scratchReservedForDynamicVGPRs: 0
4748
; CHECK-NEXT: body:
4849
define amdgpu_kernel void @uniform_long_forward_branch(ptr addrspace(1) %arg, i32 %arg1) #0 {
4950
bb0:

llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-no-ir.mir

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
# FULL-NEXT: sgprForEXECCopy: ''
5454
# FULL-NEXT: longBranchReservedReg: ''
5555
# FULL-NEXT: hasInitWholeWave: false
56+
# FULL-NEXT: scratchReservedForDynamicVGPRs: 0
5657
# FULL-NEXT: body:
5758

5859
# SIMPLE: machineFunctionInfo:
@@ -158,6 +159,7 @@ body: |
158159
# FULL-NEXT: sgprForEXECCopy: ''
159160
# FULL-NEXT: longBranchReservedReg: ''
160161
# FULL-NEXT: hasInitWholeWave: false
162+
# FULL-NEXT: scratchReservedForDynamicVGPRs: 0
161163
# FULL-NEXT: body:
162164

163165
# SIMPLE: machineFunctionInfo:
@@ -234,6 +236,7 @@ body: |
234236
# FULL-NEXT: sgprForEXECCopy: ''
235237
# FULL-NEXT: longBranchReservedReg: ''
236238
# FULL-NEXT: hasInitWholeWave: false
239+
# FULL-NEXT: scratchReservedForDynamicVGPRs: 0
237240
# FULL-NEXT: body:
238241

239242
# SIMPLE: machineFunctionInfo:
@@ -311,6 +314,7 @@ body: |
311314
# FULL-NEXT: sgprForEXECCopy: ''
312315
# FULL-NEXT: longBranchReservedReg: ''
313316
# FULL-NEXT: hasInitWholeWave: false
317+
# FULL-NEXT: scratchReservedForDynamicVGPRs: 0
314318
# FULL-NEXT: body:
315319

316320
# SIMPLE: machineFunctionInfo:

llvm/test/CodeGen/MIR/AMDGPU/machine-function-info.ll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
; CHECK-NEXT: sgprForEXECCopy: '$sgpr100_sgpr101'
5555
; CHECK-NEXT: longBranchReservedReg: ''
5656
; CHECK-NEXT: hasInitWholeWave: false
57+
; CHECK-NEXT: scratchReservedForDynamicVGPRs: 0
5758
; CHECK-NEXT: body:
5859
define amdgpu_kernel void @kernel(i32 %arg0, i64 %arg1, <16 x i32> %arg2) {
5960
%gep = getelementptr inbounds [512 x float], ptr addrspace(3) @lds, i32 0, i32 %arg0
@@ -101,6 +102,7 @@ define amdgpu_kernel void @kernel(i32 %arg0, i64 %arg1, <16 x i32> %arg2) {
101102
; CHECK-NEXT: sgprForEXECCopy: '$sgpr100_sgpr101'
102103
; CHECK-NEXT: longBranchReservedReg: ''
103104
; CHECK-NEXT: hasInitWholeWave: false
105+
; CHECK-NEXT: scratchReservedForDynamicVGPRs: 0
104106
; CHECK-NEXT: body:
105107
define amdgpu_ps void @ps_shader(i32 %arg0, i32 inreg %arg1) {
106108
%gep = getelementptr inbounds [128 x i32], ptr addrspace(2) @gds, i32 0, i32 %arg0
@@ -172,6 +174,7 @@ define amdgpu_ps void @gds_size_shader(i32 %arg0, i32 inreg %arg1) #5 {
172174
; CHECK-NEXT: sgprForEXECCopy: '$sgpr100_sgpr101'
173175
; CHECK-NEXT: longBranchReservedReg: ''
174176
; CHECK-NEXT: hasInitWholeWave: false
177+
; CHECK-NEXT: scratchReservedForDynamicVGPRs: 0
175178
; CHECK-NEXT: body:
176179
define void @function() {
177180
ret void
@@ -225,6 +228,7 @@ define void @function() {
225228
; CHECK-NEXT: sgprForEXECCopy: '$sgpr100_sgpr101'
226229
; CHECK-NEXT: longBranchReservedReg: ''
227230
; CHECK-NEXT: hasInitWholeWave: false
231+
; CHECK-NEXT: scratchReservedForDynamicVGPRs: 0
228232
; CHECK-NEXT: body:
229233
define void @function_nsz() #0 {
230234
ret void

0 commit comments

Comments
 (0)