[llvm] [Attributor] Check callback broker argument aliases correctly (PR #218672)

via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 25 06:57:09 PDT 2026


github-actions[bot] wrote:

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

* 140345 tests passed
* 3707 tests skipped
* 1 test failed

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

### LLVM
<details>
<summary>LLVM.Transforms/OpenMP/parallel_deletion.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -passes='attributor,cgscc(openmp-opt-cgscc)'  < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\OpenMP\parallel_deletion.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\OpenMP\parallel_deletion.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S '-passes=attributor,cgscc(openmp-opt-cgscc)'
# 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\Transforms\OpenMP\parallel_deletion.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\OpenMP\parallel_deletion.ll:287:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr noundef nonnull align 8 dereferenceable(24) @[[GLOB0]], i32 noundef 1, ptr noundef nonnull @.omp_outlined..3, ptr nofree noundef nonnull align 4 captures(none) dereferenceable(4) [[A]])
# |               ^
# | <stdin>:84:30: note: scanning from here
# |  store i32 0, ptr %a, align 4
# |                              ^
# | <stdin>:84:30: note: with "GLOB0" equal to "0"
# |  store i32 0, ptr %a, align 4
# |                              ^
# | <stdin>:84:30: note: with "A" equal to "%a"
# |  store i32 0, ptr %a, align 4
# |                              ^
# | <stdin>:85:2: note: possible intended match here
# |  call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr noundef nonnull align 8 dereferenceable(24) @0, i32 noundef 1, ptr noundef nonnull @.omp_outlined..3, ptr noalias nofree noundef nonnull align 4 captures(none) dereferenceable(4) %a)
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\OpenMP\parallel_deletion.ll:330:15: error: CHECK-SAME: expected string not found in input
# | ; CHECK-SAME: (ptr noalias nofree readnone captures(none) [[DOTGLOBAL_TID_:%.*]], ptr noalias nofree readnone captures(none) [[DOTBOUND_TID_:%.*]], ptr nofree noundef nonnull align 4 captures(none) dereferenceable(4) [[A:%.*]]) #[[ATTR6:[0-9]+]] {
# |               ^
# | <stdin>:94:39: note: scanning from here
# | define internal void @.omp_outlined..3(ptr noalias nofree readnone captures(none) %.global_tid., ptr noalias nofree readnone captures(none) %.bound_tid., ptr noalias nofree noundef nonnull align 4 captures(none) dereferenceable(4) %a) #6 {
# |                                       ^
# | <stdin>:94:39: note: pattern attempts to capture variables: "A", "ATTR6", "DOTBOUND_TID_", "DOTGLOBAL_TID_"
# | define internal void @.omp_outlined..3(ptr noalias nofree readnone captures(none) %.global_tid., ptr noalias nofree readnone captures(none) %.bound_tid., ptr noalias nofree noundef nonnull align 4 captures(none) dereferenceable(4) %a) #6 {
# |                                       ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\OpenMP\parallel_deletion.ll:460:117: error: undefined variable: ATTR19
# | ; CHECK-NEXT: [[OMP_GLOBAL_THREAD_NUM:%.*]] = call i32 @__kmpc_global_thread_num(ptr noundef nonnull @[[GLOB0]]) #[[ATTR19]]
# |                                                                                                                     ^
# | <stdin>:141:7: note: with "GLOB0" equal to "0"
# | entry:
# |       ^
# | <stdin>:141:7: note: pattern attempts to capture variables: "OMP_GLOBAL_THREAD_NUM"
# | entry:
# |       ^
# | <stdin>:142:18: note: possible intended match here
# |  %omp_global_thread_num = call i32 @__kmpc_global_thread_num(ptr noundef nonnull @0) #19
# |                  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\OpenMP\parallel_deletion.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            79:  
# |            80: define void @delete_parallel_2() { 
# |            81: entry: 
# |            82:  %a = alloca i32, align 4 
# |            83:  call void @llvm.lifetime.start.p0(ptr noundef nonnull align 4 dereferenceable(4) %a) #18 
# |            84:  store i32 0, ptr %a, align 4 
# | next:287'0                                 {   search range start (exclusive)
# | next:287'1                                     error: no match found in search range
# | next:287'2                                     with "GLOB0" equal to "0"
# | next:287'3                                     with "A" equal to "%a"
# |            85:  call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr noundef nonnull align 8 dereferenceable(24) @0, i32 noundef 1, ptr noundef nonnull @.omp_outlined..3, ptr noalias nofree noundef nonnull align 4 captures(none) dereferenceable(4) %a) 
# | next:287'4      ?                                                                                                                                                                                                                                             possible intended match
# |            86:  call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr noundef nonnull align 8 dereferenceable(24) @0, i32 noundef 1, ptr noundef nonnull @.omp_outlined..4, ptr noalias nofree noundef nonnull align 4 captures(none) dereferenceable(4) %a) 
# |            87:  call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr noundef nonnull align 8 dereferenceable(24) @0, i32 noundef 1, ptr noundef nonnull @.omp_outlined..5, ptr noalias nofree noundef nonnull align 4 captures(none) dereferenceable(4) %a) 
# |            88:  call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr noundef nonnull align 8 dereferenceable(24) @0, i32 noundef 1, ptr noundef nonnull @.omp_outlined..6, ptr noalias nofree noundef nonnull align 4 captures(none) dereferenceable(4) %a) 
# |            89:  call void @llvm.lifetime.end.p0(ptr noundef nonnull %a) 
# |            90:  ret void 
# |            91: } 
# |            92:  
# |            93: ; Function Attrs: nofree nosync nounwind memory(argmem: readwrite, inaccessiblemem: readwrite) 
# |            94: define internal void @.omp_outlined..3(ptr noalias nofree readnone captures(none) %.global_tid., ptr noalias nofree readnone captures(none) %.bound_tid., ptr noalias nofree noundef nonnull align 4 captures(none) dereferenceable(4) %a) #6 { 
# | next:287'5                                           }                                                                                                                                                                                                           search range end (exclusive)
# | same:330'0                                          {                                                                                                                                                                                                            search range start (exclusive)
# | same:330'1                                                                                                                                                                                                                                                       error: no match found in search range
# | same:330'2                                                                                                                                                                                                                                                       pattern attempts to capture variables: "A", "ATTR6", "DOTBOUND_TID_", "DOTGLOBAL_TID_"
# |            95: entry: 
# |            96:  %call = call i32 @omp_get_thread_num() #19 
# |            97:  %cmp = icmp eq i32 %call, 0 
# |            98:  br i1 %cmp, label %if.then, label %if.end 
# |            99:  
# |             .
# |             .
# |             .
# |           105:  
# |           106: if.end: ; preds = %if.then, %entry 
# |           107:  ret void 
# |           108: } 
# |           109:  
# |           110: define internal void @.omp_outlined..4(ptr noalias nofree noundef nonnull readonly align 4 captures(none) dereferenceable(4) %.global_tid., ptr noalias nofree readnone captures(none) %.bound_tid., ptr nofree noundef nonnull align 4 captures(none) dereferenceable(4) %a) { 
# | same:330'3                                           }                                                                                                                                                                                                                                           search range end (exclusive)
# |           111: entry: 
# |           112:  %tmp = load i32, ptr %.global_tid., align 4, !invariant.load !1 
# |           113:  %tmp1 = call i32 @__kmpc_master(ptr noundef nonnull @0, i32 %tmp) 
# |           114:  %tmp2 = icmp eq i32 %tmp1, 0 
# |           115:  br i1 %tmp2, label %omp_if.end, label %omp_if.then 
# |             .
# |             .
# |             .
# |           136:  
# |           137: ; Function Attrs: nounwind 
# |           138: declare void @__kmpc_end_master(ptr, i32) #9 
# |           139:  
# |           140: define internal void @.omp_outlined..5(ptr noalias nofree readonly captures(none) %.global_tid., ptr noalias nofree readnone captures(none) %.bound_tid., ptr nofree noundef nonnull align 4 captures(none) dereferenceable(4) %a) { 
# |           141: entry: 
# | next:460'0          {   search range start (exclusive)
# | next:460'1              error: match failed for invalid pattern
# | next:460'2              undefined variable: ATTR19
# | next:460'3              with "GLOB0" equal to "0"
# | next:460'4              pattern attempts to capture variables: "OMP_GLOBAL_THREAD_NUM"
# |           142:  %omp_global_thread_num = call i32 @__kmpc_global_thread_num(ptr noundef nonnull @0) #19 
# | next:460'5                      ?                                                                         possible intended match
# |           143:  %tmp = load i32, ptr %.global_tid., align 4, !invariant.load !1 
# |           144:  %tmp1 = call i32 @__kmpc_single(ptr noundef nonnull @0, i32 %tmp) 
# |           145:  %tmp2 = icmp eq i32 %tmp1, 0 
# |           146:  br i1 %tmp2, label %omp_if.end, label %omp_if.then 
# |           147:  
# |             .
# |             .
# |             .
# |           155: omp_if.end: ; preds = %omp_if.then, %entry 
# |           156:  call void @__kmpc_barrier(ptr noundef nonnull @1, i32 %omp_global_thread_num) 
# |           157:  ret void 
# |           158: } 
# |           159:  
# |           160: define internal void @.omp_outlined..6(ptr noalias nofree noundef nonnull readonly align 4 captures(none) dereferenceable(4) %.global_tid., ptr noalias nofree readnone captures(none) %.bound_tid., ptr nofree noundef nonnull align 4 captures(none) dereferenceable(4) %a) { 
# | next:460'6                                           }                                                                                                                                                                                                                                           search range end (exclusive)
# |           161: entry: 
# |           162:  %a1 = alloca i32, align 4 
# |           163:  %.omp.reduction.red_list = alloca [1 x ptr], align 8 
# |           164:  call v
# | ...
# `---data was truncated (10240/10402) (change limit with -D output_limit=N)
# 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/218672


More information about the llvm-commits mailing list