[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