History log of /llvm-project/mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td (Results 1 – 25 of 138)
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
# 77f8297c 13-Oct-2024 Matthias Springer <me@m-sp.org>

[mlir][sparse] Improve sparse tensor type constraints (#112133)

Sparse tensors are always ranked tensors. Encodings cannot be attached
to unranked tensors. Change the type constraint to `RankedTens

[mlir][sparse] Improve sparse tensor type constraints (#112133)

Sparse tensors are always ranked tensors. Encodings cannot be attached
to unranked tensors. Change the type constraint to `RankedTensorOf`, so
that we generate `TypedValue<RankedTensorType>` instead of
`TypedValue<TensorType>`. This removes the need for type casting in some
cases.

Also improve the verifiers (missing `return` statements) and switch a
few other `AnyTensor` to `AnyRankedTensor`.

This commit is in preparation of a dialect conversion commit that
required fixes in the sparse dialect.

show more ...


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

[mlir][sparse] unify block arguments order between iterate/coiterate operations. (#105567)


# f607102a 23-Aug-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] partially support lowering sparse coiteration loops to scf.while/for. (#105565)


# 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
# 785a24f1 31-Jul-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] introduce `sparse_tensor.coiterate` operation. (#101100)

This PR introduces `sparse_tensor.coiterate` operation, which represents
a loop that traverses multiple sparse iteration spac

[mlir][sparse] introduce `sparse_tensor.coiterate` operation. (#101100)

This PR introduces `sparse_tensor.coiterate` operation, which represents
a loop that traverses multiple sparse iteration space.

show more ...


# 12189f80 30-Jul-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] introduce `sparse_tensor.extract_value` operation. (#101219)


Revision tags: llvmorg-19.1.0-rc1, llvmorg-20-init
# a02010b3 17-Jun-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] support sparsifying sparse kernels to sparse-iterator-based loop (#95858)


Revision tags: llvmorg-18.1.8
# a43d79af 14-Jun-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] add canonicalization patterns for IterateOp. (#95569)


# e276cf08 10-Jun-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] introduce `sparse_tensor.iterate` operation (#88955)

A `sparse_tensor.iterate` iterates over a sparse iteration space
extracted from `sparse_tensor.extract_iteration_space` operation

[mlir][sparse] introduce `sparse_tensor.iterate` operation (#88955)

A `sparse_tensor.iterate` iterates over a sparse iteration space
extracted from `sparse_tensor.extract_iteration_space` operation
introduced in https://github.com/llvm/llvm-project/pull/88554.

show more ...


Revision tags: llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4
# 8aa061ff 16-Apr-2024 Peiming Liu <peiming@google.com>

[mlir][sparse][NFC] switching to using `let argments/results` in td files (#88994)

followed the same style used in "TensorOps.td".


# 481bd5d4 16-Apr-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] introduce `sparse_tensor.extract_iteration_space` operation. (#88554)

A `sparse_tensor.extract_space %tensor at %iterator` extracts a *sparse*
iteration space defined `%tensor`, the

[mlir][sparse] introduce `sparse_tensor.extract_iteration_space` operation. (#88554)

A `sparse_tensor.extract_space %tensor at %iterator` extracts a *sparse*
iteration space defined `%tensor`, the operation to traverse the
iteration space will be introduced in following PRs.

show more ...


# b9556532 16-Apr-2024 Peiming Liu <peiming@google.com>

Revert "[mlir][sparse] introduce sparse_tensor.iterate operation" (#88953)

Reverts llvm/llvm-project#88807 (merged by mistake)


# 8debcf03 16-Apr-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] introduce sparse_tensor.iterate operation (#88807)

A `sparse_tensor.iterate` iterates over a sparse iteration space
extracted from `sparse_tensor.extract_iteration_space` operation

[mlir][sparse] introduce sparse_tensor.iterate operation (#88807)

A `sparse_tensor.iterate` iterates over a sparse iteration space
extracted from `sparse_tensor.extract_iteration_space` operation
introduced in https://github.com/llvm/llvm-project/pull/88554.

*DO NOT MERGE* before https://github.com/llvm/llvm-project/pull/88554

show more ...


# f388a3a4 10-Apr-2024 Aart Bik <ajcbik@google.com>

[mlir][sparse] update doc and examples of the [dis]assemble operations (#88213)

The doc and examples of the [dis]assemble operations did not reflect all
the recent changes on order of the operands.

[mlir][sparse] update doc and examples of the [dis]assemble operations (#88213)

The doc and examples of the [dis]assemble operations did not reflect all
the recent changes on order of the operands. Also clarified some of the
text.

show more ...


Revision tags: llvmorg-18.1.3
# a54930e6 01-Apr-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] allow YieldOp to yield multiple values. (#87261)


Revision tags: llvmorg-18.1.2
# 2e6b18b3 19-Mar-2024 Aart Bik <ajcbik@google.com>

[mlir][sparse] add example to new operation doc, and roundtrip test (#85711)


# e8e8df4c 15-Mar-2024 Matthias Springer <me@m-sp.org>

[mlir][sparse] Add `has_runtime_library` test op (#85355)

This commit adds a new test-only op:
`sparse_tensor.has_runtime_library`. The op returns "1" if the sparse
compiler runs in runtime librar

[mlir][sparse] Add `has_runtime_library` test op (#85355)

This commit adds a new test-only op:
`sparse_tensor.has_runtime_library`. The op returns "1" if the sparse
compiler runs in runtime library mode.

This op is useful for writing test cases that require different IR
depending on whether the sparse compiler runs in runtime library or
codegen mode.

This commit fixes a memory leak in `sparse_pack_d.mlir`. This test case
uses `sparse_tensor.assemble` to create a sparse tensor SSA value from
existing buffers. This runtime library reallocates+copies the existing
buffers; the codegen path does not. Therefore, the test requires
additional deallocations when running in runtime library mode.

Alternatives considered:
- Make the codegen path allocate. "Codegen" is the "default" compilation
mode and it is handling `sparse_tensor.assemble` correctly. The issue is
with the runtime library path, which should not allocate. Therefore, it
is better to put a workaround in the runtime library path than to work
around the issue with a new flag in the codegen path.
- Add a `sparse_tensor.runtime_only` attribute to
`bufferization.dealloc_tensor`. Verifying that the attribute can only be
attached to `bufferization.dealloc_tensor` may introduce an unwanted
dependency of `MLIRSparseTensorDialect` on `MLIRBufferizationDialect`.

show more ...


# 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
# fc9f1d49 06-Mar-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] use a consistent order between [dis]assembleOp and sto… (#84079)

…rage layout.


# 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, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init
# 98f8b1af 29-Nov-2023 Aart Bik <39774503+aartbik@users.noreply.github.com>

[mlir][sparse] remove COO test from trait and encoding (#73733)

This is a minor step towards moving ALL COO related tests into the
SparseTensorType class rather than
having it all over the place

[mlir][sparse] remove COO test from trait and encoding (#73733)

This is a minor step towards moving ALL COO related tests into the
SparseTensorType class rather than
having it all over the place (with risk of becoming inconsistent). Next
revision will move ALL COO related methods into this class.

show more ...


# 110f927f 29-Nov-2023 Aart Bik <39774503+aartbik@users.noreply.github.com>

[mlir][sparse] refactor sparse tensor traits (#73726)

Slightly refactors the order of the sparse tensor
traits, and usage. Also makes minor doc improvements.


Revision tags: llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4
# d808d922 26-Oct-2023 Peiming Liu <36770114+PeimingLiu@users.noreply.github.com>

[mlir][sparse] introduce sparse_tensor.reinterpret_map operation. (#70378)


# 7e83a1af 25-Oct-2023 Aart Bik <39774503+aartbik@users.noreply.github.com>

[mlir][sparse] add verification of absent value in sparse_tensor.unary (#70248)

This value should always be a plain contant or something invariant
computed outside the surrounding linalg operation,

[mlir][sparse] add verification of absent value in sparse_tensor.unary (#70248)

This value should always be a plain contant or something invariant
computed outside the surrounding linalg operation, since there is no
co-iteration defined on anything done in this branch.

Fixes:
https://github.com/llvm/llvm-project/issues/69395

show more ...


123456