diff --git a/mlir/test/mlir-tblgen/op-attribute.td b/mlir/test/mlir-tblgen/op-attribute.td index 07636f53c1e15c..b5b8619e7c9bea 100644 --- a/mlir/test/mlir-tblgen/op-attribute.td +++ b/mlir/test/mlir-tblgen/op-attribute.td @@ -173,6 +173,8 @@ def AOp : NS_Op<"a_op", []> { // DEF: ::llvm::ArrayRef<::mlir::NamedAttribute> attributes // DEF: odsState.addAttributes(attributes); +// DEF: void AOp::populateDefaultAttrs + // Test the above but with prefix. def Test2_Dialect : Dialect { @@ -287,6 +289,17 @@ def AgetOp : Op { // DEF: ::llvm::ArrayRef<::mlir::NamedAttribute> attributes // DEF: odsState.addAttributes(attributes); +// Test the above but using properties. +def ApropOp : NS_Op<"a_prop_op", []> { + let arguments = (ins + Property<"unsigned">:$aAttr, + DefaultValuedAttr:$bAttr + ); +} + +// DEF-LABEL: ApropOp definitions +// DEF: void ApropOp::populateDefaultProperties + def SomeTypeAttr : TypeAttrBase<"SomeType", "some type attribute">; def BOp : NS_Op<"b_op", []> { diff --git a/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp b/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp index cd37c8dcd3d5e0..71326049af0579 100644 --- a/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp +++ b/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp @@ -2506,7 +2506,7 @@ void OpEmitter::genPopulateDefaultAttributes() { })) return; - if (op.getDialect().usePropertiesForAttributes()) { + if (emitHelper.hasProperties()) { SmallVector paramList; paramList.emplace_back("::mlir::OperationName", "opName"); paramList.emplace_back("Properties &", "properties");