[PATCH] D105584: [MLIR][OpenMP] Distribute Construct Operation

Kiran Chandramohan via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 5 08:49:08 PST 2023


kiranchandramohan added inline comments.


================
Comment at: mlir/test/Dialect/OpenMP/ops.mlir:124
 
+// CHECK-LABEL: omp_DistributeOp
+func.func @omp_DistributeOp(%lb : index, %ub : index, %step : index, %data_var : memref<i32>, %chunk_var : i32) -> () {
----------------
abidmalikwaterloo wrote:
> kiranchandramohan wrote:
> > kiranchandramohan wrote:
> > > Add a pretty-print test as well.
> > Nit: please add a pretty-print test.
> Just need clarification. Do you mean something similar to the following:
> 
> ```
> // CHECK-LABEL: omp_wsloop_pretty
> func.func @omp_wsloop_pretty(%lb : index, %ub : index, %step : index, %data_var : memref<i32>, %linear_var : i32, %chunk_var : i32, %chunk_var2 : i16) -> () {
> 
>   // CHECK: omp.wsloop ordered(2)
>   // CHECK-SAME: for (%{{.*}}) : index = (%{{.*}}) to (%{{.*}}) step (%{{.*}})
>   omp.wsloop ordered(2)
>   for (%iv) : index = (%lb) to (%ub) step (%step) {
>     omp.yield
>   }
> 
>   // CHECK: omp.wsloop linear(%{{.*}} = %{{.*}} : memref<i32>) schedule(static)
>   // CHECK-SAME: for (%{{.*}}) : index = (%{{.*}}) to (%{{.*}}) step (%{{.*}})
>   omp.wsloop schedule(static) linear(%data_var = %linear_var : memref<i32>)
>   for (%iv) : index = (%lb) to (%ub) step (%step) {
>     omp.yield
>   }
> 
>   // CHECK: omp.wsloop linear(%{{.*}} = %{{.*}} : memref<i32>) schedule(static = %{{.*}} : i32) ordered(2)
>   // CHECK-SAME: for (%{{.*}}) : index = (%{{.*}}) to (%{{.*}}) step (%{{.*}})
>   omp.wsloop ordered(2) linear(%data_var = %linear_var : memref<i32>) schedule(static = %chunk_var : i32)
>   for (%iv) : index = (%lb) to (%ub) step (%step) {
>     omp.yield
>   }
> 
>   // CHECK: omp.wsloop linear(%{{.*}} = %{{.*}} : memref<i32>) schedule(dynamic = %{{.*}} : i32, nonmonotonic) ordered(2)
>   // CHECK-SAME: for (%{{.*}}) : index = (%{{.*}}) to (%{{.*}}) step (%{{.*}})
>   omp.wsloop ordered(2) linear(%data_var = %linear_var : memref<i32>) schedule(dynamic = %chunk_var : i32, nonmonotonic)
>   for (%iv) : index = (%lb) to (%ub) step (%step)  {
>     omp.yield
>   }
> 
>   // CHECK: omp.wsloop linear(%{{.*}} = %{{.*}} : memref<i32>) schedule(dynamic = %{{.*}} : i16, monotonic) ordered(2)
>   // CHECK-SAME: for (%{{.*}}) : index = (%{{.*}}) to (%{{.*}}) step (%{{.*}})
>   omp.wsloop ordered(2) linear(%data_var = %linear_var : memref<i32>) schedule(dynamic = %chunk_var2 : i16, monotonic)
>   for (%iv) : index = (%lb) to (%ub) step (%step) {
>     omp.yield
>   }
> 
>   // CHECK: omp.wsloop for (%{{.*}}) : index = (%{{.*}}) to (%{{.*}}) step (%{{.*}})
>   omp.wsloop for (%iv) : index = (%lb) to (%ub) step (%step) {
>     omp.yield
>   }
> 
>   // CHECK: omp.wsloop for (%{{.*}}) : index = (%{{.*}}) to (%{{.*}}) inclusive step (%{{.*}})
>   omp.wsloop for (%iv) : index = (%lb) to (%ub) inclusive step (%step) {
>     omp.yield
>   }
> 
>   // CHECK: omp.wsloop nowait
>   // CHECK-SAME: for (%{{.*}}) : index = (%{{.*}}) to (%{{.*}}) step (%{{.*}})
>   omp.wsloop nowait
>   for (%iv) : index = (%lb) to (%ub) step (%step) {
>     omp.yield
>   }
> 
>   // CHECK: omp.wsloop nowait order(concurrent)
>   // CHECK-SAME: for (%{{.*}}) : index = (%{{.*}}) to (%{{.*}}) step (%{{.*}})
>   omp.wsloop order(concurrent) nowait
>   for (%iv) : index = (%lb) to (%ub) step (%step) {
>     omp.yield
>   }
> 
>   return
> }
> ```
Yes.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105584/new/

https://reviews.llvm.org/D105584



More information about the cfe-commits mailing list