compiler-builtins subtree update - #162816
Conversation
This target was downgraded to Tier 2 without host tools [1]. Closes: rust-lang/compiler-builtins#1306 [1]: rust-lang/compiler-team#1020
Note that target features on ARM are not yet stable (tracked by [1]) so this only actually gets used on nightly. [1]: rust-lang#150246 [ add commit body - Trevor ]
In LLVM 23, calls to `wcslen` are sometimes generated by a loop optimization pass: llvm/llvm-project#132572. This causes some Rust targets (including but not limited to the UEFI targets) to fail with a linker error if a loop is transformed into a `wcslen` call. Provide a simple implementation of `wcslen` in compiler-builtins to fix this. Fixes rust-lang#160827
`f16` and `f128` have abi issues, so continue to use `extern "Rust"` for now
Introduce a constant for the result of perfoming a quietening operation on our default sNaN. Additionally check in the C file used to retrieve these values.
This is slightly more robust against potential issues from overriding the builtin symbol.
Provide reasoning for skips, and enable thumb since this seems to work.
Also, change wasm32-unknown-unknown to be a proper build-only target.
The mentioned failures on MinGW are cases like:
thread 'musl_edge_case_expf' (1728) panicked at libm-test\tests\compare_built_musl.rs:26:50:
called `Result::unwrap()` on an `Err` value:
input: (0.0,)
as hex: (+0x0p+0,)
as bits: (0x00000000,)
expected: 0.0 +0x0p+0 0x00000000
actual: 1.0 +0x1.000000p+0 0x3f800000
thread 'musl_edge_case_ceil' (1964) panicked at libm-test\tests\compare_built_musl.rs:26:50:
called `Result::unwrap()` on an `Err` value:
input: (1.0000000000000002,)
as hex: (+0x1.0000000000001p+0,)
as bits: (0x3ff0000000000001,)
expected: 1.0 +0x1.0000000000000p+0 0x3ff0000000000000
actual: 2.0 +0x1.0000000000000p+1 0x4000000000000000
Our libm's results are correct, for some reason musl is off (something
about the fp environment on x86, or a different FLT_EVAL_MODE?)
This updates the rust-version file to 32d94cc.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@32d94cc Filtered ref: rust-lang/compiler-builtins@549dea8 Upstream diff: rust-lang/rust@45f215f...32d94cc This merge was created using https://github.com/rust-lang/josh-sync.
This is a rather old config, added in c924aed0b9ac ("Fix Armv8-M
Baseline compilation"). `thumb_1` is somewhat misleading, since targets
with `thumb2` also support basic `thumb` instructions. Rename it to be
more clear about what this is actually checking.
The config is not currently used but may be in the future.
We still match on target name because we can't always rely on config from the unstable `arm_target_feature`. However, we can still assert that things match up when running in the compiler-builtins CI. This is disabled for now because it fails on three thumb targets: * thumbv4t-none-eabi * thumbv5te-none-eabi * thumbv6-none-eabi This will be resolved in a future commit. Checking for the verbose build is a good indicator that we are in our CI, rather than any other that might set the `CI` env.
Previously CI would only run tests for ARM mode, Thumb mode targets were compile-only. This ensures Thumb2 is covered. Thumb1 is still not covered, but that's less easy since there's no Linux Thumb1 target. This commit fixes some places that assume "thumb" means "bare metal". They now check for `target_os = "none"` instead.
|
@bors try jobs=test-various,test-armhf-gnu,dist-arm-linux-gnueabi,dist-armhf-linux,dist-armv7-linux |
This comment has been minimized.
This comment has been minimized.
compiler-builtins subtree update try-job: test-various try-job: test-armhf-gnu try-job: dist-arm-linux-gnueabi try-job: dist-armhf-linux try-job: dist-armv7-linux
|
@bors r+ rollup=never p=1 |
This comment has been minimized.
This comment has been minimized.
|
@rustbot label +beta-nominated Looking to backport a7f33f3 and 192ea4f to fix #162259. Since the LLVM update (on beta) that issue shows up on arm targets that we don't build C versions of intrinsics for, which at least includes some no-std thumb targets. Two other trivial commits are needed to avoid a conflict, I've prepared this in #162820. |
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 0da8aed (parent) -> 215a8af (this PR) Test differencesShow 4 test diffs4 doctest diffs were found. These are ignored, as they are noisy. Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 215a8af4bb4c106cccf6d6535f84eaae91818265 --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 (215a8af): 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 0.7%, secondary -2.5%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 4.2%, secondary 0.3%)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: 494.609s -> 498.703s (0.83%) |
|
beta backport approved as per libs team on Zulip. A backport PR will be authored by the release team at the end of the current development cycle. Backport labels are handled by them. |
Subtree update of
compiler-builtinsto rust-lang/compiler-builtins@9e64861.Created using https://github.com/rust-lang/josh-sync.
r? @ghost