Rollup of 7 pull requests#159057
Conversation
On platforms where `clang` defines `__int128`.
Since the bootstrap command execution redesign, build_helper no longer has to implement these functions. By moving them to boostrap, we can enrich them with bootstrap-specific information.
…ingjubilee Support `u128`/`i128` c-variadic arguments The restriction on `u128` is kind of arbitrary, so let's see what it would take to support it. r? @ghost
…saethlin Fix `unaligned_volatile_store` by removing `MemFlags::UNALIGNED` Fixes rust-lang#158897 There seems to be no reason to have this flag at all, as anything that wants it should just adjust the https://doc.rust-lang.org/nightly/nightly-rustc/rustc_codegen_ssa/mir/place/struct.PlaceValue.html#structfield.align instead. r? codegen
…-param-nesed-case, r=BoxyUwU Handle nested inline consts in const argument checks More info here: rust-lang#158375 (comment) r? @BoxyUwU cc: @khyperia
…=joboet [perf] Add explicit `Iterator::count` impl for `ChunkBy`. Prior to this PR, `.chunk_by(..).count()` constructs were using the default `Iterator::count` implementation for `ChunkBy`, which was based on `Iterator::next()`. We can do noticeably better by writing a dedicated implementation, as measured [at this real-world call site in `omnibor-rs`](https://github.com/omnibor/omnibor-rs/blob/116c5c2281219dece9da4eddc7d2e2c47e4c81c4/omnibor/src/gitoid/internal.rs#L186). A local benchmark on my macOS laptop shows that using `omnibor-rs`'s public API to invoke `ArtifactId::sha256()` in a tight loop, with appropriate black-boxing, experiences a 5-7% CPU time win with the dedicated implementation. Of course the benchmark is sensitive to the exact length and contents of the file, hence the 5-7% range. But the 95% confidence interval for the amount of improvement in every benchmark I ran is <1% wide, so I am quite confident this is an improvement. I also extracted the relevant `omnibor-rs` use of `.chunk_by(..).count()` into a microbenchmark, which shows a 2.1-2.4x throughput improvement (-51.5-57.7% CPU time) with the new implementation. Disassembly of the baseline vs new implementation shows that the optimizer was able to vectorize the new implementation, while the baseline was not vectorized. **AI disclosure:** The optimization opportunity here was discovered as part of a systematic probe for missed optimizations utilizing both traditional and AI tools. The code here was initially prototyped and vetted by AI tools, followed by additional manual work. I secured approval in advance from the reviewer I pinged. I stand behind the quality of the code I'm submitting, and I vouch it's as good or better compared to if I had written every line by my own hand.
…youxu Introduce new bootstrap config section for PGO configuration The handling of PGO profiles in bootstrap was a bit messy, we had CLI flags, but those were hardcoded only for rustc and LLVM, and also a separate `rust.profile-use/profile-generate` options, though I'm not sure if anyone ever used them. I wanted to generalize this a bit, to allow experimenting with PGO optimizing also other parts of the toolchain (e.g. rustdoc, clippy, cargo). This PR introduces a new `[pgo]` section in the bootstrap config, which allows specifying PGO profiles using the config file, currently for `rustc` and LLVM. It can be also set through the command-line using e.g. `--set pgo.rustc.use=/tmp/foo`. Best reviewed commit by commit. r? @jieyouxu
…youxu Print step stack trace when bootstrap panics This should make it easier to debug what has happened, or rather where has bootstrap failed, when a panic occurs. ~~I also want to print the step trace on CI when bootstrap fails, but for that I have to first clean up some things in `build_helper`.~~ Nevermind, I added it to this PR. Fixes: rust-lang#159022 CC @jyn514 r? @jieyouxu
Print a loud error if the configured LLDB cannot be found Found in rust-lang#158298. r? @jieyouxu
|
⌛ Trying commit 7a0188b with merge c7be923… To cancel the try build, run the command Workflow: https://github.com/rust-lang/rust/actions/runs/29074893113 |
Rollup of 7 pull requests try-job: dist-various-1 try-job: test-various try-job: x86_64-gnu-aux try-job: x86_64-gnu-llvm-21-3 try-job: x86_64-msvc-1 try-job: aarch64-apple try-job: x86_64-mingw-1 try-job: i686-msvc-*
This comment has been minimized.
This comment has been minimized.
|
Not much lead time on the try jobs. @bors try cancel |
|
Try build cancelled. Cancelled workflows: |
|
📌 Perf builds for each rolled up PR:
previous master: 3ead112e67 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing 3ead112 (parent) -> cb014fc (this PR) Test differencesShow 47 test diffsStage 1
Stage 2
Additionally, 2 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard cb014fcb149e44d8aa16a8f66c9f2b1762f034f8 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (cb014fc): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)This perf run didn't have relevant results for this metric. CyclesResults (secondary 4.5%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary -0.1%, secondary -0.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 490.513s -> 490.017s (-0.10%) |
Successful merges:
u128/i128c-variadic arguments #155429 (Supportu128/i128c-variadic arguments)unaligned_volatile_storeby removingMemFlags::UNALIGNED#158899 (Fixunaligned_volatile_storeby removingMemFlags::UNALIGNED)Iterator::countimpl forChunkBy. #158866 ([perf] Add explicitIterator::countimpl forChunkBy.)r? @ghost
Create a similar rollup