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: Codegen should unset register assignments after defining nodes that will be used from spill temps #105837

Open
jakobbotsch opened this issue Aug 1, 2024 · 2 comments
Assignees
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone

Comments

@jakobbotsch
Copy link
Member

It is confusing that nodes that end up being used directly from their spill location still end up with a register assignment set when we get to their use. I do not think that register assignment has anything meaningful, so as part of the spill codegen should be able to unset it.

Context: #105833 (comment)

@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 Aug 1, 2024
@dotnet-policy-service dotnet-policy-service bot added the untriaged New issue has not been triaged by the area owner label Aug 1, 2024
@jakobbotsch jakobbotsch added this to the 10.0.0 milestone Aug 1, 2024
@jakobbotsch jakobbotsch removed the untriaged New issue has not been triaged by the area owner label Aug 1, 2024
Copy link
Contributor

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

@jakobbotsch jakobbotsch self-assigned this Aug 1, 2024
jakobbotsch added a commit to jakobbotsch/runtime that referenced this issue Aug 1, 2024
@dotnet-policy-service dotnet-policy-service bot added the in-pr There is an active PR which will close this issue when it is merged label Aug 1, 2024
@jakobbotsch
Copy link
Member Author

I do not think that register assignment has anything meaningful, so as part of the spill codegen should be able to unset it.

That turns out not to be entirely true -- we use it as an index into the list of spill temps to find the right one when we get to the use. So it's not just clearing out the register on the use, we would also need to switch that logic to some form of map instead.

@jakobbotsch jakobbotsch removed the in-pr There is an active PR which will close this issue when it is merged label Aug 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant