Skip to content

Stabilize keylocker intrinsics and runtime detection #1795

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

Merged
merged 1 commit into from
May 31, 2025

Conversation

sayantn
Copy link
Contributor

@sayantn sayantn commented May 7, 2025

parent rust-lang/rust#134813

related: rust-lang/rust#140766

currently draft because this requires the lang and libs-api fcp to complete

@sayantn sayantn force-pushed the stabilize-keylocker branch from 65ab960 to 19a7201 Compare May 20, 2025 18:48
@sayantn sayantn marked this pull request as ready for review May 20, 2025 18:51
@rustbot
Copy link
Collaborator

rustbot commented May 20, 2025

r? @Amanieu

rustbot has assigned @Amanieu.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@sayantn
Copy link
Contributor Author

sayantn commented May 31, 2025

Libs-api FCP is now complete, so this should be fine to merge now

@Amanieu Amanieu added this pull request to the merge queue May 31, 2025
Merged via the queue into rust-lang:master with commit 5672fcd May 31, 2025
62 checks passed
@sayantn sayantn deleted the stabilize-keylocker branch May 31, 2025 11:18
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request Jun 10, 2025
…viscross,tgross35

Stabilize keylocker

This PR stabilizes the feature flag `keylocker_x86` (tracking issue rust-lang#134813).

# Public API
The 2 `x86` target features `kl` and `widekl`, and the associated intrinsics in stdarch.

These target features are very specialized, and are only used to signal the presence of the corresponding CPU instruction. They don't have any nontrivial interaction with the ABI (contrary to something like AVX), and serve the only purpose of enabling 11 stdarch intrinsics, all of which have been implemented and propagated to rustc via a stdarch submodule update.

Also, these were added way back in LLVM12, and as the minimum LLVM required for rustc is LLVM19, we are safe in that front too!

# Associated PRs
 - rust-lang#134814
 - rust-lang/stdarch#1706
 - rust-lang#136831 (stdarch submodule update)
 - rust-lang/stdarch#1795 (stabilizing the runtime detection and intrinsics)
 - rust-lang#141964 (stdarch submodule update for the stabilization of the runtime detection and intrinsics)

As all of the required tasks have been done (adding the target features to rustc, implementing their runtime detection in std_detect and implementing the associated intrinsics in core_arch), these target features can be stabilized now.

cc `@rust-lang/lang`
cc `@rust-lang/libs-api` for the intrinsics and runtime detection

I don't think anyone else worked on this feature, so no one else to ping, maybe cc `@Amanieu.` I will send the reference pr soon.
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request Jun 10, 2025
…viscross,tgross35

Stabilize keylocker

This PR stabilizes the feature flag `keylocker_x86` (tracking issue rust-lang#134813).

# Public API
The 2 `x86` target features `kl` and `widekl`, and the associated intrinsics in stdarch.

These target features are very specialized, and are only used to signal the presence of the corresponding CPU instruction. They don't have any nontrivial interaction with the ABI (contrary to something like AVX), and serve the only purpose of enabling 11 stdarch intrinsics, all of which have been implemented and propagated to rustc via a stdarch submodule update.

Also, these were added way back in LLVM12, and as the minimum LLVM required for rustc is LLVM19, we are safe in that front too!

# Associated PRs
 - rust-lang#134814
 - rust-lang/stdarch#1706
 - rust-lang#136831 (stdarch submodule update)
 - rust-lang/stdarch#1795 (stabilizing the runtime detection and intrinsics)
 - rust-lang#141964 (stdarch submodule update for the stabilization of the runtime detection and intrinsics)

As all of the required tasks have been done (adding the target features to rustc, implementing their runtime detection in std_detect and implementing the associated intrinsics in core_arch), these target features can be stabilized now.

cc ``@rust-lang/lang``
cc ``@rust-lang/libs-api`` for the intrinsics and runtime detection

I don't think anyone else worked on this feature, so no one else to ping, maybe cc ``@Amanieu.`` I will send the reference pr soon.
fmease added a commit to fmease/rust that referenced this pull request Jun 10, 2025
…viscross,tgross35

Stabilize keylocker

This PR stabilizes the feature flag `keylocker_x86` (tracking issue rust-lang#134813).

# Public API
The 2 `x86` target features `kl` and `widekl`, and the associated intrinsics in stdarch.

These target features are very specialized, and are only used to signal the presence of the corresponding CPU instruction. They don't have any nontrivial interaction with the ABI (contrary to something like AVX), and serve the only purpose of enabling 11 stdarch intrinsics, all of which have been implemented and propagated to rustc via a stdarch submodule update.

Also, these were added way back in LLVM12, and as the minimum LLVM required for rustc is LLVM19, we are safe in that front too!

# Associated PRs
 - rust-lang#134814
 - rust-lang/stdarch#1706
 - rust-lang#136831 (stdarch submodule update)
 - rust-lang/stdarch#1795 (stabilizing the runtime detection and intrinsics)
 - rust-lang#141964 (stdarch submodule update for the stabilization of the runtime detection and intrinsics)

As all of the required tasks have been done (adding the target features to rustc, implementing their runtime detection in std_detect and implementing the associated intrinsics in core_arch), these target features can be stabilized now.

cc ```@rust-lang/lang```
cc ```@rust-lang/libs-api``` for the intrinsics and runtime detection

I don't think anyone else worked on this feature, so no one else to ping, maybe cc ```@Amanieu.``` I will send the reference pr soon.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants