13#ifndef FORTRAN_OPTIMIZER_OPENACC_SUPPORT_FIROPENACCUTILS_H
14#define FORTRAN_OPTIMIZER_OPENACC_SUPPORT_FIROPENACCUTILS_H
16#include "mlir/Dialect/OpenACC/OpenACC.h"
17#include "mlir/IR/Builders.h"
18#include "mlir/IR/Value.h"
30std::string getVariableName(mlir::Value v,
bool preferDemangledName =
true);
44std::string getRecipeName(mlir::acc::RecipeKind kind, mlir::Type type,
45 mlir::Value var =
nullptr,
46 llvm::ArrayRef<mlir::Value> bounds = {},
47 mlir::acc::ReductionOperator reductionOp =
48 mlir::acc::ReductionOperator::AccNone);
53bool areAllBoundsConstant(llvm::ArrayRef<mlir::Value> bounds);
62createOrGetPrivateRecipe(mlir::OpBuilder &builder, mlir::Location loc,
64 llvm::SmallVector<mlir::Value> &dataBoundOps);
73createOrGetFirstprivateRecipe(mlir::OpBuilder &builder, mlir::Location loc,
75 llvm::SmallVector<mlir::Value> &dataBoundOps);
86createOrGetReductionRecipe(mlir::OpBuilder &builder, mlir::Location loc,
87 mlir::Type ty, mlir::acc::ReductionOperator op,
88 llvm::SmallVector<mlir::Value> &dataBoundOps,
89 mlir::Attribute fastMathAttr = {});
97mlir::Value getOriginalDef(mlir::Value value,
bool stripDeclare =
true);
Definition AbstractConverter.h:37