[flang-commits] [flang] [Flang][OpenMP] MLIR lowering support for grainsize and num_tasks clause (PR #128490)

Tom Eccles via flang-commits flang-commits at lists.llvm.org
Wed May 7 03:46:54 PDT 2025


================
@@ -365,6 +365,27 @@ bool ClauseProcessor::processHint(mlir::omp::HintClauseOps &result) const {
   return false;
 }
 
+bool ClauseProcessor::processGrainsize(
+    lower::StatementContext &stmtCtx,
+    mlir::omp::GrainsizeClauseOps &result) const {
+  using grainsize = omp::clause::Grainsize;
+  if (auto *clause = findUniqueClause<grainsize>()) {
+    fir::FirOpBuilder &firOpBuilder = converter.getFirOpBuilder();
+    mlir::MLIRContext *context = firOpBuilder.getContext();
+    const auto &modifier =
+        std::get<std::optional<grainsize::Prescriptiveness>>(clause->t);
+    if (modifier) {
+      result.grainsizeMod = mlir::omp::ClauseGrainsizeTypeAttr::get(
+          context, mlir::omp::ClauseGrainsizeType::Strict);
+    }
----------------
tblah wrote:

I understand that `strict` is the only grainsize modifier currently in the openmp standard, but I think it would be good practice to check that the modifier is actually `strict` just in case something else is added in the future.

https://github.com/llvm/llvm-project/pull/128490


More information about the flang-commits mailing list