[Mlir-commits] [mlir] [mlir][sparse] support 2:4 structured sparsity and loose compressed (PR #69968)
Yinying Li
llvmlistbot at llvm.org
Mon Oct 23 14:10:22 PDT 2023
================
@@ -529,14 +515,22 @@ class SparseTensorStorage final : public SparseTensorStorageBase {
/// Finalizes the sparse position structure at this level.
void finalizeSegment(uint64_t l, uint64_t full = 0, uint64_t count = 1) {
if (count == 0)
- return; // Short-circuit, since it'll be a nop.
- const auto dlt = getLvlType(l); // Avoid redundant bounds checking.
- if (isCompressedDLT(dlt)) {
- appendPos(l, coordinates[l].size(), count);
- } else if (isSingletonDLT(dlt)) {
+ return; // Short-circuit, since it'll be a nop.
+ if (isCompressedLvl(l)) {
+ uint64_t pos = coordinates[l].size();
+ positions[l].insert(positions[l].end(), count,
+ detail::checkOverflowCast<P>(pos));
+ } else if (isLooseCompressedLvl(l)) {
+ // Finish this level, and push pairs for the empty ones, and one
----------------
yinying-lisa-li wrote:
nit: finishes and pushes
https://github.com/llvm/llvm-project/pull/69968
More information about the Mlir-commits
mailing list