-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Open
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIarea-VM-coreclrenhancementProduct code improvement that does NOT require public API changes/additionsProduct code improvement that does NOT require public API changes/additionsoptimizationtenet-performancePerformance related issuePerformance related issue
Milestone
Description
Currently, even under the Unix amd64 ABI, Vector is always passed on the stack. However, since it is not (and can't easily become) an interop type, it would be reasonable to pass and return these structs in registers (since they are, by definition, the size of the SIMD registers supported on the target, if present). This would require work in both the vm and jit. Note that for the unix ABI, the classification of the type is done after the call to CheckIfSIMDAndUpdateSize(), so it would already be appropriately marked at that time.
category:cq
theme:calling-convention
skill-level:expert
cost:medium
impact:large
nietras, FrankNiemeyer and MineCake147E
Metadata
Metadata
Assignees
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIarea-VM-coreclrenhancementProduct code improvement that does NOT require public API changes/additionsProduct code improvement that does NOT require public API changes/additionsoptimizationtenet-performancePerformance related issuePerformance related issue
Type
Projects
Status
No status