[Mlir-commits] [flang] [llvm] [mlir] [flang][OpenMP][MLIR] Add MLIR op for loop directive (PR #113911)
Kareem Ergawy
llvmlistbot at llvm.org
Thu Oct 31 23:37:53 PDT 2024
================
@@ -382,6 +382,50 @@ def LoopNestOp : OpenMP_Op<"loop_nest", traits = [
// 2.9.2 Workshare Loop Construct
//===----------------------------------------------------------------------===//
+def LoopOp : OpenMP_Op<"loop", traits = [
+ DeclareOpInterfaceMethods<LoopWrapperInterface>, NoTerminator, SingleBlock,
+ AttrSizedOperandSegments
+ ], clauses = [
+ OpenMP_BindClause, OpenMP_PrivateClause, OpenMP_OrderClause,
+ OpenMP_ReductionClause
+ ], singleRegion = true> {
+ let summary = "loop construct";
+ let description = [{
+ A loop construct specifies that the logical iterations of the associated loops
+ may execute concurrently and permits the encountering threads to execute the
+ loop accordingly. A loop construct is a worksharing construct if its binding
+ region is the innermost enclosing parallel region. Otherwise it is not a work-
+ sharing region. The directive asserts that the iterations of the associated
+ loops may execute in any order, including concurrently. Each logical iteration
+ is executed once per instance of the loop region that is encountered by exactly
+ one thread that is a member of the binding thread set.
----------------
ergawy wrote:
Updated the description. Hopefully, reads better now.
https://github.com/llvm/llvm-project/pull/113911
More information about the Mlir-commits
mailing list