Uh oh!
There was an error while loading. Please reload this page.
Update list of allowed aarch64 features - #84665
Conversation
These features were recently added to std_detect. Features not supported by LLVM 9, the current minimum version for Rust, are commented.
rust-highfive
commented
Apr 28, 2021
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @davidtwco (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
adamgemmell
commented
Apr 28, 2021
r? @Amanieu |
est31
commented
Apr 28, 2021
Btw it's 10 (at least on master) #83387 |
| // FEAT_CRC | ||
| ("crc", Some(sym::aarch64_target_feature)), | ||
| // Cryptographic extension | ||
| ("crypto", Some(sym::aarch64_target_feature)), |
There was a problem hiding this comment.
LLVM has moved away from a combined "crypto" feature and now uses separate "aes" and "sha2" features. We should do the same here.
There was a problem hiding this comment.
I agree - the crypto feature doesn't really mean much any more and the separate features are better. Wouldn't removing this here affect any users detecting this feature? Likewise with removing it from std_detect.
There was a problem hiding this comment.
AArch64 target features are still unstable, so it's fine to rename/remove them.
| // FEAT_SVE2_BitPerm | ||
| ("sve2-bitperm", Some(sym::aarch64_target_feature)), | ||
| // FEAT_FRINTTS | ||
| ("fptoint", Some(sym::aarch64_target_feature)), |
There was a problem hiding this comment.
"fptoint" is a poor name for this feature, I prefer the original ARM name "frintts".
There was a problem hiding this comment.
Happy to rename this
| ("aarch64", "fp") => "fp-armv8", | ||
| ("aarch64", "fp16") => "fullfp16", | ||
| ("aarch64", "fhm") => "fp16fml", | ||
| ("aarch64", "lse2") => "outline-atomics", |
There was a problem hiding this comment.
lse2 doesn't have an LLVM equivalent feature: it doesn't add any new instructions, it just relaxes the restrictions on existing atomic instructions.
outline-atomics is something different: it's a codegen option on LLVM to call external functions for atomic operations so that they can take advantage of LSE on targets that support it.
There was a problem hiding this comment.
Nice catch, thanks a lot!
adamgemmell
commented
Apr 29, 2021
There happens to be no relevant features added in v10. Though it does mean TME is supported on all supported LLVM versions. |
Dylan-DPC-zz
commented
May 19, 2021
@adamgemmell any updates on the changes requested? |
adamgemmell
commented
May 19, 2021
@Dylan-DPC here we go Removing crypto is a little weird as there's a dependency on it in stdarch which is a submodule of rust, and of course we're bootstrapping.
|
Amanieu
commented
May 19, 2021
@bors r+ |
bors
commented
May 19, 2021
📌 Commit d3737a6 has been approved by |
…nieu Update list of allowed aarch64 features I recently added these features to std_detect for aarch64 linux, pending [review](rust-lang/stdarch#1146). I have commented any features not supported by LLVM 9, the current minimum version for Rust. Some (PAuth at least) were renamed between 9 & 12 and I've left them disabled. TME, however, is not in LLVM 9 but I've left it enabled. See rust-lang/stdarch#993
bors
commented
May 20, 2021
⌛ Testing commit d3737a6 with merge feda7ff79fcad3576c95c6336638c2398ac44b29... |
bors
commented
May 20, 2021
💔 Test failed - checks-actions |
rust-log-analyzer
commented
May 20, 2021
adamgemmell
commented
May 20, 2021
This looks like https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/No.20macos.20runners.20for.20bors.3F Could I get an @bors retry please? |
bors
commented
May 20, 2021
@adamgemmell: 🔑 Insufficient privileges: not in try users |
est31
commented
May 20, 2021
@bors retry |
bors
commented
May 20, 2021
bors
commented
May 20, 2021
☀️ Test successful - checks-actions |
I recently added these features to std_detect for aarch64 linux, pending review.
I have commented any features not supported by LLVM 9, the current minimum version for Rust. Some (PAuth at least) were renamed between 9 & 12 and I've left them disabled. TME, however, is not in LLVM 9 but I've left it enabled.
See rust-lang/stdarch#993