Skip to content

Commit 8cae9dc

Browse files
authored
[AMDGPU] Clear load addresses between functions (#102515)
SLoadAddresses previously held data across different functions and used these for dominance queries of blocks in different functions. This is not intended; clear the state at the end of the pass.
1 parent 0a62980 commit 8cae9dc

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2611,6 +2611,7 @@ bool SIInsertWaitcnts::runOnMachineFunction(MachineFunction &MF) {
26112611
Modified = true;
26122612
}
26132613
ReleaseVGPRInsts.clear();
2614+
SLoadAddresses.clear();
26142615

26152616
return Modified;
26162617
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -run-pass si-insert-waitcnts -verify-machineinstrs %s -o - | FileCheck %s
2+
3+
---
4+
# CHECK-LABEL: name: t1
5+
# CHECK: liveins: $vgpr0
6+
name: t1
7+
tracksRegLiveness: true
8+
machineFunctionInfo:
9+
isEntryFunction: true
10+
body: |
11+
bb.0:
12+
liveins: $vgpr0
13+
...
14+
15+
---
16+
# CHECK-LABEL: name: t2
17+
# CHECK: liveins: $sgpr2_sgpr3
18+
# CHECK: $sgpr0_sgpr1 = S_LOAD_DWORDX2_IMM $sgpr2_sgpr3, 0, 0 :: (load (s64), addrspace 4)
19+
name: t2
20+
tracksRegLiveness: true
21+
machineFunctionInfo:
22+
isEntryFunction: true
23+
body: |
24+
bb.0:
25+
liveins: $sgpr2_sgpr3
26+
$sgpr0_sgpr1 = S_LOAD_DWORDX2_IMM $sgpr2_sgpr3, 0, 0 :: (load (s64), addrspace 4)
27+
...
28+
29+
---
30+
# CHECK-LABEL: name: t3
31+
# CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $sgpr0_sgpr1_sgpr2_sgpr3
32+
# CHECK: $vgpr2 = BUFFER_ATOMIC_ADD_ADDR64_RTN $vgpr2, $vgpr0_vgpr1, killed renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 1, implicit $exec :: (load store (s32), addrspace 1)
33+
name: t3
34+
tracksRegLiveness: true
35+
machineFunctionInfo:
36+
isEntryFunction: true
37+
body: |
38+
bb.0:
39+
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $sgpr0_sgpr1_sgpr2_sgpr3
40+
$vgpr2 = BUFFER_ATOMIC_ADD_ADDR64_RTN $vgpr2, $vgpr0_vgpr1, killed renamable $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 1, implicit $exec :: (load store (s32), addrspace 1)
41+
...

0 commit comments

Comments
 (0)