Skip to content

Commit 784230b

Browse files
authored
[AMDGPU] Tidy SIPreAllocateWWMRegs after recent changes (NFCI) (#111967)
- V_SET_INACTIVE is always in WWM/WQM so can be treated like any other operation in WWM/WQM. - After encountering SI_SPILL_S32_TO_VGPR loop should bypass to avoid double processing its defs.
1 parent ee64684 commit 784230b

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -215,13 +215,10 @@ bool SIPreAllocateWWMRegs::runOnMachineFunction(MachineFunction &MF) {
215215
for (MachineBasicBlock *MBB : RPOT) {
216216
bool InWWM = false;
217217
for (MachineInstr &MI : *MBB) {
218-
if (MI.getOpcode() == AMDGPU::V_SET_INACTIVE_B32)
219-
RegsAssigned |= processDef(MI.getOperand(0));
220-
221218
if (MI.getOpcode() == AMDGPU::SI_SPILL_S32_TO_VGPR) {
222-
if (!PreallocateSGPRSpillVGPRs)
223-
continue;
224-
RegsAssigned |= processDef(MI.getOperand(0));
219+
if (PreallocateSGPRSpillVGPRs)
220+
RegsAssigned |= processDef(MI.getOperand(0));
221+
continue;
225222
}
226223

227224
if (MI.getOpcode() == AMDGPU::ENTER_STRICT_WWM ||

llvm/test/CodeGen/AMDGPU/sgpr-spill-overlap-wwm-reserve.mir

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,9 @@ body: |
111111
; GCN-NEXT: $sgpr22 = IMPLICIT_DEF
112112
; GCN-NEXT: $vgpr5 = IMPLICIT_DEF
113113
; GCN-NEXT: $vgpr5 = SI_SPILL_S32_TO_VGPR $sgpr22, 0, killed $vgpr5
114+
; GCN-NEXT: $sgpr0 = ENTER_STRICT_WWM -1, implicit-def $exec, implicit-def $scc, implicit $exec
114115
; GCN-NEXT: dead $vgpr1 = V_SET_INACTIVE_B32 0, $vgpr0, 0, 0, $sgpr_null, implicit $exec, implicit-def $scc
116+
; GCN-NEXT: $exec_lo = EXIT_STRICT_WWM $sgpr0
115117
; GCN-NEXT: {{ $}}
116118
; GCN-NEXT: bb.1:
117119
; GCN-NEXT: successors: %bb.2(0x80000000)
@@ -211,7 +213,9 @@ body: |
211213
212214
$sgpr22 = IMPLICIT_DEF
213215
SI_SPILL_S32_SAVE $sgpr22, %stack.0, implicit $exec, implicit $sgpr32 :: (store (s32) into %stack.0, addrspace 5)
216+
$sgpr0 = ENTER_STRICT_WWM -1, implicit-def $exec, implicit-def $scc, implicit $exec
214217
%0:vgpr_32 = V_SET_INACTIVE_B32 0, $vgpr0, 0, 0, $sgpr_null, implicit $exec, implicit-def $scc
218+
$exec_lo = EXIT_STRICT_WWM $sgpr0
215219
216220
bb.1:
217221
KILL implicit-def $vcc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15_sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31, implicit-def $sgpr32_sgpr33_sgpr34_sgpr35_sgpr36_sgpr37_sgpr38_sgpr39_sgpr40_sgpr41_sgpr42_sgpr43_sgpr44_sgpr45_sgpr46_sgpr47_sgpr48_sgpr49_sgpr50_sgpr51_sgpr52_sgpr53_sgpr54_sgpr55_sgpr56_sgpr57_sgpr58_sgpr59_sgpr60_sgpr61_sgpr62_sgpr63, implicit-def $sgpr64_sgpr65_sgpr66_sgpr67_sgpr68_sgpr69_sgpr70_sgpr71_sgpr72_sgpr73_sgpr74_sgpr75_sgpr76_sgpr77_sgpr78_sgpr79_sgpr80_sgpr81_sgpr82_sgpr83_sgpr84_sgpr85_sgpr86_sgpr87_sgpr88_sgpr89_sgpr90_sgpr91_sgpr92_sgpr93_sgpr94_sgpr95, implicit-def $sgpr96_sgpr97_sgpr98_sgpr99_sgpr100_sgpr101_sgpr102_sgpr103

0 commit comments

Comments
 (0)