Rollup of 3 pull requests - #161970
Conversation
…and d0-15 register classes Add vfp2sp and fp64 unstable target features for arm as implied features of vfp2.
…olkertdev On arm, only require fpregs instead of vfp2 to allow s0-s15, s0-s31, and d0-15 register classes Add vfp2sp and fp64 unstable target features for arm as implied features of vfp2. Fixes rust-lang#159976 Fixes rust-lang#161826
Fix handling of weak keyword `pin` Part of rust-lang#130494. On main, we use `is_ident_named` to detect weak keyword `pin` which is incorrect since it doesn't account for whether the identifier in question is raw (`r#`) or not. Namely, `r#pin` should *never* be considered (yes, even if it's followed by the disambiguator `const` or `mut`). As it stands, (1) we accept more code than we should (2) we're prone to rightfully triggering internal assertions thus ICE'ing. Just use `is_keyword`&co which do those checks (indeed, it's also used for weak keywords). Furthermore, move `Symbol` `sym::pin` to `kw::Pin` and officially mark it as weak. This doesn't have any semantic effect, it's still a `Symbol`, but it's more conventional. For reference, on main we ICE with `assertion failed: self.eat_keyword(expr!(Pin))` on inputs like the following: * `type X = &r#pin const ();` (type) * `fn scope() { let _ = &r#pin mut (); }` (expr) * `fn scope() { let &r#pin const (); }` (pat) Moreover, on main we wrongfully accept code like `trait Trait { fn f(&r#pin mut self); }` (assuming the feature is enabled). <sub>(No LLM was or will be used by me during the entire creation process of this PR)</sub>
…kruppe Improve to_int_checked performance Related tracking issue: rust-lang#159913. This PR improves the performance of `to_int_checked` by pre-computing the precise bounds needed instead of arithmetic at runtime, and also avoids the extra clamping that `as` introduces by dispatching to the `unchecked` variant once the bound checks have succeeded. The precise performance improvement may depend on your machine, but the new version simply does strictly less work. E.g. on x86-64 compare the new vs old assembly for `f64 -> i32`: ```asm new: vmovsd xmm1, qword ptr [rip + .LCPI1_0] vcmpltsd xmm1, xmm1, xmm0 vcmpltsd xmm2, xmm0, qword ptr [rip + .LCPI1_1] vandpd xmm1, xmm1, xmm2 vcvttsd2si edx, xmm0 vmovd eax, xmm1 and eax, 1 ret old: vmovsd xmm1, qword ptr [rip + .LCPI0_0] vaddsd xmm2, xmm0, xmm1 vcmpltsd xmm1, xmm0, xmm1 vmovsd xmm3, qword ptr [rip + .LCPI0_1] vcmpltsd xmm2, xmm3, xmm2 vandpd xmm1, xmm1, xmm2 vmaxsd xmm2, xmm0, qword ptr [rip + .LCPI0_2] vminsd xmm2, xmm2, qword ptr [rip + .LCPI0_3] vcvttsd2si eax, xmm2 xor edx, edx vucomisd xmm0, xmm0 cmovnp edx, eax vmovd eax, xmm1 and eax, 1 ret ```
|
@bors r+ p=5 |
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 6bb812b (parent) -> ee4a4a6 (this PR) Test differencesShow 79 test diffsStage 1
Stage 2
Additionally, 72 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 ee4a4a6dc034290215fa6955062c6f4abf6c1d53 --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:
parent commit: 6bb812b714 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
|
Finished benchmarking commit (ee4a4a6): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)Results (primary -0.5%, secondary -0.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -2.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary -0.1%, secondary -0.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 475.357s -> 474.438s (-0.19%) |
Successful merges:
pin#161794 (Fix handling of weak keywordpin)r? @ghost
Create a similar rollup