diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorStorageLayout.h b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorStorageLayout.h --- a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorStorageLayout.h +++ b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorStorageLayout.h @@ -188,12 +188,14 @@ /*implicit*/ operator Value() { return specifier; } Value getSpecifierField(OpBuilder &builder, Location loc, - StorageSpecifierKind kind, Optional dim); + StorageSpecifierKind kind, + std::optional dim); void setSpecifierField(OpBuilder &builder, Location loc, Value v, - StorageSpecifierKind kind, Optional dim); + StorageSpecifierKind kind, + std::optional dim); - Type getFieldType(StorageSpecifierKind kind, Optional dim) { + Type getFieldType(StorageSpecifierKind kind, std::optional dim) { return specifier.getType().getFieldType(kind, dim); } @@ -240,7 +242,7 @@ public: unsigned getMemRefFieldIndex(SparseTensorFieldKind kind, - Optional dim) const { + std::optional dim) const { // Delegates to storage layout. StorageLayout layout(getSparseTensorEncoding(rType)); return layout.getMemRefFieldIndex(kind, dim); @@ -266,7 +268,7 @@ Value getSpecifierField(OpBuilder &builder, Location loc, StorageSpecifierKind kind, - Optional dim) const { + std::optional dim) const { SparseTensorSpecifier md(fields.back()); return md.getSpecifierField(builder, loc, kind, dim); } @@ -288,7 +290,7 @@ } Value getMemRefField(SparseTensorFieldKind kind, - Optional dim) const { + std::optional dim) const { return fields[getMemRefFieldIndex(kind, dim)]; } @@ -309,7 +311,7 @@ } Type getMemRefElementType(SparseTensorFieldKind kind, - Optional dim) const { + std::optional dim) const { return getMemRefField(kind, dim) .getType() .template cast() @@ -353,34 +355,30 @@ /// MutSparseTensorDescriptor). /// - template - void setMemRefField(SparseTensorFieldKind kind, Optional dim, T v) { + void setMemRefField(SparseTensorFieldKind kind, std::optional dim, + Value v) { fields[getMemRefFieldIndex(kind, dim)] = v; } - template - void setMemRefField(unsigned fidx, T v) { + void setMemRefField(unsigned fidx, Value v) { assert(fidx < fields.size() - 1); fields[fidx] = v; } - template - void setField(unsigned fidx, T v) { + void setField(unsigned fidx, Value v) { assert(fidx < fields.size()); fields[fidx] = v; } - template void setSpecifierField(OpBuilder &builder, Location loc, - StorageSpecifierKind kind, Optional dim, - T v) { + StorageSpecifierKind kind, std::optional dim, + Value v) { SparseTensorSpecifier md(fields.back()); md.setSpecifierField(builder, loc, v, kind, dim); fields.back() = md; } - template - void setDimSize(OpBuilder &builder, Location loc, unsigned dim, T v) { + void setDimSize(OpBuilder &builder, Location loc, unsigned dim, Value v) { setSpecifierField(builder, loc, StorageSpecifierKind::DimSize, dim, v); }