Commit 0553a46
committed
[MLIR][OpenMP] Update loop operations to use
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.omp.loopnest
1 parent 8226b47 commit 0553a46
File tree
5 files changed
+325
-187
lines changed- mlir
- include/mlir/Dialect/OpenMP
- lib
- Conversion/OpenMPToLLVM
- Dialect/OpenMP/IR
5 files changed
+325
-187
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
24 | 27 | | |
25 | 28 | | |
26 | 29 | | |
| |||
0 commit comments