[flang-commits] [flang] [mlir] [flang][OpenMP] Implement HAS_DEVICE_ADDR clause (PR #128568)
Sergio Afonso via flang-commits
flang-commits at lists.llvm.org
Thu Feb 27 06:31:00 PST 2025
================
@@ -247,16 +256,25 @@ 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;
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_ALWAYS |
+ llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_TO | Implicit);
+ }
+
+ /// Check if the mapOp is present in the HasDeviceAddr clause on
+ /// the userOp. Only applies to TargetOp.
+ bool isHasDeviceAddr(mlir::omp::MapInfoOp mapOp, mlir::Operation *userOp) {
+ if (auto targetOp = llvm::dyn_cast<mlir::omp::TargetOp>(userOp)) {
----------------
skatrak wrote:
Nit: Use `dyn_cast_if_present` or pass an `mlir::Operation &` to prevent any null pointer dereferences.
https://github.com/llvm/llvm-project/pull/128568
More information about the flang-commits
mailing list