Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[MLIR][OpenMP] Update loop operations to use
omp.loopnest
This patch updates the definition of all OpenMP loop operations (`omp.distribute`, `omp.parallel`, `omp.wsloop`, `omp.simdloop`, `omp.taskloop`) to expect a nested `omp.loopnest` and act as wrapper operations instead. Loop information is removed from these operations and their list of traits is updated to include a new common `LoopWrapperInterface`, as well as introducing `SingleBlockImplicitTerminator` traits to all but `omp.parallel`, which can be a wrapper in composite constructs but also define a regular code block. These changes make it so wrapper operations can only have a single region and block, and that it must only have a single compatible wrapper operation or canonical loop in addition to a terminator. Follow-up patches will update PFT to MLIR lowering to generate MLIR conforming to these new definitions for loops.
- Loading branch information