xref: /llvm-project/flang/include/flang/Optimizer/Builder/Runtime/ArrayConstructor.h (revision 9683a9c9989a3ab40fde9afdcdc5ba7e203e3728)
1 //===- ArrayConstructor.h - array constructor 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_ARRAYCONSTRUCTOR_H
10 #define FORTRAN_OPTIMIZER_BUILDER_RUNTIME_ARRAYCONSTRUCTOR_H
11 
12 namespace mlir {
13 class Value;
14 class Location;
15 } // namespace mlir
16 
17 namespace fir {
18 class FirOpBuilder;
19 }
20 
21 namespace fir::runtime {
22 
23 mlir::Value genInitArrayConstructorVector(mlir::Location loc,
24                                           fir::FirOpBuilder &builder,
25                                           mlir::Value toBox,
26                                           mlir::Value useValueLengthParameters);
27 
28 void genPushArrayConstructorValue(mlir::Location loc,
29                                   fir::FirOpBuilder &builder,
30                                   mlir::Value arrayConstructorVector,
31                                   mlir::Value fromBox);
32 
33 void genPushArrayConstructorSimpleScalar(mlir::Location loc,
34                                          fir::FirOpBuilder &builder,
35                                          mlir::Value arrayConstructorVector,
36                                          mlir::Value fromAddress);
37 
38 } // namespace fir::runtime
39 #endif // FORTRAN_OPTIMIZER_BUILDER_RUNTIME_ARRAYCONSTRUCTOR_H
40