Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid marking tmp as DoNotEnregister in tmp=GT_CALL() where call returns a enregisterable struct in two return registers #5112

Closed
sivarv opened this issue Feb 12, 2016 · 2 comments
Assignees
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) os-mac-os-x macOS aka OSX tenet-performance Performance related issue
Milestone

Comments

@sivarv
Copy link
Member

sivarv commented Feb 12, 2016

Right now codegenxarch.cpp is implemented with the assumption that the tmp to which struct returned in two registers is assigned does not live in a register. For example, when a call returns Vector3/4, we will have a tmp = call(), where tmp is of SIMD12/16 type and can be allocated a register. In this case it will lead to better code quality if codegen directly generates reg-to-reg moves instead of save to a temp on stack.

category:cq
theme:calling-convention
skill-level:intermediate
cost:small

@sivarv sivarv changed the title Avoid marking tmp as DoNotEnregister in tmp=GT_CALL() where call returns a struct in two return registers Avoid marking tmp as DoNotEnregister in tmp=GT_CALL() where call returns a enregisterable struct in two return registers Feb 12, 2016
@CarolEidt
Copy link
Contributor

A repro, in particular one that reflects an actual real-world scenario, would be useful in prioritizing this.

@msftgits msftgits transferred this issue from dotnet/coreclr Jan 30, 2020
@msftgits msftgits added this to the Future milestone Jan 30, 2020
@CarolEidt
Copy link
Contributor

Fixed by #36862

@CarolEidt CarolEidt self-assigned this Oct 16, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Jan 2, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
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) os-mac-os-x macOS aka OSX tenet-performance Performance related issue
Projects
None yet
Development

No branches or pull requests

3 participants