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

JIT: More cases for last-use copy elision #80494

Closed
Tracked by #76931
jakobbotsch opened this issue Jan 11, 2023 · 2 comments
Closed
Tracked by #76931

JIT: More cases for last-use copy elision #80494

jakobbotsch opened this issue Jan 11, 2023 · 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
Milestone

Comments

@jakobbotsch
Copy link
Member

See #80489 (comment). We could still omit these kinds of copies if we analyze the rest of the args and see that the last use happens before the call and is itself not a candidate for copy elision.

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 11, 2023
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Jan 11, 2023
@jakobbotsch jakobbotsch self-assigned this Jan 11, 2023
@ghost
Copy link

ghost commented Jan 11, 2023

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak
See info in area-owners.md if you want to be subscribed.

Issue Details

See #80489 (comment). We could still omit these kinds of copies if we analyze the rest of the args and see that the last use happens before the call and is itself not a candidate for copy elision.

Author: jakobbotsch
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@jakobbotsch jakobbotsch removed the untriaged New issue has not been triaged by the area owner label Jan 11, 2023
@jakobbotsch jakobbotsch added this to the 8.0.0 milestone Jan 11, 2023
@jakobbotsch jakobbotsch added the enhancement Product code improvement that does NOT require public API changes/additions label Jan 11, 2023
jakobbotsch added a commit to jakobbotsch/runtime that referenced this issue Jan 19, 2023
Allow omitting the copy if we have _any_ last use before the call, not
just if the candidate itself is dead. For example, for something like

M(s, s.A);

the first argument can now have its copy elided if the access in the
second argument is the last use.

Fix dotnet#80494
@ghost ghost added in-pr There is an active PR which will close this issue when it is merged and removed in-pr There is an active PR which will close this issue when it is merged labels Jan 19, 2023
@jakobbotsch
Copy link
Member Author

I experimented with this in #80851 but generally didn't find it to be worth the effort.

@ghost ghost locked as resolved and limited conversation to collaborators Mar 8, 2023
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
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant