diff --git a/mlir/lib/IR/BuiltinTypes.cpp b/mlir/lib/IR/BuiltinTypes.cpp --- a/mlir/lib/IR/BuiltinTypes.cpp +++ b/mlir/lib/IR/BuiltinTypes.cpp @@ -515,6 +515,8 @@ function_ref walkAttrsFn, function_ref walkTypesFn) const { walkTypesFn(getElementType()); + if (Attribute encoding = getEncoding()) + walkAttrsFn(encoding); } //===----------------------------------------------------------------------===// diff --git a/mlir/test/IR/print-attr-type-aliases.mlir b/mlir/test/IR/print-attr-type-aliases.mlir --- a/mlir/test/IR/print-attr-type-aliases.mlir +++ b/mlir/test/IR/print-attr-type-aliases.mlir @@ -17,3 +17,7 @@ // CHECK-DAG: !tuple = type tuple "test.op"() {alias_test = "alias_test:large_tuple"} : () -> (tuple) + +// CHECK-DAG: #test_encoding = "alias_test:tensor_encoding" +// CHECK-DAG: tensor<32xf32, #test_encoding> +"test.op"() : () -> tensor<32xf32, "alias_test:tensor_encoding"> diff --git a/mlir/test/lib/Dialect/Test/TestDialect.cpp b/mlir/test/lib/Dialect/Test/TestDialect.cpp --- a/mlir/test/lib/Dialect/Test/TestDialect.cpp +++ b/mlir/test/lib/Dialect/Test/TestDialect.cpp @@ -67,6 +67,7 @@ StringRef("test_alias_conflict0")) .Case("alias_test:sanitize_conflict_b", StringRef("test_alias_conflict0_")) + .Case("alias_test:tensor_encoding", StringRef("test_encoding")) .Default(llvm::None); if (!aliasName) return failure();