[PATCH] D80100: [mlir][Vector] Add option to fully unroll for VectorTransfer to SCF lowering

Nicolas Vasilache via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun May 17 22:20:52 PDT 2020


nicolasvasilache created this revision.
nicolasvasilache added reviewers: aartbik, ftynse.
Herald added subscribers: llvm-commits, jurahul, Kayjukh, frgossen, grosul1, Joonsoo, stephenneuendorffer, liufengdb, lucyrfox, mgester, arpith-jacob, antiagainst, shauheen, jpienaar, rriddle, mehdi_amini.
Herald added a project: LLVM.

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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D80100

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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D80100.264532.patch
Type: text/x-patch
Size: 46584 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200518/71c4ec1f/attachment.bin>


More information about the llvm-commits mailing list