[RFC] Changes to linalg::TiledLoopOp to unblock reductions

In essence, if you want to model the location in the output tensor, you need a way to describe this location. for ‘tiled_loop’, it is not even a location but a subspace of the index space. In the current modelling, this is a rectangular tile but in general it could be a more complex structure.

The question then is, how do you describe this tile? You could have an op similar to the tile op that @stephenneuendorffer described but on indices and not tensors. You could also model this as a function from some index space to another, similar to what affine maps do. This is what the very.generic_loop does. Or you could have a hybrid, an op that has an index transformation expression and a description of a tile of the iteration space.

How this should look like is not clear (at least to me) and @pifon2a is looking into some ways to generalize tiling. While we are getting there, we can still improve the current model a bit, which is what this RFC does. I don’t think it is worse than what we have now and tiled_loop also is not a new operation.

While we make these steps, we also need to make sure it composes with @MaheshRavishankar work on a tiling interface in another recent RFC.