-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Rollup of 11 pull requests #141739
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 11 pull requests #141739
Conversation
There is an LLVM bug with lowering of basic `f16` operations that mean a round trip via `__extendhfsf2` and `__truncsfhf2` may happen for simple `abs` calls or bitcasts [1]. This is problematic because the round trip quiets signaling NaNs. For most operations this is acceptable, but it is causing `total_cmp` tests to fail unless optimizations are enabled. Disable `total_cmp` tests involving signaling NaNs until this issue is resolved. Fixes: rust-lang/rustc_codegen_cranelift#1578 Fixes: rust-lang#141503 [1]: llvm/llvm-project#104915
It is only relevant when using cg_ssa for driving compilation.
There is no safety contract and I don't think any of them can actually cause UB in more ways than passing malicious source code to rustc can. While LtoModuleCodegen::optimize says that the returned ModuleCodegen points into the LTO module, the LTO module has already been dropped by the time this function returns, so if the returned ModuleCodegen indeed points into the LTO module, we would have seen crashes on every LTO compilation, which we don't. As such the comment is outdated.
This patch enables the optimized implementation of `f32::midpoint` for `loongarch64` targets that support the `d`feature. Targets with reliable 64-bit float support can safely use the faster and more accurate computation via `f64`, avoiding the fallback branchy version.
Leaving stage0 target-libdir resolution to rustc. This should also fix the issue with hard-coding `$sysroot/lib` which fails on systems that use `$sysroot/lib64` or `$sysroot/lib32`. Signed-off-by: onur-ozkan <work@onurozkan.dev>
The float modules in `std` are currently top-level but for `core`, they are nested within the `num` directory and referenced by `#[path = ...]`. For consistency, adjust `std` to use the same structure as `core`. Also change the `f16` and `f128` gates from outer attributes to inner attributes like `core` has.
… r=workingjubilee Make `std/src/num` mirror `core/src/num` The float modules in `std` are currently top-level but for `core`, they are nested within the `num` directory and referenced by `#[path = ...]`. For consistency, adjust `std` to use the same structure as `core`. Also change the `f16` and `f128` gates from outer attributes to inner attributes like `core` has.
…ouxu Enable review queue tracking This PR enables the new review queue tracking assignment logic implemented in triagebot. It is documented in rust-lang/rust-forge#853.
…Lapkin A variety of improvements to the codegen backends Some are just general improvements to cg_ssa or cg_llvm, while others will make it slightly easier to use cg_ssa in cg_clif in the future.
…x, r=petrochenkov avoid some usages of `&mut P<T>` in AST visitors It's a double indirection, and is also complicating our efforts at rust-lang#127615. r? `@ghost`
…workingjubilee float: Disable `total_cmp` sNaN tests for `f16` There is an LLVM bug with lowering of basic `f16` operations that mean a round trip via `__extendhfsf2` and `__truncsfhf2` may happen for simple `abs` calls or bitcasts [1]. This is problematic because the round trip quiets signaling NaNs. For most operations this is acceptable, but it is causing `total_cmp` tests to fail unless optimizations are enabled. Disable `total_cmp` tests involving signaling NaNs until this issue is resolved. Fixes: rust-lang/rustc_codegen_cranelift#1578 Fixes: rust-lang#141503 [1]: llvm/llvm-project#104915
Add eslint as part of `tidy` run Rustdoc uses `eslint` to run lints on the JS files. Currently you need to run it by hand since it's not part of any `x.py` command. This PR makes it part of `test tidy`. However, to prevent having all rust developers to install `npm` and `eslint`, I made it optional: if `eslint` is not installed, then the check is simply skipped (but will tell that it is being skipped). The second commit removes the manual checks from the docker file since `eslint` is run as part of tidy. cc `@lolbinarycat,` [#t-rustdoc > eslint seems to only be run in CI](https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/eslint.20seems.20to.20only.20be.20run.20in.20CI/with/520761477)
…8472 Add `loongarch64` with `d` feature to `f32::midpoint` fast path This patch enables the optimized implementation of `f32::midpoint` for `loongarch64` targets that support the `d`feature. Targets with reliable 64-bit float support can safely use the faster and more accurate computation via `f64`, avoiding the fallback branchy version.
Rollup of 11 pull requests Successful merges: - #137574 (Make `std/src/num` mirror `core/src/num`) - #141384 (Enable review queue tracking) - #141448 (A variety of improvements to the codegen backends) - #141636 (avoid some usages of `&mut P<T>` in AST visitors) - #141676 (float: Disable `total_cmp` sNaN tests for `f16`) - #141705 (Add eslint as part of `tidy` run) - #141715 (Add `loongarch64` with `d` feature to `f32::midpoint` fast path) - #141723 (Provide secrets to try builds with new bors) - #141728 (Fix false documentation of FnCtxt::diverges) - #141729 (resolve target-libdir directly from rustc) - #141732 (creader: Remove extraenous String::clone) r? `@ghost` `@rustbot` modify labels: rollup
@bors ping |
😪 I'm awake I'm awake |
@bors r- |
Looks like bors forgot to merge this PR. Now it at least started testing another one. Reapproving. @bors r=GuillaumeGomez |
☀️ Test successful - checks-actions |
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 1bbd62e (parent) -> 1ac1950 (this PR) Test differencesShow 744 test diffs744 doctest diffs were found. These are ignored, as they are noisy. Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 1ac1950c337039add1a83113ed6d1bd64bcb1142 --output-dir test-dashboard And 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: 1bbd62e547 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
Finished benchmarking commit (1ac1950): comparison URL. Overall result: ❌✅ regressions and improvements - BENCHMARK(S) FAILEDOur benchmarks found a performance regression caused by this PR. Next Steps:
@rustbot label: +perf-regression ❗ ❗ ❗ ❗ ❗
❗ ❗ ❗ ❗ ❗ cc @rust-lang/wg-compiler-performance Instruction countThis is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.
Max RSS (memory usage)Results (primary 1.3%, secondary 1.4%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (secondary 0.4%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: missing data |
looks like #141729 broke benchmarking cc @onur-ozkan |
Could you post the build log? |
Successful merges:
std/src/num
mirrorcore/src/num
#137574 (Makestd/src/num
mirrorcore/src/num
)&mut P<T>
in AST visitors #141636 (avoid some usages of&mut P<T>
in AST visitors)total_cmp
sNaN tests forf16
#141676 (float: Disabletotal_cmp
sNaN tests forf16
)tidy
run #141705 (Add eslint as part oftidy
run)loongarch64
withd
feature tof32::midpoint
fast path #141715 (Addloongarch64
withd
feature tof32::midpoint
fast path)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup