Skip to content

Computing crate_hash from metadata encoding instead of HIR (implements #94878) (very draft)#154724

Draft
Daniel-B-Smith wants to merge 3 commits intorust-lang:mainfrom
Daniel-B-Smith:smithdb3/fix-94878
Draft

Computing crate_hash from metadata encoding instead of HIR (implements #94878) (very draft)#154724
Daniel-B-Smith wants to merge 3 commits intorust-lang:mainfrom
Daniel-B-Smith:smithdb3/fix-94878

Conversation

@Daniel-B-Smith
Copy link
Copy Markdown
Contributor

@Daniel-B-Smith Daniel-B-Smith commented Apr 2, 2026

View all comments

Adds a parallel process of hashing along with the metadata encoding. It does add metadata encoding in a few places to ensure that the hash was available. Currently, the metadata encoding always generates both the metadata and the hash even if only one is needed.

Known issue: one test failure due to #137108 (pre-existing repr(simd) projection bug. The new metadata pass trips some MIR validation. This will need to catch the issue earlier.

Local profiling on laptop shows roughly neutral (~0.5%), requesting CI perf run for precise measurement

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Apr 2, 2026
@rust-log-analyzer

This comment has been minimized.

@Daniel-B-Smith Daniel-B-Smith force-pushed the smithdb3/fix-94878 branch 5 times, most recently from 24c04d5 to c826667 Compare April 7, 2026 15:59
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@Daniel-B-Smith Daniel-B-Smith force-pushed the smithdb3/fix-94878 branch 2 times, most recently from 43a7704 to 338aba3 Compare April 8, 2026 19:34
@rust-log-analyzer

This comment has been minimized.

@Daniel-B-Smith Daniel-B-Smith force-pushed the smithdb3/fix-94878 branch 2 times, most recently from 0ddcd96 to d27cca5 Compare April 8, 2026 21:34
@rust-log-analyzer

This comment has been minimized.

@Daniel-B-Smith Daniel-B-Smith force-pushed the smithdb3/fix-94878 branch 3 times, most recently from 1e5f269 to 4171895 Compare April 9, 2026 14:56
@rust-log-analyzer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@Daniel-B-Smith Daniel-B-Smith changed the title #94878 Computing crate_hash from metadata encoding instead of HIR (implements #94878) (very draft) Apr 9, 2026
@nnethercote
Copy link
Copy Markdown
Contributor

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Apr 9, 2026
@rust-log-analyzer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Apr 17, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Apr 17, 2026

☀️ Try build successful (CI)
Build commit: 92f3e06 (92f3e06ff4370ecfec992fbc71fe79ca70611ef5, parent: 0204aca0663ec534b773f78639b9ebe20b3da001)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (92f3e06): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

Benchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf.

Next, please: If you can, justify the regressions found in this try perf run in writing along with @rustbot label: +perf-regression-triaged. If not, fix the regressions and do another perf run. Neutral or positive results will clear the label automatically.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
1.2% [0.2%, 9.6%] 165
Regressions ❌
(secondary)
6.8% [0.1%, 196.7%] 137
Improvements ✅
(primary)
-1.3% [-5.4%, -0.2%] 5
Improvements ✅
(secondary)
-0.4% [-0.7%, -0.2%] 11
All ❌✅ (primary) 1.1% [-5.4%, 9.6%] 170

Max RSS (memory usage)

Results (primary 2.3%, secondary 26.7%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
3.6% [1.9%, 5.6%] 8
Regressions ❌
(secondary)
29.7% [2.7%, 119.8%] 11
Improvements ✅
(primary)
-2.6% [-3.5%, -1.7%] 2
Improvements ✅
(secondary)
-6.1% [-6.1%, -6.1%] 1
All ❌✅ (primary) 2.3% [-3.5%, 5.6%] 10

Cycles

Results (primary 3.3%, secondary 22.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
3.7% [1.8%, 12.0%] 31
Regressions ❌
(secondary)
24.7% [2.4%, 198.6%] 34
Improvements ✅
(primary)
-7.5% [-7.5%, -7.5%] 1
Improvements ✅
(secondary)
-3.5% [-4.5%, -2.5%] 3
All ❌✅ (primary) 3.3% [-7.5%, 12.0%] 32

Binary size

Results (primary 0.0%, secondary 0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.0% [0.0%, 0.1%] 15
Regressions ❌
(secondary)
0.1% [0.0%, 0.1%] 18
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [0.0%, 0.1%] 15

Bootstrap: 490.004s -> 491.506s (0.31%)
Artifact size: 394.09 MiB -> 394.34 MiB (0.06%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Apr 17, 2026
@rust-bors

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@mejrs
Copy link
Copy Markdown
Contributor

mejrs commented Apr 27, 2026

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Apr 27, 2026
@mejrs
Copy link
Copy Markdown
Contributor

mejrs commented Apr 27, 2026

@bors try cancel

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Apr 27, 2026

❗ There is currently no try build in progress on this PR.

@mejrs
Copy link
Copy Markdown
Contributor

mejrs commented Apr 27, 2026

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Apr 27, 2026
Computing crate_hash from metadata encoding instead of HIR (implements #94878) (very draft)
@Daniel-B-Smith
Copy link
Copy Markdown
Contributor Author

The latest update reverts crate_hash to use the HIR hash in cases where metadata is not otherwise generated. That fixed the large performance regression for compilations that depend heavily on cases where metadata is not generated.

The big performance open question right now is whether or not the less invasive metadata hashing strategy is fast enough. Hashing the bytes of each item one at a time has substantial overhead relative to hashing all of the bytes as they are flushed to disk. The latter is a much more invasive change to FileEncoder, so I'm holding off until it's clear that is needed.

@rust-log-analyzer
Copy link
Copy Markdown
Collaborator

The job x86_64-gnu-gcc failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
---- [run-make] tests/run-make/emit-path-unhashed stdout ----

error: rmake recipe failed to complete
status: exit status: 101
command: cd "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out" && env -u RUSTFLAGS -u __RUSTC_DEBUG_ASSERTIONS_ENABLED -u __STD_DEBUG_ASSERTIONS_ENABLED -u __STD_REMAP_DEBUGINFO_ENABLED AR="ar" BUILD_ROOT="/checkout/obj/build/x86_64-unknown-linux-gnu" CC="cc" CC_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -fPIC -m64" CXX="c++" CXX_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -fPIC -m64" HOST_RUSTC_DYLIB_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" LD_LIB_PATH_ENVVAR="LD_LIBRARY_PATH" LLVM_BIN_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm/bin" LLVM_COMPONENTS="aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils abi aggressiveinstcombine all all-targets amdgpu amdgpuasmparser amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo amdgputargetmca amdgpuutils analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler bpfinfo cas cfguard cgdata codegen codegentypes core coroutines coverage csky cskyasmparser cskycodegen cskydesc cskydisassembler cskyinfo debuginfobtf debuginfocodeview debuginfodwarf debuginfodwarflowlevel debuginfogsym debuginfologicalview debuginfomsf debuginfopdb demangle dlltooldriver dtlto dwarfcfichecker dwarflinker dwarflinkerclassic dwarflinkerparallel dwp engine executionengine extensions filecheck frontendatomic frontenddirective frontenddriver frontendhlsl frontendoffloading frontendopenacc frontendopenmp fuzzercli fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo hipstdpar instcombine instrumentation interfacestub interpreter ipo irprinter irreader jitlink libdriver lineeditor linker loongarch loongarchasmparser loongarchcodegen loongarchdesc loongarchdisassembler loongarchinfo lto m68k m68kasmparser m68kcodegen m68kdesc m68kdisassembler m68kinfo mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts objcopy object objectyaml option orcdebugging orcjit orcshared orctargetprocess passes plugins powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvtargetmca runtimedyld sandboxir scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support supportlsp symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target targetparser telemetry textapi textapibinaryreader transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo webassemblyutils windowsdriver windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86targetmca xray xtensa xtensaasmparser xtensacodegen xtensadesc xtensadisassembler xtensainfo" LLVM_FILECHECK="/checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" PYTHON="/usr/bin/python3" RUSTC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" RUSTDOC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" SOURCE_ROOT="/checkout" TARGET="x86_64-unknown-linux-gnu" TARGET_EXE_DYLIB_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" __BOOTSTRAP_JOBS="4" __RMAKE_VERBOSE_SUBPROCESS_OUTPUT="1" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake"
stdout: none
--- stderr -------------------------------
LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out" "--emit=link" "foo.rs" "--target=x86_64-unknown-linux-gnu"
output status: `exit status: 0`
=== STDOUT ===



=== STDERR ===



LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out" "--emit=link" "-o" "emit/a/libfoo.rlib" "foo.rs" "--target=x86_64-unknown-linux-gnu"
output status: `exit status: 0`
=== STDOUT ===



=== STDERR ===



LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out" "--emit=link=emit/b/libfoo.rlib" "foo.rs" "--target=x86_64-unknown-linux-gnu"
output status: `exit status: 0`
=== STDOUT ===



=== STDERR ===



LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out" "--emit=link=emit/c/libfoo.rlib,metadata" "foo.rs" "--target=x86_64-unknown-linux-gnu"
output status: `exit status: 0`
=== STDOUT ===



=== STDERR ===



LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out" "-Zls=root" "libfoo.rlib" "--target=x86_64-unknown-linux-gnu"
output status: `exit status: 0`
=== STDOUT ===
Crate info:
name foo
hash 390708df772be45fcbf825a0559cbcdb stable_crate_id StableCrateId(6621804853207934875)
proc_macro false
triple x86_64-unknown-linux-gnu
edition 2015
symbol_mangling_version V0
required_panic_strategy None panic_in_drop_strategy Unwind
has_global_allocator false has_alloc_error_handler false has_panic_handler false has_default_lib_allocator false
compiler_builtins false needs_allocator false needs_panic_runtime false no_builtins false panic_runtime false profiler_runtime false
=External Dependencies=
1 std-5c1e38678618f036 hash 02d7bbc6f2b41f7e0f1a15ceb5143e16 host_hash None kind Unconditional public
2 core-e8698376868167ef hash 0867efeede78d97f396671beb9623f02 host_hash None kind Unconditional public
3 alloc-fe51af7941f3715c hash 912c95bd3f178af71910247f7abfce55 host_hash None kind Unconditional public
4 compiler_builtins-ba83d1c2f97d6a7c hash d5ff33aa15917f0ca8546519e7474014 host_hash None kind Unconditional private
5 libc-223ceaf3e0b52ff3 hash 2ae13c0dda231d64fcd174b0419a95d6 host_hash None kind Unconditional public
6 rustc_std_workspace_core-8309238700b8e772 hash fb0985ef490211f102bf5930d9c40e43 host_hash None kind Unconditional public
7 unwind-278faf0777ce6372 hash e01d3a98c92810df3a939eaed2c0b06b host_hash None kind Unconditional private
8 miniz_oxide-738bc3389afe9377 hash 8fc8070cae8fcc6d7c2dc17619735ed8 host_hash None kind Unconditional private
9 adler2-ca08932f76d4d416 hash 3a9c89b0ceca2a63de07894b0d51fb3a host_hash None kind Unconditional private
10 hashbrown-7a02d29d01e2e82e hash f6dae78628bc2b100ce8a3a397725cf6 host_hash None kind Unconditional private
11 rustc_std_workspace_alloc-1cec5037099aa1a0 hash f175d53bb4a203187764485fbf94e700 host_hash None kind Unconditional public
12 std_detect-60109f9a50e57aee hash f048bd828fc9300988a65b91b9e3963f host_hash None kind Unconditional public
13 rustc_demangle-c0f760ee11952ebe hash 132304af48c10cce5931b2b04ab1a7c8 host_hash None kind Unconditional private
14 cfg_if-57fbe90018061a1d hash 0465fe939d292c7e20bae8bea581d370 host_hash None kind Unconditional private
15 addr2line-4a6c493616c3d76d hash 655ee96773496df28929f896717f31e1 host_hash None kind Unconditional private
16 gimli-87b25eb82ef76b1a hash e0b4016c776125ea59282482f27a67e9 host_hash None kind Unconditional private
17 object-6c51f0892e16f5d3 hash daeaa5c727c038f659636a2eda30789c host_hash None kind Unconditional private
18 memchr-1353e0a24ab3148a hash 68077bd5c5cdac74cab2f7718726c313 host_hash None kind Unconditional private
19 panic_unwind-e31c4feec06ac537 hash e943f321877fb4ef729563b2e1c130f4 host_hash None kind Conditional private





=== STDERR ===



LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out" "-Zls=root" "emit/a/libfoo.rlib" "--target=x86_64-unknown-linux-gnu"
output status: `exit status: 0`
=== STDOUT ===
Crate info:
name foo
hash 390708df772be45fcbf825a0559cbcdb stable_crate_id StableCrateId(6621804853207934875)
proc_macro false
triple x86_64-unknown-linux-gnu
edition 2015
symbol_mangling_version V0
required_panic_strategy None panic_in_drop_strategy Unwind
has_global_allocator false has_alloc_error_handler false has_panic_handler false has_default_lib_allocator false
compiler_builtins false needs_allocator false needs_panic_runtime false no_builtins false panic_runtime false profiler_runtime false
=External Dependencies=
1 std-5c1e38678618f036 hash 02d7bbc6f2b41f7e0f1a15ceb5143e16 host_hash None kind Unconditional public
2 core-e8698376868167ef hash 0867efeede78d97f396671beb9623f02 host_hash None kind Unconditional public
3 alloc-fe51af7941f3715c hash 912c95bd3f178af71910247f7abfce55 host_hash None kind Unconditional public
4 compiler_builtins-ba83d1c2f97d6a7c hash d5ff33aa15917f0ca8546519e7474014 host_hash None kind Unconditional private
5 libc-223ceaf3e0b52ff3 hash 2ae13c0dda231d64fcd174b0419a95d6 host_hash None kind Unconditional public
6 rustc_std_workspace_core-8309238700b8e772 hash fb0985ef490211f102bf5930d9c40e43 host_hash None kind Unconditional public
7 unwind-278faf0777ce6372 hash e01d3a98c92810df3a939eaed2c0b06b host_hash None kind Unconditional private
8 miniz_oxide-738bc3389afe9377 hash 8fc8070cae8fcc6d7c2dc17619735ed8 host_hash None kind Unconditional private
9 adler2-ca08932f76d4d416 hash 3a9c89b0ceca2a63de07894b0d51fb3a host_hash None kind Unconditional private
10 hashbrown-7a02d29d01e2e82e hash f6dae78628bc2b100ce8a3a397725cf6 host_hash None kind Unconditional private
11 rustc_std_workspace_alloc-1cec5037099aa1a0 hash f175d53bb4a203187764485fbf94e700 host_hash None kind Unconditional public
12 std_detect-60109f9a50e57aee hash f048bd828fc9300988a65b91b9e3963f host_hash None kind Unconditional public
13 rustc_demangle-c0f760ee11952ebe hash 132304af48c10cce5931b2b04ab1a7c8 host_hash None kind Unconditional private
14 cfg_if-57fbe90018061a1d hash 0465fe939d292c7e20bae8bea581d370 host_hash None kind Unconditional private
15 addr2line-4a6c493616c3d76d hash 655ee96773496df28929f896717f31e1 host_hash None kind Unconditional private
16 gimli-87b25eb82ef76b1a hash e0b4016c776125ea59282482f27a67e9 host_hash None kind Unconditional private
17 object-6c51f0892e16f5d3 hash daeaa5c727c038f659636a2eda30789c host_hash None kind Unconditional private
18 memchr-1353e0a24ab3148a hash 68077bd5c5cdac74cab2f7718726c313 host_hash None kind Unconditional private
19 panic_unwind-e31c4feec06ac537 hash e943f321877fb4ef729563b2e1c130f4 host_hash None kind Conditional private





=== STDERR ===



LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out" "-Zls=root" "emit/b/libfoo.rlib" "--target=x86_64-unknown-linux-gnu"
output status: `exit status: 0`
=== STDOUT ===
Crate info:
name foo
hash 390708df772be45fcbf825a0559cbcdb stable_crate_id StableCrateId(6621804853207934875)
proc_macro false
triple x86_64-unknown-linux-gnu
edition 2015
symbol_mangling_version V0
required_panic_strategy None panic_in_drop_strategy Unwind
has_global_allocator false has_alloc_error_handler false has_panic_handler false has_default_lib_allocator false
compiler_builtins false needs_allocator false needs_panic_runtime false no_builtins false panic_runtime false profiler_runtime false
=External Dependencies=
1 std-5c1e38678618f036 hash 02d7bbc6f2b41f7e0f1a15ceb5143e16 host_hash None kind Unconditional public
2 core-e8698376868167ef hash 0867efeede78d97f396671beb9623f02 host_hash None kind Unconditional public
3 alloc-fe51af7941f3715c hash 912c95bd3f178af71910247f7abfce55 host_hash None kind Unconditional public
4 compiler_builtins-ba83d1c2f97d6a7c hash d5ff33aa15917f0ca8546519e7474014 host_hash None kind Unconditional private
5 libc-223ceaf3e0b52ff3 hash 2ae13c0dda231d64fcd174b0419a95d6 host_hash None kind Unconditional public
6 rustc_std_workspace_core-8309238700b8e772 hash fb0985ef490211f102bf5930d9c40e43 host_hash None kind Unconditional public
7 unwind-278faf0777ce6372 hash e01d3a98c92810df3a939eaed2c0b06b host_hash None kind Unconditional private
8 miniz_oxide-738bc3389afe9377 hash 8fc8070cae8fcc6d7c2dc17619735ed8 host_hash None kind Unconditional private
9 adler2-ca08932f76d4d416 hash 3a9c89b0ceca2a63de07894b0d51fb3a host_hash None kind Unconditional private
10 hashbrown-7a02d29d01e2e82e hash f6dae78628bc2b100ce8a3a397725cf6 host_hash None kind Unconditional private
11 rustc_std_workspace_alloc-1cec5037099aa1a0 hash f175d53bb4a203187764485fbf94e700 host_hash None kind Unconditional public
12 std_detect-60109f9a50e57aee hash f048bd828fc9300988a65b91b9e3963f host_hash None kind Unconditional public
13 rustc_demangle-c0f760ee11952ebe hash 132304af48c10cce5931b2b04ab1a7c8 host_hash None kind Unconditional private
14 cfg_if-57fbe90018061a1d hash 0465fe939d292c7e20bae8bea581d370 host_hash None kind Unconditional private
15 addr2line-4a6c493616c3d76d hash 655ee96773496df28929f896717f31e1 host_hash None kind Unconditional private
16 gimli-87b25eb82ef76b1a hash e0b4016c776125ea59282482f27a67e9 host_hash None kind Unconditional private
17 object-6c51f0892e16f5d3 hash daeaa5c727c038f659636a2eda30789c host_hash None kind Unconditional private
18 memchr-1353e0a24ab3148a hash 68077bd5c5cdac74cab2f7718726c313 host_hash None kind Unconditional private
19 panic_unwind-e31c4feec06ac537 hash e943f321877fb4ef729563b2e1c130f4 host_hash None kind Conditional private





=== STDERR ===



LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/emit-path-unhashed/rmake_out" "-Zls=root" "emit/c/libfoo.rlib" "--target=x86_64-unknown-linux-gnu"
output status: `exit status: 0`
=== STDOUT ===
Crate info:
name foo
hash 390708df772be45fcbf825a0559cbcdb stable_crate_id StableCrateId(6621804853207934875)
proc_macro false
triple x86_64-unknown-linux-gnu
edition 2015
symbol_mangling_version V0
required_panic_strategy None panic_in_drop_strategy Unwind
has_global_allocator false has_alloc_error_handler false has_panic_handler false has_default_lib_allocator false
compiler_builtins false needs_allocator false needs_panic_runtime false no_builtins false panic_runtime false profiler_runtime false
=External Dependencies=
1 std-5c1e38678618f036 hash 02d7bbc6f2b41f7e0f1a15ceb5143e16 host_hash None kind Unconditional public
2 core-e8698376868167ef hash 0867efeede78d97f396671beb9623f02 host_hash None kind Unconditional public
3 alloc-fe51af7941f3715c hash 912c95bd3f178af71910247f7abfce55 host_hash None kind Unconditional public
4 compiler_builtins-ba83d1c2f97d6a7c hash d5ff33aa15917f0ca8546519e7474014 host_hash None kind Unconditional private
5 libc-223ceaf3e0b52ff3 hash 2ae13c0dda231d64fcd174b0419a95d6 host_hash None kind Unconditional public
6 rustc_std_workspace_core-8309238700b8e772 hash fb0985ef490211f102bf5930d9c40e43 host_hash None kind Unconditional public
7 unwind-278faf0777ce6372 hash e01d3a98c92810df3a939eaed2c0b06b host_hash None kind Unconditional private
8 miniz_oxide-738bc3389afe9377 hash 8fc8070cae8fcc6d7c2dc17619735ed8 host_hash None kind Unconditional private
9 adler2-ca08932f76d4d416 hash 3a9c89b0ceca2a63de07894b0d51fb3a host_hash None kind Unconditional private
10 hashbrown-7a02d29d01e2e82e hash f6dae78628bc2b100ce8a3a397725cf6 host_hash None kind Unconditional private
11 rustc_std_workspace_alloc-1cec5037099aa1a0 hash f175d53bb4a203187764485fbf94e700 host_hash None kind Unconditional public
12 std_detect-60109f9a50e57aee hash f048bd828fc9300988a65b91b9e3963f host_hash None kind Unconditional public
13 rustc_demangle-c0f760ee11952ebe hash 132304af48c10cce5931b2b04ab1a7c8 host_hash None kind Unconditional private
14 cfg_if-57fbe90018061a1d hash 0465fe939d292c7e20bae8bea581d370 host_hash None kind Unconditional private
15 addr2line-4a6c493616c3d76d hash 655ee96773496df28929f896717f31e1 host_hash None kind Unconditional private
16 gimli-87b25eb82ef76b1a hash e0b4016c776125ea59282482f27a67e9 host_hash None kind Unconditional private
17 object-6c51f0892e16f5d3 hash daeaa5c727c038f659636a2eda30789c host_hash None kind Unconditional private
18 memchr-1353e0a24ab3148a hash 68077bd5c5cdac74cab2f7718726c313 host_hash None kind Unconditional private
19 panic_unwind-e31c4feec06ac537 hash e943f321877fb4ef729563b2e1c130f4 host_hash None kind Conditional private





---
   0: __rustc::rust_begin_unwind
             at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/panicking.rs:689:5
   1: core::panicking::panic_fmt
             at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/core/src/panicking.rs:80:14
   2: <run_make_support::diff::Diff>::run_fail
   3: rmake::main
   4: core::ops::function::FnOnce::call_once
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
------------------------------------------

---- [run-make] tests/run-make/emit-path-unhashed stdout end ----

For more information how to resolve CI failures of this job, visit this link.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Apr 27, 2026

☀️ Try build successful (CI)
Build commit: ec2b0e4 (ec2b0e4e0b51187e1b740843ecf29588eaa02a0f, parent: 52b6e2c208b73276ccb36ec0b68456913a801c96)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (ec2b0e4): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

Benchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf.

Next, please: If you can, justify the regressions found in this try perf run in writing along with @rustbot label: +perf-regression-triaged. If not, fix the regressions and do another perf run. Neutral or positive results will clear the label automatically.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.9% [0.2%, 2.8%] 152
Regressions ❌
(secondary)
0.8% [0.2%, 3.9%] 89
Improvements ✅
(primary)
-1.3% [-5.5%, -0.2%] 5
Improvements ✅
(secondary)
-0.3% [-0.6%, -0.0%] 9
All ❌✅ (primary) 0.9% [-5.5%, 2.8%] 157

Max RSS (memory usage)

Results (primary -4.2%, secondary 3.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
5.2% [3.5%, 6.9%] 2
Improvements ✅
(primary)
-4.2% [-4.2%, -4.2%] 1
Improvements ✅
(secondary)
-1.3% [-1.3%, -1.3%] 1
All ❌✅ (primary) -4.2% [-4.2%, -4.2%] 1

Cycles

Results (primary -2.4%, secondary 2.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.8% [2.8%, 2.8%] 1
Regressions ❌
(secondary)
4.7% [4.2%, 5.3%] 4
Improvements ✅
(primary)
-5.0% [-7.3%, -2.6%] 2
Improvements ✅
(secondary)
-2.2% [-2.9%, -1.5%] 2
All ❌✅ (primary) -2.4% [-7.3%, 2.8%] 3

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 487.959s -> 489.335s (0.28%)
Artifact size: 393.44 MiB -> 393.45 MiB (0.00%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Apr 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) perf-regression Performance regression. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants