diff options
author | Lei Zhang <antiagainst@google.com> | 2021-10-07 09:33:51 -0400 |
---|---|---|
committer | Lei Zhang <antiagainst@google.com> | 2021-10-07 09:39:26 -0400 |
commit | 3964c1db915b00fffb77764892b890a3075e181e (patch) | |
tree | 0e67a8bcd0ba027a23f34e1def820dd1e80d9410 /mlir/lib/Conversion/VectorToLLVM | |
parent | 2baf7ad6d27fc9c08dd6eb9f8581d7e1353d4ece (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.cpp | 3 |
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); |