[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