[Mlir-commits] [flang] [mlir] [openmp] [Flang][OpenMP] Initial mapping of Fortran pointers and allocatables for target devices (PR #71766)
Kiran Chandramohan
llvmlistbot at llvm.org
Tue Dec 5 09:11:19 PST 2023
================
@@ -1798,22 +1850,34 @@ bool ClauseProcessor::processMap(
mlir::omp::DataBoundsOp>(
converter, firOpBuilder, semanticsContext, stmtCtx, ompObject,
clauseLocation, asFortran, bounds, treatIndexAsSection);
-
- // Explicit map captures are captured ByRef by default,
- // optimisation passes may alter this to ByCopy or other capture
- // types to optimise
- mlir::Value mapOp = createMapInfoOp(
- firOpBuilder, clauseLocation, baseAddr, asFortran, bounds,
- static_cast<
- std::underlying_type_t<llvm::omp::OpenMPOffloadMappingFlags>>(
- mapTypeBits),
- mlir::omp::VariableCaptureKind::ByRef, baseAddr.getType());
+ auto origSymbol =
+ converter.getSymbolAddress(*getOmpObjectSymbol(ompObject));
+ mlir::Value mapOp, symAddr;
+ if (fir::isPointerType(origSymbol.getType()) ||
+ fir::isAllocatableType(origSymbol.getType()) ||
+ fir::isAssumedShape(origSymbol.getType())) {
----------------
kiranchandramohan wrote:
Nit: May be add a function `fir::isTypeWithDescriptor` and reuse it further down as well.
https://github.com/llvm/llvm-project/pull/71766
More information about the Mlir-commits
mailing list