Bubble up extract_slice above Linalg operation.
A sequence of operations
%0 = linalg.<op> ... arg0, arg1, ... %1 = tensor.extract_slice %0 ...
can be replaced with
%0 = tensor.extract_slice %arg0 %1 = tensor.extract_slice %arg1 %2 = linalg.<op> ... %0, %1, ...
This results in the reduce computation of the linalg operation.
I'd drop the pass from here. These passses have been hard to maintain. I've found passes here (especially in Linalg) to be not very useful. It is best to expose the patterns using populate*Pattern method. I'd do the same here.