[llvm] [AMDGPU] Fix a crash by skipping DBG instrs at start of sched region (PR #131167)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 13 18:06:07 PDT 2025


================
@@ -0,0 +1,30 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
+# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -verify-machineinstrs -run-pass=machine-scheduler -o - %s | FileCheck %s
+
+# Verify we maintain live-ins even if the first instruction in sched region is
+# DBG_.
+
+---
+name:            sched
+tracksRegLiveness: true
+registers:
+- { id: 1, class: sgpr_32, preferred-register: '', flags: [  ] }
+- { id: 2, class: sgpr_32, preferred-register: '', flags: [  ] }
+body:             |
+  bb.0.entry:
+    ; CHECK-LABEL: name: sched
+    ; CHECK: [[DEF:%[0-9]+]]:sgpr_32 = IMPLICIT_DEF
+    ; CHECK-NEXT: S_NOP 0
+    ; CHECK-NEXT: SCHED_BARRIER 0
+    ; CHECK-NEXT: DBG_VALUE
+    ; CHECK-NEXT: dead [[COPY:%[0-9]+]]:sgpr_32 = COPY [[DEF]]
+    ; CHECK-NEXT: S_NOP 0
+    ; CHECK-NEXT: S_ENDPGM 0
+    %1:sgpr_32 = IMPLICIT_DEF
+    S_NOP 0
+    SCHED_BARRIER 0
+    DBG_VALUE
+    dead %2:sgpr_32 = COPY %1
+    S_NOP 0
----------------
arsenm wrote:

```suggestion
    %0:sgpr_32 = IMPLICIT_DEF
    S_NOP 0
    SCHED_BARRIER 0
    DBG_VALUE
    dead %1:sgpr_32 = COPY %0
    S_NOP 0
```

https://github.com/llvm/llvm-project/pull/131167


More information about the llvm-commits mailing list