13#ifndef FORTRAN_LOWER_OPENMP_PRIVATEREDUCTIONUTILS_H
14#define FORTRAN_LOWER_OPENMP_PRIVATEREDUCTIONUTILS_H
16#include "mlir/IR/Location.h"
17#include "mlir/IR/Value.h"
36class AbstractConverter;
40enum class DeclOperationKind { Private, FirstPrivate, Reduction };
41inline bool isPrivatization(DeclOperationKind kind) {
42 return (kind == DeclOperationKind::FirstPrivate) ||
43 (kind == DeclOperationKind::Private);
45inline bool isReduction(DeclOperationKind kind) {
46 return kind == DeclOperationKind::Reduction;
53void populateByRefInitAndCleanupRegions(
54 AbstractConverter &converter, mlir::Location loc, mlir::Type argType,
55 mlir::Value scalarInitValue, mlir::Block *initBlock,
56 mlir::Value allocatedPrivVarArg, mlir::Value moldArg,
57 mlir::Region &cleanupRegion, DeclOperationKind kind,
Definition: FIRBuilder.h:55
Definition: bit-population-count.h:20
Definition: AbstractConverter.h:31
Definition: AbstractConverter.h:27