Support cases where a source tensor can be traced back to multiple possible tensor.empty ops.
Example:
%0 = scf.if ... {
%1 = tensor.empty()
%2 = "some_op"(%1)
scf.yield %2
} else {
...
}
%3 = tensor.insert_slice %0 into %tThe tensor.empty inside the scf.if can now be rewritten to a tensor.extract_slice, allowing it to bufferize without an allocation.
Depends On: D142129
Comment needs to be updated? Now it seems like you can return multiple tensor.empty... I dont know when that happens though