[all-commits] [llvm/llvm-project] 7c3c5b: [mlir][Vector] Add option to fully unroll for Vect...

Nicolas Vasilache via All-commits all-commits at lists.llvm.org
Wed May 20 08:06:19 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 7c3c5b11b1fa285443573e6e8ecc2383fcda6554
      https://github.com/llvm/llvm-project/commit/7c3c5b11b1fa285443573e6e8ecc2383fcda6554
  Author: Nicolas Vasilache <ntv at google.com>
  Date:   2020-05-20 (Wed, 20 May 2020)

  Changed paths:
    M mlir/include/mlir/Conversion/VectorToSCF/VectorToSCF.h
    M mlir/include/mlir/Dialect/Vector/VectorOps.td
    M mlir/include/mlir/Dialect/Vector/VectorUtils.h
    M mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
    M mlir/lib/Dialect/Vector/VectorOps.cpp
    M mlir/lib/Dialect/Vector/VectorTransforms.cpp
    M mlir/lib/Dialect/Vector/VectorUtils.cpp
    M mlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
    M mlir/test/lib/Transforms/TestVectorToSCFConversion.cpp

  Log Message:
  -----------
  [mlir][Vector] Add option to fully unroll for VectorTransfer to SCF lowering

Summary:
Previously, the only support partial lowering from vector transfers to SCF was
going through loops. This requires a dedicated allocation and extra memory
roundtrips because LLVM aggregates cannot be indexed dynamically (for more
details see the [deep-dive](https://mlir.llvm.org/docs/Dialects/Vector/#deeperdive)).

This revision allows specifying full unrolling which removes this additional roundtrip.
This should be used carefully though because full unrolling will spill, negating the
benefits of removing the interim alloc in the first place.

Proper heuristics are left for a later time.

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




More information about the All-commits mailing list