================
----------------
jinhuang1102 wrote:
I have added `--include-generated-funcs` as suggested. But the upstream CI now
fails on `coro-noop.ll` with the following error:
```
# .---command stderr------------
# |
/__w/llvm-project/llvm-project/llvm/test/Transforms/Coroutines/coro-noop.ll:30:15:
error: CHECK-SAME: expected string not found in input
# | ; CHECK-SAME: ) !prof [[PROF5:![0-9]+]] {
# | ^
# | <stdin>:8:18: note: scanning from here
# | define ptr @noop() {
# | ^
# | <stdin>:13:25: note: possible intended match here
# | ; Function Attrs: nounwind memory(none)
# | ^
# |
/__w/llvm-project/llvm-project/llvm/test/Transforms/Coroutines/coro-noop.ll:48:12:
error: undefined variable: PROF5
# | ; CHECK: [[PROF5]] = !{!"function_entry_count", i64 1000}
# | ^
# | <stdin>:34:2: note: possible intended match here
# | !8 = !{!"function_entry_count", i64 0}
# | ^
# |
# | Input file: <stdin>
# | Check file:
/__w/llvm-project/llvm-project/llvm/test/Transforms/Coroutines/coro-noop.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = '<stdin>'
# | 2: source_filename = "<stdin>"
# | 3:
# | 4: %NoopCoro.Frame = type { ptr, ptr }
# | 5:
# | 6: @NoopCoro.Frame.Const = private constant %NoopCoro.Frame {
ptr @__NoopCoro_ResumeDestroy, ptr @__NoopCoro_ResumeDestroy },
no_sanitize_address, no_sanitize_hwaddress
# | 7:
# | 8: define ptr @noop() {
# | same:30'0 { search range start (exclusive)
# | same:30'1 error: no match found in search
range
# | 9: entry:
# | 10: ret ptr @NoopCoro.Frame.Const
# | 11: }
# | 12:
# | 13: ; Function Attrs: nounwind memory(none)
# | same:30'2 ? possible
intended match
# | 14: declare ptr @llvm.coro.noop() #0
# | 15:
# | 16: define internal void @__NoopCoro_ResumeDestroy(ptr %0)
!dbg !5 !prof !8 {
# | same:30'3 }
search range end (exclusive)
# | 17: entry:
# | 18: ret void
# | 19: }
# | 20:
# | 21: attributes #0 = { nounwind memory(none) }
# | 22:
# | 23: !llvm.dbg.cu = !{!0}
# | 24: !llvm.module.flags = !{!3, !4}
# | 25:
# | 26: !0 = distinct !DICompileUnit(language: DW_LANG_C99, file:
!1, producer: "hand-written", isOptimized: false, runtimeVersion: 0,
emissionKind: FullDebug, enums: !2)
# | 27: !1 = !DIFile(filename: "<stdin>", directory: "")
# | 28: !2 = !{}
# | 29: !3 = !{i32 2, !"Dwarf Version", i32 4}
# | 30: !4 = !{i32 2, !"Debug Info Version", i32 3}
# | check:48'0 { search range
start (exclusive)
# | check:48'1 error: match
failed for invalid pattern
# | check:48'2 undefined
variable: PROF5
# | 31: !5 = distinct !DISubprogram(name:
"__NoopCoro_ResumeDestroy", linkageName: "__NoopCoro_ResumeDestroy", scope:
null, file: !1, type: !6, flags: DIFlagArtificial, spFlags: DISPFlagDefinition,
unit: !0)
# | 32: !6 = !DISubroutineType(types: !7)
# | 33: !7 = !{null, null}
# | 34: !8 = !{!"function_entry_count", i64 0}
# | check:48'3 ? possible intended
match
# | check:48'4 } search range end
(exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
```
Strangely, this test passes locally in my environment, even when I configured
CMake with `-DLLVM_ENABLE_ASSERTIONS=Off` to match a potential release-build
behavior:
```
cmake -GNinja ../llvm -DCMAKE_C_COMPILER=clang-19
-DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_BUILD_TYPE=Release
-DLLVM_ENABLE_ASSERTIONS=Off -DCMAKE_EXPORT_COMPILE_COMMANDS=On
-DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld'
-DLLVM_LIT_ARGS="--exclude-xfail" -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
-DCMAKE_C_COMPILER_TARGET=x86_64-unknown-linux-gnu
```
The failure is because `noop()` function in upstream `opt` output doesn't have
`!porf` metadata, while in my local `opt` output it has `!prof !5`.
Since my local workspace is clean and fully pushed, I suspect there might be
some environmental or implicit CMake configuration differences that affect how
PGO metadata is attached to this no-op coroutine.
Any insights on what might cause this divergence would be greatly appreciated!
https://github.com/llvm/llvm-project/pull/184466
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits