[flang-commits] [flang] [flang][OpenMP] `do concurrent`: support `local` on device (PR #157638)

Kareem Ergawy via flang-commits flang-commits at lists.llvm.org
Sat Sep 20 23:33:18 PDT 2025


================
@@ -817,6 +800,59 @@ class DoConcurrentConversion
     return distOp;
   }
 
+  void cloneFIRRegionToOMP(mlir::ConversionPatternRewriter &rewriter,
+                           mlir::Region &firRegion,
+                           mlir::Region &ompRegion) const {
+    if (!firRegion.empty()) {
+      rewriter.cloneRegionBefore(firRegion, ompRegion, ompRegion.begin());
+      auto firYield =
+          mlir::cast<fir::YieldOp>(ompRegion.back().getTerminator());
+      rewriter.setInsertionPoint(firYield);
+      mlir::omp::YieldOp::create(rewriter, firYield.getLoc(),
+                                 firYield.getOperands());
+      rewriter.eraseOp(firYield);
+    }
+  }
+
+  void genPrivatizers(mlir::ConversionPatternRewriter &rewriter,
----------------
ergawy wrote:

Done. Let me know if it could be expanded more.

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


More information about the flang-commits mailing list