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"
37mlir::SmallVector<mlir::Value>
39 const Fortran::evaluate::CoarrayRef &expr);
48 const parser::SyncImagesStmt &);
50 const parser::SyncMemoryStmt &);
58 const parser::ChangeTeamConstruct &);
60 const parser::ChangeTeamStmt &);
62 const parser::EndChangeTeamStmt &);
64 const parser::FormTeamStmt &);
70mlir::SmallVector<mlir::Value>
72 const evaluate::CoarrayRef &expr);
75 const semantics::Symbol &sym);
78 const semantics::Symbol &sym);
80mlir::Value genAllocateCoarray(
82 const semantics::Symbol &sym, mlir::Value addr,
83 const std::optional<Fortran::parser::AllocateCoarraySpec> &allocSpec =
85 mlir::Value errMsg = {},
bool hasStat =
false);
89 const semantics::Symbol &sym,
97 const parser::NotifyWaitStmt &);
108class CoarrayExprHelper {
112 : converter{converter}, symMap{syms}, loc{loc} {}
113 CoarrayExprHelper(
const CoarrayExprHelper &) =
delete;
Definition variable.h:248
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 Fortran::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:222
Definition parse-tree.h:2267
Definition parse-tree.h:2252
Definition parse-tree.h:2261