aboutsummaryrefslogtreecommitdiff
path: root/mlir/lib/Conversion/VectorToLLVM
diff options
context:
space:
mode:
authorLei Zhang <antiagainst@google.com>2021-10-07 09:33:51 -0400
committerLei Zhang <antiagainst@google.com>2021-10-07 09:39:26 -0400
commit3964c1db915b00fffb77764892b890a3075e181e (patch)
tree0e67a8bcd0ba027a23f34e1def820dd1e80d9410 /mlir/lib/Conversion/VectorToLLVM
parent2baf7ad6d27fc9c08dd6eb9f8581d7e1353d4ece (diff)
[mlir][vector] Split populateVectorContractLoweringPatterns
It was bundling quite a lot of patterns that convert high-D vector ops into low-D elementary ops. It might not be good for all of the patterns to happen for a particular downstream user. For example, `ShapeCastOpRewritePattern` rewrites `vector.shape_cast` into data movement extract/insert ops. Instead, split the entry point into multiple ones so users can pull in patterns on demand. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D111225
Diffstat (limited to 'mlir/lib/Conversion/VectorToLLVM')
-rw-r--r--mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp b/mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp
index 1a708dc4da6c..d920bb7b0f9a 100644
--- a/mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp
+++ b/mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp
@@ -62,7 +62,10 @@ void LowerVectorToLLVMPass::runOnOperation() {
{
RewritePatternSet patterns(&getContext());
populateVectorToVectorCanonicalizationPatterns(patterns);
+ populateVectorBroadcastLoweringPatterns(patterns);
populateVectorContractLoweringPatterns(patterns);
+ populateVectorMaskOpLoweringPatterns(patterns);
+ populateVectorShapeCastLoweringPatterns(patterns);
populateVectorTransposeLoweringPatterns(patterns);
// Vector transfer ops with rank > 1 should be lowered with VectorToSCF.
populateVectorTransferLoweringPatterns(patterns, /*maxTransferRank=*/1);