-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
Rollup of 6 pull requests #151436
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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