FLANG
Macros
MapsForPrivatizedSymbols.cpp File Reference
#include "flang/Optimizer/Builder/FIRBuilder.h"
#include "flang/Optimizer/Dialect/FIRType.h"
#include "flang/Optimizer/Dialect/Support/KindMapping.h"
#include "flang/Optimizer/HLFIR/HLFIROps.h"
#include "flang/Optimizer/OpenMP/Passes.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/OpenMP/OpenMPDialect.h"
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/SymbolTable.h"
#include "mlir/Pass/Pass.h"
#include "llvm/Frontend/OpenMP/OMPConstants.h"
#include "llvm/Support/Debug.h"
#include <type_traits>
#include "flang/Optimizer/OpenMP/Passes.h.inc"

Macros

#define DEBUG_TYPE   "omp-maps-for-privatized-symbols"
 
#define GEN_PASS_DEF_MAPSFORPRIVATIZEDSYMBOLSPASS
 

Detailed Description

An OpenMP dialect related pass for FIR/HLFIR which creates MapInfoOp instances for certain privatized symbols. For example, if an allocatable variable is used in a private clause attached to a omp.target op, then the allocatable variable's descriptor will be needed on the device (e.g. GPU). This descriptor needs to be separately mapped onto the device. This pass creates the necessary omp.map.info ops for this.