RLSRA: correctly update register dependencies when splitting intervals #49
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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).