[Mlir-commits] [mlir] b3fbb67 - [mlir][sparse] cleanup of COO (#69239)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Mon Oct 16 12:55:12 PDT 2023
Author: Aart Bik
Date: 2023-10-16T12:55:09-07:00
New Revision: b3fbb67379a4e67d54d7693e88c05697d01a9a5f
URL: https://github.com/llvm/llvm-project/commit/b3fbb67379a4e67d54d7693e88c05697d01a9a5f
DIFF: https://github.com/llvm/llvm-project/commit/b3fbb67379a4e67d54d7693e88c05697d01a9a5f.diff
LOG: [mlir][sparse] cleanup of COO (#69239)
Moves typedef to only file where it is used.
Removes some deadcode. Some minor doc changes.
Added:
Modified:
mlir/include/mlir/ExecutionEngine/SparseTensor/COO.h
mlir/include/mlir/ExecutionEngine/SparseTensor/Storage.h
Removed:
################################################################################
diff --git a/mlir/include/mlir/ExecutionEngine/SparseTensor/COO.h b/mlir/include/mlir/ExecutionEngine/SparseTensor/COO.h
index f6eb45defcc1cfd..721e9bc69adac20 100644
--- a/mlir/include/mlir/ExecutionEngine/SparseTensor/COO.h
+++ b/mlir/include/mlir/ExecutionEngine/SparseTensor/COO.h
@@ -58,21 +58,13 @@ struct ElementLT final {
const uint64_t rank;
};
-/// The type of callback functions which receive an element.
-template <typename V>
-using ElementConsumer =
- const std::function<void(const std::vector<uint64_t> &, V)> &;
-
/// A memory-resident sparse tensor in coordinate-scheme representation
-/// (a collection of `Element`s). This data structure is used as
-/// an intermediate representation; e.g., for reading sparse tensors
-/// from external formats into memory, or for certain conversions between
-///
diff erent `SparseTensorStorage` formats.
+/// (a collection of `Element`s). This data structure is used as an
+/// intermediate representation, e.g., for reading sparse tensors from
+/// external formats into memory.
template <typename V>
class SparseTensorCOO final {
public:
- using const_iterator = typename std::vector<Element<V>>::const_iterator;
-
/// Constructs a new coordinate-scheme sparse tensor with the given
/// sizes and an optional initial storage capacity.
explicit SparseTensorCOO(const std::vector<uint64_t> &dimSizes,
@@ -106,7 +98,7 @@ class SparseTensorCOO final {
/// Returns the `operator<` closure object for the COO's element type.
ElementLT<V> getElementLT() const { return ElementLT<V>(getRank()); }
- /// Adds an element to the tensor. This method invalidates all iterators.
+ /// Adds an element to the tensor.
void add(const std::vector<uint64_t> &dimCoords, V val) {
const uint64_t *base = coordinates.data();
const uint64_t size = coordinates.size();
@@ -135,12 +127,9 @@ class SparseTensorCOO final {
elements.push_back(addedElem);
}
- const_iterator begin() const { return elements.cbegin(); }
- const_iterator end() const { return elements.cend(); }
-
/// Sorts elements lexicographically by coordinates. If a coordinate
/// is mapped to multiple values, then the relative order of those
- /// values is unspecified. This method invalidates all iterators.
+ /// values is unspecified.
void sort() {
if (isSorted)
return;
diff --git a/mlir/include/mlir/ExecutionEngine/SparseTensor/Storage.h b/mlir/include/mlir/ExecutionEngine/SparseTensor/Storage.h
index 5e57facaf2376f6..c5be3d1acc33783 100644
--- a/mlir/include/mlir/ExecutionEngine/SparseTensor/Storage.h
+++ b/mlir/include/mlir/ExecutionEngine/SparseTensor/Storage.h
@@ -37,6 +37,11 @@
namespace mlir {
namespace sparse_tensor {
+/// The type of callback functions which receive an element.
+template <typename V>
+using ElementConsumer =
+ const std::function<void(const std::vector<uint64_t> &, V)> &;
+
// Forward references.
template <typename V>
class SparseTensorEnumeratorBase;
More information about the Mlir-commits
mailing list