BlobGetMutableTensor returns Tensor (#14136) #14424
Closed
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.
Summary:
Pull Request resolved: #14136
Since now Tensor is a shared_ptr, it doesn't make sense to have Tensor* around anymore,
this diff is changing Tensor* to Tensor in the interface.
We'll store pointer to intrusive_ptr to TensorImpl in Tensor and create Tensor object on the fly
when returning from BlobGetMutableTensor.
Another motivation is we want Blob to store intrusive_ptr of TensorImpl because IValue can store intrusive ptr. Without this change, IValue will have to store Blob which is an extra level of indirection.
To remove Tensor*, we'll do following
-->
But to run clangr codemod, we'll keep both APIs in different names, e.g.
Output
andXOutput
, and do the refactor and then delete the old method and rename the new method into the old one.For example for
Output
, we'll first codemod the callsites fromOutput
toXOutput
, then delete the oldOutput
and renameXOutput
toOutput
in the end.This diff should be rebased on the diffs that removes Resize/ResizeLike+mutable_data
Differential Revision: D12934074