llvm-project
llvm-project copied to clipboard
[MLIR][OpenMP] Add omp.loopnest operation
This patch introduces the omp.loopnest MLIR operation, which contains the information of a rectangular collapsed loop nest. It mirrors the existing representation of omp.wsloop, omp.simdloop and omp.taskloop, with the intent of removing loop information from these in a subsequent patch.
This representation is a temporary solution that does not address loop transformations. That is the goal of the omp.canonical_loop discussion.
Can we use a different name than omp.canonical_loop (or propose a new name for what we will use to create a CanonicalLoopInfo)? I fear that when we eventually introduce the final omp.canonical_loop we would have to fight a lot of non-obvious conflicts of two operations with the same name, even if only the working branches of the final omp.canonical_loop merges the last top-of-free from trunk. With a different name, both can coexist (for a while) until final omp.canonical_loop reaches parity with the stopgap solution.
That's a good point, using another name to avoid conflicts during the transition, if we follow this approach, makes sense.
Features in this PR already landed via merge from main.