Repository navigation
Rollup of 7 pull requests - #165777
Rollup of 7 pull requests#165777
Conversation
In BPF, available set of atomic instructions depends on CPU version. Make the compiler aware of that distinction by adding the new field `per_cpu_atomic_widths`, then honor its value above `min_atomic_width` and `max_atomic_width`. Previously, we assumed availability of 64-bit acquire/release atomics for BPF, but that's not true for the v3/generic CPU (and older). In effect, `core::io::Error` failed to compile at ISel with `Cannot select: ... AtomicLoad`. rust-lang#135175 proposes making BPF target emit BPF binaries. That requires ability to build entire core library. This change partially fixes the issue. Code in this change is generated by (an open-weight and self-hosted) LLM, it was agreed on in the Zulip thread [0], where @nagisa volunteered as a reviewer. [0] https://rust-lang.zulipchat.com/#narrow/channel/606558-llm-reviews/topic/Seeking.20review.20for.20BPF.20bytecode.20linking.20.28issue.20.23135175.29/near/631892496
BPF: Define max/min atomic width per CPU version In BPF, available set of atomic instructions depends on CPU version. Make the compiler aware of that distinction by adding the new field `per_cpu_atomic_widths`, then honor its value above `min_atomic_width` and `max_atomic_width`. Previously, we assumed availability of 64-bit acquire/release atomics for BPF, but that's not true for the v3/generic CPU. In effect, `core::io::Error` failed to compile at ISel with `Cannot select: ... AtomicLoad`. rust-lang#135175 proposes making BPF target emit BPF binaries. That requires ability to build entire core library. This change partially fixes the issue. Code in this change is generated by (an open-weight and self-hosted) LLM, it was agreed on in the Zulip thread [0], where @nagisa volunteered as a reviewer. Fixes: rust-lang#165349 [0] https://rust-lang.zulipchat.com/#narrow/channel/606558-llm-reviews/topic/Seeking.20review.20for.20BPF.20bytecode.20linking.20.28issue.20.23135175.29/near/631892496 r? @nagisa
… r=oli-obk Avoid terminator: None in MIR building Another step towards changing `Option<Terminator>` to `Terminator` in `BasicBlockData`. More info in [this thread](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/vibe.20check.20-.20removing.20Option.20from.20Terminator/with/637588808). MIR building sometimes needs to keep blocks unterminated, so we model this explicitly outside of the `BasicBlockData` structure by using `Either<BasicBlockData, UnterminatedBlockData>`. Notably, this type has the same layout as `BasicBlockData`, so we don't need to reallocate when finalizing the MIR body. The relevant perf run is [the first one](rust-lang#165611 (comment)), the improvement is noise. I also tried using custom block representation that would keep terminator optional in [the second perf run](rust-lang#165611 (comment)), but it was a regression, because the blocks have to be reallocated and copied when building is finished. See rust-lang#165611 (comment) for the analysis.
…miasko Improve duplicate attribute diagnostics for active built-in attributes Can be reviewed commit by commit, every commit passes tests. This PR uses the same diagnostic that is used in attribute parsing, so it makes things more consistent and prettier.
…rary, r=Kobzol Fix `x bench library/std` Since rust-lang#149514, bootstrap was building std with the dist profile, but still using the default profile for `cargo bench`. This PR fixes that by ensuring that operations on std always use the dist profile.
…r-anchor, r=GuillaumeGomez [rustdoc-frontend] Properly clear search state when sidebar link is clicked Small fix (and test) for a bug I accidentally ran into. Repro steps: - Go to the i8 primitive's page (as an example, bug is not related to the specific page) - Click the search button to open the search bar - The search button gets replaced by the "exit" button - Click any anchor link from the sidebar - End up with the search bar closed but the button is still in the "exit" mode and not "search" mode, see screenshot: <img width="2234" height="482" alt="image" src="https://github.com/user-attachments/assets/8b887caf-d4da-4298-96e9-bd2e884c3430" />
…, r=joboet Disable no_threads compiler errors for Trusty targets rust-lang#158782 introduced compile-time checks to verify that targets using the no-thread implementation of sync primitives are actually marked single-threaded. This broke the Trusty targets, which are not marked single-threaded but are using the no-threads implementations. Trusty userspace doesn't have threads, but we can't mark the target single-threaded because we need atomic operations for shared-memory IPC. This PR adds an exception to the `#[cfg]` on the `compile_error!` to allow Trusty to use the no-thread sync implementations. Fixes rust-lang#165596
…=Urgau rustdoc: Rename `--show-coverage` CLI flag into `--coverage` Fixes rust-lang#159691. r? @Urgau
|
@bors r+ p=5 force |
This comment has been minimized.
This comment has been minimized.
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 6f1c7ee (parent) -> 9c56488 (this PR) Test differencesShow 5 test diffsStage 1
Stage 2
Additionally, 3 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 9c5648833e5ceb667a708d53c00b83ecc9e610d5 --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 (9c56488): 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. CyclesThis perf run didn't have relevant results for this metric. Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 483.518s -> 482.775s (-0.15%) |
|
📌 Perf builds for each rolled up PR:
parent commit: 6f1c7ee0ec In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: |
Successful merges:
x bench library/std#165762 (Fixx bench library/std)--show-coverageCLI flag into--coverage#165754 (rustdoc: Rename--show-coverageCLI flag into--coverage)r? @ghost
Create a similar rollup