Rollup of 6 pull requests - #162687
Conversation
After the separation from `DenseBitSet` and the removal of unused methods, growable bitsets have no need to track an explicit domain size separate from the length of their storage vec.
The bitset entries tracked by this code don't have a naturally fixed domain, so using GrowableBitSet makes more sense than repeatedly resizing a DenseBitSet.
The direct dependency from `rustc_codegen_ssa` to `rustc_mir_transform` allowed codegen to reuse some MIR-transform code for identifying unnecessary landing pads. However, we can achieve the same result by calling through a hook on `TyCtxt`, eliminating the crate dependency.
Use GrowableBitSet in the main loop of `rustc_mir_transform::sroa` - Follow-up to rust-lang#161957 --- The first commit is a cleanup based on rust-lang#161957 (comment) by @panstromek. After having disconnected GrowableBitSet from DenseBitSet and removed unused methods, there is no longer any reason to keep track of a separate `domain_size` in GrowableBitSet. After that, I wanted to get rid of `DenseBitSet::enlarge`, since having it around is not a good fit for the intended purpose of DenseBitSet as a fixed-domain set. After looking more closely at the code in `rustc_mir_transform::sroa` that uses it, I concluded that that code would be better off using GrowableBitSet instead. GrowableBitSet is just as dense, but avoids the need to set a fixed domain size in advance. The changes to SROA require adding `GrowableBitSet::union`, which is easier after having removed `domain_size`. (I am not deeply familiar with the SROA pass, but its usage of bitsets seems fairly straightforward in this case.) There should be no change to compiler output.
…uppe Disconnect `rustc_codegen_ssa` from `rustc_mir_transform` The direct dependency from `rustc_codegen_ssa` to `rustc_mir_transform` allowed codegen to reuse some MIR-transform code for identifying unnecessary landing pads (for rust-lang#143208). However, we can achieve the same result by calling through a hook on `TyCtxt`, eliminating the crate dependency. --- There should be no change to compiler output.
…yUwU Remove unused arguments of functions That these arguments are unused was hidden by the `#[trace::instrument]` macro, which uses the arguments. I don't see an easy way to avoid this from happening in the future.
…ypo, r=jieyouxu
Rustdoc issue template: fix typo in comment ("thorugh")
…umeGomez Add `E0747` explanation for `type/const` mismatch case Fixes rust-lang#162320 r? @GuillaumeGomez
…nna-kruppe Stabilize `Vec::from_fn` Tracking issue: rust-lang#149698.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Rollup of 6 pull requests try-job: dist-various-1 try-job: test-various try-job: test-x86_64-gnu-aux try-job: test-x86_64-gnu-llvm-21-3 try-job: test-x86_64-msvc-1 try-job: test-aarch64-apple-1 try-job: test-aarch64-apple-2 try-job: test-x86_64-mingw-1 try-job: test-i686-msvc try-job: test-armhf-gnu
…uwer Rollup of 6 pull requests Successful merges: - #162623 (Use GrowableBitSet in the main loop of `rustc_mir_transform::sroa`) - #162678 (Disconnect `rustc_codegen_ssa` from `rustc_mir_transform`) - #162641 (Remove unused arguments of functions) - #162663 (Rustdoc issue template: fix typo in comment ("thorugh")) - #162684 (Add `E0747` explanation for `type/const` mismatch case) - #162685 (Stabilize `Vec::from_fn`)
|
@bors yield |
|
Auto build was cancelled. Cancelled workflows: The next pull request likely to be tested is #160377. |
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 adcc5f3 (parent) -> 809936e (this PR) Test differencesShow 393 test diffsStage 0
Stage 1
Additionally, 391 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 809936eac66c547a5127ce1da805f0d3a6789b98 --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 (809936e): comparison URL. Overall result: ✅ improvements - no action needed@rustbot label: -perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary -0.2%, secondary -2.5%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary -0.5%, secondary -3.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 493.58s -> 493.911s (0.07%) |
|
📌 Perf builds for each rolled up PR:
parent commit: adcc5f3bdc In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
Successful merges:
rustc_mir_transform::sroa#162623 (Use GrowableBitSet in the main loop ofrustc_mir_transform::sroa)rustc_codegen_ssafromrustc_mir_transform#162678 (Disconnectrustc_codegen_ssafromrustc_mir_transform)E0747explanation fortype/constmismatch case #162684 (AddE0747explanation fortype/constmismatch case)Vec::from_fn#162685 (StabilizeVec::from_fn)r? @ghost
Create a similar rollup