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.
Reuse buffers across scopes.
Previously buffer reuse pass would merge allocations at the innermost scope and hoist allocations to the outermost scope. This misses some reuse opportunities. For example, the two allocations in the separate scf blocks won't get merged before this CL.
Before this CL, two allocations are hoisted to the top level.
After this CL, only one allocation is needed because we run buffer reuse after each hoist. It detected that the buffers could be reused after the two allocations are hoisted out of the their separate scf blocks but before they are hoisted again to the top.
In summary this CL tries to apply buffer reuse after hoisting allocations at each scope level, which fixes this issue.