9#ifndef FORTRAN_LOWER_MULTIIMAGEFORTRAN_H
10#define FORTRAN_LOWER_MULTIIMAGEFORTRAN_H
12#include "flang/Lower/AbstractConverter.h"
13#include "flang/Optimizer/Builder/BoxValue.h"
14#include "flang/Optimizer/Dialect/MIF/MIFOps.h"
44 const parser::SyncImagesStmt &);
46 const parser::SyncMemoryStmt &);
54 const parser::ChangeTeamConstruct &);
56 const parser::ChangeTeamStmt &);
58 const parser::EndChangeTeamStmt &);
60 const parser::FormTeamStmt &);
66mlir::SmallVector<mlir::Value>
68 const evaluate::CoarrayRef &expr);
71 const semantics::Symbol &sym);
74 const semantics::Symbol &sym);
76mlir::Value genAllocateCoarray(
78 const semantics::Symbol &sym, mlir::Value addr,
79 const std::optional<Fortran::parser::AllocateCoarraySpec> &allocSpec =
81 mlir::Value errMsg = {},
bool hasStat =
false);
85 const semantics::Symbol &sym,
95class CoarrayExprHelper {
99 : converter{converter}, symMap{syms}, loc{loc} {}
100 CoarrayExprHelper(
const CoarrayExprHelper &) =
delete;
Definition variable.h:243
Definition AbstractConverter.h:87
fir::ExtendedValue genAddr(const evaluate::CoarrayRef &expr)
Generate the address of a co-array expression.
Definition MultiImageFortran.cpp:513
fir::ExtendedValue genValue(const evaluate::CoarrayRef &expr)
Generate the value of a co-array expression.
Definition MultiImageFortran.cpp:519
Definition SymbolMap.h:181
Definition BoxValue.h:469
Definition ParserActions.h:24
mlir::SmallVector< mlir::Value > getCosubscripts(AbstractConverter &converter, mlir::Location loc, const evaluate::CoarrayRef &expr)
Generates a vector of cosubscripts from CoarrayRef.
Definition MultiImageFortran.cpp:268
Definition check-expression.h:19
Definition bit-population-count.h:20
Definition PFTBuilder.h:221
Definition parse-tree.h:2255
Definition parse-tree.h:2240
Definition parse-tree.h:2249