-
Notifications
You must be signed in to change notification settings - Fork 92
Open
Labels
A-LLVMArea: LLVMArea: LLVMA-craneliftRust's other codegen backend, coming Soon™Rust's other codegen backend, coming Soon™A-simdArea: SIMD. Put this on tracking issues to help with cross-repo issue organizationArea: SIMD. Put this on tracking issues to help with cross-repo issue organizationC-feature-requestCategory: a feature request, i.e. not implemented / a PRCategory: a feature request, i.e. not implemented / a PRC-tracking-issueOngoing issue with checkboxes for partial progress and suchOngoing issue with checkboxes for partial progress and suchE-hardCall for participation. Experience needed: Hard.Call for participation. Experience needed: Hard.F-simd_ffi`#![feature(simd_ffi)]``#![feature(simd_ffi)]`blocks-nightly
Description
Per the conversation on Zulip in t-compiler and project-portable-simd, we are going to find Cranelift landing a direct challenge to our landing in std
, because the last one in is a rotten egg has to implement support for the other... but while we could "race" them, it seems integration might require a total redesign anyways. So, collaboration! But we need to
- Figure out what Cranelift needs from us
- Figure out what we need from Cranelift
- Figure out what additional consequences landing
std::simd
has for Cranelift support - Figure out what additional consequences landing Cranelift support has for
std::simd
- Solve all that
I hope most if not all of the operations used by portable simd could use (newly introduced)
simd_*
platform intrinsics that are architecture and vector size independent. This would allow easy emulation of them implemented once per operation.
This has led to some immediate questions:
- What exactly are "platform-intrinsics" supposed to be? Our current understanding is that they're LLVM ops... but Cranelift isn't LLVM, obviously. So...
- What changes about them when moving from LLVM to Cranelift?
- What does this do for SIMD FFI?
- Can we find a way around the SIMD FFI question?
Metadata
Metadata
Assignees
Labels
A-LLVMArea: LLVMArea: LLVMA-craneliftRust's other codegen backend, coming Soon™Rust's other codegen backend, coming Soon™A-simdArea: SIMD. Put this on tracking issues to help with cross-repo issue organizationArea: SIMD. Put this on tracking issues to help with cross-repo issue organizationC-feature-requestCategory: a feature request, i.e. not implemented / a PRCategory: a feature request, i.e. not implemented / a PRC-tracking-issueOngoing issue with checkboxes for partial progress and suchOngoing issue with checkboxes for partial progress and suchE-hardCall for participation. Experience needed: Hard.Call for participation. Experience needed: Hard.F-simd_ffi`#![feature(simd_ffi)]``#![feature(simd_ffi)]`blocks-nightly