FLANG
ConvertCall.h
1//===-- ConvertCall.h -- lowering of calls ----------------------*- C++ -*-===//
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// Coding style: https://mlir.llvm.org/getting_started/DeveloperGuide/
10//
11//===----------------------------------------------------------------------===//
15//===----------------------------------------------------------------------===//
16
17#ifndef FORTRAN_LOWER_CONVERTCALL_H
18#define FORTRAN_LOWER_CONVERTCALL_H
19
20#include "flang/Lower/AbstractConverter.h"
21#include "flang/Lower/CallInterface.h"
22#include "flang/Optimizer/Builder/HLFIRTools.h"
23#include <optional>
24#include <tuple>
25
26namespace Fortran::lower {
27
31 std::variant<fir::ExtendedValue, hlfir::EntityWithAttributes>;
32
41std::tuple<LoweredResult, bool, mlir::Operation *> genCallOpAndResult(
42 mlir::Location loc, Fortran::lower::AbstractConverter &converter,
44 Fortran::lower::CallerInterface &caller, mlir::FunctionType callSiteType,
45 std::optional<mlir::Type> resultType, bool isElemental = false);
46
51 mlir::Value arg);
52
56
59std::optional<hlfir::EntityWithAttributes> convertCallToHLFIR(
60 mlir::Location loc, Fortran::lower::AbstractConverter &converter,
61 const evaluate::ProcedureRef &procRef, std::optional<mlir::Type> resultType,
63
64void convertUserDefinedAssignmentToHLFIR(
65 mlir::Location loc, Fortran::lower::AbstractConverter &converter,
66 const evaluate::ProcedureRef &procRef, hlfir::Entity lhs, hlfir::Entity rhs,
68} // namespace Fortran::lower
69#endif // FORTRAN_LOWER_CONVERTCALL_H
Definition call.h:233
Definition AbstractConverter.h:87
Definition CallInterface.h:282
Definition StatementContext.h:46
Definition SymbolMap.h:182
Definition HLFIRTools.h:52
Definition ParserActions.h:24
std::variant< fir::ExtendedValue, hlfir::EntityWithAttributes > LoweredResult
Definition ConvertCall.h:30
std::optional< hlfir::EntityWithAttributes > convertCallToHLFIR(mlir::Location loc, Fortran::lower::AbstractConverter &converter, const evaluate::ProcedureRef &procRef, std::optional< mlir::Type > resultType, Fortran::lower::SymMap &symMap, Fortran::lower::StatementContext &stmtCtx)
Definition ConvertCall.cpp:3207
mlir::Value argumentHostAssocs(Fortran::lower::AbstractConverter &converter, mlir::Value arg)
Definition ConvertCall.cpp:108
std::tuple< LoweredResult, bool, mlir::Operation * > genCallOpAndResult(mlir::Location loc, Fortran::lower::AbstractConverter &converter, Fortran::lower::SymMap &symMap, Fortran::lower::StatementContext &stmtCtx, Fortran::lower::CallerInterface &caller, mlir::FunctionType callSiteType, std::optional< mlir::Type > resultType, bool isElemental=false)
Definition ConvertCall.cpp:346
bool isIntrinsicModuleProcRef(const Fortran::evaluate::ProcedureRef &procRef)
Definition ConvertCall.cpp:3191