[flang-commits] [flang] [llvm] [mlir] [Flang][OpenMP][MLIR] Implement close, present and ompx_hold modifiers for Flang maps (PR #129586)

Sergio Afonso via flang-commits flang-commits at lists.llvm.org
Thu Mar 6 07:47:41 PST 2025


================
@@ -247,16 +247,19 @@ class MapInfoFinalizationPass
                               mlir::omp::TargetUpdateOp>(target))
       return mapTypeFlag;
 
-    bool hasImplicitMap =
-        (llvm::omp::OpenMPOffloadMappingFlags(mapTypeFlag) &
-         llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_IMPLICIT) ==
+    llvm::omp::OpenMPOffloadMappingFlags implicit =
+        llvm::omp::OpenMPOffloadMappingFlags(mapTypeFlag) &
         llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_IMPLICIT;
 
+    llvm::omp::OpenMPOffloadMappingFlags close =
+        llvm::omp::OpenMPOffloadMappingFlags(mapTypeFlag) &
+        llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_CLOSE;
+
+    // TODO/FIXME: When we apply ALWAYS (an internal non-user specified always)
+    // to the descriptor, we must remove it when CLOSE is applied, as otherwise
+    // it'll break certain edge cases.
     return llvm::to_underlying(
-        hasImplicitMap
-            ? llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_TO |
-                  llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_IMPLICIT
-            : llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_TO);
+        llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_TO | implicit | close);
----------------
skatrak wrote:

Nit: I believe this should be the same. And perhaps introduce a `using llvm::omp::OpenMPOffloadMappingFlags` statement to make it more readable.
```suggestion
    llvm::omp::OpenMPOffloadMappingFlags flags =
        llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_TO |
        (llvm::omp::OpenMPOffloadMappingFlags(mapTypeFlag) &
          (llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_IMPLICIT |
           llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_CLOSE));
        return llvm::to_underlying(flags);
```

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


More information about the flang-commits mailing list