[all-commits] [llvm/llvm-project] daa873: [flang][hlfir] Support polymorphic hlfir.expr values.

Slava Zakharin via All-commits all-commits at lists.llvm.org
Tue Jul 18 09:00:52 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: daa8734233e781efe3ee92c5b6687f409c1fa7b2
      https://github.com/llvm/llvm-project/commit/daa8734233e781efe3ee92c5b6687f409c1fa7b2
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2023-07-18 (Tue, 18 Jul 2023)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/HLFIRTools.h
    M flang/include/flang/Optimizer/Builder/Runtime/Allocatable.h
    M flang/lib/Optimizer/Builder/Runtime/Allocatable.cpp
    M flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
    M flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp
    A flang/test/HLFIR/bufferize-poly-expr.fir
    A flang/test/Lower/HLFIR/polymorphic-expressions.f90

  Log Message:
  -----------
  [flang][hlfir] Support polymorphic hlfir.expr values.

This patch sets 'polymorphic' attribute of hlfir::ExprType when
the value is created from a polymorphic entity.
Memoization of such ExprType involves creating a mutable descriptor
on the stack, which is initialized (as a null box) and passed to
AllocatableApplyMold with the mold being the entity from which
the ExprType value is being created.

This patch fixes "creating polymorphic temporary" TODO and also
several cases of "'fir.convert' op invalid type conversion" error.

Reviewed By: tblah

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




More information about the All-commits mailing list