Skip to content

Experiment linking with Wild#151021

Closed
mati865 wants to merge 8 commits into
rust-lang:mainfrom
mati865:wild-experiments
Closed

Experiment linking with Wild#151021
mati865 wants to merge 8 commits into
rust-lang:mainfrom
mati865:wild-experiments

Conversation

@mati865
Copy link
Copy Markdown
Member

@mati865 mati865 commented Jan 12, 2026

View all comments

Due to master branch migration, I cannot reopen #146421, so I'm moving to a new PR. Hopefully this sporadic perf testing is not viewed as disrupting or harmful to the project, otherwise let me know.

@rustbot rustbot added A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Jan 12, 2026
@mati865
Copy link
Copy Markdown
Member Author

mati865 commented Jan 12, 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 Jan 12, 2026
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jan 12, 2026
@mati865 mati865 mentioned this pull request Jan 12, 2026
@rust-log-analyzer

This comment has been minimized.

@Urgau
Copy link
Copy Markdown
Member

Urgau commented Jan 12, 2026

Don't worry about using our CI capacity. We explicitly allow "wasting our ressources":

Rust has plenty of CI capacity, and you should never have to worry about wasting computational resources each time you push a change. It is also perfectly fine (and even encouraged!) to use the CI to test your changes if it can help your productivity. In particular, we don’t recommend running the full ./x test suite locally, since it takes a very long time to execute.

@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Jan 12, 2026

💔 Test for fbf0e6a failed: CI. Failed jobs:

@mati865
Copy link
Copy Markdown
Member Author

mati865 commented Jan 12, 2026

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jan 12, 2026
@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Jan 13, 2026

☀️ Try build successful (CI)
Build commit: 289623b (289623b501cf708780d96485b05c4ccac7857d00, parent: aefa10405d7b67b3780027484cb02c85d3a3bf36)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (289623b): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@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
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 1
Improvements ✅
(primary)
-3.9% [-13.7%, -0.3%] 25
Improvements ✅
(secondary)
-2.6% [-12.9%, -0.0%] 71
All ❌✅ (primary) -3.9% [-13.7%, -0.3%] 25

Max RSS (memory usage)

Results (primary -5.0%, secondary -0.9%)

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

mean range count
Regressions ❌
(primary)
4.1% [4.1%, 4.1%] 1
Regressions ❌
(secondary)
1.8% [0.7%, 3.3%] 8
Improvements ✅
(primary)
-9.6% [-14.0%, -5.3%] 2
Improvements ✅
(secondary)
-3.7% [-4.9%, -1.8%] 8
All ❌✅ (primary) -5.0% [-14.0%, 4.1%] 3

Cycles

Results (primary -6.2%, secondary -5.7%)

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)
4.5% [4.5%, 4.5%] 1
Improvements ✅
(primary)
-6.2% [-11.9%, -2.6%] 14
Improvements ✅
(secondary)
-6.0% [-12.2%, -2.1%] 41
All ❌✅ (primary) -6.2% [-11.9%, -2.6%] 14

Binary size

Results (primary -1.0%, secondary -1.6%)

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

mean range count
Regressions ❌
(primary)
0.9% [0.9%, 1.0%] 4
Regressions ❌
(secondary)
3.0% [0.0%, 3.9%] 5
Improvements ✅
(primary)
-1.3% [-2.4%, -0.4%] 28
Improvements ✅
(secondary)
-2.1% [-4.1%, -0.0%] 48
All ❌✅ (primary) -1.0% [-2.4%, 1.0%] 32

Bootstrap: 474.371s -> 521.958s (10.03%)
Artifact size: 391.41 MiB -> 393.44 MiB (0.52%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jan 13, 2026
rust-bors Bot pushed a commit that referenced this pull request May 26, 2026
@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 26, 2026

💔 Test for a2e99a2 failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@mati865
Copy link
Copy Markdown
Member Author

mati865 commented May 26, 2026

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request May 26, 2026
@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 26, 2026

💔 Test for eb93609 failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer
Copy link
Copy Markdown
Collaborator

The job aarch64-gnu-llvm-21-2 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: install_plain
Source: src/bootstrap/src/core/builder/tests.rs:2884
────────────────────────────────────────────────────────────────────────────────
Expression: ctx.config("install").args(&["--set",
&format!("install.prefix={}", ctx.normalized_dir()), "--set",
&format!("install.bindir={}", ctx.normalized_dir()), "--set",
&format!("install.libdir={}", ctx.normalized_dir()), "--set",
&format!("install.datadir={}", ctx.normalized_dir()), "--set",
&format!("install.mandir={}", ctx.normalized_dir()), "--set",
&format!("install.sysconfdir={}", ctx.normalized_dir()), "--build",
"x86_64-unknown-linux-gnu", "--host", "x86_64-unknown-linux-gnu", "--target",
"x86_64-unknown-linux-gnu",]).get_steps().render_with(RenderConfig
{ normalize_host: false })
────────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬───────────────────────────────────────────────────────────────────
    1     1 │ [build] llvm <x86_64-unknown-linux-gnu>
    2     2 │ [build] rustc 0 <x86_64-unknown-linux-gnu> -> rustc 1 <x86_64-unknown-linux-gnu>
          3 │+[build] rustc 0 <x86_64-unknown-linux-gnu> -> WildLinker 1 <x86_64-unknown-linux-gnu>
    3     4 │ [build] rustc 0 <x86_64-unknown-linux-gnu> -> UnstableBookGen 1 <x86_64-unknown-linux-gnu>
    4     5 │ [build] rustc 0 <x86_64-unknown-linux-gnu> -> Rustbook 1 <x86_64-unknown-linux-gnu>
    5     6 │ [doc] unstable-book (book) <x86_64-unknown-linux-gnu>
    6     7 │ [build] rustc 1 <x86_64-unknown-linux-gnu> -> std 1 <x86_64-unknown-linux-gnu>
┈┈┈┈┈┈┈┈┈┈┈┈┼┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
   11    12 │ [build] rustdoc 1 <x86_64-unknown-linux-gnu>
   12    13 │ [doc] rustc 1 <x86_64-unknown-linux-gnu> -> standalone 2 <x86_64-unknown-linux-gnu>
   13    14 │ [doc] rustc 1 <x86_64-unknown-linux-gnu> -> std 1 <x86_64-unknown-linux-gnu> crates=[alloc,compiler_builtins,core,panic_abort,panic_unwind,proc_macro,rustc-std-workspace-core,std,std_detect,sysroot,test,unwind]
   14    15 │ [build] rustc 1 <x86_64-unknown-linux-gnu> -> rustc 2 <x86_64-unknown-linux-gnu>
         16 │+[build] rustc 1 <x86_64-unknown-linux-gnu> -> WildLinker 2 <x86_64-unknown-linux-gnu>
   15    17 │ [build] rustc 1 <x86_64-unknown-linux-gnu> -> error-index 2 <x86_64-unknown-linux-gnu>
   16    18 │ [doc] rustc 1 <x86_64-unknown-linux-gnu> -> error-index 2 <x86_64-unknown-linux-gnu>
   17    19 │ [doc] nomicon (book) <x86_64-unknown-linux-gnu>
   18    20 │ [doc] rustc 1 <x86_64-unknown-linux-gnu> -> reference (book) 2 <x86_64-unknown-linux-gnu>
────────────┴───────────────────────────────────────────────────────────────────
Stopped on the first failure. Run `cargo insta test` to run all snapshots.

thread 'core::builder::tests::snapshot::install_plain' (10933) panicked at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.47.2/src/runtime.rs:719:13:
snapshot assertion for 'install_plain' failed in line 2884
stack backtrace:
   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: <insta::runtime::SnapshotAssertionContext>::finalize
             at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.47.2/src/runtime.rs:719:13
   3: insta::runtime::assert_snapshot
             at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.47.2/src/runtime.rs:937:13
   4: bootstrap::core::builder::tests::snapshot::install_plain
             at ./src/core/builder/tests.rs:2884:9
   5: bootstrap::core::builder::tests::snapshot::install_plain::{closure#0}
             at ./src/core/builder/tests.rs:2882:23
   6: <bootstrap::core::builder::tests::snapshot::install_plain::{closure#0} as core::ops::function::FnOnce<()>>::call_once
---
##[group]Installing src for x86_64-unknown-linux-gnu
##[endgroup]
##[group]Building stage2 codegen backend cranelift (stage1 -> stage2, x86_64-unknown-linux-gnu)
##[endgroup]
skipping Install CodegenBackend("cranelift") stage2 (x86_64-unknown-linux-gnu)
##[group]Building stage2 llvm-bitcode-linker (stage1 -> stage2, x86_64-unknown-linux-gnu)
##[endgroup]
Dist llvm-bitcode-linker-1.98.0-dev-x86_64-unknown-linux-gnu
##[group]Installing stage2 llvm-bitcode-linker (stage1 -> stage2, x86_64-unknown-linux-gnu)
##[endgroup]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: install_extended
Source: src/bootstrap/src/core/builder/tests.rs:3029
────────────────────────────────────────────────────────────────────────────────
Expression: ctx.config("install").args(&["--set",
&format!("install.prefix={}", ctx.normalized_dir()), "--set",
&format!("install.bindir={}", ctx.normalized_dir()), "--set",
&format!("install.libdir={}", ctx.normalized_dir()), "--set",
&format!("install.datadir={}", ctx.normalized_dir()), "--set",
&format!("install.mandir={}", ctx.normalized_dir()), "--set",
&format!("install.sysconfdir={}", ctx.normalized_dir()), "--set",
"build.extended=true", "--build", "x86_64-unknown-linux-gnu", "--host",
"x86_64-unknown-linux-gnu",]).get_steps().render_with(RenderConfig
{ normalize_host: false })
────────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬───────────────────────────────────────────────────────────────────
    1     1 │ [build] llvm <x86_64-unknown-linux-gnu>
    2     2 │ [build] rustc 0 <x86_64-unknown-linux-gnu> -> rustc 1 <x86_64-unknown-linux-gnu>
          3 │+[build] rustc 0 <x86_64-unknown-linux-gnu> -> WildLinker 1 <x86_64-unknown-linux-gnu>
    3     4 │ [build] rustc 0 <x86_64-unknown-linux-gnu> -> WasmComponentLd 1 <x86_64-unknown-linux-gnu>
    4     5 │ [build] rustc 0 <x86_64-unknown-linux-gnu> -> UnstableBookGen 1 <x86_64-unknown-linux-gnu>
    5     6 │ [build] rustc 0 <x86_64-unknown-linux-gnu> -> Rustbook 1 <x86_64-unknown-linux-gnu>
    6     7 │ [doc] unstable-book (book) <x86_64-unknown-linux-gnu>
┈┈┈┈┈┈┈┈┈┈┈┈┼┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
   12    13 │ [build] rustdoc 1 <x86_64-unknown-linux-gnu>
   13    14 │ [doc] rustc 1 <x86_64-unknown-linux-gnu> -> standalone 2 <x86_64-unknown-linux-gnu>
   14    15 │ [doc] rustc 1 <x86_64-unknown-linux-gnu> -> std 1 <x86_64-unknown-linux-gnu> crates=[alloc,compiler_builtins,core,panic_abort,panic_unwind,proc_macro,rustc-std-workspace-core,std,std_detect,sysroot,test,unwind]
   15    16 │ [build] rustc 1 <x86_64-unknown-linux-gnu> -> rustc 2 <x86_64-unknown-linux-gnu>
         17 │+[build] rustc 1 <x86_64-unknown-linux-gnu> -> WildLinker 2 <x86_64-unknown-linux-gnu>
   16    18 │ [build] rustc 1 <x86_64-unknown-linux-gnu> -> WasmComponentLd 2 <x86_64-unknown-linux-gnu>
   17    19 │ [build] rustc 1 <x86_64-unknown-linux-gnu> -> error-index 2 <x86_64-unknown-linux-gnu>
   18    20 │ [doc] rustc 1 <x86_64-unknown-linux-gnu> -> error-index 2 <x86_64-unknown-linux-gnu>
   19    21 │ [doc] nomicon (book) <x86_64-unknown-linux-gnu>
────────────┴───────────────────────────────────────────────────────────────────
Stopped on the first failure. Run `cargo insta test` to run all snapshots.

thread 'core::builder::tests::snapshot::install_extended' (10916) panicked at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.47.2/src/runtime.rs:719:13:
snapshot assertion for 'install_extended' failed in line 3029
stack backtrace:
   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: <insta::runtime::SnapshotAssertionContext>::finalize
             at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.47.2/src/runtime.rs:719:13
   3: insta::runtime::assert_snapshot
             at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.47.2/src/runtime.rs:937:13
   4: bootstrap::core::builder::tests::snapshot::install_extended
             at ./src/core/builder/tests.rs:3029:9
   5: bootstrap::core::builder::tests::snapshot::install_extended::{closure#0}
             at ./src/core/builder/tests.rs:3027:26
   6: <bootstrap::core::builder::tests::snapshot::install_extended::{closure#0} as core::ops::function::FnOnce<()>>::call_once
---
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: install_src
Source: src/bootstrap/src/core/builder/tests.rs:2942
────────────────────────────────────────────────────────────────────────────────
Expression: ctx.config("install").path("src").args(&["--set",
&format!("install.prefix={}", ctx.normalized_dir()), "--set",
&format!("install.bindir={}", ctx.normalized_dir()), "--set",
&format!("install.libdir={}", ctx.normalized_dir()), "--set",
&format!("install.datadir={}", ctx.normalized_dir()), "--set",
&format!("install.mandir={}", ctx.normalized_dir()), "--set",
&format!("install.sysconfdir={}", ctx.normalized_dir()), "--build",
"x86_64-unknown-linux-gnu", "--host", "x86_64-unknown-linux-gnu", "--target",
"x86_64-unknown-linux-gnu",]).get_steps().render_with(RenderConfig
{ normalize_host: false })
────────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬───────────────────────────────────────────────────────────────────
    1     1 │ [build] llvm <x86_64-unknown-linux-gnu>
    2     2 │ [build] rustc 0 <x86_64-unknown-linux-gnu> -> rustc 1 <x86_64-unknown-linux-gnu>
          3 │+[build] rustc 0 <x86_64-unknown-linux-gnu> -> WildLinker 1 <x86_64-unknown-linux-gnu>
    3     4 │ [build] rustc 0 <x86_64-unknown-linux-gnu> -> UnstableBookGen 1 <x86_64-unknown-linux-gnu>
    4     5 │ [build] rustc 0 <x86_64-unknown-linux-gnu> -> Rustbook 1 <x86_64-unknown-linux-gnu>
    5     6 │ [doc] unstable-book (book) <x86_64-unknown-linux-gnu>
    6     7 │ [build] rustc 1 <x86_64-unknown-linux-gnu> -> std 1 <x86_64-unknown-linux-gnu>
┈┈┈┈┈┈┈┈┈┈┈┈┼┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
   11    12 │ [build] rustdoc 1 <x86_64-unknown-linux-gnu>
   12    13 │ [doc] rustc 1 <x86_64-unknown-linux-gnu> -> standalone 2 <x86_64-unknown-linux-gnu>
   13    14 │ [doc] rustc 1 <x86_64-unknown-linux-gnu> -> std 1 <x86_64-unknown-linux-gnu> crates=[alloc,compiler_builtins,core,panic_abort,panic_unwind,proc_macro,rustc-std-workspace-core,std,std_detect,sysroot,test,unwind]
   14    15 │ [build] rustc 1 <x86_64-unknown-linux-gnu> -> rustc 2 <x86_64-unknown-linux-gnu>
         16 │+[build] rustc 1 <x86_64-unknown-linux-gnu> -> WildLinker 2 <x86_64-unknown-linux-gnu>
   15    17 │ [build] rustc 1 <x86_64-unknown-linux-gnu> -> error-index 2 <x86_64-unknown-linux-gnu>
   16    18 │ [doc] rustc 1 <x86_64-unknown-linux-gnu> -> error-index 2 <x86_64-unknown-linux-gnu>
   17    19 │ [doc] nomicon (book) <x86_64-unknown-linux-gnu>
   18    20 │ [doc] rustc 1 <x86_64-unknown-linux-gnu> -> reference (book) 2 <x86_64-unknown-linux-gnu>
────────────┴───────────────────────────────────────────────────────────────────
Stopped on the first failure. Run `cargo insta test` to run all snapshots.

thread 'core::builder::tests::snapshot::install_src' (11042) panicked at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.47.2/src/runtime.rs:719:13:
snapshot assertion for 'install_src' failed in line 2942
stack backtrace:
   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: <insta::runtime::SnapshotAssertionContext>::finalize
             at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.47.2/src/runtime.rs:719:13
   3: insta::runtime::assert_snapshot
             at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.47.2/src/runtime.rs:937:13
   4: bootstrap::core::builder::tests::snapshot::install_src
             at ./src/core/builder/tests.rs:2942:9
   5: bootstrap::core::builder::tests::snapshot::install_src::{closure#0}
             at ./src/core/builder/tests.rs:2940:21
   6: <bootstrap::core::builder::tests::snapshot::install_src::{closure#0} as core::ops::function::FnOnce<()>>::call_once
---
##[endgroup]
Dist rust-docs-1.98.0-dev-x86_64-unknown-linux-gnu
##[group]Installing stage2 docs (stage1 -> stage2, x86_64-unknown-linux-gnu)
##[endgroup]
##[group]Vendoring sources to "/tmp/.tmpVhSMzm/build/tmp-dry-run/tmp/tarball/rust-src/image/lib/rustlib/src/rust"
##[endgroup]
Dist rust-src-1.98.0-dev
##[group]Installing src for x86_64-unknown-linux-gnu
##[endgroup]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: install_src_no_docs
Source: src/bootstrap/src/core/builder/tests.rs:2998
────────────────────────────────────────────────────────────────────────────────
Expression: ctx.config("install").path("src").args(&["--set",
&format!("install.prefix={}", ctx.normalized_dir()), "--set",
&format!("install.bindir={}", ctx.normalized_dir()), "--set",
&format!("install.libdir={}", ctx.normalized_dir()), "--set",
&format!("install.datadir={}", ctx.normalized_dir()), "--set",
&format!("install.mandir={}", ctx.normalized_dir()), "--set",
&format!("install.sysconfdir={}", ctx.normalized_dir()), "--set",
"build.docs=false", "--build", "x86_64-unknown-linux-gnu", "--host",
"x86_64-unknown-linux-gnu", "--target",
"x86_64-unknown-linux-gnu",]).get_steps().render_with(RenderConfig
{ normalize_host: false })
────────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬───────────────────────────────────────────────────────────────────
    1     1 │ [build] llvm <x86_64-unknown-linux-gnu>
    2     2 │ [build] rustc 0 <x86_64-unknown-linux-gnu> -> rustc 1 <x86_64-unknown-linux-gnu>
          3 │+[build] rustc 0 <x86_64-unknown-linux-gnu> -> WildLinker 1 <x86_64-unknown-linux-gnu>
    3     4 │ [build] rustc 0 <x86_64-unknown-linux-gnu> -> RustInstaller 1 <x86_64-unknown-linux-gnu>
    4     5 │ [dist] docs <x86_64-unknown-linux-gnu>
    5     6 │ [dist] src <>
────────────┴───────────────────────────────────────────────────────────────────
Stopped on the first failure. Run `cargo insta test` to run all snapshots.

thread 'core::builder::tests::snapshot::install_src_no_docs' (11093) panicked at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.47.2/src/runtime.rs:719:13:
snapshot assertion for 'install_src_no_docs' failed in line 2998
stack backtrace:
   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: <insta::runtime::SnapshotAssertionContext>::finalize
             at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.47.2/src/runtime.rs:719:13
   3: insta::runtime::assert_snapshot
             at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.47.2/src/runtime.rs:937:13
   4: bootstrap::core::builder::tests::snapshot::install_src_no_docs
             at ./src/core/builder/tests.rs:2998:9
   5: bootstrap::core::builder::tests::snapshot::install_src_no_docs::{closure#0}
             at ./src/core/builder/tests.rs:2996:29
   6: <bootstrap::core::builder::tests::snapshot::install_src_no_docs::{closure#0} as core::ops::function::FnOnce<()>>::call_once

@mati865
Copy link
Copy Markdown
Member Author

mati865 commented May 26, 2026

Perhaps LLD can handle LLVM-IR without explicit plugin?

error: linking with `cc` failed: exit status: 1
  |
  = note:  "cc" "-Wl,--version-script=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/deps/rustcfQ9938/list" "-Wl,--no-undefined-version" "<256 object files omitted>" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/deps/rustcfQ9938/rmeta.o" "-Wl,--as-needed" "-Wl,-Bstatic" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/deps/rustcfQ9938/{librustc_codegen_llvm-b53a9454f1a44ace,librustc_llvm-63c4fcece66304bd,libblake3-da0bf9ffdc804c13,libpsm-c33f6768f7caa2ea,libprofiler_builtins-0903ca5b7d92b67d}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-*.rlib" "-Wl,-Bdynamic" "-ldl" "-lLLVM-22-rust-1.98.0-nightly" "-ldl" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/deps/rustcfQ9938/raw-dylibs" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/wild-gcc-ld" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/wild-gcc-ld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/psm-5b3c8cd0de07bd1e/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/blake3-954754163e17057e/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/rustc_llvm-4ef6a55664ab6d46/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/lib" "-L" "/rustroot/bin/../lib/gcc/x86_64-pc-linux-gnu/9.5.0/../../../../lib64" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-5e884912265112cb.so" "-shared" "-Wl,-soname=librustc_driver-5e884912265112cb.so" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs" "-u" "__llvm_profile_runtime" "-Wl,-z,origin" "-Wl,-rpath,$ORIGIN/../lib" "-Wl,--icf=all"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: wild: warning: --icf=all is not yet supported
          wild: error: Input file /checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/deps/rustcfQ9938/librustc_codegen_llvm-b53a9454f1a44ace.rlib @ ef10e86dc40538c1-PassWrapper.o contains LLVM-IR, but the linker plugin ((/rustroot/libexec/gcc/x86_64-pc-linux-gnu/9.5.0/liblto_plugin.so)) didn't claim it
          collect2: error: ld returned 255 exit status

@bors try

rust-bors Bot pushed a commit that referenced this pull request May 26, 2026
@rust-bors

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 26, 2026

☀️ Try build successful (CI)
Build commit: bf6ae7d (bf6ae7d44cc84cd8f73d477b3f387ee56f8ccf16, parent: b4fefcd60bfd770510f7dc540e887dd3ba4fe5c1)

@mati865
Copy link
Copy Markdown
Member Author

mati865 commented May 26, 2026

@rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label May 26, 2026
@mati865
Copy link
Copy Markdown
Member Author

mati865 commented May 26, 2026

@rust-timer build bf6ae7d

@rust-timer

This comment has been minimized.

@bjorn3
Copy link
Copy Markdown
Member

bjorn3 commented May 26, 2026

Perhaps LLD can handle LLVM-IR without explicit plugin?

Indeed. I don't think LLD even supports linker plugins at all. It just has hard coded support for LLVM LTO.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (bf6ae7d): 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.8% [0.3%, 1.6%] 9
Regressions ❌
(secondary)
0.5% [0.3%, 0.9%] 6
Improvements ✅
(primary)
-4.0% [-6.9%, -0.7%] 6
Improvements ✅
(secondary)
-1.9% [-6.1%, -0.1%] 31
All ❌✅ (primary) -1.1% [-6.9%, 1.6%] 15

Max RSS (memory usage)

Results (primary -4.7%, 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.0% [1.7%, 2.3%] 3
Regressions ❌
(secondary)
3.5% [2.2%, 6.6%] 7
Improvements ✅
(primary)
-8.7% [-21.0%, -3.2%] 5
Improvements ✅
(secondary)
-4.9% [-4.9%, -4.9%] 1
All ❌✅ (primary) -4.7% [-21.0%, 2.3%] 8

Cycles

Results (primary -5.0%, secondary -5.8%)

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)
- - 0
Improvements ✅
(primary)
-5.0% [-9.5%, -2.4%] 10
Improvements ✅
(secondary)
-5.8% [-9.0%, -2.5%] 17
All ❌✅ (primary) -5.0% [-9.5%, -2.4%] 10

Binary size

Results (primary -1.1%, secondary -1.6%)

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

mean range count
Regressions ❌
(primary)
0.9% [0.9%, 1.0%] 4
Regressions ❌
(secondary)
3.2% [0.1%, 4.1%] 5
Improvements ✅
(primary)
-1.4% [-2.4%, -0.4%] 23
Improvements ✅
(secondary)
-2.1% [-4.1%, -0.0%] 45
All ❌✅ (primary) -1.1% [-2.4%, 1.0%] 27

Bootstrap: 518.746s -> 578.311s (11.48%)
Artifact size: 400.67 MiB -> 400.62 MiB (-0.01%)

@rustbot rustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels May 26, 2026
@mati865
Copy link
Copy Markdown
Member Author

mati865 commented May 26, 2026

Indeed. I don't think LLD even supports linker plugins at all. It just has hard coded support for LLVM LTO.

Bummer, but thanks for the confirmation.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 30, 2026

☔ The latest upstream changes (presumably #157121) made this pull request unmergeable. Please resolve the merge conflicts.

@mati865 mati865 closed this May 30, 2026
@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label May 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool perf-regression Performance regression. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants