[all-commits] [llvm/llvm-project] 8d64df: [mlir][Vector] Revisit VectorToSCF.
Nicolas Vasilache via All-commits
all-commits at lists.llvm.org
Mon Sep 7 02:20:33 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 8d64df9f139038b48344dd9f1f20a38b22aba8c9
https://github.com/llvm/llvm-project/commit/8d64df9f139038b48344dd9f1f20a38b22aba8c9
Author: Nicolas Vasilache <ntv at google.com>
Date: 2020-09-07 (Mon, 07 Sep 2020)
Changed paths:
M mlir/include/mlir/Dialect/Vector/EDSC/Intrinsics.h
M mlir/include/mlir/Dialect/Vector/VectorOps.td
A mlir/integration_test/Dialect/Vector/CPU/test-transfer-to-loops.mlir
M mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
M mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
M mlir/lib/Dialect/Vector/VectorOps.cpp
M mlir/test/Conversion/StandardToLLVM/convert-static-memref-ops.mlir
M mlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
M mlir/test/EDSC/builder-api-test.cpp
Log Message:
-----------
[mlir][Vector] Revisit VectorToSCF.
Vector to SCF conversion still had issues due to the interaction with the natural alignment derived by the LLVM data layout. One traditional workaround is to allocate aligned. However, this does not always work for vector sizes that are non-powers of 2.
This revision implements a more portable mechanism where the intermediate allocation is always a memref of elemental vector type. AllocOp is extended to use the natural LLVM DataLayout alignment for non-scalar types, when the alignment is not specified in the first place.
An integration test is added that exercises the transfer to scf.for + scalar lowering with a 5x5 transposition.
Differential Revision: https://reviews.llvm.org/D87150
More information about the All-commits
mailing list