[all-commits] [llvm/llvm-project] 6c14e8: [flang][hlfir] Add codegen for vector subscripted LHS

jeanPerier via All-commits all-commits at lists.llvm.org
Tue Jun 27 04:31:31 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6c14e849266e55a022d54ef4dcf09a1c93dcefda
      https://github.com/llvm/llvm-project/commit/6c14e849266e55a022d54ef4dcf09a1c93dcefda
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2023-06-27 (Tue, 27 Jun 2023)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/HLFIRTools.h
    M flang/include/flang/Optimizer/HLFIR/HLFIROps.td
    M flang/lib/Optimizer/Builder/HLFIRTools.cpp
    M flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
    M flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIROrderedAssignments.cpp
    M flang/lib/Optimizer/HLFIR/Transforms/ScheduleOrderedAssignments.cpp
    A flang/test/HLFIR/order_assignments/vector-subscripts-codegen.fir

  Log Message:
  -----------
  [flang][hlfir] Add codegen for vector subscripted LHS

This patch adds support for vector subscripted assignment left-hand
side. It does not yet add support for the cases where the LHS must be
saved because its evaluation could be impacted by the assignment.

The implementation adds an hlfir::ElementalOpInterface to share the
elemental inlining utility and some other tools between
hlfir::ElementalOp and hlfir::ElelemntalAddrOp.

It adds generateYieldedLHS() to allow retrieving the LHS value
in lowering, whether or not it is vector subscripted. If it is vector
subscripted, this utility creates a loop nest iterating over the
elements and returns the address of an element.

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




More information about the All-commits mailing list