rust-lang / rust-lang/rust

Tracking Issue for APX target feature

Open
#139,284 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-inline-assembly A-rust-for-linux A-target-feature C-tracking-issue O-x86_64 T-compiler
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

The feature gate for the issue is #![feature(apx_target_feature)].

Advanced Performance Extensions is a general-purpose extension of x86-64 for all Intel CPUs. See this presentation by LLVM team for more info about this.

Public API

The apxf target feature, and usage of GPR32 in inline ASM

Steps / History
  • Implementation:
    • #139534
    • #145531
  • Final comment period (FCP)^1
  • Stabilization PR
Unresolved Questions
  • How to handle inline-asm-use-gpr32? The GPR32 registers (specifically REX2) can't be used with VEX encoded instructions, notably AVX and SSE. See the GCC patch for more info

@rustbot label O-x86_64 A-target-feature A-inline-assembly T-compiler -T-libs-api

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading implementation issues #139534 and #145531, then review the linked LLVM presentation and GCC patch for APX and GPR32 constraints. The work is done when the implementation is complete, the inline-asm-use-gpr32 question is resolved, the final comment period finishes, and a stabilization PR is prepared.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.