Rollup of 6 pull requests#151436
Conversation
LLVM 23 will mark the stack as aligned for more efficient code: llvm/llvm-project#176041
…fJung `c_variadic`: impl `va_copy` and `va_end` as Rust intrinsics tracking issue: rust-lang#44930 Implement `va_copy` as (the rust equivalent of) `memcpy`, which is the behavior of all current LLVM targets. By providing our own implementation, we can guarantee its behavior. These guarantees are important for implementing c-variadics in e.g. const-eval. Discussed in [#t-compiler/const-eval > c-variadics in const-eval](https://rust-lang.zulipchat.com/#narrow/channel/146212-t-compiler.2Fconst-eval/topic/c-variadics.20in.20const-eval/with/565509704). I've also updated the comment for `Drop` a bit. The background here is that the C standard requires that `va_end` is used in the same function (and really, in the same scope) as the corresponding `va_start` or `va_copy`. That is because historically `va_start` would start a scope, which `va_end` would then close. e.g. https://softwarepreservation.computerhistory.org/c_plus_plus/cfront/release_3.0.3/source/incl-master/proto-headers/stdarg.sol ```c #define va_start(ap, parmN) {\ va_buf _va;\ _vastart(ap = (va_list)_va, (char *)&parmN + sizeof parmN) #define va_end(ap) } #define va_arg(ap, mode) *((mode *)_vaarg(ap, sizeof (mode))) ``` The C standard still has to consider such implementations, but for Rust they are irrelevant. Hence we can use `Clone` for `va_copy` and `Drop` for `va_end`.
…onathanBrouwer Port `#[patchable_function_entry]` to attr parser This is the last codegen attr (see rust-lang#151335 and rust-lang#151336)! Tracking issue: rust-lang#131229 currently this PR is rebased on rust-lang#151336 to make CI pass for the last commit to see the actual changes in this PR you can look [here](https://github.com/rust-lang/rust/pull/151340/changes/3e731f7e84301a898a36e46ee5e4845ff9bda98a..55111fb468808b733e97170a841217a67666ac33)
…t-trait-supertraits, r=Kivooeo Deduplicate diagnostics for const trait supertraits Fixes rust-lang#150052
missing colon after the compile-flags directive This is a trivial issue as the title suggests. All tests in the `ui` test suite have a colon after the `compile-flags` directive except for this one.
Port variance attrs to attr parser. Tracking issue: rust-lang#131229 Ports rustc_variance and rustc_variance_of_opaques to be parsed attributes. Info: https://rustc-dev-guide.rust-lang.org/variance.html
s390x: Support aligned stack datalayout LLVM 23 will mark the stack as aligned for more efficient code: llvm/llvm-project#176041 r? durin42 @rustbot label llvm-main
|
@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: d276646872 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 d276646 (parent) -> 88ad3d4 (this PR) Test differencesShow 461 test diffsStage 0
Stage 1
(and 357 additional test diffs) Additionally, 4 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 88ad3d44ca811d988cb4df35f7ab8ac9d4fca451 --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 (88ad3d4): comparison URL. Overall result: ❌✅ regressions and 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 (secondary -2.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 3.2%, secondary 4.0%)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: 472.604s -> 472.964s (0.08%) |
Successful merges:
c_variadic: implva_copyandva_endas Rust intrinsics #150436 (c_variadic: implva_copyandva_endas Rust intrinsics)#[patchable_function_entry]to attr parser #151340 (Port#[patchable_function_entry]to attr parser)Failed merges:
r? @ghost
Create a similar rollup