Skip to content

Commit 3eddb99

Browse files
authored
[AMDGPU] Fix a crash by skipping DBG instrs at start of sched region (#131167)
Fixes SWDEV-514946
1 parent 72c3c30 commit 3eddb99

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -873,6 +873,8 @@ void GCNScheduleDAGMILive::computeBlockPressure(unsigned RegionIdx,
873873
Pressure[CurRegion] = RPTracker.moveMaxPressure();
874874
if (CurRegion-- == RegionIdx)
875875
break;
876+
auto &Rgn = Regions[CurRegion];
877+
NonDbgMI = &*skipDebugInstructionsForward(Rgn.first, Rgn.second);
876878
}
877879
RPTracker.advanceToNext();
878880
RPTracker.advanceBeforeNext();
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
2+
# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -verify-misched -run-pass=machine-scheduler -o - %s | FileCheck %s
3+
4+
# Verify we maintain live-ins even if the first instruction in sched region is
5+
# DBG_.
6+
7+
---
8+
name: sched
9+
tracksRegLiveness: true
10+
body: |
11+
bb.0:
12+
; CHECK-LABEL: name: sched
13+
; CHECK: [[DEF:%[0-9]+]]:sgpr_32 = IMPLICIT_DEF
14+
; CHECK-NEXT: S_NOP 0
15+
; CHECK-NEXT: SCHED_BARRIER 0
16+
; CHECK-NEXT: DBG_VALUE
17+
; CHECK-NEXT: dead [[COPY:%[0-9]+]]:sgpr_32 = COPY [[DEF]]
18+
; CHECK-NEXT: S_NOP 0
19+
; CHECK-NEXT: S_ENDPGM 0
20+
%0:sgpr_32 = IMPLICIT_DEF
21+
S_NOP 0
22+
SCHED_BARRIER 0
23+
DBG_VALUE
24+
dead %1:sgpr_32 = COPY %0
25+
S_NOP 0
26+
S_ENDPGM 0
27+
...

0 commit comments

Comments
 (0)