FLANG
Assign.h
1//===-- Assign.h - generate assignment runtime API 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#ifndef FORTRAN_OPTIMIZER_BUILDER_RUNTIME_ASSIGN_H
10#define FORTRAN_OPTIMIZER_BUILDER_RUNTIME_ASSIGN_H
11
12namespace mlir {
13class Value;
14class Location;
15} // namespace mlir
16
17namespace fir {
18class FirOpBuilder;
19}
20
21namespace fir::runtime {
22
28void genAssign(fir::FirOpBuilder &builder, mlir::Location loc,
29 mlir::Value destBox, mlir::Value sourceBox);
30
35void genAssignPolymorphic(fir::FirOpBuilder &builder, mlir::Location loc,
36 mlir::Value destBox, mlir::Value sourceBox);
37
47void genAssignExplicitLengthCharacter(fir::FirOpBuilder &builder,
48 mlir::Location loc, mlir::Value destBox,
49 mlir::Value sourceBox);
50
56void genAssignTemporary(fir::FirOpBuilder &builder, mlir::Location loc,
57 mlir::Value destBox, mlir::Value sourceBox);
58
60void genCopyInAssign(fir::FirOpBuilder &builder, mlir::Location loc,
61 mlir::Value tempBoxAddr, mlir::Value varBoxAddr);
63void genCopyOutAssign(fir::FirOpBuilder &builder, mlir::Location loc,
64 mlir::Value varBoxAddr, mlir::Value tempBoxAddr);
65
66} // namespace fir::runtime
67#endif // FORTRAN_OPTIMIZER_BUILDER_RUNTIME_ASSIGN_H
Definition: FIRBuilder.h:55
Definition: AbstractConverter.h:31
@ Value
Lower argument to a value. Mainly intended for scalar arguments.
Definition: AbstractConverter.h:27