[PATCH] D75956: [mlir] [VectorOps] Progressively lower vector.outerproduct to LLVM

Aart Bik via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 10 13:06:32 PDT 2020


aartbik created this revision.
Herald added subscribers: llvm-commits, Joonsoo, liufengdb, lucyrfox, mgester, arpith-jacob, nicolasvasilache, antiagainst, shauheen, burmako, jpienaar, rriddle, mehdi_amini.
Herald added a reviewer: nicolasvasilache.
Herald added a project: LLVM.

This replaces the direct lowering of vector.outerproduct to LLVM
with progressive lowering into elementary vectors ops to avoid
having the similar lowering logic at several places.

NOTE1: with the new progressive rule, the lowered llvm is slightly

  more elaborate than with the direct lowering, but the
  generated assembly is just as optimized; still if we
  want to stay closer to the original, we should add
  a "broadcast on extract" to shuffle rewrite (rather
  than special cases all the lowering steps)

NOTE2: the original outerproduct lowering code should now be

  removed but some linalg test work directly on vector
  and contain some dead code, so this requires another CL


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D75956

Files:
  mlir/include/mlir/Dialect/VectorOps/VectorOps.h
  mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
  mlir/lib/Dialect/VectorOps/VectorTransforms.cpp
  mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
  mlir/test/Dialect/VectorOps/vector-changes-transforms.mlir
  mlir/test/Dialect/VectorOps/vector-contract-transforms.mlir
  mlir/test/lib/Transforms/TestVectorTransforms.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D75956.249480.patch
Type: text/x-patch
Size: 24387 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200310/017cf2c3/attachment.bin>


More information about the llvm-commits mailing list