Rollup of 5 pull requests#152361
Conversation
Thanks to 107634 and some improvements in LLVM (particularly `dead_on_unwind`), the method actually optimizes reasonably well now. So focus the discussion on the fundamental ordering differences where the optimizer might never be able to fix it because of the different behaviour, and encouraging `Iterator::map` where an array wasn't actually ever needed.
We were already setting `CARGO_TARGET_{target}_LINKER` when there is a
setting in `bootstrap.toml`, and when the host and target are the same,
this is also used for build scripts and proc-macros.
However, the host value wasn't set when building for any other target,
and Cargo would see that as a fingerprint change for those build
artifacts, rebuilding them.
If we always set the `CARGO_TARGET_{host}_LINKER`, then those build
scripts will keep a consistent Cargo fingerprint, so they'll remain
cached no matter how we're alternating targets.
* Stop having two different alignment constants * Update library/core/src/alloc/global.rs
…rk-Simulacrum add test for codegen of SIMD vector from array repeat fixes rust-lang#97804 It appears that this issue was fixed silently in LLVM 19. The original codegen was terrible, but starting at LLVM 19 `opt` is able to generate good code. https://llvm.godbolt.org/z/5vq8scP6q cc @programmerjake
…ark-Simulacrum
bootstrap: always propagate `CARGO_TARGET_{host}_LINKER`
We were already setting `CARGO_TARGET_{target}_LINKER` when there is a
setting in `bootstrap.toml`, and when the host and target are the same,
this is also used for build scripts and proc-macros.
However, the host value wasn't set when building for any other target,
and Cargo would see that as a fingerprint change for those build
artifacts, rebuilding them.
If we always set the `CARGO_TARGET_{host}_LINKER`, then those build
scripts will keep a consistent Cargo fingerprint, so they'll remain
cached no matter how we're alternating targets.
…lacrum Reword the caveats on `array::map` Thanks to rust-lang#107634 and some improvements in LLVM (particularly [`dead_on_unwind`](https://llvm.org/docs/LangRef.html#parameter-attributes)), the method actually optimizes reasonably well now. So focus the discussion on the fundamental ordering differences where the optimizer might never be able to fix it because of the different behaviour, and keep encouraging `Iterator::map` where an array wasn't actually ever needed.
…Mark-Simulacrum Stop having two different alignment constants Now that there's a `<T as SizedTypeProperties>::ALIGNMENT` constant, `Alignment::of` can use that instead of an inline constant, like how `Layout::new` uses the constant from `SizedTypeProperties`.
…-Simulacrum Remove more adhoc groups that correspond to teams Following in the footsteps of rust-lang#152310. - [types](https://github.com/rust-lang/team/blob/main/teams/types.toml) team - removed Niko and lqd from team rotation in triagebot - [project-const-traits](https://github.com/rust-lang/team/blob/main/teams/project-const-traits.toml) - no changes needed, whole team was already on rotation - [project-stable-mir](https://github.com/rust-lang/team/blob/main/teams/project-stable-mir.toml) - no changes needed, whole team was already on rotation - [project-exploit-mitigations](https://github.com/rust-lang/team/blob/main/teams/project-exploit-mitigations.toml) - removed 1c3t3a from team rotation in triagebot (TODO - it didn't work yet, need to fix triagebot to allow running commands on top of people that are only in project/working groups)
|
@bors r+ rollup=never p=5 |
This comment has been minimized.
This comment has been minimized.
|
📌 Perf builds for each rolled up PR:
previous master: 6efa357bff 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 6efa357 (parent) -> 1c316d3 (this PR) Test differencesShow 86 test diffsStage 1
Stage 2
Additionally, 78 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 1c316d34610a3cd31831d2ae8e5dd454f26de430 --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 (1c316d3): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)Results (primary 2.8%, secondary 1.7%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary 0.9%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 477.097s -> 475.432s (-0.35%) |
Successful merges:
CARGO_TARGET_{host}_LINKER#152077 (bootstrap: always propagateCARGO_TARGET_{host}_LINKER)array::map#126100 (Reword the caveats onarray::map)r? @ghost
Create a similar rollup