Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
56ba83e
stubs
Hardcode84 May 17, 2025
308882e
something working
Hardcode84 May 17, 2025
372b64c
block walk
Hardcode84 May 17, 2025
3fd6c7b
contiguous groups
Hardcode84 May 17, 2025
d5b72b6
refac
Hardcode84 May 17, 2025
3f43d58
SLPGraph
Hardcode84 May 17, 2025
60893ae
SLPGraph
Hardcode84 May 17, 2025
f20dd05
work
Hardcode84 May 17, 2025
8f7fc0b
fingerprinting
Hardcode84 May 18, 2025
936c224
graph
Hardcode84 May 18, 2025
f8f61c5
refac
Hardcode84 May 18, 2025
3af0932
toposort
Hardcode84 May 18, 2025
7128ccd
codegen
Hardcode84 May 18, 2025
b5045b2
test
Hardcode84 May 18, 2025
05ee135
test
Hardcode84 May 18, 2025
09bf123
fixes
Hardcode84 May 18, 2025
76d881e
fixes
Hardcode84 May 18, 2025
cc7807b
handle size mismatch
Hardcode84 May 18, 2025
1792280
adjacent indices
Hardcode84 May 18, 2025
7b7768d
test
Hardcode84 May 18, 2025
288d1be
fixes and test
Hardcode84 May 18, 2025
e78c39e
better side effects handling
Hardcode84 May 18, 2025
fd2c34e
cleanup
Hardcode84 May 18, 2025
3653046
cleanup
Hardcode84 May 18, 2025
a5e4c52
check arith.add indices
Hardcode84 May 18, 2025
19b0266
fix vecor sizes
Hardcode84 May 18, 2025
ba2a868
fix op insertion point
Hardcode84 May 18, 2025
469329b
check same block
Hardcode84 May 19, 2025
20dbf3e
cleanup and comments
Hardcode84 May 26, 2025
2e3e7da
test
Hardcode84 May 26, 2025
53aec66
test
Hardcode84 May 26, 2025
d9164a3
Run until fixed point
Hardcode84 May 26, 2025
08a3ac1
run DCE between interations
Hardcode84 May 26, 2025
9f2d652
comment
Hardcode84 May 26, 2025
b5648d4
test
Hardcode84 May 26, 2025
5452f05
cleanup
Hardcode84 May 26, 2025
c71cc40
process extract ops
Hardcode84 May 26, 2025
0c65ba2
handle vec size and domination
Hardcode84 May 26, 2025
b7bff32
cache insertion point
Hardcode84 May 26, 2025
7203854
test
Hardcode84 May 26, 2025
67e4f0a
pass option
Hardcode84 May 26, 2025
c423357
fix test name
Hardcode84 May 26, 2025
0bd3295
cleanup
Hardcode84 May 26, 2025
ef51465
AffineApplyOp index support
Hardcode84 May 26, 2025
2b82f23
fix offset
Hardcode84 May 27, 2025
be553a4
support for 1-element vectors
Hardcode84 May 31, 2025
8f63e1e
refac size() -> opsCount()
Hardcode84 May 31, 2025
b805b21
merge vectorized ops too
Hardcode84 May 31, 2025
5a5d411
more tests
Hardcode84 Jun 1, 2025
31ac319
comments
Hardcode84 Jun 1, 2025
b79e3f3
vector outputs handling
Hardcode84 Jun 1, 2025
7627fce
vector handling
Hardcode84 Jun 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions mlir/include/mlir/Dialect/Vector/Transforms/Passes.td
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,24 @@ def LowerVectorMultiReduction : Pass<"lower-vector-multi-reduction", "func::Func
];
}

def GreedySLPVectorizer : Pass<"greedy-slp-vectorizer"> {
let summary = "SLP Vectorizer Pass";
let description = [{
This pass implements the SLP (Superword Level Parallelism) vectorizer.
It detects consecutive operations that can be put together into vector
operations. The pass works bi-directionaly, starting from reads or stores,
in search of scalars to combine.

This is greedy vectorizer, it doesn't have any cost model (yet) and it tries
to create vector ops if we have at least 2 potential ops.
}];
let dependentDialects = ["mlir::vector::VectorDialect"];

let options = [
Option<"maxVectorBitwidth", "max-vector-bitwidth", "unsigned",
/*default=*/"std::numeric_limits<unsigned>::max()",
"Maximum supported vector bitwidth">,
];
}

#endif // MLIR_DIALECT_VECTOR_TRANSFORMS_PASSES
1 change: 1 addition & 0 deletions mlir/lib/Dialect/Vector/Transforms/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ add_mlir_dialect_library(MLIRVectorTransforms
LowerVectorStep.cpp
LowerVectorTransfer.cpp
LowerVectorTranspose.cpp
SLPVectorizer.cpp
SubsetOpInterfaceImpl.cpp
VectorDistribute.cpp
VectorDropLeadUnitDim.cpp
Expand Down
Loading
Loading