[all-commits] [llvm/llvm-project] e60dc8: [flang][hlfir] Expand hlfir.assign's with scalar RHS.

Slava Zakharin via All-commits all-commits at lists.llvm.org
Thu Aug 31 08:48:39 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e60dc8ed7eec4287f0db85e52d45e27bd4c8bbde
      https://github.com/llvm/llvm-project/commit/e60dc8ed7eec4287f0db85e52d45e27bd4c8bbde
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2023-08-31 (Thu, 31 Aug 2023)

  Changed paths:
    M flang/lib/Optimizer/HLFIR/Transforms/OptimizedBufferization.cpp
    A flang/test/HLFIR/opt-scalar-assign.fir

  Log Message:
  -----------
  [flang][hlfir] Expand hlfir.assign's with scalar RHS.

Expanding hlfir.assign's with scalar RHS late in MLIR optimization
pipeline allows LLVM to recognize most of them as simple memset loops.
This is especially important for small size LHS arrays, because
the assign loop nest may be completely unrolled enabling more value
propagation.

Reviewed By: tblah

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


  Commit: cdd5b1629abedd5e9d6ee280e592baa3c1dd1542
      https://github.com/llvm/llvm-project/commit/cdd5b1629abedd5e9d6ee280e592baa3c1dd1542
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2023-08-31 (Thu, 31 Aug 2023)

  Changed paths:
    M flang/lib/Optimizer/HLFIR/Transforms/OptimizedBufferization.cpp
    M flang/test/HLFIR/opt-bufferization.fir
    A flang/test/HLFIR/opt-variable-assign.fir

  Log Message:
  -----------
  [flang][hlfir] Expand array hlfir.assign's.

Expand hlfir.assign with in-memory array RHS and LHS into
a loop nest with element-by-element assignments.
For small arrays this may result in further loop nest unrolling
enabling more value propagation and redundancy elimination.

Note the change in flang/test/HLFIR/opt-bufferization.fir:
the hlfir.assign inside hlfir.elemental gets expanded by the new
pattern.

Depends on D159151

Reviewed By: tblah

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


Compare: https://github.com/llvm/llvm-project/compare/282da837565f...cdd5b1629abe


More information about the All-commits mailing list