-
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
ABI checks: add support for tier2 arches #132842
Conversation
Sorry, I'm going to hand this one off. r? compiler |
ee0505d
to
bd742a9
Compare
In terms of reviewers, I guess rolling the dice is unlikely to get an ABI person. ;) |
bd742a9
to
9cc9647
Compare
9cc9647
to
3ae72e3
Compare
30a21b5
to
9d3e137
Compare
1cc2c1a
to
ff485c9
Compare
ff485c9
to
db76ae2
Compare
db76ae2
to
9b0144b
Compare
9b0144b
to
8a98b79
Compare
☔ The latest upstream changes (presumably #132843) made this pull request unmergeable. Please resolve the merge conflicts. |
✌️ @veluca93, you can now approve this pull request! If @workingjubilee told you to " |
See rust-lang#131800 for the data collection behind this change. Also adds a test that exercise the "empty list of features" path.
54ba4f7
to
295cffc
Compare
Added all the suggested comments (in one form or the other :-)) |
…ngjubilee ABI checks: add support for tier2 arches See rust-lang#131800 for the data collection behind this change. r? RalfJung
…llaumeGomez Rollup of 6 pull requests Successful merges: - rust-lang#132709 (optimize char::to_digit and assert radix is at least 2) - rust-lang#132842 (ABI checks: add support for tier2 arches) - rust-lang#132965 (allow CFGuard on windows-gnullvm) - rust-lang#132967 (fix REGISTRY_USERNAME to reuse cache between auto and pr jobs) - rust-lang#132971 (Handle infer vars in anon consts on stable) - rust-lang#132979 (use `--exact` on `--skip` to avoid unintended substring matches) r? `@ghost` `@rustbot` modify labels: rollup
…ngjubilee ABI checks: add support for tier2 arches See rust-lang#131800 for the data collection behind this change. r? RalfJung
const RISCV_FEATURES_FOR_CORRECT_VECTOR_ABI: &'static [(u64, &'static str)] = | ||
&[/*(64, "zvl64b"), */ (128, "v")]; | ||
// Always warn on SPARC, as the necessary target features cannot be enabled in Rust at the moment. | ||
const SPARC_FEATURES_FOR_CORRECT_VECTOR_ABI: &'static [(u64, &'static str)] = &[/*(128, "vis")*/]; |
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.
What is the source for the 128 here?
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.
@workingjubilee :-)
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.
checks I could've sworn it was 128-bit, but apparently it's only 64-bit.
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 is already rolled up so let's let it land, and then @veluca93 can you prepare a follow-up to fix the comment?
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.
I know one of the SPARC CPUs has 128-bit registers, but I guess I was misremembering what extension defines that.
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.
I think we can get it in the tier 3 pass, but yeah, it's just a comment.
I probably should've just skipped noting down a size at all.
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.
I think we can get it in the tier 3 pass,
That also works.
…llaumeGomez Rollup of 5 pull requests Successful merges: - rust-lang#132709 (optimize char::to_digit and assert radix is at least 2) - rust-lang#132842 (ABI checks: add support for tier2 arches) - rust-lang#132965 (allow CFGuard on windows-gnullvm) - rust-lang#132967 (fix REGISTRY_USERNAME to reuse cache between auto and pr jobs) - rust-lang#132971 (Handle infer vars in anon consts on stable) r? `@ghost` `@rustbot` modify labels: rollup
…llaumeGomez Rollup of 5 pull requests Successful merges: - rust-lang#132709 (optimize char::to_digit and assert radix is at least 2) - rust-lang#132842 (ABI checks: add support for tier2 arches) - rust-lang#132965 (allow CFGuard on windows-gnullvm) - rust-lang#132967 (fix REGISTRY_USERNAME to reuse cache between auto and pr jobs) - rust-lang#132971 (Handle infer vars in anon consts on stable) r? `@ghost` `@rustbot` modify labels: rollup
…llaumeGomez Rollup of 5 pull requests Successful merges: - rust-lang#132709 (optimize char::to_digit and assert radix is at least 2) - rust-lang#132842 (ABI checks: add support for tier2 arches) - rust-lang#132965 (allow CFGuard on windows-gnullvm) - rust-lang#132967 (fix REGISTRY_USERNAME to reuse cache between auto and pr jobs) - rust-lang#132971 (Handle infer vars in anon consts on stable) r? `@ghost` `@rustbot` modify labels: rollup
…iaskrgr Rollup of 8 pull requests Successful merges: - rust-lang#126046 (Implement `mixed_integer_ops_unsigned_sub`) - rust-lang#132302 (rustdoc: Treat declarative macros more like other item kinds) - rust-lang#132842 (ABI checks: add support for tier2 arches) - rust-lang#132995 (compiletest: Add ``exact-llvm-major-version`` directive) - rust-lang#132996 (Trim extra space when suggesting removing bad `let`) - rust-lang#132998 (Unvacation myself) - rust-lang#133000 ([rustdoc] Fix duplicated footnote IDs) - rust-lang#133001 (actually test next solver) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#132842 - veluca93:abi-checks-tier2, r=workingjubilee ABI checks: add support for tier2 arches See rust-lang#131800 for the data collection behind this change. r? RalfJung
…jubilee ABI checks: add support for some tier3 arches, warn on others. Followup to - rust-lang#132842 - rust-lang#132173 - rust-lang#131800 r? `@workingjubilee`
…ngjubilee ABI checks: add support for some tier3 arches, warn on others. Followup to - rust-lang#132842 - rust-lang#132173 - rust-lang#131800 r? `@workingjubilee`
…ngjubilee ABI checks: add support for some tier3 arches, warn on others. Followup to - rust-lang#132842 - rust-lang#132173 - rust-lang#131800 r? ``@workingjubilee``
Rollup merge of rust-lang#133029 - veluca93:abi-checks-tier3, r=workingjubilee ABI checks: add support for some tier3 arches, warn on others. Followup to - rust-lang#132842 - rust-lang#132173 - rust-lang#131800 r? ``@workingjubilee``
@@ -1,12 +1,19 @@ | |||
monomorphize_abi_error_disabled_vector_type_call = | |||
ABI error: this function call uses a vector type that requires the `{$required_feature}` target feature, which is not enabled in the caller | |||
this function call uses a SIMD vector type that (with the chosen ABI) requires the `{$required_feature}` target feature, which is not enabled in the caller | |||
.label = function called here | |||
.help = consider enabling it globally (`-C target-feature=+{$required_feature}`) or locally (`#[target_feature(enable="{$required_feature}")]`) |
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.
I think we should add a second line of help: consider passing a reference to the value instead
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.
Sure if you control both sides of the FFI you can do that.
See #131800 for the data collection behind this change.
r? RalfJung