This revision refactors code used in various Linalg transformations and makes it a first class citizen to the LinalgStructureOpInterface. This is in preparation to allowing more advanced Linalg behavior but is otherwise NFC.
Rephrase "used to the".
It's not really "operand dimensions" but "operand dimension sizes".
Includes not in sorted order. You also don't need many of the includes below as a result.
You don't need this either.
You don't need this include.
Not needed either.
Not needed. Prune these includes overall.
Doc comment missing.
Use i = 0, e = ... form to avoid repeated evaluation.
if (!attr) and early return. Will reduce indent / more readable for the entire block below.
Use .isa<AffineConstantExpr>() / isa<AffineSymbolExpr>() instead of getKind() comparison.
Avoid auto here.