Improve tiling API w.r.t iterators
Tiling iterators are useless as they stand. The whole point of them was to serve as a proxy between the tiling and the way users were iterating through tiles. In particular, the idea was to let the generic tiling functions
tilestart use a tileid instead of a variadic list of arguments, and have the tiling iterators generate those tileid on the fly. But right now, none of that is implemented.
One might think that the easiest solution would be to remove the iterators and have the tiling general functions use a variable number of arguments. This does simplifies the tiling API, but makes the scratchpad API a lot more complex, as the push/pull API will grow significantly in the number of arguments. The reason being that the scratchpad needs to know which tile it is moving around.
A better option would be to improve the iterators, so that most of the natural ways for users to access tiles would be covered by iterators, and the iterators could act as smart pointers for the scratchpad API, removing some complexity there. Note that the scratchpad/dma tiling handling is less than perfect, as DMAs could technically stop caring about tilings and just manage contiguous requests in terms of pointers, letting the scratchpads deal with the messiness of converting tilings and iterators into contiguous copies. No idea if that would be a problem in the long term, with other types of dma (zip/unzip, other memory types).
There's also the problem of handling discontinuous data structures, which I have no clue about right now.