-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Compile the libstd we distribute with -Ccodegen-unit=1 #55264
Conversation
Hm, I'd prefer that we instead have this as codegen-unit-std=1 instead of single-codegen-unit-std=true; with that change, though, I think we should be able to use this. @bors try to get at least some amount of timing information |
Sure, no problem. |
Would it be possible to add the |
Yeah, that's probably the better way to do it. I think it should go somewhere here: https://github.com/rust-lang/rust/blob/master/src/ci/run.sh#L56 |
⌛ Trying commit c4ca23afbf1138f094fb813e7fe8eaaec73ef59c with merge 0c6e1283b0a9fe23e54018a5dcdd3ec6d84d1896... |
Your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem. Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
2 similar comments
Your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem. Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
Your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem. Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
💔 Test failed - status-travis |
Your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem. Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
Thanks for pointing that out, @nikic. That's a much better way of setting the flag. |
c4ca23a
to
4545b3e
Compare
@bors try |
Compile the libstd we distribute with -Ccodegen-unit=1 This PR - adds the `single-codegen-unit-std` option to `config.toml` which allows for setting the CGU count for `libstd` and `libtest` independently of the one for the rest of the compiler, and - sets the new option to `true` for all dist jobs in CI. Fixes #54872. r? @Mark-Simulacrum cc @rust-lang/release
💔 Test failed - status-travis |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
@bors try |
Compile the libstd we distribute with -Ccodegen-unit=1 This PR - adds the `single-codegen-unit-std` option to `config.toml` which allows for setting the CGU count for `libstd` and `libtest` independently of the one for the rest of the compiler, and - sets the new option to `true` for all dist jobs in CI. Fixes #54872. r? @Mark-Simulacrum cc @rust-lang/release
☀️ Test successful - status-travis |
@Mark-Simulacrum: Changes applied and try build succeeds |
@rust-timer build d803782 If this shows performance wins then we might want to enable this on all builds, not just dist builds, since it could make the compiler fast(er) sufficiently to make the wins on test compilations significant. |
Success: Queued d803782 with parent d74b402, comparison URL. |
Finished benchmarking try commit d803782 |
Performance looks pretty good! |
Can you make the change to set the flag on all CI builds vs. just dist builds? I would expect that to be mildly faster with tests so maybe worth it? r=me with that |
Interestingly, there's also a few percent of max-rss improvement. I wonder where that comes from, wouldn't have expected codegen units to affect this. Is LLVM optimizing away allocations here? |
03551e1
to
c4aa361
Compare
@bors r=Mark-Simulacrum |
📌 Commit c4aa361e3d0771b18ad2e832c4f28eb345acd686 has been approved by |
c4aa361
to
5dedf0c
Compare
Rebasing & re-approving in the hope that that will make the PR show up in the bors queue properly. @bors r=simulacrum |
📌 Commit 5dedf0c has been approved by |
…simulacrum Compile the libstd we distribute with -Ccodegen-unit=1 This PR - adds the `single-codegen-unit-std` option to `config.toml` which allows for setting the CGU count for `libstd` and `libtest` independently of the one for the rest of the compiler, and - sets the new option to `true` for all dist jobs in CI. Fixes rust-lang#54872.
Rollup of 21 pull requests Successful merges: - #54816 (Don't try to promote already promoted out temporaries) - #54824 (Cleanup rustdoc tests with `@!has` and `@!matches`) - #54921 (Add line numbers option to rustdoc) - #55167 (Add a "cheap" mode for `compute_missing_ctors`.) - #55258 (Fix Rustdoc ICE when checking blanket impls) - #55264 (Compile the libstd we distribute with -Ccodegen-unit=1) - #55271 (Unimplement ExactSizeIterator for MIR traversing iterators) - #55292 (Macro diagnostics tweaks) - #55298 (Point at macro definition when no rules expect token) - #55301 (List allowed tokens after macro fragments) - #55302 (Extend the impl_stable_hash_for! macro for miri.) - #55325 (Fix link to macros chapter) - #55343 (rustbuild: fix remap-debuginfo when building a release) - #55346 (Shrink `Statement`.) - #55358 (Remove redundant clone (2)) - #55370 (Update mailmap for estebank) - #55375 (Typo fixes in configure_cmake comments) - #55378 (rustbuild: use configured linker to build boostrap) - #55379 (validity: assert that unions are non-empty) - #55383 (Use `SmallVec` for the queue in `coerce_unsized`.) - #55391 (bootstrap: clean up a few clippy findings)
Upstream started this in rust-lang/rust#55264, which was released in Rust 1.32.
This PR
single-codegen-unit-std
option toconfig.toml
which allows for setting the CGU count forlibstd
andlibtest
independently of the one for the rest of the compiler, andtrue
for all dist jobs in CI.Fixes #54872.
r? @Mark-Simulacrum
cc @rust-lang/release