[llvm] [PGOVerify] Add end-to-end IPGOVerifier infrastructure, validations, and function filtering (PR #196295)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 10 00:06:32 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
* 152944 tests passed
* 3312 tests skipped
* 2 tests failed
## Failed Tests
(click on a test name to see its output)
### Clang
<details>
<summary>Clang.CodeGen/cfi-check-fail-nomerge.c</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 8
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/24/include -nostdsysteminc -O3 -triple x86_64-unknown-linux -fsanitize-cfi-cross-dso -fsanitize=cfi-icall,cfi-nvcall,cfi-vcall,cfi-unrelated-cast,cfi-derived-cast -fsanitize-trap=cfi-icall,cfi-nvcall -fsanitize-merge=cfi-icall,cfi-nvcall -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/cfi-check-fail-nomerge.c | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/cfi-check-fail-nomerge.c --check-prefix=MERGE
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/24/include -nostdsysteminc -O3 -triple x86_64-unknown-linux -fsanitize-cfi-cross-dso -fsanitize=cfi-icall,cfi-nvcall,cfi-vcall,cfi-unrelated-cast,cfi-derived-cast -fsanitize-trap=cfi-icall,cfi-nvcall -fsanitize-merge=cfi-icall,cfi-nvcall -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/cfi-check-fail-nomerge.c
# 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/clang/test/CodeGen/cfi-check-fail-nomerge.c --check-prefix=MERGE
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/cfi-check-fail-nomerge.c:53:16: error: MERGE-SAME: expected string not found in input
# | // MERGE-SAME: ptr noundef [[TMP0:%.*]], ptr noundef [[TMP1:%.*]]) #[[ATTR0]] {
# | ^
# | <stdin>:29:47: note: scanning from here
# | define weak_odr hidden void @__cfi_check_fail(ptr noundef %0, ptr noundef %1) #2 {
# | ^
# | <stdin>:29:47: note: with "ATTR0" equal to "0"
# | define weak_odr hidden void @__cfi_check_fail(ptr noundef %0, ptr noundef %1) #2 {
# | ^
# | <stdin>:29:47: note: pattern attempts to capture variables: "TMP0", "TMP1"
# | define weak_odr hidden void @__cfi_check_fail(ptr noundef %0, ptr noundef %1) #2 {
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/cfi-check-fail-nomerge.c:94:88: error: undefined variable: PROF9
# | // MERGE-NEXT: br i1 [[DOTNOT_I]], label %[[TRAP_I:.*]], label %[[CONT_I:.*]], !prof [[PROF9]], !nosanitize [[META7]]
# | ^
# | <stdin>:81:49: note: with "DOTNOT_I" equal to "%.not.i"
# | %.not.i = icmp eq ptr %2, null, !nosanitize !11
# | ^
# | <stdin>:81:49: note: with "META7" equal to "!11"
# | %.not.i = icmp eq ptr %2, null, !nosanitize !11
# | ^
# | <stdin>:81:49: note: pattern attempts to capture variables: "CONT_I", "TRAP_I"
# | %.not.i = icmp eq ptr %2, null, !nosanitize !11
# | ^
# | <stdin>:82:14: note: possible intended match here
# | br i1 %.not.i, label %trap.i, label %cont.i, !prof !13, !nosanitize !11
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/cfi-check-fail-nomerge.c
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 24: declare i1 @llvm.type.test(ptr, metadata) #1
# | 25:
# | 26: declare void @__cfi_slowpath(i64, ptr) local_unnamed_addr
# | 27:
# | 28: ; Function Attrs: approxprofile nounwind
# | 29: define weak_odr hidden void @__cfi_check_fail(ptr noundef %0, ptr noundef %1) #2 {
# | same:53'0 { search range start (exclusive)
# | same:53'1 error: no match found in search range
# | same:53'2 with "ATTR0" equal to "0"
# | same:53'3 pattern attempts to capture variables: "TMP0", "TMP1"
# | 30: entry:
# | 31: %.not = icmp eq ptr %0, null, !nosanitize !11
# | 32: br i1 %.not, label %trap, label %cont, !prof !13, !nosanitize !11
# | 33:
# | 34: trap: ; preds = %cont, %cont, %entry
# | .
# | .
# | .
# | 74:
# | 75: ; Function Attrs: noreturn nounwind uwtable
# | 76: declare void @__ubsan_handle_cfi_check_fail_abort(i64, i64, i64) local_unnamed_addr #4
# | 77:
# | 78: ; Function Attrs: approxprofile nounwind
# | 79: define weak void @__cfi_check(i64 noundef %0, ptr noundef %1, ptr noundef %2) local_unnamed_addr #5 align 4096 {
# | same:53'4 } search range end (exclusive)
# | 80: entry:
# | 81: %.not.i = icmp eq ptr %2, null, !nosanitize !11
# | next:94'0 { search range start (exclusive)
# | next:94'1 error: match failed for invalid pattern
# | next:94'2 undefined variable: PROF9
# | next:94'3 with "DOTNOT_I" equal to "%.not.i"
# | next:94'4 with "META7" equal to "!11"
# | next:94'5 pattern attempts to capture variables: "CONT_I", "TRAP_I"
# | 82: br i1 %.not.i, label %trap.i, label %cont.i, !prof !13, !nosanitize !11
# | next:94'6 ? possible intended match
# | 83:
# | 84: trap.i: ; preds = %cont.i, %cont.i, %entry
# | 85: tail call void @llvm.ubsantrap(i8 2) #7, !nosanitize !11
# | 86: unreachable, !nosanitize !11
# | 87:
# | .
# | .
# | .
# | 145: !9 = !{i64 0, !"_ZTSFvPvE.generalized"}
# | 146: !10 = !{i64 0, i64 2451761621477796417}
# | 147: !11 = !{}
# | 148: !12 = !{!"branch_weights", i32 1048575, i32 1}
# | 149: !13 = !{!"branch_weights", i32 1, i32 1048575}
# | 150: !14 = !{!"branch_weights", i32 -20480, i32 4096, i32 4095, i32 4095, i32 4095, i32 4095}
# | next:94'7 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>Clang.CodeGen/cfi-check-fail2-nomerge.c</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/24/include -nostdsysteminc -triple x86_64-unknown-linux -O3 -fsanitize-cfi-cross-dso -fsanitize=cfi-vcall -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/cfi-check-fail2-nomerge.c | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/cfi-check-fail2-nomerge.c --check-prefix=NO-MERGE
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/24/include -nostdsysteminc -triple x86_64-unknown-linux -O3 -fsanitize-cfi-cross-dso -fsanitize=cfi-vcall -emit-llvm -o - /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/cfi-check-fail2-nomerge.c
# 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/clang/test/CodeGen/cfi-check-fail2-nomerge.c --check-prefix=NO-MERGE
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/cfi-check-fail2-nomerge.c:87:19: error: NO-MERGE-SAME: expected string not found in input
# | // NO-MERGE-SAME: ptr noundef [[TMP0:%.*]], ptr noundef [[TMP1:%.*]]) #[[ATTR0]] {
# | ^
# | <stdin>:16:47: note: scanning from here
# | define weak_odr hidden void @__cfi_check_fail(ptr noundef %0, ptr noundef %1) #1 {
# | ^
# | <stdin>:16:47: note: with "ATTR0" equal to "0"
# | define weak_odr hidden void @__cfi_check_fail(ptr noundef %0, ptr noundef %1) #1 {
# | ^
# | <stdin>:16:47: note: pattern attempts to capture variables: "TMP0", "TMP1"
# | define weak_odr hidden void @__cfi_check_fail(ptr noundef %0, ptr noundef %1) #1 {
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/cfi-check-fail2-nomerge.c:117:80: error: undefined variable: META6
# | // NO-MERGE-NEXT: [[DOTNOT_I:%.*]] = icmp eq ptr [[TMP2]], null, !nosanitize [[META6]]
# | ^
# | <stdin>:58:7: note: with "TMP2" equal to "%2"
# | entry:
# | ^
# | <stdin>:58:7: note: pattern attempts to capture variables: "DOTNOT_I"
# | entry:
# | ^
# | <stdin>:59:6: note: possible intended match here
# | %.not.i = icmp eq ptr %2, null, !nosanitize !7
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CodeGen/cfi-check-fail2-nomerge.c
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 11: tail call void %f() #6
# | 12: ret void
# | 13: }
# | 14:
# | 15: ; Function Attrs: approxprofile nounwind
# | 16: define weak_odr hidden void @__cfi_check_fail(ptr noundef %0, ptr noundef %1) #1 {
# | same:87'0 { search range start (exclusive)
# | same:87'1 error: no match found in search range
# | same:87'2 with "ATTR0" equal to "0"
# | same:87'3 pattern attempts to capture variables: "TMP0", "TMP1"
# | 17: entry:
# | 18: %.not = icmp eq ptr %0, null, !nosanitize !7
# | 19: br i1 %.not, label %trap, label %cont, !prof !8, !nosanitize !7
# | 20:
# | 21: trap: ; preds = %cont, %cont, %cont, %cont, %entry
# | .
# | .
# | .
# | 52:
# | 53: ; Function Attrs: noreturn nounwind uwtable
# | 54: declare void @__ubsan_handle_cfi_check_fail_abort(i64, i64, i64) local_unnamed_addr #4
# | 55:
# | 56: ; Function Attrs: approxprofile nounwind
# | 57: define weak void @__cfi_check(i64 noundef %0, ptr noundef %1, ptr noundef %2) local_unnamed_addr #5 align 4096 {
# | same:87'4 } search range end (exclusive)
# | 58: entry:
# | next:117'0 { search range start (exclusive)
# | next:117'1 error: match failed for invalid pattern
# | next:117'2 undefined variable: META6
# | next:117'3 with "TMP2" equal to "%2"
# | next:117'4 pattern attempts to capture variables: "DOTNOT_I"
# | 59: %.not.i = icmp eq ptr %2, null, !nosanitize !7
# | next:117'5 ? possible intended match
# | 60: br i1 %.not.i, label %trap.i, label %cont.i, !prof !8, !nosanitize !7
# | 61:
# | 62: trap.i: ; preds = %cont.i, %cont.i, %cont.i, %cont.i, %entry
# | 63: tail call void @llvm.ubsantrap(i8 2) #7, !nosanitize !7
# | 64: unreachable, !nosanitize !7
# | .
# | .
# | .
# | 106: !4 = !{!"int", !5, i64 0}
# | 107: !5 = !{!"omnipotent char", !6, i64 0}
# | 108: !6 = !{!"Simple C/C++ TBAA"}
# | 109: !7 = !{}
# | 110: !8 = !{!"branch_weights", i32 1, i32 1048575}
# | 111: !9 = !{!"branch_weights", i32 -20480, i32 4096, i32 4095, i32 4095, i32 4095, i32 4095}
# | next:117'6 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# 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/196295
More information about the llvm-commits
mailing list