1 //===-- Coarray.cpp -------------------------------------------------------===//
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
7 //===----------------------------------------------------------------------===//
9 /// Implementation of the lowering of image related constructs and expressions.
10 /// Fortran images can form teams, communicate via coarrays, etc.
12 //===----------------------------------------------------------------------===//
14 #include "flang/Lower/Coarray.h"
15 #include "flang/Lower/AbstractConverter.h"
16 #include "flang/Lower/SymbolMap.h"
17 #include "flang/Optimizer/Builder/FIRBuilder.h"
18 #include "flang/Optimizer/Builder/Todo.h"
19 #include "flang/Parser/parse-tree.h"
20 #include "flang/Semantics/expression.h"
22 //===----------------------------------------------------------------------===//
23 // TEAM statements and constructs
24 //===----------------------------------------------------------------------===//
26 void Fortran::lower::genChangeTeamConstruct(
27 Fortran::lower::AbstractConverter
&converter
,
28 Fortran::lower::pft::Evaluation
&,
29 const Fortran::parser::ChangeTeamConstruct
&) {
30 TODO(converter
.getCurrentLocation(), "coarray: CHANGE TEAM construct");
33 void Fortran::lower::genChangeTeamStmt(
34 Fortran::lower::AbstractConverter
&converter
,
35 Fortran::lower::pft::Evaluation
&,
36 const Fortran::parser::ChangeTeamStmt
&) {
37 TODO(converter
.getCurrentLocation(), "coarray: CHANGE TEAM statement");
40 void Fortran::lower::genEndChangeTeamStmt(
41 Fortran::lower::AbstractConverter
&converter
,
42 Fortran::lower::pft::Evaluation
&,
43 const Fortran::parser::EndChangeTeamStmt
&) {
44 TODO(converter
.getCurrentLocation(), "coarray: END CHANGE TEAM statement");
47 void Fortran::lower::genFormTeamStatement(
48 Fortran::lower::AbstractConverter
&converter
,
49 Fortran::lower::pft::Evaluation
&, const Fortran::parser::FormTeamStmt
&) {
50 TODO(converter
.getCurrentLocation(), "coarray: FORM TEAM statement");
53 //===----------------------------------------------------------------------===//
54 // COARRAY expressions
55 //===----------------------------------------------------------------------===//
57 fir::ExtendedValue
Fortran::lower::CoarrayExprHelper::genAddr(
58 const Fortran::evaluate::CoarrayRef
&expr
) {
60 TODO(converter
.getCurrentLocation(), "co-array address");
63 fir::ExtendedValue
Fortran::lower::CoarrayExprHelper::genValue(
64 const Fortran::evaluate::CoarrayRef
&expr
) {
65 TODO(converter
.getCurrentLocation(), "co-array value");