Filling out the PrunedLiveness utility for composition with other OSSA utilities #39577
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 small collection of liveness utilities each does one only thing and makes no unnecessary assumptions about the client.
It is meant to compose cleanly with other utilities. It is flexible enough to represent any SIL lifetime or scope, characterized by a set of dominating points. It can handle a lifetime or scope with multiple SSA values just as efficiently as it handles a single SSA value.
All of the above makes it extremely useful as a building block for simple and efficient OSSA utilities.
This will also allow CanonicalOSSALifetime (CopyPropagation) to be cleaned up and extended for other purposes. It was originally meant to do only one thing, but now has logic for multiple modes embedded within it and would need callbacks for diagnostics. Instead the OSSA analysis and "copy propagation" logic need to be decoupled.