FLANG
MIFCommon.h
1//===-- MIFCommon.h -------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef FORTRAN_OPTIMIZER_TRANSFORMS_MIFCOMMON_H_
10#define FORTRAN_OPTIMIZER_TRANSFORMS_MIFCOMMON_H_
11
12#include "flang/Optimizer/Builder/FIRBuilder.h"
13#include "flang/Optimizer/Dialect/MIF/MIFOps.h"
14
15static constexpr llvm::StringRef coarrayHandleSuffix = "_coarray_handle";
16static constexpr llvm::StringRef mifSaveCoarraysAllocName =
17 "__mif_save_coarrays_allocate";
18
19namespace mif {
20
21std::string getFullUniqName(mlir::Value addr);
22
23mlir::Value genImageIndex(fir::FirOpBuilder &, mlir::Location loc,
24 mlir::Value coarray, mlir::Value sub,
25 mlir::Value team);
26
27mlir::func::FuncOp getOrCreateInitFunc(fir::FirOpBuilder &builder,
28 mlir::ModuleOp mod,
29 llvm::StringRef name);
30
31} // namespace mif
32
33#endif // FORTRAN_OPTIMIZER_TRANSFORMS_MIFCOMMON_H_