History log of /llvm-project/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp (Results 1 – 25 of 170)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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
# 129ade21 30-Sep-2024 Longsheng Mou <longshengmou@gmail.com>

[mlir][sparse] Replace `getSparseTensorType` with `tryGetSparseTensorType` (#109435)

This PR fixes a bug in `SparseTensorDimOpRewriter` when `tensor.dim` has
an unranked tensor type. To prevent cra

[mlir][sparse] Replace `getSparseTensorType` with `tryGetSparseTensorType` (#109435)

This PR fixes a bug in `SparseTensorDimOpRewriter` when `tensor.dim` has
an unranked tensor type. To prevent crashes, we now use
`tryGetSparseTensorType` instead of `getSparseTensorType`. Fixes
#107807.

show more ...


Revision tags: llvmorg-19.1.0, llvmorg-19.1.0-rc4
# c4420257 20-Aug-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] support sparsification to coiterate operations. (#102546)


Revision tags: 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
# fb8f492a 14-May-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] clone a empty sparse tensor when fuse convert into pro… (#92158)

…ducer.


# eb177803 09-May-2024 Yinying Li <yinyingli@google.com>

[mlir][sparse] Change sparse_tensor.print format (#91528)

1. Remove the trailing comma for the last element of memref and add
closing parenthesis.
2. Change integration tests to use the new format.


# c4e5a8a4 08-May-2024 Aart Bik <ajcbik@google.com>

[mlir][sparse] support 'batch' dimensions in sparse_tensor.print (#91411)


Revision tags: llvmorg-18.1.5
# 97069a86 30-Apr-2024 Gaurav Shukla <gaurav@nod-labs.com>

[MLIR] Generalize expand_shape to take shape as explicit input (#90040)

This patch generalizes tensor.expand_shape and memref.expand_shape to
consume the output shape as a list of SSA values. This

[MLIR] Generalize expand_shape to take shape as explicit input (#90040)

This patch generalizes tensor.expand_shape and memref.expand_shape to
consume the output shape as a list of SSA values. This enables us to
implement generic reshape operations with dynamic shapes using
collapse_shape/expand_shape pairs.

The output_shape input to expand_shape follows the static/dynamic
representation that's also used in `tensor.extract_slice`.

Differential Revision: https://reviews.llvm.org/D140821

---------

Signed-off-by: Gaurav Shukla<gaurav.shukla@amd.com>
Signed-off-by: Gaurav Shukla <gaurav.shukla@amd.com>
Co-authored-by: Ramiro Leal-Cavazos <ramiroleal050@gmail.com>

show more ...


# 3aeb28b9 26-Apr-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] fold sparse convert into producer linalg op. (#89999)


# ea3eeb48 24-Apr-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] fuse concat and extract_slice op if possible. (#89825)


# 8c0341df 21-Apr-2024 Mehdi Amini <joker.eph@gmail.com>

Revert "[MLIR] Generalize expand_shape to take shape as explicit input" (#89540)

Reverts llvm/llvm-project#69267

this broke some bots.


# e095d978 21-Apr-2024 Gaurav Shukla <gaurav@nod-labs.com>

[MLIR] Generalize expand_shape to take shape as explicit input (#69267)

This patch generalizes tensor.expand_shape and memref.expand_shape to
consume the output shape as a list of SSA values. This

[MLIR] Generalize expand_shape to take shape as explicit input (#69267)

This patch generalizes tensor.expand_shape and memref.expand_shape to
consume the output shape as a list of SSA values. This enables us to
implement generic reshape operations with dynamic shapes using
collapse_shape/expand_shape pairs.

The output_shape input to expand_shape follows the static/dynamic
representation that's also used in `tensor.extract_slice`.

Differential Revision: https://reviews.llvm.org/D140821

Co-authored-by: Ramiro Leal-Cavazos <ramiroleal050@gmail.com>

show more ...


# a5757c5b 19-Apr-2024 Christian Sigg <chsigg@users.noreply.github.com>

Switch member calls to `isa/dyn_cast/cast/...` to free function calls. (#89356)

This change cleans up call sites. Next step is to mark the member
functions deprecated.

See https://mlir.llvm.org/

Switch member calls to `isa/dyn_cast/cast/...` to free function calls. (#89356)

This change cleans up call sites. Next step is to mark the member
functions deprecated.

See https://mlir.llvm.org/deprecation and
https://discourse.llvm.org/t/preferred-casting-style-going-forward.

show more ...


Revision tags: llvmorg-18.1.4, llvmorg-18.1.3
# dc4cfdbb 29-Mar-2024 Aart Bik <ajcbik@google.com>

[mlir][sparse] provide an AoS "view" into sparse runtime support lib (#87116)

Note that even though the sparse runtime support lib always uses SoA
storage for COO storage (and provides correct code

[mlir][sparse] provide an AoS "view" into sparse runtime support lib (#87116)

Note that even though the sparse runtime support lib always uses SoA
storage for COO storage (and provides correct codegen by means of views
into this storage), in some rare cases we need the true physical SoA
storage as a coordinate buffer. This PR provides that functionality by
means of a (costly) coordinate buffer call.

Since this is currently only used for testing/debugging by means of the
sparse_tensor.print method, this solution is acceptable. If we ever want
a performing version of this, we should truly support AoS storage of COO
in addition to the SoA used right now.

show more ...


Revision tags: llvmorg-18.1.2
# 94e27c26 12-Mar-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] reuse tensor.insert operation to insert elements into … (#84987)

…a sparse tensor.


Revision tags: llvmorg-18.1.1
# 275fe3ae 05-Mar-2024 Aart Bik <ajcbik@google.com>

[mlir][sparse] support complex type for sparse_tensor.print (#83934)

With an integration test example


# 52b69aa3 04-Mar-2024 Peiming Liu <36770114+PeimingLiu@users.noreply.github.com>

[mlir][sparse] support sparsifying batch levels (#83898)


# 691fc7cd 04-Mar-2024 Aart Bik <39774503+aartbik@users.noreply.github.com>

[mlir][sparse] add dim/lvl information to sparse_tensor.print (#83913)

More information is more testing!
Also adjusts already migrated integration tests


# 6bc7c9df 29-Feb-2024 Peiming Liu <36770114+PeimingLiu@users.noreply.github.com>

[mlir][sparse] infer returned type for sparse_tensor.to_[buffer] ops (#83343)

The sparse structure buffers might not always be memrefs with rank == 1
with the presence of batch levels.


# d37affb0 28-Feb-2024 Aart Bik <39774503+aartbik@users.noreply.github.com>

[mlir][sparse] add a sparse_tensor.print operation (#83321)

This operation is mainly used for testing and debugging purposes but
provides a very convenient way to quickly inspect the contents of a

[mlir][sparse] add a sparse_tensor.print operation (#83321)

This operation is mainly used for testing and debugging purposes but
provides a very convenient way to quickly inspect the contents of a
sparse tensor (all components over all stored levels).

Example:

[ [ 1, 0, 2, 0, 0, 0, 0, 0 ],
[ 0, 0, 0, 0, 0, 0, 0, 0 ],
[ 0, 0, 0, 0, 0, 0, 0, 0 ],
[ 0, 0, 3, 4, 0, 5, 0, 0 ]

when stored sparse as DCSC prints as

---- Sparse Tensor ----
nse = 5
pos[0] : ( 0, 4, )
crd[0] : ( 0, 2, 3, 5, )
pos[1] : ( 0, 1, 3, 4, 5, )
crd[1] : ( 0, 0, 3, 3, 3, )
values : ( 1, 2, 3, 4, 5, )
----

show more ...


Revision tags: llvmorg-18.1.0, llvmorg-18.1.0-rc4
# 91d5653e 24-Feb-2024 Matthias Springer <me@m-sp.org>

[mlir] Use `OpBuilder::createBlock` in op builders and patterns (#82770)

When creating a new block in (conversion) rewrite patterns,
`OpBuilder::createBlock` must be used. Otherwise, no
`notifyBlo

[mlir] Use `OpBuilder::createBlock` in op builders and patterns (#82770)

When creating a new block in (conversion) rewrite patterns,
`OpBuilder::createBlock` must be used. Otherwise, no
`notifyBlockInserted` notification is sent to the listener.

Note: The dialect conversion relies on listener notifications to keep
track of IR modifications. Creating blocks without the builder API can
lead to memory leaks during rollback.

show more ...


Revision tags: llvmorg-18.1.0-rc3
# 5248a987 21-Feb-2024 Peiming Liu <36770114+PeimingLiu@users.noreply.github.com>

[mlir][sparse] support SoA COO in codegen path. (#82439)

*NOTE*: the `SoA` property only makes a difference on codegen path, and
is ignored in libgen path at the moment (only SoA COO is supported).


# aaf91645 15-Feb-2024 Peiming Liu <36770114+PeimingLiu@users.noreply.github.com>

Reapply "[mlir][sparse] remove LevelType enum, construct LevelType from LevelFormat and Properties" (#81923) (#81934)


# 513448d2 15-Feb-2024 Mehdi Amini <joker.eph@gmail.com>

Revert "[mlir][sparse] remove LevelType enum, construct LevelType from LevelF…" (#81923)

Reverts llvm/llvm-project#81799 ; this broke the mlir gcc7 bot.


# 235ec0f7 15-Feb-2024 Peiming Liu <36770114+PeimingLiu@users.noreply.github.com>

[mlir][sparse] remove LevelType enum, construct LevelType from LevelF… (#81799)

…ormat and properties instead.


Revision tags: 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
# 61f64d1c 20-Oct-2023 Mehdi Amini <joker.eph@gmail.com>

Apply clang-tidy fixes for llvm-qualified-auto in SparseTensorRewriting.cpp (NFC)


# 298412b5 24-Jan-2024 Peiming Liu <36770114+PeimingLiu@users.noreply.github.com>

[mlir][sparse] setup `SparseIterator` to help generating code to traverse a sparse tensor level. (#78345)


1234567