[Bugfix][TIR] Avoid overwrite of unmanaged buffer allocations #16726
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.
Prior to this commit, the
tir.PlanAndUpdateBufferAllocationLocationpass would attempt to merge buffer allocations, unless the buffer's backing allocation was found in aAllocate,AllocateConst, orPrimFuncNode::params. PreviousPRs (e.g. #10998) collected these locations and marked them as unmanaged. However, this requires exhaustively checking all locations where unmanaged allocations could occur.
This PR updates
tir.PlanAndUpdateBufferAllocationLocationto instead collect the managed buffers, and only perform rewrites of these managed buffers. This only required inspection ofBlockNode, and no other constructs.The unit test added in this PR is another location where unmanaged buffers may be produced.