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

RLSRA: correctly update register dependencies when splitting intervals #49

Merged
merged 1 commit into from
Jun 18, 2024

Conversation

janvrany
Copy link
Owner

This commit fixes horrible bug in RSLRA causing arguments not being moved to argument registers when the original interval was split.

This was because when updating instructions to use newly create v-reg for just-split interval, register dependencies were not updated, referring to original v-reg.

To fix this problem, this commit introduces mew method - #replaceVirtualRegistersUsing: - to perform v-reg replacements which updates not only register used by the instruction, but also those referred-to in dependencies (and possibly other Tinyrossa-specific metadata attached to an instruction).

This commit fixes horrible bug in RSLRA causing arguments not being
moved to argument registers when the original interval was split.

This was because when updating instructions to use newly create v-reg
for just-split interval, register dependencies were not updated,
referring to original v-reg.

To fix this problem, this commit introduces mew method -
`#replaceVirtualRegistersUsing:` - to perform v-reg replacements which
updates not only register used by the instruction, but also those
referred-to in dependencies (and possibly other Tinyrossa-specific
metadata attached to an instruction).
@janvrany janvrany force-pushed the pr/fix-bug-in-RLSRA-live-interval-splitting branch from 794071f to e3543cb Compare June 18, 2024 12:36
@janvrany janvrany merged commit 8caa63f into master Jun 18, 2024
2 checks passed
@janvrany janvrany deleted the pr/fix-bug-in-RLSRA-live-interval-splitting branch June 18, 2024 12:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant