MLIR Summit OpenMP Roundtable discussion (Summary)

If the tile_sizes with three entries [4,4,4] here mean applying tiling to the loops with index %c0, %d0 and %y0 then there is probably no need to distinguish the loops with the loops attribute/operand. So it can effectively be simplified to the following. The omp.ws operation applies worksharing to the outermost loop formed after the tiling operation.

omp.ws
omp.tile { tile_sizes=[4,4,4] }
omp.canonical_loop for (%c0) to (%c10) step (%c1) {
  omp.canonical_loop for (%d0) to (%d10) step (%d1) {
    omp.canonical_loop for (%y0) to (%y10) step (%y1) {
....
 }
  }
}

The question I was asking is whether nesting sufficient to model the loop transformation operations in the OpenMP standard?