[all-commits] [llvm/llvm-project] 5226f8: [flang][runtime] Add API to help with the difficul...

jeanPerier via All-commits all-commits at lists.llvm.org
Wed Feb 22 00:16:43 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5226f8a9434a30d2be8273c41a2f23fd626fa878
      https://github.com/llvm/llvm-project/commit/5226f8a9434a30d2be8273c41a2f23fd626fa878
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2023-02-22 (Wed, 22 Feb 2023)

  Changed paths:
    A flang/include/flang/Runtime/array-constructor.h
    M flang/lib/Lower/ConvertArrayConstructor.cpp
    M flang/runtime/CMakeLists.txt
    A flang/runtime/array-constructor.cpp
    M flang/runtime/assign.cpp
    A flang/unittests/Runtime/ArrayConstructor.cpp
    M flang/unittests/Runtime/CMakeLists.txt

  Log Message:
  -----------
  [flang][runtime] Add API to help with the difficult array constructor cases

This runtime API can be used to lower any flavor of array constructors,
but is mainly intended to be used with:

- array constructors for which the extent or length parameters cannot
 be computed without lowering some ac-value or ac-implied-do-control
 that cannot be pre-evaluated.

- array constructors of a derived type with allocatable component where
 copy is not trivial or PDTS.

Example of use cases:
 - `[((i+j,i=1, ifoo()), j=1,n)]` where ifoo() is not pure.
 - `[return_allocatable_array(), return_allocatable_array()]`

Differential Revision: https://reviews.llvm.org/D144411




More information about the All-commits mailing list