Skip to content

Conversation

@mati865
Copy link
Member

@mati865 mati865 commented Sep 10, 2025

Looks like there is quite a lot of a publicity here, so I probably at least provide minimal info if somebody wants to try it out.

You can try it locally out by adding -Clinker=wild to RUSTFLAGS or with cargo +<toolchain_name> rustc -- -C linker=wild and verify whether it works by running readelf -p .comment target/debug/<binary/shared object name> | rg -i linker - it should say Wild ....
This experiment only covers x86_64-unknown-linux-gnu host for now.

@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 Sep 10, 2025
@mati865

This comment was marked as resolved.

@rust-timer

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Sep 10, 2025
[nothing to see here yet] Experiments
@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 Sep 10, 2025
@mati865 mati865 added the S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state. label Sep 10, 2025
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

This comment was marked as resolved.

@lqd

This comment was marked as resolved.

@mati865

This comment was marked as resolved.

@mati865

This comment was marked as resolved.

@mati865

This comment was marked as resolved.

rust-bors bot added a commit that referenced this pull request Sep 11, 2025
[nothing to see here yet] Experiments
@rust-bors

This comment has been minimized.

@rust-log-analyzer

This comment was marked as off-topic.

@rust-bors

This comment was marked as resolved.

@rust-log-analyzer

This comment has been minimized.

@mati865

This comment was marked as resolved.

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Sep 12, 2025
[nothing to see here yet] Experiments
@rust-log-analyzer

This comment has been minimized.

@rust-bors

This comment was marked as resolved.

@rust-timer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link

rust-bors bot commented Sep 15, 2025

☀️ Try build successful (CI)
Build commit: 8d02507 (8d02507f77424e2db34b91eaac187b532c4f3244, parent: d1ed52b1f5b78bf66127b670af813b84d57aeedb)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (8d02507): 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
Improvements ✅
(primary)
-3.2% [-8.9%, -0.4%] 29
Improvements ✅
(secondary)
-1.9% [-7.6%, -0.1%] 71
All ❌✅ (primary) -3.2% [-8.9%, -0.4%] 29

Max RSS (memory usage)

Results (primary -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)
- - 0
Improvements ✅
(primary)
-5.7% [-12.4%, -0.6%] 3
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -5.7% [-12.4%, -0.6%] 3

Cycles

Results (primary 9.0%, secondary 10.3%)

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

mean range count
Regressions ❌
(primary)
11.0% [2.3%, 29.2%] 11
Regressions ❌
(secondary)
11.2% [2.2%, 31.7%] 28
Improvements ✅
(primary)
-2.2% [-2.2%, -2.2%] 2
Improvements ✅
(secondary)
-1.9% [-2.3%, -1.4%] 2
All ❌✅ (primary) 9.0% [-2.2%, 29.2%] 13

Binary size

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

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%, 0.9%] 4
Regressions ❌
(secondary)
1.3% [0.8%, 1.4%] 4
Improvements ✅
(primary)
-1.4% [-3.3%, -0.4%] 31
Improvements ✅
(secondary)
-1.8% [-4.9%, -0.0%] 85
All ❌✅ (primary) -1.1% [-3.3%, 0.9%] 35

Bootstrap: 473.872s -> 517.604s (9.23%)
Artifact size: 390.16 MiB -> 390.17 MiB (0.00%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Sep 15, 2025
@mati865
Copy link
Member Author

mati865 commented Sep 19, 2025

Summary of Wild compared to LLD:

Keep in mind those are wall-times which are prone to be noisy, so focus on the general tendencies, rather than specific cases.

@mati865 mati865 closed this Sep 19, 2025
@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 Sep 19, 2025
@mati865 mati865 changed the title [nothing to see here yet] Experiments Wild experiments Sep 23, 2025
@hkBst
Copy link
Member

hkBst commented Sep 25, 2025

I was puzzled by bootstrap taking longer, but that is because it now also includes the time to build wild, right?

@mati865
Copy link
Member Author

mati865 commented Sep 25, 2025

Yes, I made it a part of rustc to make the benchmarking simple. In the proper setup, it'd be an optional component that can be enabled or disabled.

@mati865 mati865 reopened this Nov 8, 2025
@rustbot rustbot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Nov 8, 2025
@mati865
Copy link
Member Author

mati865 commented Nov 8, 2025

@bors try @rust-timer queue

0.7 was released recently.

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Nov 8, 2025
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Nov 8, 2025
@rust-log-analyzer
Copy link
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)
fmt: checked 6531 files
tidy check
tidy [rustdoc_json (src)]: `rustdoc-json-types` modified, checking format version
tidy: Skipping binary file check, read-only filesystem
tidy [style (compiler)]: /checkout/compiler/rustc_target/src/spec/mod.rs:131: TODO is used for tasks that should be done before merging a PR; If you want to leave a message in the codebase use FIXME
tidy [style (compiler)]: FAIL
tidy: The following check failed: style (compiler)
Command `/checkout/obj/build/aarch64-unknown-linux-gnu/stage1-tools-bin/rust-tidy /checkout /checkout/obj/build/aarch64-unknown-linux-gnu/stage0/bin/cargo /checkout/obj/build 4 npm` failed with exit code 1
Created at: src/bootstrap/src/core/build_steps/tool.rs:1650:23
Executed at: src/bootstrap/src/core/build_steps/test.rs:1279:29

Command has failed. Rerun with -v to see more details.
Bootstrap failed while executing `--stage 2 test --skip tests --skip coverage-map --skip coverage-run --skip library --skip tidyselftest`
Build completed unsuccessfully in 0:00:50
  local time: Sat Nov  8 00:30:12 UTC 2025
  network time: Sat, 08 Nov 2025 00:30:12 GMT
##[error]Process completed with exit code 1.

@rust-bors
Copy link

rust-bors bot commented Nov 8, 2025

☀️ Try build successful (CI)
Build commit: 357fa00 (357fa000ef4c410dafcae618e021d93c13be546d, parent: 843f8ce2ebc01d35a30484eadc8a84cdc6130844)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (357fa00): 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
Improvements ✅
(primary)
-4.1% [-11.7%, -0.4%] 29
Improvements ✅
(secondary)
-2.9% [-10.4%, -0.2%] 69
All ❌✅ (primary) -4.1% [-11.7%, -0.4%] 29

Max RSS (memory usage)

Results (primary -9.2%)

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)
-9.2% [-14.5%, -3.8%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -9.2% [-14.5%, -3.8%] 2

Cycles

Results (primary -6.2%, secondary -4.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)
3.5% [3.5%, 3.5%] 1
Improvements ✅
(primary)
-6.2% [-10.4%, -2.2%] 14
Improvements ✅
(secondary)
-5.0% [-10.2%, -2.2%] 35
All ❌✅ (primary) -6.2% [-10.4%, -2.2%] 14

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%, 0.9%] 4
Regressions ❌
(secondary)
1.3% [0.8%, 1.4%] 4
Improvements ✅
(primary)
-1.4% [-3.4%, -0.4%] 32
Improvements ✅
(secondary)
-1.8% [-4.9%, -0.0%] 87
All ❌✅ (primary) -1.1% [-3.4%, 0.9%] 36

Bootstrap: 483.325s -> 518.997s (7.38%)
Artifact size: 390.81 MiB -> 390.83 MiB (0.01%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Nov 8, 2025
@mati865 mati865 closed this Nov 8, 2025
@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 Nov 8, 2025
@mati865
Copy link
Member Author

mati865 commented Nov 8, 2025

From last time's 7% wall-time improvement to 9.7% wall-time improvement. Getting better.

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 S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state. 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