xref: /llvm-project/flang/lib/Lower/Coarray.cpp (revision 5db4779c3f07b6f562339722c176fb58329652ac)
1 //===-- Coarray.cpp -------------------------------------------------------===//
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 /// Implementation of the lowering of image related constructs and expressions.
10 /// Fortran images can form teams, communicate via coarrays, etc.
11 ///
12 //===----------------------------------------------------------------------===//
13 
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"
21 
22 //===----------------------------------------------------------------------===//
23 // TEAM statements and constructs
24 //===----------------------------------------------------------------------===//
25 
genChangeTeamConstruct(Fortran::lower::AbstractConverter & converter,Fortran::lower::pft::Evaluation &,const Fortran::parser::ChangeTeamConstruct &)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");
31 }
32 
genChangeTeamStmt(Fortran::lower::AbstractConverter & converter,Fortran::lower::pft::Evaluation &,const Fortran::parser::ChangeTeamStmt &)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");
38 }
39 
genEndChangeTeamStmt(Fortran::lower::AbstractConverter & converter,Fortran::lower::pft::Evaluation &,const Fortran::parser::EndChangeTeamStmt &)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");
45 }
46 
genFormTeamStatement(Fortran::lower::AbstractConverter & converter,Fortran::lower::pft::Evaluation &,const Fortran::parser::FormTeamStmt &)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");
51 }
52 
53 //===----------------------------------------------------------------------===//
54 // COARRAY expressions
55 //===----------------------------------------------------------------------===//
56 
genAddr(const Fortran::evaluate::CoarrayRef & expr)57 fir::ExtendedValue Fortran::lower::CoarrayExprHelper::genAddr(
58     const Fortran::evaluate::CoarrayRef &expr) {
59   (void)symMap;
60   TODO(converter.getCurrentLocation(), "co-array address");
61 }
62 
genValue(const Fortran::evaluate::CoarrayRef & expr)63 fir::ExtendedValue Fortran::lower::CoarrayExprHelper::genValue(
64     const Fortran::evaluate::CoarrayRef &expr) {
65   TODO(converter.getCurrentLocation(), "co-array value");
66 }
67