Rollup of 17 pull requests#159444
Conversation
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
…type diverges a mismatch on `-> impl Iterator<Item = Ty>` only pointed at the signature, not at the call in the returned chain where `Item` actually changed. the failed predicate is useless for this, its already rewritten through the impls it was derived from, so the expected assoc types are read from the opaques own bounds and probed against the returned expression. on divergence the existing `point_at_chain` walk kicks in, same as it does for function arguments. handles the chain at the tail expression, behind a `let` binding, and derived through adapters like `flatten`. unrelated failures stay silent since the probe just doesnt resolve there. fixes rust-lang#106993
There is now only a single "module asm", not one before each line.
The assume here is not really relevant to the purpose of the test, and it's position changed in LLVM 23.
Codegen changed in: llvm/llvm-project@66c1b6f
This doesn't optimize as desired since: llvm/llvm-project@21f439f
These now have additional !guid metadata.
See RUST-159073, this test has been flaky with ``` /checkout/obj/build/x86_64-unknown-linux-gnu/test/debuginfo/function-call.gdb/function-call.debugger.script:11: Error in sourced command file: Couldn't write extended state status: Bad address. ``` on linux CI jobs under various environments and hosts/targets. I tried running this under GDB 15.1 locally (WSL, `x86_64-unknown-linux-gnu`) but could not reproduce. CI typically uses GDB 12.1 with Ubuntu 22.04. So gate this test with min GDB 15.1 which prevents it from running in CI to workaround the flakiness but still allow running it locally under GDB >= 15.1. It's *possible* there's a genuine problem here.
On Arm64EC the variadic portion of a c-variadic call must follow the MS x64 ABI: any argument that does not fit in 8 bytes, or whose size is not 1, 2, 4, or 8 bytes, is passed by reference. rustc's `va_arg` implementation already reads such arguments indirectly, but the caller side in `aarch64::compute_abi_info` passed a scalar `i128` by value (it is not an aggregate, so it bypassed `classify_arg`). The callee then dereferenced the inline value as a pointer, causing an access violation (0xC0000005) at runtime. Mark variadic-tail arguments larger than 8 bytes, or whose size is not a power of two, as indirect on Arm64EC so the caller and the `va_arg` reader agree. Fixed arguments are unaffected: a fixed `i128` is still passed by value, matching MSVC and Clang. Add a codegen test verifying that a variadic `i128` is passed as a pointer while a fixed `i128` is passed by value.
Forwards `clone_from` to `DenseBitSet`'s manual implementation. I don't believe this is currently used but I think it doesn't hurt, since it could be a small performance footgun.
We deprecated these awhile ago, and now all the usages are changed.
Update Enzyme to handle LLVM23 Enzyme just gained support for LLVM23, so update it to unblock our LLVM update. r? nikic
…rn-position, r=estebank fix: point at method call chain when a return-position `impl Trait` assoc type diverges a mismatch on `-> impl Iterator<Item = Ty>` only pointed at the signature, not at the call in the returned chain where `Item` actually changed. the failed predicate is useless for this, its already rewritten through the impls it was derived from, so the expected assoc types are read from the opaques own bounds and probed against the returned expression. on divergence the existing `point_at_chain` walk kicks in, same as it does for function arguments. handles the chain at the tail expression, behind a `let` binding and derived through adapters like `flatten`. unrelated failures stay silent since the probe just doesnt resolve there. fixes rust-lang#106993 r? @estebank
…jake Clarify safety requirements for SIMD shl/shr and masked load/store This PR fixes some safety documentation of SIMD functions. These functions are talked in Zulip topic: [Maybe some safety doc need fixs in intrinsics::simd](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/Maybe.20some.20safety.20doc.20need.20fixs.20in.20intrinsics.3A.3Asimd/with/609693756). Brief explanation: `simd_shl` and `simd_shr` may accept a `rhs` of negative value, but that value will be interpreted as unsigned and thus violate the requirement that `rhs` is less than `<int>::BITS`. So it's better to add a supplement that `rhs` must be in 0..`<int>::BITS`. Also, the `simd_shl` refer that `shifting in sign bits for signed types`, but left shift always shifts in zero bits. And `simd_masked_load` and `simd_masked_store` need to explicitly state that the corresponding `ptr` must be readable/writable as if by `ptr::read/write`, refering to [portable-simd::core_simd::load_select_ptr](https://doc.rust-lang.org/src/core/portable-simd/crates/core_simd/src/vector.rs.html#451) and [portable-simd::core_simd::store_select_ptr](https://doc.rust-lang.org/src/core/portable-simd/crates/core_simd/src/vector.rs.html#710)
This comment has been minimized.
This comment has been minimized.
Rollup of 17 pull requests try-job: dist-various-1 try-job: test-various try-job: x86_64-gnu-aux try-job: x86_64-gnu-llvm-21-3 try-job: x86_64-msvc-1 try-job: aarch64-apple try-job: x86_64-mingw-1 try-job: i686-msvc-*
This comment has been minimized.
This comment has been minimized.
Tested on commit rust-lang/rust@421875f. Direct link to PR: <rust-lang/rust#159444> 🎉 edition-guide on linux: test-fail → test-pass (cc @ehuss).
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 656ccbe (parent) -> 421875f (this PR) Test differencesShow 189 test diffsStage 1
Stage 2
Additionally, 164 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 421875f8d2bbb9a9a47db179092a3266b87106d4 --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 |
|
📌 Perf builds for each rolled up PR:
previous master: 656ccbe796 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
|
Finished benchmarking commit (421875f): comparison URL. Overall result: ❌ regressions - 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 -4.3%, secondary 4.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -2.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary 0.0%, secondary 0.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 490.561s -> 491.802s (0.25%) |
Successful merges:
impl Traitassoc type diverges #159365 (fix: point at method call chain when a return-positionimpl Traitassoc type diverges)--emittypes #159410 (rustdoc: remove old--emittypes)write_interfacewhen the interface file can't be written #158843 (Fix ICE inwrite_interfacewhen the interface file can't be written)Debughelpers viaCell#159302 (ImplementDebughelpers viaCell)errors.rsfile todiagnostics.rs(14/N) #159340 (Renameerrors.rsfile todiagnostics.rs(14/N))fmuladdf*#159386 (add a fallback forfmuladdf*)tests/debuginfo/function-call.rson min GDB 15.1 #159401 (Gatetests/debuginfo/function-call.rson min GDB 15.1)r? @ghost
Create a similar rollup