9#ifndef FORTRAN_OPTIMIZER_TRANSFORMS_CUFCOMMON_H_
10#define FORTRAN_OPTIMIZER_TRANSFORMS_CUFCOMMON_H_
12#include "flang/Optimizer/Dialect/FIROps.h"
13#include "mlir/Dialect/GPU/IR/GPUDialect.h"
14#include "mlir/IR/BuiltinOps.h"
16static constexpr llvm::StringRef cudaDeviceModuleName =
"cuda_device_mod";
17static constexpr llvm::StringRef cudaSharedMemSuffix =
"__shared_mem";
27 mlir::SymbolTable &symTab);
29bool isCUDADeviceContext(mlir::Operation *op);
30bool isCUDADeviceContext(mlir::Region &,
31 bool isDoConcurrentOffloadEnabled =
false);
32bool isRegisteredDeviceGlobal(fir::GlobalOp op);
33bool isRegisteredDeviceAttr(std::optional<cuf::DataAttribute> attr);
35void genPointerSync(
const mlir::Value box, fir::FirOpBuilder &builder);
Definition FIRBuilder.h:55
Definition ConvertVariable.h:26
mlir::gpu::GPUModuleOp getOrCreateGPUModule(mlir::ModuleOp mod, mlir::SymbolTable &symTab)
Retrieve or create the CUDA Fortran GPU module in the given mod.
Definition CUFCommon.cpp:18
Definition AbstractConverter.h:34