Auto merge of #135047 - Flakebi:amdgpu-kernel-cc, r=workingjubilee
Add gpu-kernel calling convention
The amdgpu-kernel calling convention was reverted in commit f6b21e90d1
(#120495 and https://github.com/rust-lang/rust-analyzer/pull/16463) due to inactivity in the amdgpu target.
Introduce a `gpu-kernel` calling convention that translates to `ptx_kernel` or `amdgpu_kernel`, depending on the target that rust compiles for.
Tracking issue: #135467
amdgpu target tracking issue: #135024
This commit is contained in:
commit
0c2c096e1a
29 changed files with 435 additions and 175 deletions
|
@ -546,6 +546,8 @@ pub enum Conv {
|
|||
|
||||
PtxKernel,
|
||||
|
||||
GpuKernel,
|
||||
|
||||
X86Fastcall,
|
||||
X86Intr,
|
||||
X86Stdcall,
|
||||
|
@ -865,6 +867,7 @@ impl FromStr for Conv {
|
|||
"X86VectorCall" => Ok(Conv::X86VectorCall),
|
||||
"X86_64SysV" => Ok(Conv::X86_64SysV),
|
||||
"X86_64Win64" => Ok(Conv::X86_64Win64),
|
||||
"GpuKernel" => Ok(Conv::GpuKernel),
|
||||
"AvrInterrupt" => Ok(Conv::AvrInterrupt),
|
||||
"AvrNonBlockingInterrupt" => Ok(Conv::AvrNonBlockingInterrupt),
|
||||
"RiscvInterrupt(machine)" => {
|
||||
|
|
|
@ -113,6 +113,7 @@ impl ToJson for crate::abi::call::Conv {
|
|||
Self::X86VectorCall => "X86VectorCall",
|
||||
Self::X86_64SysV => "X86_64SysV",
|
||||
Self::X86_64Win64 => "X86_64Win64",
|
||||
Self::GpuKernel => "GpuKernel",
|
||||
Self::AvrInterrupt => "AvrInterrupt",
|
||||
Self::AvrNonBlockingInterrupt => "AvrNonBlockingInterrupt",
|
||||
Self::RiscvInterrupt { kind } => {
|
||||
|
|
|
@ -2860,6 +2860,7 @@ impl Target {
|
|||
}
|
||||
Win64 { .. } | SysV64 { .. } => self.arch == "x86_64",
|
||||
PtxKernel => self.arch == "nvptx64",
|
||||
GpuKernel => ["amdgpu", "nvptx64"].contains(&&self.arch[..]),
|
||||
Msp430Interrupt => self.arch == "msp430",
|
||||
RiscvInterruptM | RiscvInterruptS => ["riscv32", "riscv64"].contains(&&self.arch[..]),
|
||||
AvrInterrupt | AvrNonBlockingInterrupt => self.arch == "avr",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue