diff --git a/mlir/include/mlir/Dialect/SparseTensor/Utils/Merger.h b/mlir/include/mlir/Dialect/SparseTensor/Utils/Merger.h --- a/mlir/include/mlir/Dialect/SparseTensor/Utils/Merger.h +++ b/mlir/include/mlir/Dialect/SparseTensor/Utils/Merger.h @@ -168,10 +168,13 @@ /// Returns true if any set bit corresponds to queried dim. bool hasAnyDimOf(const llvm::BitVector &bits, Dim d) const; - /// Setter + /// Dimension setter void setDim(unsigned t, unsigned i, Dim d) { dims[t][i] = d; } - /// Getters. + /// Convenience getters to immediately access the stored nodes. + /// Typically it is inadvisible to keep the reference around, as in + /// "auto er = merger.exp(e))", since insertions into the merger + /// may cause data movement and invalidate the underlying memory address. TensorExp &exp(unsigned e) { return tensorExps[e]; } LatPoint &lat(unsigned l) { return latPoints[l]; } SmallVector &set(unsigned s) { return latSets[s]; }