[llvm] [AMDGPU] Track LDS DMA VGPR source reads in expert scheduling (PR #203292)

via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 11 07:58:39 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 175436 tests passed
* 3469 tests skipped
* 2 tests failed

## Failed Tests
(click on a test name to see its output)

### LLVM
<details>
<summary>LLVM.CodeGen/AMDGPU/expert_scheduling_gfx1250.mir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=gfx1250 -amdgpu-expert-scheduling-mode -run-pass=si-insert-waitcnts /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/expert_scheduling_gfx1250.mir -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/expert_scheduling_gfx1250.mir
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn -mcpu=gfx1250 -amdgpu-expert-scheduling-mode -run-pass=si-insert-waitcnts /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/expert_scheduling_gfx1250.mir -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/expert_scheduling_gfx1250.mir
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/expert_scheduling_gfx1250.mir:44:16: error: CHECK-NEXT: is not on the line after the previous match
# |  ; CHECK-NEXT: $vgpr0 = V_MOV_B32_e32 1, implicit $exec
# |                ^
# | <stdin>:268:2: note: 'next' match was here
# |  $vgpr0 = V_MOV_B32_e32 1, implicit $exec
# |  ^
# | <stdin>:266:174: note: previous match ended here
# |  GLOBAL_LOAD_ASYNC_TO_LDS_B32 $vgpr2, $vgpr0_vgpr1, 0, 0, implicit-def $asynccnt, implicit $exec, implicit $asynccnt :: (load (s32), addrspace 1), (store (s32), addrspace 3)
# |                                                                                                                                                                              ^
# | <stdin>:267:1: note: non-matching line after previous match is here
# |  S_WAITCNT_DEPCTR .VmVsrc_0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/expert_scheduling_gfx1250.mir:62:16: error: CHECK-NEXT: is not on the line after the previous match
# |  ; CHECK-NEXT: $vgpr2 = V_MOV_B32_e32 1, implicit $exec
# |                ^
# | <stdin>:382:2: note: 'next' match was here
# |  $vgpr2 = V_MOV_B32_e32 1, implicit $exec
# |  ^
# | <stdin>:380:174: note: previous match ended here
# |  GLOBAL_LOAD_ASYNC_TO_LDS_B32 $vgpr2, $vgpr0_vgpr1, 0, 0, implicit-def $asynccnt, implicit $exec, implicit $asynccnt :: (load (s32), addrspace 1), (store (s32), addrspace 3)
# |                                                                                                                                                                              ^
# | <stdin>:381:1: note: non-matching line after previous match is here
# |  S_WAITCNT_DEPCTR .VmVsrc_0
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/expert_scheduling_gfx1250.mir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |          .
# |          .
# |          .
# |        263:  liveins: $vgpr0, $vgpr1, $vgpr2 
# |        264:   
# |        265:  S_SETREG_IMM32_B32 2, 2074, implicit-def $mode, implicit $mode 
# |        266:  GLOBAL_LOAD_ASYNC_TO_LDS_B32 $vgpr2, $vgpr0_vgpr1, 0, 0, implicit-def $asynccnt, implicit $exec, implicit $asynccnt :: (load (s32), addrspace 1), (store (s32), addrspace 3) 
# |        267:  S_WAITCNT_DEPCTR .VmVsrc_0 
# |        268:  $vgpr0 = V_MOV_B32_e32 1, implicit $exec 
# | next:44      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |        269: ... 
# |        270: --- 
# |        271: name: async_global_to_lds_vdst_vsrc_war 
# |        272: alignment: 1 
# |        273: exposesReturnsTwice: false 
# |          .
# |          .
# |          .
# |        377:  liveins: $vgpr0, $vgpr1, $vgpr2 
# |        378:   
# |        379:  S_SETREG_IMM32_B32 2, 2074, implicit-def $mode, implicit $mode 
# |        380:  GLOBAL_LOAD_ASYNC_TO_LDS_B32 $vgpr2, $vgpr0_vgpr1, 0, 0, implicit-def $asynccnt, implicit $exec, implicit $asynccnt :: (load (s32), addrspace 1), (store (s32), addrspace 3) 
# |        381:  S_WAITCNT_DEPCTR .VmVsrc_0 
# |        382:  $vgpr2 = V_MOV_B32_e32 1, implicit $exec 
# | next:62      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |        383: ... 
# |        384: --- 
# |        385: name: global_load_vsrc_war 
# |        386: alignment: 1 
# |        387: exposesReturnsTwice: false 
# |          .
# |          .
# |          .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

### Flang
<details>
<summary>Flang.Semantics/OpenMP/declare-target-flags.f90</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -fintrinsic-modules-path=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/finclude/flang/x86_64-unknown-linux-gnu -fdebug-dump-symbols -fopenmp -fopenmp-version=60 /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Semantics/OpenMP/declare-target-flags.f90 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Semantics/OpenMP/declare-target-flags.f90
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -fintrinsic-modules-path=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/finclude/flang/x86_64-unknown-linux-gnu -fdebug-dump-symbols -fopenmp -fopenmp-version=60 /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Semantics/OpenMP/declare-target-flags.f90
# .---command stderr------------
# | warning: OpenMP support for version 60 in flang is still incomplete [-Wexperimental-option]
# `-----------------------------
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Semantics/OpenMP/declare-target-flags.f90
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Semantics/OpenMP/declare-target-flags.f90:32:9: error: CHECK: expected string not found in input
# | !CHECK: u, PUBLIC (InCommonBlock, OmpDeclareTarget) size=40 offset=40: ObjectEntity type: REAL(4) shape: 1_8:10_8
# |         ^
# | <stdin>:288:69: note: scanning from here
# |  h, PUBLIC (Subroutine): Subprogram () OmpDeclareTargetFlags:(enter)
# |                                                                     ^
# | <stdin>:289:2: note: possible intended match here
# |  u, PUBLIC (InCommonBlock) size=40 offset=40: ObjectEntity type: REAL(4) shape: 1_8:10_8
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Semantics/OpenMP/declare-target-flags.f90
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           283:  specialcaseflag size=1 offset=3: ObjectEntity type: INTEGER(1) 
# |           284:  which size=1 offset=0: ObjectEntity type: INTEGER(1) 
# |           285:  Module scope: m size=4 alignment=4 sourceRange=383 bytes 
# |           286:  f, PUBLIC (Subroutine): Subprogram () OmpDeclareTargetFlags:(enter) 
# |           287:  g, EXTERNAL, PUBLIC (Function, OmpDeclareTarget): Subprogram isInterface result:REAL(4) g (REAL(4) v) OmpDeclareTargetFlags:(enter) 
# |           288:  h, PUBLIC (Subroutine): Subprogram () OmpDeclareTargetFlags:(enter) 
# | check:32'0                                                                         X error: no match found
# |           289:  u, PUBLIC (InCommonBlock) size=40 offset=40: ObjectEntity type: REAL(4) shape: 1_8:10_8 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:32'1      ?                                                                                        possible intended match
# |           290:  w, PUBLIC (InCommonBlock) size=40 offset=0: ObjectEntity type: REAL(4) shape: 1_8:10_8 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           291:  x, PUBLIC (OmpDeclareTarget) size=4 offset=0: ObjectEntity type: INTEGER(4) OmpDeclareTargetFlags:(device_type(nohost) link) 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           292:  named_block size=80 offset=0: CommonBlockDetails alignment=4: w u OmpDeclareTargetFlags:(link) 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           293:  Subprogram scope: g size=44 alignment=4 sourceRange=57 bytes 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           294:  g size=4 offset=0: ObjectEntity funcResult type: REAL(4) 
# | check:32'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

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


More information about the llvm-commits mailing list