9#ifndef FORTRAN_UTILS_OPENMP_H_
10#define FORTRAN_UTILS_OPENMP_H_
12#include "mlir/Dialect/OpenMP/OpenMPDialect.h"
19namespace Fortran::utils::openmp {
29mlir::omp::MapInfoOp createMapInfoOp(mlir::OpBuilder &builder,
30 mlir::Location loc, mlir::Value baseAddr, mlir::Value varPtrPtr,
31 llvm::StringRef name, llvm::ArrayRef<mlir::Value> bounds,
32 llvm::ArrayRef<mlir::Value> members, mlir::ArrayAttr membersIndex,
33 mlir::omp::ClauseMapFlags mapType,
34 mlir::omp::VariableCaptureKind mapCaptureType, mlir::Type retTy,
35 bool partialMap =
false,
36 mlir::FlatSymbolRefAttr mapperId = mlir::FlatSymbolRefAttr());
49mlir::Value mapTemporaryValue(fir::FirOpBuilder &firOpBuilder,
50 mlir::omp::TargetOp targetOp, mlir::Value val,
51 llvm::StringRef name =
"tmp.map");
61void cloneOrMapRegionOutsiders(
62 fir::FirOpBuilder &firOpBuilder, mlir::omp::TargetOp targetOp);
64using RecordMemberMapperMangler =
65 std::function<void(std::string &mapperId, llvm::StringRef memberName)>;
67mlir::FlatSymbolRefAttr getOrGenImplicitDefaultDeclareMapper(
68 fir::FirOpBuilder &firOpBuilder, mlir::Location loc,
69 fir::RecordType recordType, llvm::StringRef mapperNameStr,
70 RecordMemberMapperMangler mangler = {});
Definition FIRBuilder.h:56
Definition AbstractConverter.h:37