-
Notifications
You must be signed in to change notification settings - Fork 13.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do not enable ThinLTO on stable, beta, or nightly builds. #47834
Conversation
r? @aturon (rust_highfive has picked a reviewer for you, use r? to override) |
Not sure if we want to disable this for nightly builds, but the other two I feel fairly confident about. |
Thanks! I think we want to keep this enabled though for the rest of CI? I think as-is it'd blanket turn it off on Travis/AppVeyor? |
So keep ThinLTO on for nightly but not beta and stable? I am okay with that. |
Hm actually, how about an off-by-default option enabled here which is our area for "produce a release config flags to pass" stuff |
7301e14
to
bbb9860
Compare
@bors try -- to test and make sure that nothing breaks on dist builds |
Do not enable ThinLTO on stable, beta, or nightly builds. Developers testing locally (-dev profile) may want faster builds for slightly slower compilers (~5%) whereas dist builds should always be as fast as we can make them, and since those run on CI we don't care quite as much for the build being somewhat slower. As such, we don't automatically enable ThinLTO on builds for the stable, beta, or nightly channels. Fixes #45444
💔 Test failed - status-travis |
Won't you need to specify 1 codegen unit as rustc defaults to 16 now or am I missing something? |
bbb9860
to
08159e9
Compare
@bors try |
Do not enable ThinLTO on stable, beta, or nightly builds. Developers testing locally (-dev profile) may want faster builds for slightly slower compilers (~5%) whereas dist builds should always be as fast as we can make them, and since those run on CI we don't care quite as much for the build being somewhat slower. As such, we don't automatically enable ThinLTO on builds for the stable, beta, or nightly channels. Fixes #45444
☀️ Test successful - status-travis |
@alexcrichton Ready for another review. |
src/bootstrap/config.rs
Outdated
@@ -466,6 +468,7 @@ impl Config { | |||
set(&mut config.quiet_tests, rust.quiet_tests); | |||
set(&mut config.test_miri, rust.test_miri); | |||
set(&mut config.wasm_syscall, rust.wasm_syscall); | |||
config.rust_thinlto = rust.thinlto.unwrap_or(true); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this section will only get hit if rust
is Some
(which it may not be), so could the default-true initialization happen sooner?
I think due to the change in defaults in rustc this ay also not work? When thinlto is disabled I think we'll want to basically pass |
Dist builds should always be as fast as we can make them, and since those run on CI we don't care quite as much for the build being somewhat slower. As such, we don't automatically enable ThinLTO on builds for the dist builders.
08159e9
to
e1f04c0
Compare
Updated to pass the 1-codegen-unit option to rustc. |
@bors: r+ |
📌 Commit e1f04c0 has been approved by |
Do not enable ThinLTO on stable, beta, or nightly builds. Fixes #45444
☀️ Test successful - status-appveyor, status-travis |
Fixes #45444