[all-commits] [llvm/llvm-project] c0b45f: [flang] Lower elemental and transformational clean...

jeanPerier via All-commits all-commits at lists.llvm.org
Tue Jan 17 02:45:16 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c0b45fef155fbe3f17f9a6f99074682c69545488
      https://github.com/llvm/llvm-project/commit/c0b45fef155fbe3f17f9a6f99074682c69545488
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2023-01-17 (Tue, 17 Jan 2023)

  Changed paths:
    M flang/include/flang/Lower/IntrinsicCall.h
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/ConvertExprToHLFIR.cpp
    M flang/lib/Lower/IntrinsicCall.cpp
    M flang/test/HLFIR/destroy-codegen.fir
    M flang/test/Lower/HLFIR/elemental-array-ops.f90
    M flang/test/Lower/HLFIR/elemental-intrinsics.f90
    M flang/test/Lower/HLFIR/elemental-user-procedure-ref.f90
    A flang/test/Lower/HLFIR/transformational.f90
    M flang/test/Lower/Intrinsics/transfer.f90
    M flang/test/Lower/Intrinsics/verify.f90

  Log Message:
  -----------
  [flang] Lower elemental and transformational clean-up in HLFIR

In lowering to hlfir, no clean-up was added yet for
the created hlfir.elemental. Add  the needed hlfir.destroy.

Regarding transformational lowering, clean-ups were created because
they are lowered in memory, but this is inconvenient because this
prevented lowering to hlfir from "moving" the created variable to
an expression. Add a new entry point in IntrinsicCall.h that keeps
track of whether or not the returned storage needs to be deallocated,
but does not insert the deallocation in the StatementContext.
This allows using the newly added hlfir.as_expr "move" aspect to be
used and save creating a copy.

Depends on D141839

Reviewed By: clementval

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




More information about the All-commits mailing list