-
Notifications
You must be signed in to change notification settings - Fork 13k
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
Revise arm platform notes regarding soft float #130987
Revise arm platform notes regarding soft float #130987
Conversation
These arrived in rust-lang#125690, I think by mistake.
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @ehuss (or someone else) some time within the next two weeks. Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (
|
Some changes occurred in src/doc/rustc/src/platform-support cc @Noratrieb |
Has the same effect, but turning off a feature matches the other flags better than turning on a feature (which actually turns off a feature).
b6a713b
to
1bec022
Compare
Hey ARM Group! This bug has been identified as a good "ARM candidate". cc @adamgemmell @davidtwco @hug-dev @jacobbramley @JamieCunliffe @joaopaulocarreiro @raw-bin @Stammark |
AIUI there are no Arm maintainers for M-Profile, only for the Aarch64 A-Profile. Although they offered to help on a best-effort basis. The designated maintainer is the Cortex-M Team in the Embedded Devices Working Group. I don't think you can ping them on github but I'll post this on their matrix room. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems to do the right thing (at least for the cases I tried and based on the Zulip discussion), and no alarm bells went off when I discussed it with our LLVM teams.
One caveat we noticed — which is really a separate concern — is that there's no way to specify eabihf with no FP. That sounds nonsensical, but it's potentially useful with integer MVE, which uses the same registers. Clang achieves that with +nofp
, which seems to get translated into -mfpu=none
, but I can't find a way to control that through Rust.
Does Integer MVE let you use s0 and d0 even without an FPU?! Wild. |
Yes, at least for the few instructions you'd need to use this ABI. I've not done any real work on these devices so can't claim to be an expert, but the Armv8-M reference manual says that the necessary The FP/vector register file is overlaid so that |
OK, I added some notes to mention that this is a potentially valid setup. |
Thanks! If anyone has any objections or changes, feel free to post an update. @bors r+ rollup |
☀️ Test successful - checks-actions |
Finished benchmarking commit (edbd939): comparison URL. Overall result: ❌ regressions - please read the text belowOur benchmarks found a performance regression caused by this PR. Next Steps:
@rustbot label: +perf-regression 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 2.3%)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 (primary 2.8%, secondary -7.7%)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: 781.937s -> 781.116s (-0.10%) |
Noise, this only updated documentation. @rustbot label: +perf-regression-triaged |
This PR updates the Arm microcontroller platform docs to recommend
-fpregs
instead of+soft-float
as discussed on Zulip