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