|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, 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, 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, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, 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, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
c27d8152 |
| 14-Jul-2022 |
Kazu Hirata <[email protected]> |
[mlir] Use value instead of getValue (NFC)
|
| #
491d2701 |
| 13-Jul-2022 |
Kazu Hirata <[email protected]> |
[mlir] Use has_value instead of hasValue (NFC)
|
| #
04235d07 |
| 28-Jun-2022 |
Jacques Pienaar <[email protected]> |
[mlir] Update flipped accessors (NFC)
Follow up with memref flipped and flipping any intermediate changes made.
|
| #
3b7c3a65 |
| 25-Jun-2022 |
Kazu Hirata <[email protected]> |
Revert "Don't use Optional::hasValue (NFC)"
This reverts commit aa8feeefd3ac6c78ee8f67bf033976fc7d68bc6d.
|
| #
aa8feeef |
| 25-Jun-2022 |
Kazu Hirata <[email protected]> |
Don't use Optional::hasValue (NFC)
|
|
Revision tags: llvmorg-14.0.6 |
|
| #
2a288616 |
| 16-Jun-2022 |
Aart Bik <[email protected]> |
[mlir][sparse] improved testing and codegen for semi-ring operations
The semi-ring blocks were simply "inlined" by the sparse compiler but without any filtering or patching. This revision improves t
[mlir][sparse] improved testing and codegen for semi-ring operations
The semi-ring blocks were simply "inlined" by the sparse compiler but without any filtering or patching. This revision improves the analysis (rejecting blocks that use non-invariant computations from outside their blocks, except for linalg.index) and also improves the codegen by properly patching up index computations (previous version crashed).
With a regression test. Also updated the documentation now that the example code is properly working.
Reviewed By: bixia
Differential Revision: https://reviews.llvm.org/D128000
show more ...
|
| #
f8ec4dfa |
| 14-Jun-2022 |
Mogball <[email protected]> |
[mlir][sparse_tensor] fix windows build
|
|
Revision tags: llvmorg-14.0.5 |
|
| #
06aa6ec8 |
| 07-Jun-2022 |
Aart Bik <[email protected]> |
[mlir][sparse] refactor handling of merger leafs and ops
Using "default:" in the switch statemements that handle all our merger ops has become a bit cumbersome since it is easy to overlook parts of
[mlir][sparse] refactor handling of merger leafs and ops
Using "default:" in the switch statemements that handle all our merger ops has become a bit cumbersome since it is easy to overlook parts of the code that need to handle ops specifically. By enforcing full switch statements without "default:", we get a compiler warning when cases are overlooked.
Reviewed By: wrengr
Differential Revision: https://reviews.llvm.org/D127263
show more ...
|
| #
a14057d4 |
| 24-May-2022 |
bixia1 <[email protected]> |
[mlir][sparse] Add more complex operations.
Support complex operations sqrt, expm1, and tanh.
Add tests.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D126393
|
|
Revision tags: llvmorg-14.0.4 |
|
| #
d390035b |
| 19-May-2022 |
Bixia Zheng <[email protected]> |
[mlir][sparse] Support more complex operations.
Add complex operations abs, neg, sin, log1p, sub and div.
Add test cases.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D126
[mlir][sparse] Support more complex operations.
Add complex operations abs, neg, sin, log1p, sub and div.
Add test cases.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D126027
show more ...
|
| #
69edacbc |
| 17-May-2022 |
Bixia Zheng <[email protected]> |
[mlir][sparse] Add support for complex.im and complex.re to the sparse compiler.
Add a test.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D125834
|
| #
736c1b66 |
| 14-May-2022 |
Aart Bik <[email protected]> |
[mlir][sparse] introduce complex type to sparse tensor support
This is the first implementation of complex (f64 and f32) support in the sparse compiler, with complex add/mul as first operations. Not
[mlir][sparse] introduce complex type to sparse tensor support
This is the first implementation of complex (f64 and f32) support in the sparse compiler, with complex add/mul as first operations. Note that various features are still TBD, such as other ops, and reading in complex values from file. Also, note that the std::complex<float> had a bit of an ABI issue when passed as single argument. It is still TBD if better solutions are possible.
Reviewed By: bixia
Differential Revision: https://reviews.llvm.org/D125596
show more ...
|
| #
e9fa5590 |
| 13-May-2022 |
Matthias Springer <[email protected]> |
[mlir][sparse][NFC] Use RewriterBase/OpBuilder when possible
Most functions do not need a PatternRewriter or ConversionPatternRewriter.
Differential Revision: https://reviews.llvm.org/D125466
|
| #
90c2af57 |
| 05-May-2022 |
Mehdi Amini <[email protected]> |
Apply clang-tidy fixes for llvm-include-order in Merger.cpp (NFC)
|
| #
c5ea8d50 |
| 05-May-2022 |
Mehdi Amini <[email protected]> |
Apply clang-tidy fixes for llvm-else-after-return in Merger.cpp (NFC)
|
| #
952fa301 |
| 05-May-2022 |
Aart Bik <[email protected]> |
[mlir][sparse] add more zero-preserving unary ops to sparse compiler
Although we now have semi-rings to deal with arbitrary ops, it is still good to convey zero-preserving semantics of ops to the sp
[mlir][sparse] add more zero-preserving unary ops to sparse compiler
Although we now have semi-rings to deal with arbitrary ops, it is still good to convey zero-preserving semantics of ops to the sparse compiler.
Reviewed By: bixia
Differential Revision: https://reviews.llvm.org/D125043
show more ...
|
| #
2c332660 |
| 03-May-2022 |
Jim Kitchen <[email protected]> |
[mlir][sparse] Add lowering for unary and binary ops
Adding lowering for Unary and Binary required several changes due to their unique nature of containing custom code for different "regions" of the
[mlir][sparse] Add lowering for unary and binary ops
Adding lowering for Unary and Binary required several changes due to their unique nature of containing custom code for different "regions" of the sparse structure being operated on. Along with a Kind, a pointer to the Operation is passed along to be merged once the lattice structure is figured out.
The original operation is maintained, as it is required for subsequent lattice decisions. However, sparse_tensor.binary has some branches are considered as fully handled and therefore are marked with as kBinaryBranch to distinguish them.
A unique aspect of the custom code is that sometimes the desired result is no result at all -- i.e. a user wants overlapping sparse entries to become empty in the output. The solution to this is to return an uninitialized Value(), which is checked and handled elsewhere in the code and results in nothing being written to the output tensor for that case.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D123057
show more ...
|
|
Revision tags: llvmorg-14.0.3, llvmorg-14.0.2 |
|
| #
eda6f907 |
| 22-Apr-2022 |
River Riddle <[email protected]> |
[mlir][NFC] Shift a bunch of dialect includes from the .h to the .cpp
Now that dialect constructors are generated in the .cpp file, we can drop all of the dependent dialect includes from the .h file
[mlir][NFC] Shift a bunch of dialect includes from the .h to the .cpp
Now that dialect constructors are generated in the .cpp file, we can drop all of the dependent dialect includes from the .h file.
Differential Revision: https://reviews.llvm.org/D124298
show more ...
|
|
Revision tags: llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
| #
7783a178 |
| 02-Dec-2021 |
Javier Setoain <[email protected]> |
[mlir][Sparse] Add option for VLA sparsification
Use "enable-vla-vectorization=vla" to generate a vector length agnostic loops during vectorization. This option works for vectorization strategy 2.
[mlir][Sparse] Add option for VLA sparsification
Use "enable-vla-vectorization=vla" to generate a vector length agnostic loops during vectorization. This option works for vectorization strategy 2.
Differential Revision: https://reviews.llvm.org/D118379
show more ...
|
| #
53cc3a06 |
| 08-Mar-2022 |
Aart Bik <[email protected]> |
[mlir][sparse] index support in sparse compiler codegen
This revision adds support for the linalg.index to the sparse compiler pipeline. In essence, this adds the ability to refer to indices in the
[mlir][sparse] index support in sparse compiler codegen
This revision adds support for the linalg.index to the sparse compiler pipeline. In essence, this adds the ability to refer to indices in the tensor index expression, as illustrated below:
Y[i, j, k, l, m] = T[i, j, k, l, m] * i * j
Reviewed By: bixia
Differential Revision: https://reviews.llvm.org/D121251
show more ...
|
| #
3c69bc4d |
| 06-Feb-2022 |
River Riddle <[email protected]> |
[mlir][NFC] Remove a few op builders that simply swap parameter order
Differential Revision: https://reviews.llvm.org/D119093
|
| #
d10d49dc |
| 26-Jan-2022 |
River Riddle <[email protected]> |
[mlir][NFC] Add a using for llvm::BitVector to LLVM.h
BitVector is becoming widespread enough that we should add a proper using.
Differential Revision: https://reviews.llvm.org/D118290
|
| #
5a1f6077 |
| 02-Jan-2022 |
Mehdi Amini <[email protected]> |
Apply clang-tidy fixes for readability-container-size-empty for MLIR (NFC)
Reviewed By: rriddle, Mogball
Differential Revision: https://reviews.llvm.org/D116252
|
| #
0e85232f |
| 30-Nov-2021 |
Aart Bik <[email protected]> |
[mlir][sparse] refine simply dynamic sparse tensor outputs
Proper test for sparse tensor outputs is a single condition throughout the whole tensor index expression (not a general conjunction, since
[mlir][sparse] refine simply dynamic sparse tensor outputs
Proper test for sparse tensor outputs is a single condition throughout the whole tensor index expression (not a general conjunction, since this may include other conditions that cause cancellation).
Reviewed By: bixia
Differential Revision: https://reviews.llvm.org/D114810
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc1 |
|
| #
7d4da4e1 |
| 22-Nov-2021 |
Aart Bik <[email protected]> |
[mlir][sparse] generalize sparse tensor output implementation
Moves sparse tensor output support forward by generalizing from injective insertions only to include reductions. This revision accepts t
[mlir][sparse] generalize sparse tensor output implementation
Moves sparse tensor output support forward by generalizing from injective insertions only to include reductions. This revision accepts the case with all parallel outer and all reduction inner loops, since that can be handled with an injective insertion still. Next revision will allow the inner parallel loop to move inward (but that will require "access pattern expansion" aka "workspace").
Reviewed By: bixia
Differential Revision: https://reviews.llvm.org/D114399
show more ...
|