Unix: Unnecessary struct copy while passsing struct of size <=16 #6316
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
enhancement
Product code improvement that does NOT require public API changes/additions
optimization
os-linux
Linux OS (any supported distro)
tenet-performance
Performance related issue
Milestone
Struct arguments whose size is <= 16 bytes generate unnecessary copies. @sivarv categorized the cases below:
The following are the struct passing cases on Amd64 Unix that are of interest:
In fgMorphArgs,
eeGetSystemVAmd64PassStructInRegisterDescriptor
classifies the cases above as register argument except simd fromvector<t>
and setsstructDesc.passedInRegisters
to true, this always callsfgMakeOutgoingStructArgCopy()
and generates copies.The text was updated successfully, but these errors were encountered: