Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions mlir/lib/Bindings/Python/IRAttributes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1742,9 +1742,9 @@ nb::object integerOrBoolAttributeCaster(PyAttribute &pyAttribute) {
return nb::cast(PyBoolAttribute(pyAttribute));
if (PyIntegerAttribute::isaFunction(pyAttribute))
return nb::cast(PyIntegerAttribute(pyAttribute));
std::string msg =
std::string("Can't cast unknown element type DenseArrayAttr (") +
nb::cast<std::string>(nb::repr(nb::cast(pyAttribute))) + ")";
std::string msg = std::string("Can't cast unknown attribute type Attr (") +
nb::cast<std::string>(nb::repr(nb::cast(pyAttribute))) +
")";
throw nb::type_error(msg.c_str());
}

Expand Down
70 changes: 35 additions & 35 deletions mlir/test/mlir-tblgen/op-python-bindings.td
Original file line number Diff line number Diff line change
Expand Up @@ -36,22 +36,22 @@ def AttrSizedOperandsOp : TestOp<"attr_sized_operands",
// CHECK: successors=_ods_successors, regions=regions, loc=loc, ip=ip)

// CHECK: @builtins.property
// CHECK: def variadic1(self):
// CHECK: def variadic1(self) -> _ods_ir.OpOperandList:
// CHECK: operand_range = _ods_segmented_accessor(
// CHECK: self.operation.operands,
// CHECK: self.operation.attributes["operandSegmentSizes"], 0)
// CHECK: return operand_range
// CHECK-NOT: if len(operand_range)
//
// CHECK: @builtins.property
// CHECK: def non_variadic(self):
// CHECK: def non_variadic(self) -> _ods_ir.Value:
// CHECK: operand_range = _ods_segmented_accessor(
// CHECK: self.operation.operands,
// CHECK: self.operation.attributes["operandSegmentSizes"], 1)
// CHECK: return operand_range[0]
//
// CHECK: @builtins.property
// CHECK: def variadic2(self):
// CHECK: def variadic2(self) -> _Optional[_ods_ir.Value]:
// CHECK: operand_range = _ods_segmented_accessor(
// CHECK: self.operation.operands,
// CHECK: self.operation.attributes["operandSegmentSizes"], 2)
Expand Down Expand Up @@ -84,21 +84,21 @@ def AttrSizedResultsOp : TestOp<"attr_sized_results",
// CHECK: successors=_ods_successors, regions=regions, loc=loc, ip=ip)

// CHECK: @builtins.property
// CHECK: def variadic1(self):
// CHECK: def variadic1(self) -> _Optional[_ods_ir.OpResult]:
// CHECK: result_range = _ods_segmented_accessor(
// CHECK: self.operation.results,
// CHECK: self.operation.attributes["resultSegmentSizes"], 0)
// CHECK: return result_range[0] if len(result_range) > 0 else None
//
// CHECK: @builtins.property
// CHECK: def non_variadic(self):
// CHECK: def non_variadic(self) -> _ods_ir.OpResult:
// CHECK: result_range = _ods_segmented_accessor(
// CHECK: self.operation.results,
// CHECK: self.operation.attributes["resultSegmentSizes"], 1)
// CHECK: return result_range[0]
//
// CHECK: @builtins.property
// CHECK: def variadic2(self):
// CHECK: def variadic2(self) -> _ods_ir.OpResultList:
// CHECK: result_range = _ods_segmented_accessor(
// CHECK: self.operation.results,
// CHECK: self.operation.attributes["resultSegmentSizes"], 2)
Expand Down Expand Up @@ -139,21 +139,21 @@ def AttributedOp : TestOp<"attributed_op"> {
// CHECK: successors=_ods_successors, regions=regions, loc=loc, ip=ip)

// CHECK: @builtins.property
// CHECK: def i32attr(self):
// CHECK: def i32attr(self) -> _ods_ir.IntegerAttr:
// CHECK: return self.operation.attributes["i32attr"]

// CHECK: @builtins.property
// CHECK: def optionalF32Attr(self):
// CHECK: def optionalF32Attr(self) -> _Optional[_ods_ir.FloatAttr]:
// CHECK: if "optionalF32Attr" not in self.operation.attributes:
// CHECK: return None
// CHECK: return self.operation.attributes["optionalF32Attr"]

// CHECK: @builtins.property
// CHECK: def unitAttr(self):
// CHECK: def unitAttr(self) -> bool:
// CHECK: return "unitAttr" in self.operation.attributes

// CHECK: @builtins.property
// CHECK: def in_(self):
// CHECK: def in_(self) -> _ods_ir.IntegerAttr:
// CHECK: return self.operation.attributes["in"]

let arguments = (ins I32Attr:$i32attr, OptionalAttr<F32Attr>:$optionalF32Attr,
Expand Down Expand Up @@ -186,11 +186,11 @@ def AttributedOpWithOperands : TestOp<"attributed_op_with_operands"> {
// CHECK: successors=_ods_successors, regions=regions, loc=loc, ip=ip)

// CHECK: @builtins.property
// CHECK: def in_(self):
// CHECK: def in_(self) -> bool:
// CHECK: return "in" in self.operation.attributes

// CHECK: @builtins.property
// CHECK: def is_(self):
// CHECK: def is_(self) -> _Optional[_ods_ir.FloatAttr]:
// CHECK: if "is" not in self.operation.attributes:
// CHECK: return None
// CHECK: return self.operation.attributes["is"]
Expand Down Expand Up @@ -322,16 +322,16 @@ def MissingNamesOp : TestOp<"missing_names"> {
// CHECK: successors=_ods_successors, regions=regions, loc=loc, ip=ip)

// CHECK: @builtins.property
// CHECK: def f32(self):
// CHECK: def f32(self) -> _ods_ir.Value:
// CHECK: return self.operation.operands[1]
let arguments = (ins I32, F32:$f32, I64);

// CHECK: @builtins.property
// CHECK: def i32(self):
// CHECK: def i32(self) -> _ods_ir.OpResult:
// CHECK: return self.operation.results[0]
//
// CHECK: @builtins.property
// CHECK: def i64(self):
// CHECK: def i64(self) -> _ods_ir.OpResult:
// CHECK: return self.operation.results[2]
let results = (outs I32:$i32, AnyFloat, I64:$i64);
}
Expand Down Expand Up @@ -360,11 +360,11 @@ def OneOptionalOperandOp : TestOp<"one_optional_operand"> {
// CHECK: successors=_ods_successors, regions=regions, loc=loc, ip=ip)

// CHECK: @builtins.property
// CHECK: def non_optional(self):
// CHECK: def non_optional(self) -> _ods_ir.Value:
// CHECK: return self.operation.operands[0]

// CHECK: @builtins.property
// CHECK: def optional(self):
// CHECK: def optional(self) -> _Optional[_ods_ir.Value]:
// CHECK: return None if len(self.operation.operands) < 2 else self.operation.operands[1]
}

Expand All @@ -391,11 +391,11 @@ def OneVariadicOperandOp : TestOp<"one_variadic_operand"> {
// CHECK: successors=_ods_successors, regions=regions, loc=loc, ip=ip)

// CHECK: @builtins.property
// CHECK: def non_variadic(self):
// CHECK: def non_variadic(self) -> _ods_ir.Value:
// CHECK: return self.operation.operands[0]
//
// CHECK: @builtins.property
// CHECK: def variadic(self):
// CHECK: def variadic(self) -> _ods_ir.OpOperandList:
// CHECK: _ods_variadic_group_length = len(self.operation.operands) - 2 + 1
// CHECK: return self.operation.operands[1:1 + _ods_variadic_group_length]
let arguments = (ins AnyType:$non_variadic, Variadic<AnyType>:$variadic);
Expand Down Expand Up @@ -424,12 +424,12 @@ def OneVariadicResultOp : TestOp<"one_variadic_result"> {
// CHECK: successors=_ods_successors, regions=regions, loc=loc, ip=ip)

// CHECK: @builtins.property
// CHECK: def variadic(self):
// CHECK: def variadic(self) -> _ods_ir.OpResultList:
// CHECK: _ods_variadic_group_length = len(self.operation.results) - 2 + 1
// CHECK: return self.operation.results[0:0 + _ods_variadic_group_length]
//
// CHECK: @builtins.property
// CHECK: def non_variadic(self):
// CHECK: def non_variadic(self) -> _ods_ir.OpResult:
// CHECK: _ods_variadic_group_length = len(self.operation.results) - 2 + 1
// CHECK: return self.operation.results[1 + _ods_variadic_group_length - 1]
let results = (outs Variadic<AnyType>:$variadic, AnyType:$non_variadic);
Expand All @@ -456,7 +456,7 @@ def PythonKeywordOp : TestOp<"python_keyword"> {
// CHECK: successors=_ods_successors, regions=regions, loc=loc, ip=ip)

// CHECK: @builtins.property
// CHECK: def in_(self):
// CHECK: def in_(self) -> _ods_ir.Value:
// CHECK: return self.operation.operands[0]
let arguments = (ins AnyType:$in);
}
Expand Down Expand Up @@ -495,17 +495,17 @@ def SameResultsVariadicOp : TestOp<"same_results_variadic", [SameOperandsAndResu
def SameVariadicOperandSizeOp : TestOp<"same_variadic_operand",
[SameVariadicOperandSize]> {
// CHECK: @builtins.property
// CHECK: def variadic1(self):
// CHECK: def variadic1(self) -> _ods_ir.OpOperandList:
// CHECK: start, elements_per_group = _ods_equally_sized_accessor(self.operation.operands, 1, 2, 0, 0)
// CHECK: return self.operation.operands[start:start + elements_per_group]
//
// CHECK: @builtins.property
// CHECK: def non_variadic(self):
// CHECK: def non_variadic(self) -> _ods_ir.Value:
// CHECK: start, elements_per_group = _ods_equally_sized_accessor(self.operation.operands, 1, 2, 0, 1)
// CHECK: return self.operation.operands[start]
//
// CHECK: @builtins.property
// CHECK: def variadic2(self):
// CHECK: def variadic2(self) -> _ods_ir.OpOperandList:
// CHECK: start, elements_per_group = _ods_equally_sized_accessor(self.operation.operands, 1, 2, 1, 1)
// CHECK: return self.operation.operands[start:start + elements_per_group]
let arguments = (ins Variadic<AnyType>:$variadic1, AnyType:$non_variadic,
Expand All @@ -521,17 +521,17 @@ def SameVariadicOperandSizeOp : TestOp<"same_variadic_operand",
def SameVariadicResultSizeOp : TestOp<"same_variadic_result",
[SameVariadicResultSize]> {
// CHECK: @builtins.property
// CHECK: def variadic1(self):
// CHECK: def variadic1(self) -> _ods_ir.OpResultList:
// CHECK: start, elements_per_group = _ods_equally_sized_accessor(self.operation.results, 1, 2, 0, 0)
// CHECK: return self.operation.results[start:start + elements_per_group]
//
// CHECK: @builtins.property
// CHECK: def non_variadic(self):
// CHECK: def non_variadic(self) -> _ods_ir.OpResult:
// CHECK: start, elements_per_group = _ods_equally_sized_accessor(self.operation.results, 1, 2, 0, 1)
// CHECK: return self.operation.results[start]
//
// CHECK: @builtins.property
// CHECK: def variadic2(self):
// CHECK: def variadic2(self) -> _ods_ir.OpResultList:
// CHECK: start, elements_per_group = _ods_equally_sized_accessor(self.operation.results, 1, 2, 1, 1)
// CHECK: return self.operation.results[start:start + elements_per_group]
let results = (outs Variadic<AnyType>:$variadic1, AnyType:$non_variadic,
Expand Down Expand Up @@ -562,20 +562,20 @@ def SimpleOp : TestOp<"simple"> {
// CHECK: successors=_ods_successors, regions=regions, loc=loc, ip=ip)

// CHECK: @builtins.property
// CHECK: def i32(self):
// CHECK: def i32(self) -> _ods_ir.Value:
// CHECK: return self.operation.operands[0]
//
// CHECK: @builtins.property
// CHECK: def f32(self):
// CHECK: def f32(self) -> _ods_ir.Value:
// CHECK: return self.operation.operands[1]
let arguments = (ins I32:$i32, F32:$f32);

// CHECK: @builtins.property
// CHECK: def i64(self):
// CHECK: def i64(self) -> _ods_ir.OpResult:
// CHECK: return self.operation.results[0]
//
// CHECK: @builtins.property
// CHECK: def f64(self):
// CHECK: def f64(self) -> _ods_ir.OpResult:
// CHECK: return self.operation.results[1]
let results = (outs I64:$i64, AnyFloat:$f64);
}
Expand All @@ -600,11 +600,11 @@ def VariadicAndNormalRegionOp : TestOp<"variadic_and_normal_region"> {
let regions = (region AnyRegion:$region, AnyRegion, VariadicRegion<AnyRegion>:$variadic);

// CHECK: @builtins.property
// CHECK: def region(self):
// CHECK: def region(self) -> _ods_ir.Region:
// CHECK: return self.regions[0]

// CHECK: @builtins.property
// CHECK: def variadic(self):
// CHECK: def variadic(self) -> _ods_ir.RegionSequence:
// CHECK: return self.regions[2:]
}

Expand All @@ -628,7 +628,7 @@ def VariadicRegionOp : TestOp<"variadic_region"> {
let regions = (region VariadicRegion<AnyRegion>:$Variadic);

// CHECK: @builtins.property
// CHECK: def Variadic(self):
// CHECK: def Variadic(self) -> _ods_ir.RegionSequence:
// CHECK: return self.regions[0:]
}

Expand Down
Loading