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.
Insert end_cow_mutation_addr for lifetime dependent values dependent on mutable addresses #81043
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
Insert end_cow_mutation_addr for lifetime dependent values dependent on mutable addresses #81043
Changes from all commits
4951f62
ceb3264
35d62a4
5395721
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IIUC, the operand is not necessarily the address of a single class reference. It can e.g. be an opaque archetype or a structure, etc.
Can you point that out? And describe what it means, e.g. that it refers to all class instances contained in the type, etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated to:
This instruction marks the end of mutation of an address that may contain MutableSpan.
The address could be an opaque archetype, a struct type, tuple type or enum type and
the end_cow_mutation_addr will apply to all members contained within these types.
It is currently only generated in cases where is it is not possible to schedule an
end_cow_mutation
in the standard library automatically. Ex: Array.mutableSpanThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should be clear that the type of
%0
could be anything that an Array might depend on. Whether it containsMutableSpan
seems irrelevant. You could talk aboutMutableSpan
just to describe why the instruction is needed, but make it clear that the dependent value is different from%0
!