History log of /llvm-project/mlir/lib/Dialect/SparseTensor/Utils/Merger.cpp (Results 1 – 25 of 102)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6
# 70e227a4 13-May-2024 Aart Bik <ajcbik@google.com>

[mlir][sparse] recognize ReLu operation during sparsification (#92016)

This is a proof of concept recognition of the most basic forms of ReLu
operations, used to show-case sparsification of end-to-

[mlir][sparse] recognize ReLu operation during sparsification (#92016)

This is a proof of concept recognition of the most basic forms of ReLu
operations, used to show-case sparsification of end-to-end PyTorch
models. In the long run, we must avoid lowering such constructs too
early (with this need for raising them back).

See discussion at

https://discourse.llvm.org/t/min-max-abs-relu-recognition-starter-project/78918

show more ...


# fc83eda4 03-May-2024 Peiming Liu <peiming@google.com>

[mlir][sparse] make sparse compiler more admissible. (#90927)


Revision tags: llvmorg-18.1.5, llvmorg-18.1.4, 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, llvmorg-18.1.1
# d82e93e7 27-Feb-2024 Peiming Liu <36770114+PeimingLiu@users.noreply.github.com>

[mlir][sparse] add merger support on Batch LevelType. (#83186)


Revision tags: llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3
# 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.


# e5924d64 08-Feb-2024 Yinying Li <107574043+yinying-lisa-li@users.noreply.github.com>

[mlir][sparse] Implement parsing n out of m (#79935)

1. Add parsing methods for block[n, m].
2. Encode n and m with the newly extended 64-bit LevelType enum.
3. Update 2:4 methods names/comments t

[mlir][sparse] Implement parsing n out of m (#79935)

1. Add parsing methods for block[n, m].
2. Encode n and m with the newly extended 64-bit LevelType enum.
3. Update 2:4 methods names/comments to n:m.

show more ...


Revision tags: llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6
# 1944c4f7 27-Nov-2023 Aart Bik <39774503+aartbik@users.noreply.github.com>

[mlir][sparse] rename DimLevelType to LevelType (#73561)

The "Dim" prefix is a legacy left-over that no longer makes sense, since
we have a very strict "Dimension" vs. "Level" definition for sparse

[mlir][sparse] rename DimLevelType to LevelType (#73561)

The "Dim" prefix is a legacy left-over that no longer makes sense, since
we have a very strict "Dimension" vs. "Level" definition for sparse
tensor types and their storage.

show more ...


# 1dd387e1 22-Nov-2023 Aart Bik <39774503+aartbik@users.noreply.github.com>

[mlir][sparse] change dim level type -> level type (#73058)

The "dimension" before "level" does not really make sense Note that
renaming the actual type DimLevelType to LevelType is still TBD, sinc

[mlir][sparse] change dim level type -> level type (#73058)

The "dimension" before "level" does not really make sense Note that
renaming the actual type DimLevelType to LevelType is still TBD, since
this is an externally visible change (e.g. visible to Python API).

show more ...


# ccd923e3 16-Nov-2023 Peiming Liu <36770114+PeimingLiu@users.noreply.github.com>

[mlir][sparse] code cleanup (remove dead code related to filter loop). (#72573)


Revision tags: llvmorg-17.0.5
# bfe08c09 10-Nov-2023 Peiming Liu <36770114+PeimingLiu@users.noreply.github.com>

[mlir][sparse] support sparsifying 2:4 block sparsity (#71749)


# c43e6274 07-Nov-2023 Tim Harvey <146767459+TimAtGoogle@users.noreply.github.com>

Changed the phrase sparse-compiler to sparsifier in comments (#71578)

When the Powers That Be decided that the name "sparse compiler" should
be changed to "sparsifier", we negected to change some o

Changed the phrase sparse-compiler to sparsifier in comments (#71578)

When the Powers That Be decided that the name "sparse compiler" should
be changed to "sparsifier", we negected to change some of the comments
in the code; this pull request completes the name change.

show more ...


Revision tags: llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2
# 2cb99df6 02-Oct-2023 Yinying Li <107574043+yinying-lisa-li@users.noreply.github.com>

[mlir][sparse] Fix typos (#67859)


# d2e85179 02-Oct-2023 Yinying Li <107574043+yinying-lisa-li@users.noreply.github.com>

[mlir][sparse] Update Enum name for CompressedWithHigh (#67845)

Change CompressedWithHigh to LooseCompressed.


Revision tags: llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4
# e015d385 25-Aug-2023 Peiming Liu <peiming@google.com>

[mlir][sparse] Pass down constant coefficients of affine index expressions to LoopEmitter.

Reviewed By: aartbik

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


Revision tags: llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init
# df11a2b4 28-Jun-2023 Peiming Liu <peiming@google.com>

[mlir][sparse] admit un-sparsifiable operations if all its operands are loaded from dense input

Reviewed By: aartbik

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


# f22af204 21-Jun-2023 Andrzej Warzynski <andrzej.warzynski@arm.com>

[mlir][VectorType] Remove `numScalableDims` from the vector type

This is a follow-up of https://reviews.llvm.org/D153372 in which
`numScalableDims` (single integer) was effectively replaced with
`is

[mlir][VectorType] Remove `numScalableDims` from the vector type

This is a follow-up of https://reviews.llvm.org/D153372 in which
`numScalableDims` (single integer) was effectively replaced with
`isScalableDim` bitmask.

This change is a part of a larger effort to enable scalable
vectorisation in Linalg. See this RFC for more context:
* https://discourse.llvm.org/t/rfc-scalable-vectorisation-in-linalg/

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

show more ...


# faf7cd97 12-Jun-2023 Peiming Liu <peiming@google.com>

[mlir][sparse] merger extension to support sparsifying arith::CmpI/CmpF operation

Reviewed By: aartbik

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


# debdf7e0 14-Jun-2023 Aart Bik <ajcbik@google.com>

[mlir][sparse] refine single condition set up for semi-ring ops

Reviewed By: Peiming, K-Wu

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


Revision tags: llvmorg-16.0.6, llvmorg-16.0.5
# a0615d02 17-May-2023 wren romano <2998727+wrengr@users.noreply.github.com>

[mlir][sparse] Renaming the STEA field `dimLevelType` to `lvlTypes`

This commit is part of the migration of towards the new STEA syntax/design. In particular, this commit includes the following cha

[mlir][sparse] Renaming the STEA field `dimLevelType` to `lvlTypes`

This commit is part of the migration of towards the new STEA syntax/design. In particular, this commit includes the following changes:
* Renaming compiler-internal functions/methods:
* `SparseTensorEncodingAttr::{getDimLevelType => getLvlTypes}`
* `Merger::{getDimLevelType => getLvlType}` (for consistency)
* `sparse_tensor::{getDimLevelType => buildLevelType}` (to help reduce confusion vs actual getter methods)
* Renaming external facets to match:
* the STEA parser and printer
* the C and Python bindings
* PyTACO

However, the actual renaming of the `DimLevelType` itself (along with all the "dlt" names) will be handled in a separate commit.

Reviewed By: aartbik

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

show more ...


Revision tags: llvmorg-16.0.4
# 5550c821 08-May-2023 Tres Popp <tpopp@google.com>

[mlir] Move casting calls from methods to function calls

The MLIR classes Type/Attribute/Operation/Op/Value support
cast/dyn_cast/isa/dyn_cast_or_null functionality through llvm's doCast
functionali

[mlir] Move casting calls from methods to function calls

The MLIR classes Type/Attribute/Operation/Op/Value support
cast/dyn_cast/isa/dyn_cast_or_null functionality through llvm's doCast
functionality in addition to defining methods with the same name.
This change begins the migration of uses of the method to the
corresponding function call as has been decided as more consistent.

Note that there still exist classes that only define methods directly,
such as AffineExpr, and this does not include work currently to support
a functional cast/isa call.

Caveats include:
- This clang-tidy script probably has more problems.
- This only touches C++ code, so nothing that is being generated.

Context:
- https://mlir.llvm.org/deprecation/ at "Use the free function variants
for dyn_cast/cast/isa/…"
- Original discussion at https://discourse.llvm.org/t/preferred-casting-style-going-forward/68443

Implementation:
This first patch was created with the following steps. The intention is
to only do automated changes at first, so I waste less time if it's
reverted, and so the first mass change is more clear as an example to
other teams that will need to follow similar steps.

Steps are described per line, as comments are removed by git:
0. Retrieve the change from the following to build clang-tidy with an
additional check:
https://github.com/llvm/llvm-project/compare/main...tpopp:llvm-project:tidy-cast-check
1. Build clang-tidy
2. Run clang-tidy over your entire codebase while disabling all checks
and enabling the one relevant one. Run on all header files also.
3. Delete .inc files that were also modified, so the next build rebuilds
them to a pure state.
4. Some changes have been deleted for the following reasons:
- Some files had a variable also named cast
- Some files had not included a header file that defines the cast
functions
- Some files are definitions of the classes that have the casting
methods, so the code still refers to the method instead of the
function without adding a prefix or removing the method declaration
at the same time.

```
ninja -C $BUILD_DIR clang-tidy

run-clang-tidy -clang-tidy-binary=$BUILD_DIR/bin/clang-tidy -checks='-*,misc-cast-functions'\
-header-filter=mlir/ mlir/* -fix

rm -rf $BUILD_DIR/tools/mlir/**/*.inc

git restore mlir/lib/IR mlir/lib/Dialect/DLTI/DLTI.cpp\
mlir/lib/Dialect/Complex/IR/ComplexDialect.cpp\
mlir/lib/**/IR/\
mlir/lib/Dialect/SparseTensor/Transforms/SparseVectorization.cpp\
mlir/lib/Dialect/Vector/Transforms/LowerVectorMultiReduction.cpp\
mlir/test/lib/Dialect/Test/TestTypes.cpp\
mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.cpp\
mlir/test/lib/Dialect/Test/TestAttributes.cpp\
mlir/unittests/TableGen/EnumsGenTest.cpp\
mlir/test/python/lib/PythonTestCAPI.cpp\
mlir/include/mlir/IR/
```

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

show more ...


Revision tags: llvmorg-16.0.3, llvmorg-16.0.2
# abd66d91 18-Apr-2023 Peiming Liu <peiming@google.com>

[mlir][sparse] support iteration over compressed-hi dimension level in loop emitter

Reviewed By: aartbik

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


Revision tags: 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
# 5fd9d801 24-Jan-2023 Peiming Liu <peiming@google.com>

[mlir][sparse] extend loop emitter to emit slice driven loops

Reviewed By: aartbik

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


# 686ef4b4 29-Mar-2023 wren romano <2998727+wrengr@users.noreply.github.com>

[mlir][sparse] Simplifying Merger::expContainsTensor

`expContainsTensor` used to call `expIsTensor` to short-circuit the recursive calls; however, the very first thing `expContainsTensor` does is to

[mlir][sparse] Simplifying Merger::expContainsTensor

`expContainsTensor` used to call `expIsTensor` to short-circuit the recursive calls; however, the very first thing `expContainsTensor` does is to check `expIsTensor`, so the short-circuiting code just causes the function to check that condition redundantly.

Depends On D146684

Reviewed By: aartbik

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

show more ...


12345