[mono][interp] Fix issue with clearing of unused defs #80186
Merged
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.
If within a basic block we have code like
somevar = val1; ...; somevar = val2and somevar has no indirects and is not used between the two defines, then we can remove the first assignment. However, MINT_SRC_DST_OFF is a special opcode that writes only to a part of a valuetype, even though it has the vt var as a destination. This means we can't clear the previous define, otherwise we lose data in part of the valuetype.Regression from 200a90a
Fixes #80141
Fixes #80179