[llvm] [AMDGPU] Recover direct callees from called globals (PR #192199)

via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 15 05:13:50 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

* 133611 tests passed
* 3100 tests skipped
* 1 test failed

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

### LLVM
<details>
<summary>LLVM.CodeGen/AMDGPU/resource-usage-called-global.mir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -start-after=prologepilog C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\resource-usage-called-global.mir -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\resource-usage-called-global.mir
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -start-after=prologepilog 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\resource-usage-called-global.mir' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\resource-usage-called-global.mir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\resource-usage-called-global.mir:128:11: error: CHECK: expected string not found in input
# |  ; CHECK: .set callee.num_vgpr, 1
# |           ^
# | <stdin>:7:8: note: scanning from here
# | callee: ; @callee
# |        ^
# | <stdin>:16:2: note: possible intended match here
# |  .set .Lcallee.num_vgpr, 1
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\resource-usage-called-global.mir:263:11: error: CHECK: expected string not found in input
# |  ; CHECK: .set caller.num_vgpr, max(41, callee.num_vgpr)
# |           ^
# | <stdin>:37:8: note: scanning from here
# | caller: ; @caller
# |        ^
# | <stdin>:68:7: note: possible intended match here
# |  .set .Lcaller.num_vgpr, max(41, .Lcallee.num_vgpr)
# |       ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\resource-usage-called-global.mir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              1:  .amdgcn_target "amdgcn-amd-amdhsa--gfx900" 
# |              2:  .amdhsa_code_object_version 6 
# |              3:  .text 
# |              4:  .globl callee ; -- Begin function callee 
# |              5:  .p2align 6 
# |              6:  .type callee, at function 
# |              7: callee: ; @callee 
# | check:128'0            X~~~~~~~~~~ error: no match found
# |              8: ; %bb.0: ; %entry 
# | check:128'0     ~~~~~~~~~~~~~~~~~~
# |              9:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | check:128'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             10:  ;;#ASMSTART 
# | check:128'0     ~~~~~~~~~~~~~
# |             11:  ;;#ASMEND 
# | check:128'0     ~~~~~~~~~~~
# |             12:  s_setpc_b64 s[30:31] 
# | check:128'0     ~~~~~~~~~~~~~~~~~~~~~~
# |             13: .Lfunc_end0: 
# | check:128'0     ~~~~~~~~~~~~~
# |             14:  .size callee, .Lfunc_end0-callee 
# | check:128'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             15:  ; -- End function 
# | check:128'0     ~~~~~~~~~~~~~~~~~~~
# |             16:  .set .Lcallee.num_vgpr, 1 
# | check:128'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:128'1      ?                          possible intended match
# |             17:  .set .Lcallee.num_agpr, 0 
# | check:128'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             18:  .set .Lcallee.numbered_sgpr, 32 
# | check:128'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             19:  .set .Lcallee.num_named_barrier, 0 
# | check:128'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             20:  .set .Lcallee.private_seg_size, 0 
# | check:128'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             21:  .set .Lcallee.uses_vcc, 0 
# | check:128'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |             32: ; MemoryBound: 0 
# | check:128'0     ~~~~~~~~~~~~~~~~~
# |             33:  .text 
# | check:128'0     ~~~~~~~
# |             34:  .globl caller ; -- Begin function caller 
# | check:128'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             35:  .p2align 6 
# | check:128'0     ~~~~~~~~~~~~
# |             36:  .type caller, at function 
# | check:128'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# |             37: caller: ; @caller 
# | check:128'0     ~~~~~~~
# | check:263'0            X~~~~~~~~~~ error: no match found
# |             38: ; %bb.0: ; %entry 
# | check:263'0     ~~~~~~~~~~~~~~~~~~
# |             39:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# | check:263'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             40:  s_mov_b32 s16, s33 
# | check:263'0     ~~~~~~~~~~~~~~~~~~~~
# |             41:  s_mov_b32 s33, s32 
# | check:263'0     ~~~~~~~~~~~~~~~~~~~~
# |             42:  s_or_saveexec_b64 s[18:19], -1 
# | check:263'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |             63:  s_waitcnt vmcnt(0) 
# | check:263'0     ~~~~~~~~~~~~~~~~~~~~
# |             64:  s_setpc_b64 s[30:31] 
# | check:263'0     ~~~~~~~~~~~~~~~~~~~~~~
# |             65: .Lfunc_end1: 
# | check:263'0     ~~~~~~~~~~~~~
# |             66:  .size caller, .Lfunc_end1-caller 
# | check:263'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             67:  ; -- End function 
# | check:263'0     ~~~~~~~~~~~~~~~~~~~
# |             68:  .set .Lcaller.num_vgpr, max(41, .Lcallee.num_vgpr) 
# | check:263'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:263'1           ?                                              possible intended match
# |             69:  .set .Lcaller.num_agpr, max(0, .Lcallee.num_agpr) 
# | check:263'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             70:  .set .Lcaller.numbered_sgpr, max(34, .Lcallee.numbered_sgpr) 
# | check:263'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             71:  .set .Lcaller.num_named_barrier, max(0, .Lcallee.num_named_barrier) 
# | check:263'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             72:  .set .Lcaller.private_seg_size, 16+max(.Lcallee.private_seg_size) 
# | check:263'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             73:  .set .Lcaller.uses_vcc, or(0, .Lcallee.uses_vcc) 
# | check:263'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/192199


More information about the llvm-commits mailing list