Fix logic on when to emit collective type but separate arg builder
authorJacques Pienaar <jpienaar@google.com>
Thu, 12 Dec 2019 22:22:40 +0000 (14:22 -0800)
committerA. Unique TensorFlower <gardener@tensorflow.org>
Thu, 12 Dec 2019 22:23:14 +0000 (14:23 -0800)
Got the comment right but the code wrong :/

PiperOrigin-RevId: 285270561

mlir/test/mlir-tblgen/op-attribute.td
mlir/test/mlir-tblgen/op-operand.td
mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp

index da7534c..fa73697 100644 (file)
@@ -62,11 +62,11 @@ def AOp : NS_Op<"a_op", []> {
 // DEF-NEXT:     tblgen_state.addAttribute("cAttr", cAttr);
 
 // DEF:      void AOp::build(
-// DEF-SAME:   some-return-type aAttr, some-return-type bAttr, /*optional*/some-attr-kind cAttr
+// DEF:        some-return-type aAttr, some-return-type bAttr, /*optional*/some-attr-kind cAttr
 // DEF:        tblgen_state.addAttribute("aAttr", some-const-builder-call((*tblgen_builder), aAttr));
 
 // DEF:      void AOp::build(
-// DEF-SAME:   ArrayRef<NamedAttribute> attributes
+// DEF:        ArrayRef<NamedAttribute> attributes
 // DEF:      tblgen_state.addAttributes(attributes);
 
 // Test verify method
@@ -184,11 +184,7 @@ def DOp : NS_Op<"d_op", []> {
 }
 
 // DECL-LABEL: DOp declarations
-// DECL: static void build({{.*}}, APInt i32_attr, APFloat f64_attr,
-// DECL-SAME: StringRef str_attr, bool bool_attr, ::SomeI32Enum enum_attr,
-// DECL-SAME: APInt dv_i32_attr, APFloat dv_f64_attr,
-// DECL-SAME: StringRef dv_str_attr = "abc", bool dv_bool_attr = true,
-// DECL-SAME: ::SomeI32Enum dv_enum_attr = ::SomeI32Enum::case5)
+// DECL: static void build({{.*}}, APInt i32_attr, APFloat f64_attr, StringRef str_attr, bool bool_attr, ::SomeI32Enum enum_attr, APInt dv_i32_attr, APFloat dv_f64_attr, StringRef dv_str_attr = "abc", bool dv_bool_attr = true, ::SomeI32Enum dv_enum_attr = ::SomeI32Enum::case5)
 
 // Test that only default valued attributes at the end of the arguments
 // list get default values in the builder signature
@@ -210,11 +206,7 @@ def EOp : NS_Op<"e_op", []> {
 }
 
 // DECL-LABEL: EOp declarations
-// DECL: static void build({{.*}}, APInt i32_attr, APInt dv_i32_attr,
-// DECL-SAME: APFloat f64_attr, APFloat dv_f64_attr,
-// DECL-SAME: StringRef str_attr, StringRef dv_str_attr,
-// DECL-SAME: bool bool_attr, bool dv_bool_attr,
-// DECL-SAME: ::SomeI32Enum enum_attr, ::SomeI32Enum dv_enum_attr = ::SomeI32Enum::case5)
+// DECL: static void build({{.*}}, APInt i32_attr, APInt dv_i32_attr, APFloat f64_attr, APFloat dv_f64_attr, StringRef str_attr, StringRef dv_str_attr, bool bool_attr, bool dv_bool_attr, ::SomeI32Enum enum_attr, ::SomeI32Enum dv_enum_attr = ::SomeI32Enum::case5)
 
 // Test mixing operands and attributes in arbitrary order
 // ---
index 8702f87..872cc47 100644 (file)
@@ -18,11 +18,11 @@ def OpA : NS_Op<"one_normal_operand_op", []> {
 // CHECK-NEXT: tblgen_operands = values
 
 // CHECK:      void OpA::build
-// CHECK-SAME:   Value *input
+// CHECK:        Value *input
 // CHECK:        tblgen_state.addOperands(input);
 
 // CHECK:      void OpA::build
-// CHECK-SAME:   ValueRange operands
+// CHECK:        ValueRange operands
 // CHECK:        assert(operands.size() == 1u && "mismatched number of parameters");
 // CHECK:        tblgen_state.addOperands(operands);
 
@@ -31,7 +31,7 @@ def OpB : NS_Op<"one_variadic_operand_op", []> {
 }
 
 // CHECK-LABEL: OpB::build
-// CHECK-SAME:    ValueRange input
+// CHECK:         ValueRange input
 // CHECK-NOT:     assert
 // CHECK:         tblgen_state.addOperands(input);
 
index a73b113..dd56458 100644 (file)
@@ -969,7 +969,7 @@ void OpEmitter::genSeparateArgParamBuilder() {
     // Emit separate arg build with collective type, unless there is only one
     // variadic result, in which case the above would have already generated
     // the same build method.
-    if (op.getNumResults() == 1 && !op.getResult(0).isVariadic())
+    if (!(op.getNumResults() == 1 && op.getResult(0).isVariadic()))
       emit(attrType, TypeParamKind::Collective, /*inferType=*/false);
   }
 }