[RFC][MLIR] OpenMP Loop Transformation : tile and unroll directive operation support for omp.dialect

I did not fully understand this point. From your original proposal, the attributes are always on the OpenMP dialect operations. For the workshare-loop it is on omp.wsloop, and so is it for the omp.transform_loop standalone operation. There are no foreign-dialect attributes here.

When we discussed this before, there were some strong objections against the nested approach and there was a requirement that worksharing loop be represented as a loop. Some of it is captured in this comment. Would adding the OpenMPLoopInterface to the scf.for or fir.do_loop be sufficient to prevent transformations of these loops by other passes?