-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
ensure that aarch64 hardfloat targets do not disable neon or fp-armv8 #133396
Conversation
r? @wesleywiser rustbot has assigned @wesleywiser. Use |
These commits modify compiler targets. |
This comment has been minimized.
This comment has been minimized.
36c055c
to
5d6d81f
Compare
The job Click to see the possible cause of the failure (guessed by this bot)
|
Thinking about it some more, I think I want to instead have this target feature specific logic all in the target_features file. But the first commit, enforcing some invariants on JSON targets, should still be viable. |
The goal of this PR is to fix one of the ways that #131058 can cause trouble: by having an aarch64 target that does not use the
softfloat
ABI, but that disabled neon/fp-armv8. This complements #133102, which ensures that when using the softfloat ABI, we always use the same ABI no matter whether neon/fp-armv8 are available or not.To ensure that this applies even to custom JSON targets, we lift the existing
check_consistency
test into something that is also applied to JSON targets -- which is probably generally a good idea, as these seem likely to be invariants that the rest of the compiler will rely on. I have converted many of the assertions in that function to new macros that show a nice error instead of a panic; if people are okay with the general approach here, I can do that for the rest of the checks as well.Best reviewed commit-by-commit.
Cc @workingjubilee