SIL: Fix memory behavior of mark_dependence #79110
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 the base value of a
mark_dependence
is an address, that memory location must be initialized at themark_dependence
.This requires that the
mark_dependence
is considered to read from the base address.Also, verify that the base value is initialized in the MemoryLifetimeVerifier.
The check is not perfect, because it only checks that the base operand is alive at the mark_dependence. Ideally it should check that the base operand is alive during the whole lifetime of the value operand.
The verification uncovered a problem in TempRValueOptimization which is fixed by not optimizing copies to
mark_dependence
base values.