LSRA: Remove assert that enforces all multi-reg RefPositions to be either copy or reload but not mixed #101824
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.
The consumer for a multi-reg node can be a
GT_COPY
, individual registers of multi-reg node can either get copied (they are assigned a different register at the use than the one they were assigned at def) or reloaded (they are spilled and got assigned to a different register than they were originally assigned at the def). Our code paths already handle the situation whereRefPosition
can be mixed of copy/reload and as such there is no need of an assert that enforce that all RefPositions should either be copy or all should be reload.In #99810, the call in the test produced 4 registers, and one of which (because of constraint enforced by
JitStressRegs=8
) get spilled and hence marked for reload. But that should be ok to have and the current assert was prohibiting us from such scenario to exist.Other details: #99810 (comment)
Fixes: #99810