[Mlir-commits] [mlir] [OpenMP][MLIR] Add omp.canonical_loop operation, !omp.cli type, omp.new_cli operation (PR #71712)
Kiran Chandramohan
llvmlistbot at llvm.org
Tue Nov 14 23:48:16 PST 2023
================
@@ -405,6 +405,170 @@ def SingleOp : OpenMP_Op<"single", [AttrSizedOperandSegments]> {
let hasVerifier = 1;
}
+//===---------------------------------------------------------------------===//
+// OpenMP Canonical Loop Info Type
+//===---------------------------------------------------------------------===//
+
+def CanonicalLoopInfoType : OpenMP_Type<"CanonicalLoopInfo", "cli"> {
+ let summary = "Type for representing a reference to a canonical loop";
+ let description = [{
+ A variable of type CanonicalLoopInfo refers to an OpenMP-compatible
+ canonical loop in the same function. Variables of this type are not
+ available at runtime and therefore cannot be used by the program itself,
+ i.e. an opaque type. It is similar to the transform dialect's
+ `!transform.interface` type, but instead of implementing an interface
+ for each transformation, the OpenMP dialect itself defines possible
+ operations on this type.
+
+ A CanonicalLoopInfo variable can
+
+ 1. passed to omp.canonical_loop to assiciate the loop to that variable
+ 2. passed to omp operations that take a CanonicalLoopInfo argument,
+ such as `omp.unroll`.
+
+ A CanonicalLoopInfo variable can not
+
+ 1. be returned from a function,
+ 2. passed to operations that are not specifically designed to take a
+ CanonicalLoopInfo, including AnyType.
+
+ A CanonicalLoopInfo variable directly corresponds to an object of
----------------
kiranchandramohan wrote:
```suggestion
A CanonicalLoopInfo value directly corresponds to an object of
```
https://github.com/llvm/llvm-project/pull/71712
More information about the Mlir-commits
mailing list