Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2 |
|
#
5262865a |
| 04-Aug-2024 |
Kazu Hirata <kazu@google.com> |
[mlir] Construct SmallVector with ArrayRef (NFC) (#101896)
|
Revision tags: llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init |
|
#
365777ec |
| 12-Dec-2023 |
Aart Bik <39774503+aartbik@users.noreply.github.com> |
[mlir][sparse] refactor utilities into transform/utils dir (#75250)
Separates actual transformation files from supporting utility files in
the transforms directory. Includes a bazel overlay fix for
[mlir][sparse] refactor utilities into transform/utils dir (#75250)
Separates actual transformation files from supporting utility files in
the transforms directory. Includes a bazel overlay fix for the build (as
well as a bit of cleanup of that file to be less verbose and more
flexible).
show more ...
|
#
851f85ff |
| 06-Dec-2023 |
Matthias Springer <me@m-sp.org> |
[mlir][SparseTensor] Fix insertion point in `createQuickSort` (#74549)
`createQuickSort` used to generate invalid IR:
```
"func.func"() <{function_type = (index, index, memref<?xindex>, memref<?xf
[mlir][SparseTensor] Fix insertion point in `createQuickSort` (#74549)
`createQuickSort` used to generate invalid IR:
```
"func.func"() <{function_type = (index, index, memref<?xindex>, memref<?xf32>, memref<?xi32>) -> (), sym_name = "_sparse_qsort_0_1_index_coo_1_f32_i32", sym_visibility = "private"}> ({
^bb0(%arg0: index, %arg1: index, %arg2: memref<?xindex>, %arg3: memref<?xf32>, %arg4: memref<?xi32>):
%0:2 = "scf.while"(%arg0, %arg1) ({
^bb0(%arg5: index, %arg6: index):
// ...
"scf.condition"(%3, %arg5, %arg6) : (i1, index, index) -> ()
}, {
^bb0(%arg5: index, %arg6: index):
// ...
%7:2 = "scf.if"(%6) ({
%8 = "arith.cmpi"(%2, %3) <{predicate = 7 : i64}> : (index, index) -> i1
// ...
"scf.yield"(%9#0, %9#1) : (index, index) -> ()
%10 = "arith.constant"() <{value = 0 : index}> : () -> index
}, {
"scf.yield"(%arg5, %arg5) : (index, index) -> ()
}) : (i1) -> (index, index)
"scf.yield"(%7#0, %7#1) : (index, index) -> ()
}) : (index, index) -> (index, index)
"func.return"() : () -> ()
}) : () -> ()
within split at mlir/test/Dialect/SparseTensor/buffer_rewriting.mlir:76 offset :11:1: error: 'scf.yield' op must be the last operation in the parent block
```
This commit fixes tests such as
`mlir/test/Dialect/SparseTensor/buffer_rewriting.mlir` when verifying
the IR after each pattern application (#74270).
show more ...
|
Revision tags: llvmorg-17.0.6, llvmorg-17.0.5 |
|
#
1609f1c2 |
| 14-Nov-2023 |
long.chen <lipracer@gmail.com> |
[mlir][affine][nfc] cleanup deprecated T.cast style functions (#71269)
detail see the docment: https://mlir.llvm.org/deprecation/
Not all changes are made manually, most of them are made through
[mlir][affine][nfc] cleanup deprecated T.cast style functions (#71269)
detail see the docment: https://mlir.llvm.org/deprecation/
Not all changes are made manually, most of them are made through a clang
tool I wrote https://github.com/lipracer/cpp-refactor.
show more ...
|
Revision tags: llvmorg-17.0.4, llvmorg-17.0.3 |
|
#
0083f833 |
| 03-Oct-2023 |
Peiming Liu <36770114+PeimingLiu@users.noreply.github.com> |
[mlir][sparse] renaming sparse_tensor.sort_coo to sparse_tensor.sort (#68161)
Rationale: the operation does not always sort COO tensors (also used for
sparse_tensor.compress for example).
|
Revision tags: llvmorg-17.0.2 |
|
#
bfa3bc43 |
| 20-Sep-2023 |
Peiming Liu <36770114+PeimingLiu@users.noreply.github.com> |
[mlir][sparse] unifies sparse_tensor.sort_coo/sort into one operation. (#66722)
The use cases of the two operations are largely overlapped, let's
simplify it and only use one of them.
|
Revision tags: llvmorg-17.0.1 |
|
#
4176ce61 |
| 18-Sep-2023 |
Peiming Liu <36770114+PeimingLiu@users.noreply.github.com> |
[mlir][sparse] fix logical error when generating sort_coo. (#66690)
To fix issue: https://github.com/llvm/llvm-project/issues/66664
|
Revision tags: llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0 |
|
#
abb05014 |
| 14-Mar-2023 |
bixia1 <bixia@google.com> |
[mlir][sparse] Modify the pivot selection method for quick sort.
Previously, we choose the median of three values. We now choose the median of five values when the number of values being sorted exce
[mlir][sparse] Modify the pivot selection method for quick sort.
Previously, we choose the median of three values. We now choose the median of five values when the number of values being sorted exceed a threshold (currently 100). This is similar to std::sort.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D145534
show more ...
|
Revision tags: llvmorg-16.0.0-rc4 |
|
#
2ef41627 |
| 09-Mar-2023 |
bixia1 <bixia@google.com> |
[mlir][sparse] Improve sort operation by generating inlined code to compare values.
Previously, we generate function calls to compare values for sorting. It turns out that the compiler doesn't inlin
[mlir][sparse] Improve sort operation by generating inlined code to compare values.
Previously, we generate function calls to compare values for sorting. It turns out that the compiler doesn't inline those function calls. We now directly generate inlined code. Also, modify the code for comparing values to use less number of branches.
This improves all sort implementation in general. For arabic-2005.mtx CSR, the improvement is around 25%.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D145442
show more ...
|
#
f6424d11 |
| 08-Mar-2023 |
bixia1 <bixia@google.com> |
[mlir][sparse] Improve quick sort by using a loop to sort the bigger partition.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D145440
|
#
9a29d875 |
| 27-Feb-2023 |
Kohei Yamaguchi <fix7211@gmail.com> |
[mlir][sparse] Add checking parent op of SortOp
Fix crash with segmentation fault caused by setting a parent operator that is not func::FuncOp with sparse_tensor SortOp.
fixes https://github.com/ll
[mlir][sparse] Add checking parent op of SortOp
Fix crash with segmentation fault caused by setting a parent operator that is not func::FuncOp with sparse_tensor SortOp.
fixes https://github.com/llvm/llvm-project/issues/59988
Reviewed By: aartbik, wrengr
Differential Revision: https://reviews.llvm.org/D143874
show more ...
|
Revision tags: llvmorg-16.0.0-rc3 |
|
#
a1507668 |
| 08-Feb-2023 |
bixia1 <bixia@google.com> |
[mlir][sparse] Implement hybrid quick sort for sparse_tensor.sort.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D143227
|
Revision tags: llvmorg-16.0.0-rc2 |
|
#
3b1c86cd |
| 02-Feb-2023 |
bixia1 <bixia@google.com> |
[mlir][sparse] Implement heap sort for sparse_tensor.sort.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D142913
|
#
8550aebd |
| 31-Jan-2023 |
bixia1 <bixia@google.com> |
[mlir][sparse] Extend sorting function generator to support operand beyond (lo, hi, xs, ys).
This is to prepare for implementing a hybrid quick sort, which switches to heap sort when the recursive d
[mlir][sparse] Extend sorting function generator to support operand beyond (lo, hi, xs, ys).
This is to prepare for implementing a hybrid quick sort, which switches to heap sort when the recursive depth exceeds certain limits.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D142731
show more ...
|
Revision tags: llvmorg-16.0.0-rc1 |
|
#
0c7f1c15 |
| 27-Jan-2023 |
bixia1 <bixia@google.com> |
[mlir][sparse] Extend sparse_tensor.sort with a enum attribute to specify a sorting implementation.
Currently, all the non-stable sorting algorithms are implemented via the straightforward quick sor
[mlir][sparse] Extend sparse_tensor.sort with a enum attribute to specify a sorting implementation.
Currently, all the non-stable sorting algorithms are implemented via the straightforward quick sort. This will be fixed in the following PR.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D142678
show more ...
|
#
7cec4d16 |
| 27-Jan-2023 |
bixia1 <bixia@google.com> |
[mlir][sparse] Change the quick sort pivot selection.
Previously, we choose the value at (lo + hi)/2 as a pivot for partitioning the data in [lo, hi). We now choose the median for the three values a
[mlir][sparse] Change the quick sort pivot selection.
Previously, we choose the value at (lo + hi)/2 as a pivot for partitioning the data in [lo, hi). We now choose the median for the three values at lo, (lo + hi)/2, and (hi-1) as a pivot to match the std::qsort implementation.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D142679
show more ...
|
Revision tags: llvmorg-17-init |
|
#
9916ab03 |
| 24-Jan-2023 |
wren romano <2998727+wrengr@users.noreply.github.com> |
[mlir][sparse] (re)introducing getRankedTensorType/getMemrefType
The bulk of D142074 seems to have gotten overwritten due to some sort of merge conflict (afaict there's no record of it having been r
[mlir][sparse] (re)introducing getRankedTensorType/getMemrefType
The bulk of D142074 seems to have gotten overwritten due to some sort of merge conflict (afaict there's no record of it having been reverted intentionally). So this commit redoes those changes. In addition to the original changes, this commit also: * moves the definition of `getRankedTensorType` (from `Transforms/CodegenUtils.h` to `IR/SparseTensor.h`), so that it can be used by `IR/SparseTensorDialect.cpp`. * adds `getMemRefType` as another abbreviation.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D142503
show more ...
|
Revision tags: llvmorg-15.0.7 |
|
#
988733c6 |
| 15-Dec-2022 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] use sparse_tensor::StorageSpecifier to store dim/memSizes
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D140130
|
#
ea4be70c |
| 08-Dec-2022 |
bixia1 <bixia@google.com> |
[mlir][sparse] Fix problems in creating complex zero for initialization.
Reviewed By: aartbik, wrengr
Differential Revision: https://reviews.llvm.org/D139591
|
Revision tags: llvmorg-15.0.6 |
|
#
399638f9 |
| 18-Nov-2022 |
Aliia Khasanova <aliia@google.com> |
Merge kDynamicSize and kDynamicSentinel into one constant.
resolve conflicts
Differential Revision: https://reviews.llvm.org/D138282
|
Revision tags: llvmorg-15.0.5 |
|
#
c4f1af2b |
| 15-Nov-2022 |
Aart Bik <ajcbik@google.com> |
[mlir][sparse] avoid single small vector, set exact number 3
Reviewed By: wrengr
Differential Revision: https://reviews.llvm.org/D138071
|
#
0e1708ff |
| 15-Nov-2022 |
Aart Bik <ajcbik@google.com> |
[mlir][sparse] cleanup small vector constant hints
Following advise from
https://llvm.org/docs/ProgrammersManual.html#llvm-adt-smallvector-h
This revision removes the size hints from SmallVector (
[mlir][sparse] cleanup small vector constant hints
Following advise from
https://llvm.org/docs/ProgrammersManual.html#llvm-adt-smallvector-h
This revision removes the size hints from SmallVector (unless we are certain of the resulting number of elements). Also, this replaces SmallVector references with SmallVectorImpl references.
Reviewed By: Peiming
Differential Revision: https://reviews.llvm.org/D138063
show more ...
|
#
4f729d5a |
| 09-Nov-2022 |
bixia1 <bixia@google.com> |
[mlir][sparse] Add rewriting rules for sparse_tensor.sort_coo.
Refactor the rewriting of sparse_tensor.sort to support the implementation of sparse_tensor.sort_coo.
Reviewed By: aartbik
Differenti
[mlir][sparse] Add rewriting rules for sparse_tensor.sort_coo.
Refactor the rewriting of sparse_tensor.sort to support the implementation of sparse_tensor.sort_coo.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D137522
show more ...
|
#
5618d2be |
| 07-Nov-2022 |
bixia1 <bixia@google.com> |
[mlir][sparse] Add option enable-buffer-initialization to initialize the memory buffers for sparse tensors to support debugging.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org
[mlir][sparse] Add option enable-buffer-initialization to initialize the memory buffers for sparse tensors to support debugging.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D137592
show more ...
|
#
9b800bf7 |
| 07-Nov-2022 |
bixia1 <bixia@google.com> |
[mlir][sparse] Improve the non-stable sort implementation.
Replace the quick sort partition method with one that is more similar to the method used by C++ std quick sort. This improves the runtime f
[mlir][sparse] Improve the non-stable sort implementation.
Replace the quick sort partition method with one that is more similar to the method used by C++ std quick sort. This improves the runtime for sorting sk_2005.mtx by more than 10x.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D137290
show more ...
|