[all-commits] [llvm/llvm-project] c9e384: [flang][hlfir] Implement hlfir.forall codegen when...

jeanPerier via All-commits all-commits at lists.llvm.org
Fri May 19 06:56:48 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c9e3840c832d4c3fbbf57f0a8c90ae3d80af8913
      https://github.com/llvm/llvm-project/commit/c9e3840c832d4c3fbbf57f0a8c90ae3d80af8913
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2023-05-19 (Fri, 19 May 2023)

  Changed paths:
    M flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIROrderedAssignments.cpp
    A flang/test/HLFIR/order_assignments/forall-codegen-fuse-assignments.fir
    A flang/test/HLFIR/order_assignments/forall-codegen-no-conflict.fir
    M flang/test/HLFIR/ordered-assignments-codegen-todo.fir

  Log Message:
  -----------
  [flang][hlfir] Implement hlfir.forall codegen when no temp is required

The patch applies the schedule built with the utility added in the
previous D150455 patch to generate the code for an ordered assignment
tree. For now, it only supports forall that do not contain user defined
assignments or assignments to vector subscripted entities, and for
which the scheduling analysis does not require temporary storages.

Support for temporary, WHERE, and user-defined/vector subscript
assignment will be added in later patches.

This enables end-to-end support with HLFIR for forall where the schedule
analysis can prove there is no need to create temporary storage.

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




More information about the All-commits mailing list