-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
compiler-builtins subtree update #150080
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
compiler-builtins subtree update #150080
Conversation
`iai-callgrind` was renamed to `gungraun` and had a new release. Update everything to match. There shouldn't be any changes to observable behavior here.
This is already the default but gungraun requires it, so make it explicit.
The latest release of gungraun uses global symbols to register tests. Since it doesn't know about modules, these conflict. Add the module name so this isn't an issue, but keep the modules around because they are useful for organization.
So far we haven't been running the `mem_icount` benches in CI, but this would be useful. Use a glob pattern for the test so this and future icount benchmarks all get run.
This is kind of a retry at rust-lang/compiler-builtins#898. One of the problems there was that it would have added overhead and regressed performance for typical inputs. Unlike that PR, this doesn't aim for sub-linear scaling; the cost of evaluating `fmod(x, y)` is still roughly proportional to `log2(|x/y|)`. However, the constant factor is much better. Running the `random`-benchmarks locally, I got walltime reductions of fmodf16: -56.9% fmodf: -85.0% fmod: -95.4% fmodf128: -98.7%
* `repe` is "repeat while equal", which only makes sense for string
comparisons. Change it to `rep`. (The encoding is the same so there is
no performance change.)
* Remove an unneeded `test`. This was added in ae557bde4efc ("Skip rep
movsb in copy_backward if possible"). The `jz` was removed in
ef37a23d8417 ("Remove branches around rep movsb/stosb") but the `test`
was missed.
* Remove an incorrect `preserves_flags`; `add` and `sub` affect flags.
Discussion: rust-lang/compiler-builtins#911
Fixes: ef37a23d8417 ("Remove branches around rep movsb/stosb")
Fixes: c30322aafc9c ("Align destination in mem* instructions.")
[ Added details to the commit message - Trevor ]
Resolve the severe imprecision (~2%) that is due to inconsistent rounding. Closes: rust-lang/compiler-builtins#1021
This was originally attempted at [1], but the numbers seemed to indicate that tests weren't being run or counted completely. That issue appears to be resolved, so add benchmarks for Aarch64. [1]: rust-lang/compiler-builtins#930
Jorge hasn't been very involved with these crates for a while (thank you for getting these super important projects going!). Update the `authors` field to include, as far as I am aware, everyone who has effectively maintained `compiler-builtins` at some point in time. This field is dropped from non-published crates.
Currently the benchmark CI jobs prints multiple pages of paths from the extracted archive, since `tar` is run with `v`. This is a lot of output that is usually just noise in CI. Switch to printing the paths from python instead, limiting to a depth of three segments (and deduplicating). Removing it completely was an option, but it's still nice to have a hint about what gets updated.
Missed as part of 936db7f5e890 ("ci: Update the default branch name").
Make it easier to explain possible changes to results on CI.
`macos-13` is being phased out. Now that GitHub has x86 runners with MacOS 15, switch those.
This updates the rust-version file to 2dc3024.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: 2dc3024 Filtered ref: dab12aee0f52f7b83cc62ae565855c731bed502f Upstream diff: rust-lang/rust@47cd712...2dc3024 This merge was created using https://github.com/rust-lang/josh-sync.
Avoid using `Ord::clamp` in the `f16`-specific part of the generic
`scalbn`.
It turned out to be redundant anyway, as both callsites follow a pattern
like
```
if n < negative_val {
let foo = (n + positive_val).clamp(negative_val, positive_val);
}
```
and `n < negative_val < 0` implies `n + positive_val < positive_val`.
Fixes: rust-lang/compiler-builtins#1046
Due to an erroneous overflow threshold, `expm1f` was incorrectly returning `inf` for inputs in the range `[88.72169, 88.72283]`. This additionally caused `sinhf` to return `NaN` for inputs in that range. The bug was ported from the original in musl, which has since been fixed in [1]. [1]: https://git.musl-libc.org/cgit/musl/commit/?id=964104f9f0e056cf58d9defa0b716d7756f040f6
|
Faster @bors r+ rollup=never p=1 |
|
☀️ 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 ec6f622 (parent) -> 58b270b (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 58b270bebef86316f70174d5a1ea4eb19ef91b62 --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 |
Subtree update of
compiler-builtinsto rust-lang/compiler-builtins@8a3e35b.Created using https://github.com/rust-lang/josh-sync.
r? @ghost