[Mlir-commits] [mlir] [MLIR][Python] remove unnecessary `arg.none() = nb::none()` pattern (PR #157519)
Maksim Levental
llvmlistbot at llvm.org
Mon Sep 8 11:02:00 PDT 2025
https://github.com/makslevental updated https://github.com/llvm/llvm-project/pull/157519
>From 9bb8d62df018e0aec7790035173024fe9fbf6a0b Mon Sep 17 00:00:00 2001
From: makslevental <maksim.levental at gmail.com>
Date: Mon, 8 Sep 2025 10:27:39 -0700
Subject: [PATCH 1/3] [MLIR][Python] remove .none() arg descriptor
---
mlir/lib/Bindings/Python/DialectGPU.cpp | 4 +-
mlir/lib/Bindings/Python/DialectLLVM.cpp | 12 ++--
mlir/lib/Bindings/Python/DialectNVGPU.cpp | 2 +-
mlir/lib/Bindings/Python/DialectPDL.cpp | 8 +--
mlir/lib/Bindings/Python/DialectSMT.cpp | 4 +-
mlir/lib/Bindings/Python/DialectTransform.cpp | 10 +--
mlir/lib/Bindings/Python/IRAffine.cpp | 70 +++++++++----------
mlir/lib/Bindings/Python/IRAttributes.cpp | 56 +++++++--------
mlir/lib/Bindings/Python/IRInterfaces.cpp | 23 +++---
mlir/lib/Bindings/Python/IRTypes.cpp | 70 +++++++++----------
mlir/lib/Bindings/Python/Pass.cpp | 12 ++--
.../Bindings/Python/TransformInterpreter.cpp | 2 +-
mlir/test/python/CMakeLists.txt | 2 +-
13 files changed, 131 insertions(+), 144 deletions(-)
diff --git a/mlir/lib/Bindings/Python/DialectGPU.cpp b/mlir/lib/Bindings/Python/DialectGPU.cpp
index a21176fffb441..2568d535edb5a 100644
--- a/mlir/lib/Bindings/Python/DialectGPU.cpp
+++ b/mlir/lib/Bindings/Python/DialectGPU.cpp
@@ -38,7 +38,7 @@ NB_MODULE(_mlirDialectsGPU, m) {
return cls(mlirGPUAsyncTokenTypeGet(ctx));
},
"Gets an instance of AsyncTokenType in the same context", nb::arg("cls"),
- nb::arg("ctx").none() = nb::none());
+ nb::arg("ctx") = nb::none());
//===-------------------------------------------------------------------===//
// ObjectAttr
@@ -62,7 +62,7 @@ NB_MODULE(_mlirDialectsGPU, m) {
: MlirAttribute{nullptr}));
},
"cls"_a, "target"_a, "format"_a, "object"_a,
- "properties"_a.none() = nb::none(), "kernels"_a.none() = nb::none(),
+ "properties"_a = nb::none(), "kernels"_a = nb::none(),
"Gets a gpu.object from parameters.")
.def_property_readonly(
"target",
diff --git a/mlir/lib/Bindings/Python/DialectLLVM.cpp b/mlir/lib/Bindings/Python/DialectLLVM.cpp
index ee106c0321669..55b9331270cdc 100644
--- a/mlir/lib/Bindings/Python/DialectLLVM.cpp
+++ b/mlir/lib/Bindings/Python/DialectLLVM.cpp
@@ -47,7 +47,7 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
return cls(type);
},
"cls"_a, "elements"_a, nb::kw_only(), "packed"_a = false,
- "loc"_a.none() = nb::none());
+ "loc"_a = nb::none());
llvmStructType.def_classmethod(
"get_identified",
@@ -55,7 +55,7 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
return cls(mlirLLVMStructTypeIdentifiedGet(
context, mlirStringRefCreate(name.data(), name.size())));
},
- "cls"_a, "name"_a, nb::kw_only(), "context"_a.none() = nb::none());
+ "cls"_a, "name"_a, nb::kw_only(), "context"_a = nb::none());
llvmStructType.def_classmethod(
"get_opaque",
@@ -63,7 +63,7 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
return cls(mlirLLVMStructTypeOpaqueGet(
context, mlirStringRefCreate(name.data(), name.size())));
},
- "cls"_a, "name"_a, "context"_a.none() = nb::none());
+ "cls"_a, "name"_a, "context"_a = nb::none());
llvmStructType.def(
"set_body",
@@ -86,7 +86,7 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
elements.size(), elements.data(), packed));
},
"cls"_a, "name"_a, "elements"_a, nb::kw_only(), "packed"_a = false,
- "context"_a.none() = nb::none());
+ "context"_a = nb::none());
llvmStructType.def_property_readonly(
"name", [](MlirType type) -> std::optional<std::string> {
@@ -133,8 +133,8 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
}
return cls(type);
},
- "cls"_a, "address_space"_a.none() = nb::none(), nb::kw_only(),
- "context"_a.none() = nb::none())
+ "cls"_a, "address_space"_a = nb::none(), nb::kw_only(),
+ "context"_a = nb::none())
.def_property_readonly("address_space", [](MlirType type) {
return mlirLLVMPointerTypeGetAddressSpace(type);
});
diff --git a/mlir/lib/Bindings/Python/DialectNVGPU.cpp b/mlir/lib/Bindings/Python/DialectNVGPU.cpp
index bb3f519c962f7..18917416412c1 100644
--- a/mlir/lib/Bindings/Python/DialectNVGPU.cpp
+++ b/mlir/lib/Bindings/Python/DialectNVGPU.cpp
@@ -31,7 +31,7 @@ static void populateDialectNVGPUSubmodule(const nb::module_ &m) {
"Gets an instance of TensorMapDescriptorType in the same context",
nb::arg("cls"), nb::arg("tensor_type"), nb::arg("swizzle"),
nb::arg("l2promo"), nb::arg("oob_fill"), nb::arg("interleave"),
- nb::arg("ctx").none() = nb::none());
+ nb::arg("ctx") = nb::none());
}
NB_MODULE(_mlirDialectsNVGPU, m) {
diff --git a/mlir/lib/Bindings/Python/DialectPDL.cpp b/mlir/lib/Bindings/Python/DialectPDL.cpp
index 2acedbc26b072..ac163b59a0fb5 100644
--- a/mlir/lib/Bindings/Python/DialectPDL.cpp
+++ b/mlir/lib/Bindings/Python/DialectPDL.cpp
@@ -36,7 +36,7 @@ static void populateDialectPDLSubmodule(const nanobind::module_ &m) {
return cls(mlirPDLAttributeTypeGet(ctx));
},
"Get an instance of AttributeType in given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
//===-------------------------------------------------------------------===//
// OperationType
@@ -50,7 +50,7 @@ static void populateDialectPDLSubmodule(const nanobind::module_ &m) {
return cls(mlirPDLOperationTypeGet(ctx));
},
"Get an instance of OperationType in given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
//===-------------------------------------------------------------------===//
// RangeType
@@ -81,7 +81,7 @@ static void populateDialectPDLSubmodule(const nanobind::module_ &m) {
return cls(mlirPDLTypeTypeGet(ctx));
},
"Get an instance of TypeType in given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
//===-------------------------------------------------------------------===//
// ValueType
@@ -94,7 +94,7 @@ static void populateDialectPDLSubmodule(const nanobind::module_ &m) {
return cls(mlirPDLValueTypeGet(ctx));
},
"Get an instance of TypeType in given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
}
NB_MODULE(_mlirDialectsPDL, m) {
diff --git a/mlir/lib/Bindings/Python/DialectSMT.cpp b/mlir/lib/Bindings/Python/DialectSMT.cpp
index cab4219fea72b..3123e3bdda496 100644
--- a/mlir/lib/Bindings/Python/DialectSMT.cpp
+++ b/mlir/lib/Bindings/Python/DialectSMT.cpp
@@ -32,7 +32,7 @@ static void populateDialectSMTSubmodule(nanobind::module_ &m) {
[](const nb::object &, MlirContext context) {
return mlirSMTTypeGetBool(context);
},
- "cls"_a, "context"_a.none() = nb::none());
+ "cls"_a, "context"_a = nb::none());
auto smtBitVectorType =
mlir_type_subclass(m, "BitVectorType", mlirSMTTypeIsABitVector)
.def_classmethod(
@@ -40,7 +40,7 @@ static void populateDialectSMTSubmodule(nanobind::module_ &m) {
[](const nb::object &, int32_t width, MlirContext context) {
return mlirSMTTypeGetBitVector(context, width);
},
- "cls"_a, "width"_a, "context"_a.none() = nb::none());
+ "cls"_a, "width"_a, "context"_a = nb::none());
auto exportSMTLIB = [](MlirOperation module, bool inlineSingleUseValues,
bool indentLetBody) {
diff --git a/mlir/lib/Bindings/Python/DialectTransform.cpp b/mlir/lib/Bindings/Python/DialectTransform.cpp
index 1a62b06cd16b7..150c69953d960 100644
--- a/mlir/lib/Bindings/Python/DialectTransform.cpp
+++ b/mlir/lib/Bindings/Python/DialectTransform.cpp
@@ -33,7 +33,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
return cls(mlirTransformAnyOpTypeGet(ctx));
},
"Get an instance of AnyOpType in the given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
//===-------------------------------------------------------------------===//
// AnyParamType
@@ -48,7 +48,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
return cls(mlirTransformAnyParamTypeGet(ctx));
},
"Get an instance of AnyParamType in the given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
//===-------------------------------------------------------------------===//
// AnyValueType
@@ -63,7 +63,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
return cls(mlirTransformAnyValueTypeGet(ctx));
},
"Get an instance of AnyValueType in the given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
//===-------------------------------------------------------------------===//
// OperationType
@@ -83,7 +83,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
"Get an instance of OperationType for the given kind in the given "
"context",
nb::arg("cls"), nb::arg("operation_name"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
operationType.def_property_readonly(
"operation_name",
[](MlirType type) {
@@ -106,7 +106,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
return cls(mlirTransformParamTypeGet(ctx, type));
},
"Get an instance of ParamType for the given type in the given context.",
- nb::arg("cls"), nb::arg("type"), nb::arg("context").none() = nb::none());
+ nb::arg("cls"), nb::arg("type"), nb::arg("context") = nb::none());
paramType.def_property_readonly(
"type",
[](MlirType type) {
diff --git a/mlir/lib/Bindings/Python/IRAffine.cpp b/mlir/lib/Bindings/Python/IRAffine.cpp
index a6499c952df6e..4739354adfc01 100644
--- a/mlir/lib/Bindings/Python/IRAffine.cpp
+++ b/mlir/lib/Bindings/Python/IRAffine.cpp
@@ -142,7 +142,7 @@ class PyAffineConstantExpr : public PyConcreteAffineExpr<PyAffineConstantExpr> {
static void bindDerived(ClassTy &c) {
c.def_static("get", &PyAffineConstantExpr::get, nb::arg("value"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
c.def_prop_ro("value", [](PyAffineConstantExpr &self) {
return mlirAffineConstantExprGetValue(self);
});
@@ -162,7 +162,7 @@ class PyAffineDimExpr : public PyConcreteAffineExpr<PyAffineDimExpr> {
static void bindDerived(ClassTy &c) {
c.def_static("get", &PyAffineDimExpr::get, nb::arg("position"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
c.def_prop_ro("position", [](PyAffineDimExpr &self) {
return mlirAffineDimExprGetPosition(self);
});
@@ -182,7 +182,7 @@ class PyAffineSymbolExpr : public PyConcreteAffineExpr<PyAffineSymbolExpr> {
static void bindDerived(ClassTy &c) {
c.def_static("get", &PyAffineSymbolExpr::get, nb::arg("position"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
c.def_prop_ro("position", [](PyAffineSymbolExpr &self) {
return mlirAffineSymbolExprGetPosition(self);
});
@@ -588,7 +588,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
self.getContext(),
mlirAffineExprShiftDims(self, numDims, shift, offset));
},
- nb::arg("num_dims"), nb::arg("shift"), nb::arg("offset").none() = 0)
+ nb::arg("num_dims"), nb::arg("shift"), nb::arg("offset") = 0)
.def(
"shift_symbols",
[](PyAffineExpr &self, uint32_t numSymbols, uint32_t shift,
@@ -597,8 +597,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
self.getContext(),
mlirAffineExprShiftSymbols(self, numSymbols, shift, offset));
},
- nb::arg("num_symbols"), nb::arg("shift"),
- nb::arg("offset").none() = 0)
+ nb::arg("num_symbols"), nb::arg("shift"), nb::arg("offset") = 0)
.def_static(
"simplify_affine_expr",
[](PyAffineExpr &self, uint32_t numDims, uint32_t numSymbols) {
@@ -655,15 +654,15 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
"Gets an affine expression containing the rounded-up result "
"of dividing an expression by a constant.")
.def_static("get_constant", &PyAffineConstantExpr::get, nb::arg("value"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Gets a constant affine expression with the given value.")
.def_static(
"get_dim", &PyAffineDimExpr::get, nb::arg("position"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Gets an affine expression of a dimension at the given position.")
.def_static(
"get_symbol", &PyAffineSymbolExpr::get, nb::arg("position"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Gets an affine expression of a symbol at the given position.")
.def(
"dump", [](PyAffineExpr &self) { mlirAffineExprDump(self); },
@@ -707,25 +706,24 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
[](PyAffineMap &self) {
return static_cast<size_t>(llvm::hash_value(self.get().ptr));
})
- .def_static("compress_unused_symbols",
- [](const nb::list &affineMaps,
- DefaultingPyMlirContext context) {
- SmallVector<MlirAffineMap> maps;
- pyListToVector<PyAffineMap, MlirAffineMap>(
- affineMaps, maps, "attempting to create an AffineMap");
- std::vector<MlirAffineMap> compressed(affineMaps.size());
- auto populate = [](void *result, intptr_t idx,
- MlirAffineMap m) {
- static_cast<MlirAffineMap *>(result)[idx] = (m);
- };
- mlirAffineMapCompressUnusedSymbols(
- maps.data(), maps.size(), compressed.data(), populate);
- std::vector<PyAffineMap> res;
- res.reserve(compressed.size());
- for (auto m : compressed)
- res.emplace_back(context->getRef(), m);
- return res;
- })
+ .def_static(
+ "compress_unused_symbols",
+ [](const nb::list &affineMaps, DefaultingPyMlirContext context) {
+ SmallVector<MlirAffineMap> maps;
+ pyListToVector<PyAffineMap, MlirAffineMap>(
+ affineMaps, maps, "attempting to create an AffineMap");
+ std::vector<MlirAffineMap> compressed(affineMaps.size());
+ auto populate = [](void *result, intptr_t idx, MlirAffineMap m) {
+ static_cast<MlirAffineMap *>(result)[idx] = (m);
+ };
+ mlirAffineMapCompressUnusedSymbols(maps.data(), maps.size(),
+ compressed.data(), populate);
+ std::vector<PyAffineMap> res;
+ res.reserve(compressed.size());
+ for (auto m : compressed)
+ res.emplace_back(context->getRef(), m);
+ return res;
+ })
.def_prop_ro(
"context",
[](PyAffineMap &self) { return self.getContext().getObject(); },
@@ -746,7 +744,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
return PyAffineMap(context->getRef(), map);
},
nb::arg("dim_count"), nb::arg("symbol_count"), nb::arg("exprs"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Gets a map with the given expressions as results.")
.def_static(
"get_constant",
@@ -755,7 +753,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
mlirAffineMapConstantGet(context->get(), value);
return PyAffineMap(context->getRef(), affineMap);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets an affine map with a single constant result")
.def_static(
"get_empty",
@@ -763,7 +761,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
MlirAffineMap affineMap = mlirAffineMapEmptyGet(context->get());
return PyAffineMap(context->getRef(), affineMap);
},
- nb::arg("context").none() = nb::none(), "Gets an empty affine map.")
+ nb::arg("context") = nb::none(), "Gets an empty affine map.")
.def_static(
"get_identity",
[](intptr_t nDims, DefaultingPyMlirContext context) {
@@ -771,7 +769,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
mlirAffineMapMultiDimIdentityGet(context->get(), nDims);
return PyAffineMap(context->getRef(), affineMap);
},
- nb::arg("n_dims"), nb::arg("context").none() = nb::none(),
+ nb::arg("n_dims"), nb::arg("context") = nb::none(),
"Gets an identity map with the given number of dimensions.")
.def_static(
"get_minor_identity",
@@ -782,7 +780,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
return PyAffineMap(context->getRef(), affineMap);
},
nb::arg("n_dims"), nb::arg("n_results"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Gets a minor identity map with the given number of dimensions and "
"results.")
.def_static(
@@ -796,7 +794,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
context->get(), permutation.size(), permutation.data());
return PyAffineMap(context->getRef(), affineMap);
},
- nb::arg("permutation"), nb::arg("context").none() = nb::none(),
+ nb::arg("permutation"), nb::arg("context") = nb::none(),
"Gets an affine map that permutes its inputs.")
.def(
"get_submap",
@@ -923,7 +921,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
return PyIntegerSet(context->getRef(), set);
},
nb::arg("num_dims"), nb::arg("num_symbols"), nb::arg("exprs"),
- nb::arg("eq_flags"), nb::arg("context").none() = nb::none())
+ nb::arg("eq_flags"), nb::arg("context") = nb::none())
.def_static(
"get_empty",
[](intptr_t numDims, intptr_t numSymbols,
@@ -933,7 +931,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
return PyIntegerSet(context->getRef(), set);
},
nb::arg("num_dims"), nb::arg("num_symbols"),
- nb::arg("context").none() = nb::none())
+ nb::arg("context") = nb::none())
.def(
"get_replaced",
[](PyIntegerSet &self, const nb::list &dimExprs,
diff --git a/mlir/lib/Bindings/Python/IRAttributes.cpp b/mlir/lib/Bindings/Python/IRAttributes.cpp
index f2eafa7c2d45c..b3c768846c74f 100644
--- a/mlir/lib/Bindings/Python/IRAttributes.cpp
+++ b/mlir/lib/Bindings/Python/IRAttributes.cpp
@@ -351,7 +351,7 @@ class PyDenseArrayAttribute : public PyConcreteAttribute<DerivedT> {
}
return getAttribute(values, ctx->getRef());
},
- nb::arg("values"), nb::arg("context").none() = nb::none(),
+ nb::arg("values"), nb::arg("context") = nb::none(),
"Gets a uniqued dense array attribute");
} else {
c.def_static(
@@ -359,7 +359,7 @@ class PyDenseArrayAttribute : public PyConcreteAttribute<DerivedT> {
[](const std::vector<EltTy> &values, DefaultingPyMlirContext ctx) {
return getAttribute(values, ctx->getRef());
},
- nb::arg("values"), nb::arg("context").none() = nb::none(),
+ nb::arg("values"), nb::arg("context") = nb::none(),
"Gets a uniqued dense array attribute");
}
// Bind the array methods.
@@ -515,7 +515,7 @@ class PyArrayAttribute : public PyConcreteAttribute<PyArrayAttribute> {
context->get(), mlirAttributes.size(), mlirAttributes.data());
return PyArrayAttribute(context->getRef(), attr);
},
- nb::arg("attributes"), nb::arg("context").none() = nb::none(),
+ nb::arg("attributes"), nb::arg("context") = nb::none(),
"Gets a uniqued Array attribute");
c.def("__getitem__",
[](PyArrayAttribute &arr, intptr_t i) {
@@ -564,7 +564,7 @@ class PyFloatAttribute : public PyConcreteAttribute<PyFloatAttribute> {
throw MLIRError("Invalid attribute", errors.take());
return PyFloatAttribute(type.getContext(), attr);
},
- nb::arg("type"), nb::arg("value"), nb::arg("loc").none() = nb::none(),
+ nb::arg("type"), nb::arg("value"), nb::arg("loc") = nb::none(),
"Gets an uniqued float point attribute associated to a type");
c.def_static(
"get_f32",
@@ -573,7 +573,7 @@ class PyFloatAttribute : public PyConcreteAttribute<PyFloatAttribute> {
context->get(), mlirF32TypeGet(context->get()), value);
return PyFloatAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets an uniqued float point attribute associated to a f32 type");
c.def_static(
"get_f64",
@@ -582,7 +582,7 @@ class PyFloatAttribute : public PyConcreteAttribute<PyFloatAttribute> {
context->get(), mlirF64TypeGet(context->get()), value);
return PyFloatAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets an uniqued float point attribute associated to a f64 type");
c.def_prop_ro("value", mlirFloatAttrGetValueDouble,
"Returns the value of the float attribute");
@@ -642,7 +642,7 @@ class PyBoolAttribute : public PyConcreteAttribute<PyBoolAttribute> {
MlirAttribute attr = mlirBoolAttrGet(context->get(), value);
return PyBoolAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets an uniqued bool attribute");
c.def_prop_ro("value", mlirBoolAttrGetValue,
"Returns the value of the bool attribute");
@@ -679,7 +679,7 @@ class PySymbolRefAttribute : public PyConcreteAttribute<PySymbolRefAttribute> {
DefaultingPyMlirContext context) {
return PySymbolRefAttribute::fromList(symbols, context.resolve());
},
- nb::arg("symbols"), nb::arg("context").none() = nb::none(),
+ nb::arg("symbols"), nb::arg("context") = nb::none(),
"Gets a uniqued SymbolRef attribute from a list of symbol names");
c.def_prop_ro(
"value",
@@ -713,7 +713,7 @@ class PyFlatSymbolRefAttribute
mlirFlatSymbolRefAttrGet(context->get(), toMlirStringRef(value));
return PyFlatSymbolRefAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets a uniqued FlatSymbolRef attribute");
c.def_prop_ro(
"value",
@@ -746,7 +746,7 @@ class PyOpaqueAttribute : public PyConcreteAttribute<PyOpaqueAttribute> {
return PyOpaqueAttribute(context->getRef(), attr);
},
nb::arg("dialect_namespace"), nb::arg("buffer"), nb::arg("type"),
- nb::arg("context").none() = nb::none(), "Gets an Opaque attribute.");
+ nb::arg("context") = nb::none(), "Gets an Opaque attribute.");
c.def_prop_ro(
"dialect_namespace",
[](PyOpaqueAttribute &self) {
@@ -780,7 +780,7 @@ class PyStringAttribute : public PyConcreteAttribute<PyStringAttribute> {
mlirStringAttrGet(context->get(), toMlirStringRef(value));
return PyStringAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets a uniqued string attribute");
c.def_static(
"get",
@@ -789,7 +789,7 @@ class PyStringAttribute : public PyConcreteAttribute<PyStringAttribute> {
mlirStringAttrGet(context->get(), toMlirStringRef(value));
return PyStringAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets a uniqued string attribute");
c.def_static(
"get_typed",
@@ -1030,13 +1030,12 @@ class PyDenseElementsAttribute
c.def("__len__", &PyDenseElementsAttribute::dunderLen)
.def_static("get", PyDenseElementsAttribute::getFromBuffer,
nb::arg("array"), nb::arg("signless") = true,
- nb::arg("type").none() = nb::none(),
- nb::arg("shape").none() = nb::none(),
- nb::arg("context").none() = nb::none(),
+ nb::arg("type") = nb::none(), nb::arg("shape") = nb::none(),
+ nb::arg("context") = nb::none(),
kDenseElementsAttrGetDocstring)
.def_static("get", PyDenseElementsAttribute::getFromList,
- nb::arg("attrs"), nb::arg("type").none() = nb::none(),
- nb::arg("context").none() = nb::none(),
+ nb::arg("attrs"), nb::arg("type") = nb::none(),
+ nb::arg("context") = nb::none(),
kDenseElementsAttrGetFromListDocstring)
.def_static("get_splat", PyDenseElementsAttribute::getSplat,
nb::arg("shaped_type"), nb::arg("element_attr"),
@@ -1505,12 +1504,12 @@ class PyDenseResourceElementsAttribute
}
static void bindDerived(ClassTy &c) {
- c.def_static(
- "get_from_buffer", PyDenseResourceElementsAttribute::getFromBuffer,
- nb::arg("array"), nb::arg("name"), nb::arg("type"),
- nb::arg("alignment").none() = nb::none(), nb::arg("is_mutable") = false,
- nb::arg("context").none() = nb::none(),
- kDenseResourceElementsAttrGetFromBufferDocstring);
+ c.def_static("get_from_buffer",
+ PyDenseResourceElementsAttribute::getFromBuffer,
+ nb::arg("array"), nb::arg("name"), nb::arg("type"),
+ nb::arg("alignment") = nb::none(),
+ nb::arg("is_mutable") = false, nb::arg("context") = nb::none(),
+ kDenseResourceElementsAttrGetFromBufferDocstring);
}
};
@@ -1550,7 +1549,7 @@ class PyDictAttribute : public PyConcreteAttribute<PyDictAttribute> {
mlirNamedAttributes.data());
return PyDictAttribute(context->getRef(), attr);
},
- nb::arg("value") = nb::dict(), nb::arg("context").none() = nb::none(),
+ nb::arg("value") = nb::dict(), nb::arg("context") = nb::none(),
"Gets an uniqued dict attribute");
c.def("__getitem__", [](PyDictAttribute &self, const std::string &name) {
MlirAttribute attr =
@@ -1622,7 +1621,7 @@ class PyTypeAttribute : public PyConcreteAttribute<PyTypeAttribute> {
MlirAttribute attr = mlirTypeAttrGet(value.get());
return PyTypeAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets a uniqued Type attribute");
c.def_prop_ro("value", [](PyTypeAttribute &self) {
return mlirTypeAttrGetValue(self.get());
@@ -1646,7 +1645,7 @@ class PyUnitAttribute : public PyConcreteAttribute<PyUnitAttribute> {
return PyUnitAttribute(context->getRef(),
mlirUnitAttrGet(context->get()));
},
- nb::arg("context").none() = nb::none(), "Create a Unit attribute.");
+ nb::arg("context") = nb::none(), "Create a Unit attribute.");
}
};
@@ -1669,8 +1668,7 @@ class PyStridedLayoutAttribute
ctx->get(), offset, strides.size(), strides.data());
return PyStridedLayoutAttribute(ctx->getRef(), attr);
},
- nb::arg("offset"), nb::arg("strides"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("offset"), nb::arg("strides"), nb::arg("context") = nb::none(),
"Gets a strided layout attribute.");
c.def_static(
"get_fully_dynamic",
@@ -1682,7 +1680,7 @@ class PyStridedLayoutAttribute
ctx->get(), dynamic, strides.size(), strides.data());
return PyStridedLayoutAttribute(ctx->getRef(), attr);
},
- nb::arg("rank"), nb::arg("context").none() = nb::none(),
+ nb::arg("rank"), nb::arg("context") = nb::none(),
"Gets a strided layout attribute with dynamic offset and strides of "
"a "
"given rank.");
diff --git a/mlir/lib/Bindings/Python/IRInterfaces.cpp b/mlir/lib/Bindings/Python/IRInterfaces.cpp
index 9e1fedaab5235..6aa057c2a78aa 100644
--- a/mlir/lib/Bindings/Python/IRInterfaces.cpp
+++ b/mlir/lib/Bindings/Python/IRInterfaces.cpp
@@ -195,7 +195,7 @@ class PyConcreteOpInterface {
static void bind(nb::module_ &m) {
nb::class_<ConcreteIface> cls(m, ConcreteIface::pyClassName);
cls.def(nb::init<nb::object, DefaultingPyMlirContext>(), nb::arg("object"),
- nb::arg("context").none() = nb::none(), constructorDoc)
+ nb::arg("context") = nb::none(), constructorDoc)
.def_prop_ro("operation", &PyConcreteOpInterface::getOperationObject,
operationDoc)
.def_prop_ro("opview", &PyConcreteOpInterface::getOpView, opviewDoc);
@@ -303,12 +303,11 @@ class PyInferTypeOpInterface
static void bindDerived(ClassTy &cls) {
cls.def("inferReturnTypes", &PyInferTypeOpInterface::inferReturnTypes,
- nb::arg("operands").none() = nb::none(),
- nb::arg("attributes").none() = nb::none(),
- nb::arg("properties").none() = nb::none(),
- nb::arg("regions").none() = nb::none(),
- nb::arg("context").none() = nb::none(),
- nb::arg("loc").none() = nb::none(), inferReturnTypesDoc);
+ nb::arg("operands") = nb::none(),
+ nb::arg("attributes") = nb::none(),
+ nb::arg("properties") = nb::none(), nb::arg("regions") = nb::none(),
+ nb::arg("context") = nb::none(), nb::arg("loc") = nb::none(),
+ inferReturnTypesDoc);
}
};
@@ -463,12 +462,10 @@ class PyInferShapedTypeOpInterface
static void bindDerived(ClassTy &cls) {
cls.def("inferReturnTypeComponents",
&PyInferShapedTypeOpInterface::inferReturnTypeComponents,
- nb::arg("operands").none() = nb::none(),
- nb::arg("attributes").none() = nb::none(),
- nb::arg("regions").none() = nb::none(),
- nb::arg("properties").none() = nb::none(),
- nb::arg("context").none() = nb::none(),
- nb::arg("loc").none() = nb::none(), inferReturnTypeComponentsDoc);
+ nb::arg("operands") = nb::none(),
+ nb::arg("attributes") = nb::none(), nb::arg("regions") = nb::none(),
+ nb::arg("properties") = nb::none(), nb::arg("context") = nb::none(),
+ nb::arg("loc") = nb::none(), inferReturnTypeComponentsDoc);
}
};
diff --git a/mlir/lib/Bindings/Python/IRTypes.cpp b/mlir/lib/Bindings/Python/IRTypes.cpp
index a9b12590188f8..38da70360ecd6 100644
--- a/mlir/lib/Bindings/Python/IRTypes.cpp
+++ b/mlir/lib/Bindings/Python/IRTypes.cpp
@@ -49,7 +49,7 @@ class PyIntegerType : public PyConcreteType<PyIntegerType> {
MlirType t = mlirIntegerTypeGet(context->get(), width);
return PyIntegerType(context->getRef(), t);
},
- nb::arg("width"), nb::arg("context").none() = nb::none(),
+ nb::arg("width"), nb::arg("context") = nb::none(),
"Create a signless integer type");
c.def_static(
"get_signed",
@@ -57,7 +57,7 @@ class PyIntegerType : public PyConcreteType<PyIntegerType> {
MlirType t = mlirIntegerTypeSignedGet(context->get(), width);
return PyIntegerType(context->getRef(), t);
},
- nb::arg("width"), nb::arg("context").none() = nb::none(),
+ nb::arg("width"), nb::arg("context") = nb::none(),
"Create a signed integer type");
c.def_static(
"get_unsigned",
@@ -65,7 +65,7 @@ class PyIntegerType : public PyConcreteType<PyIntegerType> {
MlirType t = mlirIntegerTypeUnsignedGet(context->get(), width);
return PyIntegerType(context->getRef(), t);
},
- nb::arg("width"), nb::arg("context").none() = nb::none(),
+ nb::arg("width"), nb::arg("context") = nb::none(),
"Create an unsigned integer type");
c.def_prop_ro(
"width",
@@ -108,7 +108,7 @@ class PyIndexType : public PyConcreteType<PyIndexType> {
MlirType t = mlirIndexTypeGet(context->get());
return PyIndexType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a index type.");
+ nb::arg("context") = nb::none(), "Create a index type.");
}
};
@@ -142,7 +142,7 @@ class PyFloat4E2M1FNType
MlirType t = mlirFloat4E2M1FNTypeGet(context->get());
return PyFloat4E2M1FNType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float4_e2m1fn type.");
+ nb::arg("context") = nb::none(), "Create a float4_e2m1fn type.");
}
};
@@ -163,7 +163,7 @@ class PyFloat6E2M3FNType
MlirType t = mlirFloat6E2M3FNTypeGet(context->get());
return PyFloat6E2M3FNType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float6_e2m3fn type.");
+ nb::arg("context") = nb::none(), "Create a float6_e2m3fn type.");
}
};
@@ -184,7 +184,7 @@ class PyFloat6E3M2FNType
MlirType t = mlirFloat6E3M2FNTypeGet(context->get());
return PyFloat6E3M2FNType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float6_e3m2fn type.");
+ nb::arg("context") = nb::none(), "Create a float6_e3m2fn type.");
}
};
@@ -205,7 +205,7 @@ class PyFloat8E4M3FNType
MlirType t = mlirFloat8E4M3FNTypeGet(context->get());
return PyFloat8E4M3FNType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float8_e4m3fn type.");
+ nb::arg("context") = nb::none(), "Create a float8_e4m3fn type.");
}
};
@@ -225,7 +225,7 @@ class PyFloat8E5M2Type : public PyConcreteType<PyFloat8E5M2Type, PyFloatType> {
MlirType t = mlirFloat8E5M2TypeGet(context->get());
return PyFloat8E5M2Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float8_e5m2 type.");
+ nb::arg("context") = nb::none(), "Create a float8_e5m2 type.");
}
};
@@ -245,7 +245,7 @@ class PyFloat8E4M3Type : public PyConcreteType<PyFloat8E4M3Type, PyFloatType> {
MlirType t = mlirFloat8E4M3TypeGet(context->get());
return PyFloat8E4M3Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float8_e4m3 type.");
+ nb::arg("context") = nb::none(), "Create a float8_e4m3 type.");
}
};
@@ -266,8 +266,7 @@ class PyFloat8E4M3FNUZType
MlirType t = mlirFloat8E4M3FNUZTypeGet(context->get());
return PyFloat8E4M3FNUZType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(),
- "Create a float8_e4m3fnuz type.");
+ nb::arg("context") = nb::none(), "Create a float8_e4m3fnuz type.");
}
};
@@ -288,8 +287,7 @@ class PyFloat8E4M3B11FNUZType
MlirType t = mlirFloat8E4M3B11FNUZTypeGet(context->get());
return PyFloat8E4M3B11FNUZType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(),
- "Create a float8_e4m3b11fnuz type.");
+ nb::arg("context") = nb::none(), "Create a float8_e4m3b11fnuz type.");
}
};
@@ -310,8 +308,7 @@ class PyFloat8E5M2FNUZType
MlirType t = mlirFloat8E5M2FNUZTypeGet(context->get());
return PyFloat8E5M2FNUZType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(),
- "Create a float8_e5m2fnuz type.");
+ nb::arg("context") = nb::none(), "Create a float8_e5m2fnuz type.");
}
};
@@ -331,7 +328,7 @@ class PyFloat8E3M4Type : public PyConcreteType<PyFloat8E3M4Type, PyFloatType> {
MlirType t = mlirFloat8E3M4TypeGet(context->get());
return PyFloat8E3M4Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float8_e3m4 type.");
+ nb::arg("context") = nb::none(), "Create a float8_e3m4 type.");
}
};
@@ -352,8 +349,7 @@ class PyFloat8E8M0FNUType
MlirType t = mlirFloat8E8M0FNUTypeGet(context->get());
return PyFloat8E8M0FNUType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(),
- "Create a float8_e8m0fnu type.");
+ nb::arg("context") = nb::none(), "Create a float8_e8m0fnu type.");
}
};
@@ -373,7 +369,7 @@ class PyBF16Type : public PyConcreteType<PyBF16Type, PyFloatType> {
MlirType t = mlirBF16TypeGet(context->get());
return PyBF16Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a bf16 type.");
+ nb::arg("context") = nb::none(), "Create a bf16 type.");
}
};
@@ -393,7 +389,7 @@ class PyF16Type : public PyConcreteType<PyF16Type, PyFloatType> {
MlirType t = mlirF16TypeGet(context->get());
return PyF16Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a f16 type.");
+ nb::arg("context") = nb::none(), "Create a f16 type.");
}
};
@@ -413,7 +409,7 @@ class PyTF32Type : public PyConcreteType<PyTF32Type, PyFloatType> {
MlirType t = mlirTF32TypeGet(context->get());
return PyTF32Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a tf32 type.");
+ nb::arg("context") = nb::none(), "Create a tf32 type.");
}
};
@@ -433,7 +429,7 @@ class PyF32Type : public PyConcreteType<PyF32Type, PyFloatType> {
MlirType t = mlirF32TypeGet(context->get());
return PyF32Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a f32 type.");
+ nb::arg("context") = nb::none(), "Create a f32 type.");
}
};
@@ -453,7 +449,7 @@ class PyF64Type : public PyConcreteType<PyF64Type, PyFloatType> {
MlirType t = mlirF64TypeGet(context->get());
return PyF64Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a f64 type.");
+ nb::arg("context") = nb::none(), "Create a f64 type.");
}
};
@@ -473,7 +469,7 @@ class PyNoneType : public PyConcreteType<PyNoneType> {
MlirType t = mlirNoneTypeGet(context->get());
return PyNoneType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a none type.");
+ nb::arg("context") = nb::none(), "Create a none type.");
}
};
@@ -639,9 +635,9 @@ class PyVectorType : public PyConcreteType<PyVectorType, PyShapedType> {
static void bindDerived(ClassTy &c) {
c.def_static("get", &PyVectorType::get, nb::arg("shape"),
nb::arg("element_type"), nb::kw_only(),
- nb::arg("scalable").none() = nb::none(),
- nb::arg("scalable_dims").none() = nb::none(),
- nb::arg("loc").none() = nb::none(), "Create a vector type")
+ nb::arg("scalable") = nb::none(),
+ nb::arg("scalable_dims") = nb::none(),
+ nb::arg("loc") = nb::none(), "Create a vector type")
.def_prop_ro(
"scalable",
[](MlirType self) { return mlirVectorTypeIsScalable(self); })
@@ -720,8 +716,8 @@ class PyRankedTensorType
return PyRankedTensorType(elementType.getContext(), t);
},
nb::arg("shape"), nb::arg("element_type"),
- nb::arg("encoding").none() = nb::none(),
- nb::arg("loc").none() = nb::none(), "Create a ranked tensor type");
+ nb::arg("encoding") = nb::none(), nb::arg("loc") = nb::none(),
+ "Create a ranked tensor type");
c.def_prop_ro("encoding",
[](PyRankedTensorType &self) -> std::optional<MlirAttribute> {
MlirAttribute encoding =
@@ -753,7 +749,7 @@ class PyUnrankedTensorType
throw MLIRError("Invalid type", errors.take());
return PyUnrankedTensorType(elementType.getContext(), t);
},
- nb::arg("element_type"), nb::arg("loc").none() = nb::none(),
+ nb::arg("element_type"), nb::arg("loc") = nb::none(),
"Create a unranked tensor type");
}
};
@@ -785,9 +781,8 @@ class PyMemRefType : public PyConcreteType<PyMemRefType, PyShapedType> {
return PyMemRefType(elementType.getContext(), t);
},
nb::arg("shape"), nb::arg("element_type"),
- nb::arg("layout").none() = nb::none(),
- nb::arg("memory_space").none() = nb::none(),
- nb::arg("loc").none() = nb::none(), "Create a memref type")
+ nb::arg("layout") = nb::none(), nb::arg("memory_space") = nb::none(),
+ nb::arg("loc") = nb::none(), "Create a memref type")
.def_prop_ro(
"layout",
[](PyMemRefType &self) -> MlirAttribute {
@@ -882,7 +877,7 @@ class PyTupleType : public PyConcreteType<PyTupleType> {
elements.data());
return PyTupleType(context->getRef(), t);
},
- nb::arg("elements"), nb::arg("context").none() = nb::none(),
+ nb::arg("elements"), nb::arg("context") = nb::none(),
"Create a tuple type");
c.def(
"get_type",
@@ -918,8 +913,7 @@ class PyFunctionType : public PyConcreteType<PyFunctionType> {
results.size(), results.data());
return PyFunctionType(context->getRef(), t);
},
- nb::arg("inputs"), nb::arg("results"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("inputs"), nb::arg("results"), nb::arg("context") = nb::none(),
"Gets a FunctionType from a list of input and result types");
c.def_prop_ro(
"inputs",
@@ -971,7 +965,7 @@ class PyOpaqueType : public PyConcreteType<PyOpaqueType> {
return PyOpaqueType(context->getRef(), type);
},
nb::arg("dialect_namespace"), nb::arg("buffer"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Create an unregistered (opaque) dialect type.");
c.def_prop_ro(
"dialect_namespace",
diff --git a/mlir/lib/Bindings/Python/Pass.cpp b/mlir/lib/Bindings/Python/Pass.cpp
index 88e28dca76bb9..72bf8ed8f856f 100644
--- a/mlir/lib/Bindings/Python/Pass.cpp
+++ b/mlir/lib/Bindings/Python/Pass.cpp
@@ -67,7 +67,7 @@ void mlir::python::populatePassManagerSubmodule(nb::module_ &m) {
mlirStringRefCreate(anchorOp.data(), anchorOp.size()));
new (&self) PyPassManager(passManager);
},
- "anchor_op"_a = nb::str("any"), "context"_a.none() = nb::none(),
+ "anchor_op"_a = nb::str("any"), "context"_a = nb::none(),
"Create a new PassManager for the current (or provided) Context.")
.def_prop_ro(MLIR_PYTHON_CAPI_PTR_ATTR, &PyPassManager::getCapsule)
.def(MLIR_PYTHON_CAPI_FACTORY_ATTR, &PyPassManager::createFromCapsule)
@@ -109,10 +109,10 @@ void mlir::python::populatePassManagerSubmodule(nb::module_ &m) {
"print_before_all"_a = false, "print_after_all"_a = true,
"print_module_scope"_a = false, "print_after_change"_a = false,
"print_after_failure"_a = false,
- "large_elements_limit"_a.none() = nb::none(),
- "large_resource_limit"_a.none() = nb::none(),
- "enable_debug_info"_a = false, "print_generic_op_form"_a = false,
- "tree_printing_dir_path"_a.none() = nb::none(),
+ "large_elements_limit"_a = nb::none(),
+ "large_resource_limit"_a = nb::none(), "enable_debug_info"_a = false,
+ "print_generic_op_form"_a = false,
+ "tree_printing_dir_path"_a = nb::none(),
"Enable IR printing, default as mlir-print-ir-after-all.")
.def(
"enable_verifier",
@@ -139,7 +139,7 @@ void mlir::python::populatePassManagerSubmodule(nb::module_ &m) {
throw nb::value_error(errorMsg.join().c_str());
return new PyPassManager(passManager);
},
- "pipeline"_a, "context"_a.none() = nb::none(),
+ "pipeline"_a, "context"_a = nb::none(),
"Parse a textual pass-pipeline and return a top-level PassManager "
"that can be applied on a Module. Throw a ValueError if the pipeline "
"can't be parsed")
diff --git a/mlir/lib/Bindings/Python/TransformInterpreter.cpp b/mlir/lib/Bindings/Python/TransformInterpreter.cpp
index 920bca886f617..81c02e905505a 100644
--- a/mlir/lib/Bindings/Python/TransformInterpreter.cpp
+++ b/mlir/lib/Bindings/Python/TransformInterpreter.cpp
@@ -14,8 +14,8 @@
#include "mlir-c/IR.h"
#include "mlir-c/Support.h"
#include "mlir/Bindings/Python/Diagnostics.h"
-#include "mlir/Bindings/Python/NanobindAdaptors.h"
#include "mlir/Bindings/Python/Nanobind.h"
+#include "mlir/Bindings/Python/NanobindAdaptors.h"
namespace nb = nanobind;
diff --git a/mlir/test/python/CMakeLists.txt b/mlir/test/python/CMakeLists.txt
index d68f3ff82e883..e1e82ef367b1e 100644
--- a/mlir/test/python/CMakeLists.txt
+++ b/mlir/test/python/CMakeLists.txt
@@ -13,7 +13,7 @@ add_subdirectory(lib)
set(MLIR_PYTHON_TEST_DEPENDS MLIRPythonModules)
if(NOT MLIR_STANDALONE_BUILD)
- list(APPEND MLIR_PYTHON_TEST_DEPENDS FileCheck count)
+ list(APPEND MLIR_PYTHON_TEST_DEPENDS FileCheck count not)
endif()
add_lit_testsuite(check-mlir-python "Running the MLIR Python regression tests"
${CMAKE_CURRENT_BINARY_DIR}
>From 58bd31ac1f9e5207315778f0f3620e05416dc8ed Mon Sep 17 00:00:00 2001
From: makslevental <maksim.levental at gmail.com>
Date: Mon, 8 Sep 2025 10:30:15 -0700
Subject: [PATCH 2/3] Revert "[MLIR][Python] remove .none() arg descriptor"
This reverts commit 9bb8d62df018e0aec7790035173024fe9fbf6a0b.
---
mlir/lib/Bindings/Python/DialectGPU.cpp | 4 +-
mlir/lib/Bindings/Python/DialectLLVM.cpp | 12 ++--
mlir/lib/Bindings/Python/DialectNVGPU.cpp | 2 +-
mlir/lib/Bindings/Python/DialectPDL.cpp | 8 +--
mlir/lib/Bindings/Python/DialectSMT.cpp | 4 +-
mlir/lib/Bindings/Python/DialectTransform.cpp | 10 +--
mlir/lib/Bindings/Python/IRAffine.cpp | 70 ++++++++++---------
mlir/lib/Bindings/Python/IRAttributes.cpp | 56 ++++++++-------
mlir/lib/Bindings/Python/IRInterfaces.cpp | 23 +++---
mlir/lib/Bindings/Python/IRTypes.cpp | 70 ++++++++++---------
mlir/lib/Bindings/Python/Pass.cpp | 12 ++--
.../Bindings/Python/TransformInterpreter.cpp | 2 +-
mlir/test/python/CMakeLists.txt | 2 +-
13 files changed, 144 insertions(+), 131 deletions(-)
diff --git a/mlir/lib/Bindings/Python/DialectGPU.cpp b/mlir/lib/Bindings/Python/DialectGPU.cpp
index 2568d535edb5a..a21176fffb441 100644
--- a/mlir/lib/Bindings/Python/DialectGPU.cpp
+++ b/mlir/lib/Bindings/Python/DialectGPU.cpp
@@ -38,7 +38,7 @@ NB_MODULE(_mlirDialectsGPU, m) {
return cls(mlirGPUAsyncTokenTypeGet(ctx));
},
"Gets an instance of AsyncTokenType in the same context", nb::arg("cls"),
- nb::arg("ctx") = nb::none());
+ nb::arg("ctx").none() = nb::none());
//===-------------------------------------------------------------------===//
// ObjectAttr
@@ -62,7 +62,7 @@ NB_MODULE(_mlirDialectsGPU, m) {
: MlirAttribute{nullptr}));
},
"cls"_a, "target"_a, "format"_a, "object"_a,
- "properties"_a = nb::none(), "kernels"_a = nb::none(),
+ "properties"_a.none() = nb::none(), "kernels"_a.none() = nb::none(),
"Gets a gpu.object from parameters.")
.def_property_readonly(
"target",
diff --git a/mlir/lib/Bindings/Python/DialectLLVM.cpp b/mlir/lib/Bindings/Python/DialectLLVM.cpp
index 55b9331270cdc..ee106c0321669 100644
--- a/mlir/lib/Bindings/Python/DialectLLVM.cpp
+++ b/mlir/lib/Bindings/Python/DialectLLVM.cpp
@@ -47,7 +47,7 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
return cls(type);
},
"cls"_a, "elements"_a, nb::kw_only(), "packed"_a = false,
- "loc"_a = nb::none());
+ "loc"_a.none() = nb::none());
llvmStructType.def_classmethod(
"get_identified",
@@ -55,7 +55,7 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
return cls(mlirLLVMStructTypeIdentifiedGet(
context, mlirStringRefCreate(name.data(), name.size())));
},
- "cls"_a, "name"_a, nb::kw_only(), "context"_a = nb::none());
+ "cls"_a, "name"_a, nb::kw_only(), "context"_a.none() = nb::none());
llvmStructType.def_classmethod(
"get_opaque",
@@ -63,7 +63,7 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
return cls(mlirLLVMStructTypeOpaqueGet(
context, mlirStringRefCreate(name.data(), name.size())));
},
- "cls"_a, "name"_a, "context"_a = nb::none());
+ "cls"_a, "name"_a, "context"_a.none() = nb::none());
llvmStructType.def(
"set_body",
@@ -86,7 +86,7 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
elements.size(), elements.data(), packed));
},
"cls"_a, "name"_a, "elements"_a, nb::kw_only(), "packed"_a = false,
- "context"_a = nb::none());
+ "context"_a.none() = nb::none());
llvmStructType.def_property_readonly(
"name", [](MlirType type) -> std::optional<std::string> {
@@ -133,8 +133,8 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
}
return cls(type);
},
- "cls"_a, "address_space"_a = nb::none(), nb::kw_only(),
- "context"_a = nb::none())
+ "cls"_a, "address_space"_a.none() = nb::none(), nb::kw_only(),
+ "context"_a.none() = nb::none())
.def_property_readonly("address_space", [](MlirType type) {
return mlirLLVMPointerTypeGetAddressSpace(type);
});
diff --git a/mlir/lib/Bindings/Python/DialectNVGPU.cpp b/mlir/lib/Bindings/Python/DialectNVGPU.cpp
index 18917416412c1..bb3f519c962f7 100644
--- a/mlir/lib/Bindings/Python/DialectNVGPU.cpp
+++ b/mlir/lib/Bindings/Python/DialectNVGPU.cpp
@@ -31,7 +31,7 @@ static void populateDialectNVGPUSubmodule(const nb::module_ &m) {
"Gets an instance of TensorMapDescriptorType in the same context",
nb::arg("cls"), nb::arg("tensor_type"), nb::arg("swizzle"),
nb::arg("l2promo"), nb::arg("oob_fill"), nb::arg("interleave"),
- nb::arg("ctx") = nb::none());
+ nb::arg("ctx").none() = nb::none());
}
NB_MODULE(_mlirDialectsNVGPU, m) {
diff --git a/mlir/lib/Bindings/Python/DialectPDL.cpp b/mlir/lib/Bindings/Python/DialectPDL.cpp
index ac163b59a0fb5..2acedbc26b072 100644
--- a/mlir/lib/Bindings/Python/DialectPDL.cpp
+++ b/mlir/lib/Bindings/Python/DialectPDL.cpp
@@ -36,7 +36,7 @@ static void populateDialectPDLSubmodule(const nanobind::module_ &m) {
return cls(mlirPDLAttributeTypeGet(ctx));
},
"Get an instance of AttributeType in given context.", nb::arg("cls"),
- nb::arg("context") = nb::none());
+ nb::arg("context").none() = nb::none());
//===-------------------------------------------------------------------===//
// OperationType
@@ -50,7 +50,7 @@ static void populateDialectPDLSubmodule(const nanobind::module_ &m) {
return cls(mlirPDLOperationTypeGet(ctx));
},
"Get an instance of OperationType in given context.", nb::arg("cls"),
- nb::arg("context") = nb::none());
+ nb::arg("context").none() = nb::none());
//===-------------------------------------------------------------------===//
// RangeType
@@ -81,7 +81,7 @@ static void populateDialectPDLSubmodule(const nanobind::module_ &m) {
return cls(mlirPDLTypeTypeGet(ctx));
},
"Get an instance of TypeType in given context.", nb::arg("cls"),
- nb::arg("context") = nb::none());
+ nb::arg("context").none() = nb::none());
//===-------------------------------------------------------------------===//
// ValueType
@@ -94,7 +94,7 @@ static void populateDialectPDLSubmodule(const nanobind::module_ &m) {
return cls(mlirPDLValueTypeGet(ctx));
},
"Get an instance of TypeType in given context.", nb::arg("cls"),
- nb::arg("context") = nb::none());
+ nb::arg("context").none() = nb::none());
}
NB_MODULE(_mlirDialectsPDL, m) {
diff --git a/mlir/lib/Bindings/Python/DialectSMT.cpp b/mlir/lib/Bindings/Python/DialectSMT.cpp
index 3123e3bdda496..cab4219fea72b 100644
--- a/mlir/lib/Bindings/Python/DialectSMT.cpp
+++ b/mlir/lib/Bindings/Python/DialectSMT.cpp
@@ -32,7 +32,7 @@ static void populateDialectSMTSubmodule(nanobind::module_ &m) {
[](const nb::object &, MlirContext context) {
return mlirSMTTypeGetBool(context);
},
- "cls"_a, "context"_a = nb::none());
+ "cls"_a, "context"_a.none() = nb::none());
auto smtBitVectorType =
mlir_type_subclass(m, "BitVectorType", mlirSMTTypeIsABitVector)
.def_classmethod(
@@ -40,7 +40,7 @@ static void populateDialectSMTSubmodule(nanobind::module_ &m) {
[](const nb::object &, int32_t width, MlirContext context) {
return mlirSMTTypeGetBitVector(context, width);
},
- "cls"_a, "width"_a, "context"_a = nb::none());
+ "cls"_a, "width"_a, "context"_a.none() = nb::none());
auto exportSMTLIB = [](MlirOperation module, bool inlineSingleUseValues,
bool indentLetBody) {
diff --git a/mlir/lib/Bindings/Python/DialectTransform.cpp b/mlir/lib/Bindings/Python/DialectTransform.cpp
index 150c69953d960..1a62b06cd16b7 100644
--- a/mlir/lib/Bindings/Python/DialectTransform.cpp
+++ b/mlir/lib/Bindings/Python/DialectTransform.cpp
@@ -33,7 +33,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
return cls(mlirTransformAnyOpTypeGet(ctx));
},
"Get an instance of AnyOpType in the given context.", nb::arg("cls"),
- nb::arg("context") = nb::none());
+ nb::arg("context").none() = nb::none());
//===-------------------------------------------------------------------===//
// AnyParamType
@@ -48,7 +48,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
return cls(mlirTransformAnyParamTypeGet(ctx));
},
"Get an instance of AnyParamType in the given context.", nb::arg("cls"),
- nb::arg("context") = nb::none());
+ nb::arg("context").none() = nb::none());
//===-------------------------------------------------------------------===//
// AnyValueType
@@ -63,7 +63,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
return cls(mlirTransformAnyValueTypeGet(ctx));
},
"Get an instance of AnyValueType in the given context.", nb::arg("cls"),
- nb::arg("context") = nb::none());
+ nb::arg("context").none() = nb::none());
//===-------------------------------------------------------------------===//
// OperationType
@@ -83,7 +83,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
"Get an instance of OperationType for the given kind in the given "
"context",
nb::arg("cls"), nb::arg("operation_name"),
- nb::arg("context") = nb::none());
+ nb::arg("context").none() = nb::none());
operationType.def_property_readonly(
"operation_name",
[](MlirType type) {
@@ -106,7 +106,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
return cls(mlirTransformParamTypeGet(ctx, type));
},
"Get an instance of ParamType for the given type in the given context.",
- nb::arg("cls"), nb::arg("type"), nb::arg("context") = nb::none());
+ nb::arg("cls"), nb::arg("type"), nb::arg("context").none() = nb::none());
paramType.def_property_readonly(
"type",
[](MlirType type) {
diff --git a/mlir/lib/Bindings/Python/IRAffine.cpp b/mlir/lib/Bindings/Python/IRAffine.cpp
index 4739354adfc01..a6499c952df6e 100644
--- a/mlir/lib/Bindings/Python/IRAffine.cpp
+++ b/mlir/lib/Bindings/Python/IRAffine.cpp
@@ -142,7 +142,7 @@ class PyAffineConstantExpr : public PyConcreteAffineExpr<PyAffineConstantExpr> {
static void bindDerived(ClassTy &c) {
c.def_static("get", &PyAffineConstantExpr::get, nb::arg("value"),
- nb::arg("context") = nb::none());
+ nb::arg("context").none() = nb::none());
c.def_prop_ro("value", [](PyAffineConstantExpr &self) {
return mlirAffineConstantExprGetValue(self);
});
@@ -162,7 +162,7 @@ class PyAffineDimExpr : public PyConcreteAffineExpr<PyAffineDimExpr> {
static void bindDerived(ClassTy &c) {
c.def_static("get", &PyAffineDimExpr::get, nb::arg("position"),
- nb::arg("context") = nb::none());
+ nb::arg("context").none() = nb::none());
c.def_prop_ro("position", [](PyAffineDimExpr &self) {
return mlirAffineDimExprGetPosition(self);
});
@@ -182,7 +182,7 @@ class PyAffineSymbolExpr : public PyConcreteAffineExpr<PyAffineSymbolExpr> {
static void bindDerived(ClassTy &c) {
c.def_static("get", &PyAffineSymbolExpr::get, nb::arg("position"),
- nb::arg("context") = nb::none());
+ nb::arg("context").none() = nb::none());
c.def_prop_ro("position", [](PyAffineSymbolExpr &self) {
return mlirAffineSymbolExprGetPosition(self);
});
@@ -588,7 +588,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
self.getContext(),
mlirAffineExprShiftDims(self, numDims, shift, offset));
},
- nb::arg("num_dims"), nb::arg("shift"), nb::arg("offset") = 0)
+ nb::arg("num_dims"), nb::arg("shift"), nb::arg("offset").none() = 0)
.def(
"shift_symbols",
[](PyAffineExpr &self, uint32_t numSymbols, uint32_t shift,
@@ -597,7 +597,8 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
self.getContext(),
mlirAffineExprShiftSymbols(self, numSymbols, shift, offset));
},
- nb::arg("num_symbols"), nb::arg("shift"), nb::arg("offset") = 0)
+ nb::arg("num_symbols"), nb::arg("shift"),
+ nb::arg("offset").none() = 0)
.def_static(
"simplify_affine_expr",
[](PyAffineExpr &self, uint32_t numDims, uint32_t numSymbols) {
@@ -654,15 +655,15 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
"Gets an affine expression containing the rounded-up result "
"of dividing an expression by a constant.")
.def_static("get_constant", &PyAffineConstantExpr::get, nb::arg("value"),
- nb::arg("context") = nb::none(),
+ nb::arg("context").none() = nb::none(),
"Gets a constant affine expression with the given value.")
.def_static(
"get_dim", &PyAffineDimExpr::get, nb::arg("position"),
- nb::arg("context") = nb::none(),
+ nb::arg("context").none() = nb::none(),
"Gets an affine expression of a dimension at the given position.")
.def_static(
"get_symbol", &PyAffineSymbolExpr::get, nb::arg("position"),
- nb::arg("context") = nb::none(),
+ nb::arg("context").none() = nb::none(),
"Gets an affine expression of a symbol at the given position.")
.def(
"dump", [](PyAffineExpr &self) { mlirAffineExprDump(self); },
@@ -706,24 +707,25 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
[](PyAffineMap &self) {
return static_cast<size_t>(llvm::hash_value(self.get().ptr));
})
- .def_static(
- "compress_unused_symbols",
- [](const nb::list &affineMaps, DefaultingPyMlirContext context) {
- SmallVector<MlirAffineMap> maps;
- pyListToVector<PyAffineMap, MlirAffineMap>(
- affineMaps, maps, "attempting to create an AffineMap");
- std::vector<MlirAffineMap> compressed(affineMaps.size());
- auto populate = [](void *result, intptr_t idx, MlirAffineMap m) {
- static_cast<MlirAffineMap *>(result)[idx] = (m);
- };
- mlirAffineMapCompressUnusedSymbols(maps.data(), maps.size(),
- compressed.data(), populate);
- std::vector<PyAffineMap> res;
- res.reserve(compressed.size());
- for (auto m : compressed)
- res.emplace_back(context->getRef(), m);
- return res;
- })
+ .def_static("compress_unused_symbols",
+ [](const nb::list &affineMaps,
+ DefaultingPyMlirContext context) {
+ SmallVector<MlirAffineMap> maps;
+ pyListToVector<PyAffineMap, MlirAffineMap>(
+ affineMaps, maps, "attempting to create an AffineMap");
+ std::vector<MlirAffineMap> compressed(affineMaps.size());
+ auto populate = [](void *result, intptr_t idx,
+ MlirAffineMap m) {
+ static_cast<MlirAffineMap *>(result)[idx] = (m);
+ };
+ mlirAffineMapCompressUnusedSymbols(
+ maps.data(), maps.size(), compressed.data(), populate);
+ std::vector<PyAffineMap> res;
+ res.reserve(compressed.size());
+ for (auto m : compressed)
+ res.emplace_back(context->getRef(), m);
+ return res;
+ })
.def_prop_ro(
"context",
[](PyAffineMap &self) { return self.getContext().getObject(); },
@@ -744,7 +746,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
return PyAffineMap(context->getRef(), map);
},
nb::arg("dim_count"), nb::arg("symbol_count"), nb::arg("exprs"),
- nb::arg("context") = nb::none(),
+ nb::arg("context").none() = nb::none(),
"Gets a map with the given expressions as results.")
.def_static(
"get_constant",
@@ -753,7 +755,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
mlirAffineMapConstantGet(context->get(), value);
return PyAffineMap(context->getRef(), affineMap);
},
- nb::arg("value"), nb::arg("context") = nb::none(),
+ nb::arg("value"), nb::arg("context").none() = nb::none(),
"Gets an affine map with a single constant result")
.def_static(
"get_empty",
@@ -761,7 +763,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
MlirAffineMap affineMap = mlirAffineMapEmptyGet(context->get());
return PyAffineMap(context->getRef(), affineMap);
},
- nb::arg("context") = nb::none(), "Gets an empty affine map.")
+ nb::arg("context").none() = nb::none(), "Gets an empty affine map.")
.def_static(
"get_identity",
[](intptr_t nDims, DefaultingPyMlirContext context) {
@@ -769,7 +771,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
mlirAffineMapMultiDimIdentityGet(context->get(), nDims);
return PyAffineMap(context->getRef(), affineMap);
},
- nb::arg("n_dims"), nb::arg("context") = nb::none(),
+ nb::arg("n_dims"), nb::arg("context").none() = nb::none(),
"Gets an identity map with the given number of dimensions.")
.def_static(
"get_minor_identity",
@@ -780,7 +782,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
return PyAffineMap(context->getRef(), affineMap);
},
nb::arg("n_dims"), nb::arg("n_results"),
- nb::arg("context") = nb::none(),
+ nb::arg("context").none() = nb::none(),
"Gets a minor identity map with the given number of dimensions and "
"results.")
.def_static(
@@ -794,7 +796,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
context->get(), permutation.size(), permutation.data());
return PyAffineMap(context->getRef(), affineMap);
},
- nb::arg("permutation"), nb::arg("context") = nb::none(),
+ nb::arg("permutation"), nb::arg("context").none() = nb::none(),
"Gets an affine map that permutes its inputs.")
.def(
"get_submap",
@@ -921,7 +923,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
return PyIntegerSet(context->getRef(), set);
},
nb::arg("num_dims"), nb::arg("num_symbols"), nb::arg("exprs"),
- nb::arg("eq_flags"), nb::arg("context") = nb::none())
+ nb::arg("eq_flags"), nb::arg("context").none() = nb::none())
.def_static(
"get_empty",
[](intptr_t numDims, intptr_t numSymbols,
@@ -931,7 +933,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
return PyIntegerSet(context->getRef(), set);
},
nb::arg("num_dims"), nb::arg("num_symbols"),
- nb::arg("context") = nb::none())
+ nb::arg("context").none() = nb::none())
.def(
"get_replaced",
[](PyIntegerSet &self, const nb::list &dimExprs,
diff --git a/mlir/lib/Bindings/Python/IRAttributes.cpp b/mlir/lib/Bindings/Python/IRAttributes.cpp
index b3c768846c74f..f2eafa7c2d45c 100644
--- a/mlir/lib/Bindings/Python/IRAttributes.cpp
+++ b/mlir/lib/Bindings/Python/IRAttributes.cpp
@@ -351,7 +351,7 @@ class PyDenseArrayAttribute : public PyConcreteAttribute<DerivedT> {
}
return getAttribute(values, ctx->getRef());
},
- nb::arg("values"), nb::arg("context") = nb::none(),
+ nb::arg("values"), nb::arg("context").none() = nb::none(),
"Gets a uniqued dense array attribute");
} else {
c.def_static(
@@ -359,7 +359,7 @@ class PyDenseArrayAttribute : public PyConcreteAttribute<DerivedT> {
[](const std::vector<EltTy> &values, DefaultingPyMlirContext ctx) {
return getAttribute(values, ctx->getRef());
},
- nb::arg("values"), nb::arg("context") = nb::none(),
+ nb::arg("values"), nb::arg("context").none() = nb::none(),
"Gets a uniqued dense array attribute");
}
// Bind the array methods.
@@ -515,7 +515,7 @@ class PyArrayAttribute : public PyConcreteAttribute<PyArrayAttribute> {
context->get(), mlirAttributes.size(), mlirAttributes.data());
return PyArrayAttribute(context->getRef(), attr);
},
- nb::arg("attributes"), nb::arg("context") = nb::none(),
+ nb::arg("attributes"), nb::arg("context").none() = nb::none(),
"Gets a uniqued Array attribute");
c.def("__getitem__",
[](PyArrayAttribute &arr, intptr_t i) {
@@ -564,7 +564,7 @@ class PyFloatAttribute : public PyConcreteAttribute<PyFloatAttribute> {
throw MLIRError("Invalid attribute", errors.take());
return PyFloatAttribute(type.getContext(), attr);
},
- nb::arg("type"), nb::arg("value"), nb::arg("loc") = nb::none(),
+ nb::arg("type"), nb::arg("value"), nb::arg("loc").none() = nb::none(),
"Gets an uniqued float point attribute associated to a type");
c.def_static(
"get_f32",
@@ -573,7 +573,7 @@ class PyFloatAttribute : public PyConcreteAttribute<PyFloatAttribute> {
context->get(), mlirF32TypeGet(context->get()), value);
return PyFloatAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context") = nb::none(),
+ nb::arg("value"), nb::arg("context").none() = nb::none(),
"Gets an uniqued float point attribute associated to a f32 type");
c.def_static(
"get_f64",
@@ -582,7 +582,7 @@ class PyFloatAttribute : public PyConcreteAttribute<PyFloatAttribute> {
context->get(), mlirF64TypeGet(context->get()), value);
return PyFloatAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context") = nb::none(),
+ nb::arg("value"), nb::arg("context").none() = nb::none(),
"Gets an uniqued float point attribute associated to a f64 type");
c.def_prop_ro("value", mlirFloatAttrGetValueDouble,
"Returns the value of the float attribute");
@@ -642,7 +642,7 @@ class PyBoolAttribute : public PyConcreteAttribute<PyBoolAttribute> {
MlirAttribute attr = mlirBoolAttrGet(context->get(), value);
return PyBoolAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context") = nb::none(),
+ nb::arg("value"), nb::arg("context").none() = nb::none(),
"Gets an uniqued bool attribute");
c.def_prop_ro("value", mlirBoolAttrGetValue,
"Returns the value of the bool attribute");
@@ -679,7 +679,7 @@ class PySymbolRefAttribute : public PyConcreteAttribute<PySymbolRefAttribute> {
DefaultingPyMlirContext context) {
return PySymbolRefAttribute::fromList(symbols, context.resolve());
},
- nb::arg("symbols"), nb::arg("context") = nb::none(),
+ nb::arg("symbols"), nb::arg("context").none() = nb::none(),
"Gets a uniqued SymbolRef attribute from a list of symbol names");
c.def_prop_ro(
"value",
@@ -713,7 +713,7 @@ class PyFlatSymbolRefAttribute
mlirFlatSymbolRefAttrGet(context->get(), toMlirStringRef(value));
return PyFlatSymbolRefAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context") = nb::none(),
+ nb::arg("value"), nb::arg("context").none() = nb::none(),
"Gets a uniqued FlatSymbolRef attribute");
c.def_prop_ro(
"value",
@@ -746,7 +746,7 @@ class PyOpaqueAttribute : public PyConcreteAttribute<PyOpaqueAttribute> {
return PyOpaqueAttribute(context->getRef(), attr);
},
nb::arg("dialect_namespace"), nb::arg("buffer"), nb::arg("type"),
- nb::arg("context") = nb::none(), "Gets an Opaque attribute.");
+ nb::arg("context").none() = nb::none(), "Gets an Opaque attribute.");
c.def_prop_ro(
"dialect_namespace",
[](PyOpaqueAttribute &self) {
@@ -780,7 +780,7 @@ class PyStringAttribute : public PyConcreteAttribute<PyStringAttribute> {
mlirStringAttrGet(context->get(), toMlirStringRef(value));
return PyStringAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context") = nb::none(),
+ nb::arg("value"), nb::arg("context").none() = nb::none(),
"Gets a uniqued string attribute");
c.def_static(
"get",
@@ -789,7 +789,7 @@ class PyStringAttribute : public PyConcreteAttribute<PyStringAttribute> {
mlirStringAttrGet(context->get(), toMlirStringRef(value));
return PyStringAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context") = nb::none(),
+ nb::arg("value"), nb::arg("context").none() = nb::none(),
"Gets a uniqued string attribute");
c.def_static(
"get_typed",
@@ -1030,12 +1030,13 @@ class PyDenseElementsAttribute
c.def("__len__", &PyDenseElementsAttribute::dunderLen)
.def_static("get", PyDenseElementsAttribute::getFromBuffer,
nb::arg("array"), nb::arg("signless") = true,
- nb::arg("type") = nb::none(), nb::arg("shape") = nb::none(),
- nb::arg("context") = nb::none(),
+ nb::arg("type").none() = nb::none(),
+ nb::arg("shape").none() = nb::none(),
+ nb::arg("context").none() = nb::none(),
kDenseElementsAttrGetDocstring)
.def_static("get", PyDenseElementsAttribute::getFromList,
- nb::arg("attrs"), nb::arg("type") = nb::none(),
- nb::arg("context") = nb::none(),
+ nb::arg("attrs"), nb::arg("type").none() = nb::none(),
+ nb::arg("context").none() = nb::none(),
kDenseElementsAttrGetFromListDocstring)
.def_static("get_splat", PyDenseElementsAttribute::getSplat,
nb::arg("shaped_type"), nb::arg("element_attr"),
@@ -1504,12 +1505,12 @@ class PyDenseResourceElementsAttribute
}
static void bindDerived(ClassTy &c) {
- c.def_static("get_from_buffer",
- PyDenseResourceElementsAttribute::getFromBuffer,
- nb::arg("array"), nb::arg("name"), nb::arg("type"),
- nb::arg("alignment") = nb::none(),
- nb::arg("is_mutable") = false, nb::arg("context") = nb::none(),
- kDenseResourceElementsAttrGetFromBufferDocstring);
+ c.def_static(
+ "get_from_buffer", PyDenseResourceElementsAttribute::getFromBuffer,
+ nb::arg("array"), nb::arg("name"), nb::arg("type"),
+ nb::arg("alignment").none() = nb::none(), nb::arg("is_mutable") = false,
+ nb::arg("context").none() = nb::none(),
+ kDenseResourceElementsAttrGetFromBufferDocstring);
}
};
@@ -1549,7 +1550,7 @@ class PyDictAttribute : public PyConcreteAttribute<PyDictAttribute> {
mlirNamedAttributes.data());
return PyDictAttribute(context->getRef(), attr);
},
- nb::arg("value") = nb::dict(), nb::arg("context") = nb::none(),
+ nb::arg("value") = nb::dict(), nb::arg("context").none() = nb::none(),
"Gets an uniqued dict attribute");
c.def("__getitem__", [](PyDictAttribute &self, const std::string &name) {
MlirAttribute attr =
@@ -1621,7 +1622,7 @@ class PyTypeAttribute : public PyConcreteAttribute<PyTypeAttribute> {
MlirAttribute attr = mlirTypeAttrGet(value.get());
return PyTypeAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context") = nb::none(),
+ nb::arg("value"), nb::arg("context").none() = nb::none(),
"Gets a uniqued Type attribute");
c.def_prop_ro("value", [](PyTypeAttribute &self) {
return mlirTypeAttrGetValue(self.get());
@@ -1645,7 +1646,7 @@ class PyUnitAttribute : public PyConcreteAttribute<PyUnitAttribute> {
return PyUnitAttribute(context->getRef(),
mlirUnitAttrGet(context->get()));
},
- nb::arg("context") = nb::none(), "Create a Unit attribute.");
+ nb::arg("context").none() = nb::none(), "Create a Unit attribute.");
}
};
@@ -1668,7 +1669,8 @@ class PyStridedLayoutAttribute
ctx->get(), offset, strides.size(), strides.data());
return PyStridedLayoutAttribute(ctx->getRef(), attr);
},
- nb::arg("offset"), nb::arg("strides"), nb::arg("context") = nb::none(),
+ nb::arg("offset"), nb::arg("strides"),
+ nb::arg("context").none() = nb::none(),
"Gets a strided layout attribute.");
c.def_static(
"get_fully_dynamic",
@@ -1680,7 +1682,7 @@ class PyStridedLayoutAttribute
ctx->get(), dynamic, strides.size(), strides.data());
return PyStridedLayoutAttribute(ctx->getRef(), attr);
},
- nb::arg("rank"), nb::arg("context") = nb::none(),
+ nb::arg("rank"), nb::arg("context").none() = nb::none(),
"Gets a strided layout attribute with dynamic offset and strides of "
"a "
"given rank.");
diff --git a/mlir/lib/Bindings/Python/IRInterfaces.cpp b/mlir/lib/Bindings/Python/IRInterfaces.cpp
index 6aa057c2a78aa..9e1fedaab5235 100644
--- a/mlir/lib/Bindings/Python/IRInterfaces.cpp
+++ b/mlir/lib/Bindings/Python/IRInterfaces.cpp
@@ -195,7 +195,7 @@ class PyConcreteOpInterface {
static void bind(nb::module_ &m) {
nb::class_<ConcreteIface> cls(m, ConcreteIface::pyClassName);
cls.def(nb::init<nb::object, DefaultingPyMlirContext>(), nb::arg("object"),
- nb::arg("context") = nb::none(), constructorDoc)
+ nb::arg("context").none() = nb::none(), constructorDoc)
.def_prop_ro("operation", &PyConcreteOpInterface::getOperationObject,
operationDoc)
.def_prop_ro("opview", &PyConcreteOpInterface::getOpView, opviewDoc);
@@ -303,11 +303,12 @@ class PyInferTypeOpInterface
static void bindDerived(ClassTy &cls) {
cls.def("inferReturnTypes", &PyInferTypeOpInterface::inferReturnTypes,
- nb::arg("operands") = nb::none(),
- nb::arg("attributes") = nb::none(),
- nb::arg("properties") = nb::none(), nb::arg("regions") = nb::none(),
- nb::arg("context") = nb::none(), nb::arg("loc") = nb::none(),
- inferReturnTypesDoc);
+ nb::arg("operands").none() = nb::none(),
+ nb::arg("attributes").none() = nb::none(),
+ nb::arg("properties").none() = nb::none(),
+ nb::arg("regions").none() = nb::none(),
+ nb::arg("context").none() = nb::none(),
+ nb::arg("loc").none() = nb::none(), inferReturnTypesDoc);
}
};
@@ -462,10 +463,12 @@ class PyInferShapedTypeOpInterface
static void bindDerived(ClassTy &cls) {
cls.def("inferReturnTypeComponents",
&PyInferShapedTypeOpInterface::inferReturnTypeComponents,
- nb::arg("operands") = nb::none(),
- nb::arg("attributes") = nb::none(), nb::arg("regions") = nb::none(),
- nb::arg("properties") = nb::none(), nb::arg("context") = nb::none(),
- nb::arg("loc") = nb::none(), inferReturnTypeComponentsDoc);
+ nb::arg("operands").none() = nb::none(),
+ nb::arg("attributes").none() = nb::none(),
+ nb::arg("regions").none() = nb::none(),
+ nb::arg("properties").none() = nb::none(),
+ nb::arg("context").none() = nb::none(),
+ nb::arg("loc").none() = nb::none(), inferReturnTypeComponentsDoc);
}
};
diff --git a/mlir/lib/Bindings/Python/IRTypes.cpp b/mlir/lib/Bindings/Python/IRTypes.cpp
index 38da70360ecd6..a9b12590188f8 100644
--- a/mlir/lib/Bindings/Python/IRTypes.cpp
+++ b/mlir/lib/Bindings/Python/IRTypes.cpp
@@ -49,7 +49,7 @@ class PyIntegerType : public PyConcreteType<PyIntegerType> {
MlirType t = mlirIntegerTypeGet(context->get(), width);
return PyIntegerType(context->getRef(), t);
},
- nb::arg("width"), nb::arg("context") = nb::none(),
+ nb::arg("width"), nb::arg("context").none() = nb::none(),
"Create a signless integer type");
c.def_static(
"get_signed",
@@ -57,7 +57,7 @@ class PyIntegerType : public PyConcreteType<PyIntegerType> {
MlirType t = mlirIntegerTypeSignedGet(context->get(), width);
return PyIntegerType(context->getRef(), t);
},
- nb::arg("width"), nb::arg("context") = nb::none(),
+ nb::arg("width"), nb::arg("context").none() = nb::none(),
"Create a signed integer type");
c.def_static(
"get_unsigned",
@@ -65,7 +65,7 @@ class PyIntegerType : public PyConcreteType<PyIntegerType> {
MlirType t = mlirIntegerTypeUnsignedGet(context->get(), width);
return PyIntegerType(context->getRef(), t);
},
- nb::arg("width"), nb::arg("context") = nb::none(),
+ nb::arg("width"), nb::arg("context").none() = nb::none(),
"Create an unsigned integer type");
c.def_prop_ro(
"width",
@@ -108,7 +108,7 @@ class PyIndexType : public PyConcreteType<PyIndexType> {
MlirType t = mlirIndexTypeGet(context->get());
return PyIndexType(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a index type.");
+ nb::arg("context").none() = nb::none(), "Create a index type.");
}
};
@@ -142,7 +142,7 @@ class PyFloat4E2M1FNType
MlirType t = mlirFloat4E2M1FNTypeGet(context->get());
return PyFloat4E2M1FNType(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a float4_e2m1fn type.");
+ nb::arg("context").none() = nb::none(), "Create a float4_e2m1fn type.");
}
};
@@ -163,7 +163,7 @@ class PyFloat6E2M3FNType
MlirType t = mlirFloat6E2M3FNTypeGet(context->get());
return PyFloat6E2M3FNType(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a float6_e2m3fn type.");
+ nb::arg("context").none() = nb::none(), "Create a float6_e2m3fn type.");
}
};
@@ -184,7 +184,7 @@ class PyFloat6E3M2FNType
MlirType t = mlirFloat6E3M2FNTypeGet(context->get());
return PyFloat6E3M2FNType(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a float6_e3m2fn type.");
+ nb::arg("context").none() = nb::none(), "Create a float6_e3m2fn type.");
}
};
@@ -205,7 +205,7 @@ class PyFloat8E4M3FNType
MlirType t = mlirFloat8E4M3FNTypeGet(context->get());
return PyFloat8E4M3FNType(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a float8_e4m3fn type.");
+ nb::arg("context").none() = nb::none(), "Create a float8_e4m3fn type.");
}
};
@@ -225,7 +225,7 @@ class PyFloat8E5M2Type : public PyConcreteType<PyFloat8E5M2Type, PyFloatType> {
MlirType t = mlirFloat8E5M2TypeGet(context->get());
return PyFloat8E5M2Type(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a float8_e5m2 type.");
+ nb::arg("context").none() = nb::none(), "Create a float8_e5m2 type.");
}
};
@@ -245,7 +245,7 @@ class PyFloat8E4M3Type : public PyConcreteType<PyFloat8E4M3Type, PyFloatType> {
MlirType t = mlirFloat8E4M3TypeGet(context->get());
return PyFloat8E4M3Type(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a float8_e4m3 type.");
+ nb::arg("context").none() = nb::none(), "Create a float8_e4m3 type.");
}
};
@@ -266,7 +266,8 @@ class PyFloat8E4M3FNUZType
MlirType t = mlirFloat8E4M3FNUZTypeGet(context->get());
return PyFloat8E4M3FNUZType(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a float8_e4m3fnuz type.");
+ nb::arg("context").none() = nb::none(),
+ "Create a float8_e4m3fnuz type.");
}
};
@@ -287,7 +288,8 @@ class PyFloat8E4M3B11FNUZType
MlirType t = mlirFloat8E4M3B11FNUZTypeGet(context->get());
return PyFloat8E4M3B11FNUZType(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a float8_e4m3b11fnuz type.");
+ nb::arg("context").none() = nb::none(),
+ "Create a float8_e4m3b11fnuz type.");
}
};
@@ -308,7 +310,8 @@ class PyFloat8E5M2FNUZType
MlirType t = mlirFloat8E5M2FNUZTypeGet(context->get());
return PyFloat8E5M2FNUZType(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a float8_e5m2fnuz type.");
+ nb::arg("context").none() = nb::none(),
+ "Create a float8_e5m2fnuz type.");
}
};
@@ -328,7 +331,7 @@ class PyFloat8E3M4Type : public PyConcreteType<PyFloat8E3M4Type, PyFloatType> {
MlirType t = mlirFloat8E3M4TypeGet(context->get());
return PyFloat8E3M4Type(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a float8_e3m4 type.");
+ nb::arg("context").none() = nb::none(), "Create a float8_e3m4 type.");
}
};
@@ -349,7 +352,8 @@ class PyFloat8E8M0FNUType
MlirType t = mlirFloat8E8M0FNUTypeGet(context->get());
return PyFloat8E8M0FNUType(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a float8_e8m0fnu type.");
+ nb::arg("context").none() = nb::none(),
+ "Create a float8_e8m0fnu type.");
}
};
@@ -369,7 +373,7 @@ class PyBF16Type : public PyConcreteType<PyBF16Type, PyFloatType> {
MlirType t = mlirBF16TypeGet(context->get());
return PyBF16Type(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a bf16 type.");
+ nb::arg("context").none() = nb::none(), "Create a bf16 type.");
}
};
@@ -389,7 +393,7 @@ class PyF16Type : public PyConcreteType<PyF16Type, PyFloatType> {
MlirType t = mlirF16TypeGet(context->get());
return PyF16Type(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a f16 type.");
+ nb::arg("context").none() = nb::none(), "Create a f16 type.");
}
};
@@ -409,7 +413,7 @@ class PyTF32Type : public PyConcreteType<PyTF32Type, PyFloatType> {
MlirType t = mlirTF32TypeGet(context->get());
return PyTF32Type(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a tf32 type.");
+ nb::arg("context").none() = nb::none(), "Create a tf32 type.");
}
};
@@ -429,7 +433,7 @@ class PyF32Type : public PyConcreteType<PyF32Type, PyFloatType> {
MlirType t = mlirF32TypeGet(context->get());
return PyF32Type(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a f32 type.");
+ nb::arg("context").none() = nb::none(), "Create a f32 type.");
}
};
@@ -449,7 +453,7 @@ class PyF64Type : public PyConcreteType<PyF64Type, PyFloatType> {
MlirType t = mlirF64TypeGet(context->get());
return PyF64Type(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a f64 type.");
+ nb::arg("context").none() = nb::none(), "Create a f64 type.");
}
};
@@ -469,7 +473,7 @@ class PyNoneType : public PyConcreteType<PyNoneType> {
MlirType t = mlirNoneTypeGet(context->get());
return PyNoneType(context->getRef(), t);
},
- nb::arg("context") = nb::none(), "Create a none type.");
+ nb::arg("context").none() = nb::none(), "Create a none type.");
}
};
@@ -635,9 +639,9 @@ class PyVectorType : public PyConcreteType<PyVectorType, PyShapedType> {
static void bindDerived(ClassTy &c) {
c.def_static("get", &PyVectorType::get, nb::arg("shape"),
nb::arg("element_type"), nb::kw_only(),
- nb::arg("scalable") = nb::none(),
- nb::arg("scalable_dims") = nb::none(),
- nb::arg("loc") = nb::none(), "Create a vector type")
+ nb::arg("scalable").none() = nb::none(),
+ nb::arg("scalable_dims").none() = nb::none(),
+ nb::arg("loc").none() = nb::none(), "Create a vector type")
.def_prop_ro(
"scalable",
[](MlirType self) { return mlirVectorTypeIsScalable(self); })
@@ -716,8 +720,8 @@ class PyRankedTensorType
return PyRankedTensorType(elementType.getContext(), t);
},
nb::arg("shape"), nb::arg("element_type"),
- nb::arg("encoding") = nb::none(), nb::arg("loc") = nb::none(),
- "Create a ranked tensor type");
+ nb::arg("encoding").none() = nb::none(),
+ nb::arg("loc").none() = nb::none(), "Create a ranked tensor type");
c.def_prop_ro("encoding",
[](PyRankedTensorType &self) -> std::optional<MlirAttribute> {
MlirAttribute encoding =
@@ -749,7 +753,7 @@ class PyUnrankedTensorType
throw MLIRError("Invalid type", errors.take());
return PyUnrankedTensorType(elementType.getContext(), t);
},
- nb::arg("element_type"), nb::arg("loc") = nb::none(),
+ nb::arg("element_type"), nb::arg("loc").none() = nb::none(),
"Create a unranked tensor type");
}
};
@@ -781,8 +785,9 @@ class PyMemRefType : public PyConcreteType<PyMemRefType, PyShapedType> {
return PyMemRefType(elementType.getContext(), t);
},
nb::arg("shape"), nb::arg("element_type"),
- nb::arg("layout") = nb::none(), nb::arg("memory_space") = nb::none(),
- nb::arg("loc") = nb::none(), "Create a memref type")
+ nb::arg("layout").none() = nb::none(),
+ nb::arg("memory_space").none() = nb::none(),
+ nb::arg("loc").none() = nb::none(), "Create a memref type")
.def_prop_ro(
"layout",
[](PyMemRefType &self) -> MlirAttribute {
@@ -877,7 +882,7 @@ class PyTupleType : public PyConcreteType<PyTupleType> {
elements.data());
return PyTupleType(context->getRef(), t);
},
- nb::arg("elements"), nb::arg("context") = nb::none(),
+ nb::arg("elements"), nb::arg("context").none() = nb::none(),
"Create a tuple type");
c.def(
"get_type",
@@ -913,7 +918,8 @@ class PyFunctionType : public PyConcreteType<PyFunctionType> {
results.size(), results.data());
return PyFunctionType(context->getRef(), t);
},
- nb::arg("inputs"), nb::arg("results"), nb::arg("context") = nb::none(),
+ nb::arg("inputs"), nb::arg("results"),
+ nb::arg("context").none() = nb::none(),
"Gets a FunctionType from a list of input and result types");
c.def_prop_ro(
"inputs",
@@ -965,7 +971,7 @@ class PyOpaqueType : public PyConcreteType<PyOpaqueType> {
return PyOpaqueType(context->getRef(), type);
},
nb::arg("dialect_namespace"), nb::arg("buffer"),
- nb::arg("context") = nb::none(),
+ nb::arg("context").none() = nb::none(),
"Create an unregistered (opaque) dialect type.");
c.def_prop_ro(
"dialect_namespace",
diff --git a/mlir/lib/Bindings/Python/Pass.cpp b/mlir/lib/Bindings/Python/Pass.cpp
index 72bf8ed8f856f..88e28dca76bb9 100644
--- a/mlir/lib/Bindings/Python/Pass.cpp
+++ b/mlir/lib/Bindings/Python/Pass.cpp
@@ -67,7 +67,7 @@ void mlir::python::populatePassManagerSubmodule(nb::module_ &m) {
mlirStringRefCreate(anchorOp.data(), anchorOp.size()));
new (&self) PyPassManager(passManager);
},
- "anchor_op"_a = nb::str("any"), "context"_a = nb::none(),
+ "anchor_op"_a = nb::str("any"), "context"_a.none() = nb::none(),
"Create a new PassManager for the current (or provided) Context.")
.def_prop_ro(MLIR_PYTHON_CAPI_PTR_ATTR, &PyPassManager::getCapsule)
.def(MLIR_PYTHON_CAPI_FACTORY_ATTR, &PyPassManager::createFromCapsule)
@@ -109,10 +109,10 @@ void mlir::python::populatePassManagerSubmodule(nb::module_ &m) {
"print_before_all"_a = false, "print_after_all"_a = true,
"print_module_scope"_a = false, "print_after_change"_a = false,
"print_after_failure"_a = false,
- "large_elements_limit"_a = nb::none(),
- "large_resource_limit"_a = nb::none(), "enable_debug_info"_a = false,
- "print_generic_op_form"_a = false,
- "tree_printing_dir_path"_a = nb::none(),
+ "large_elements_limit"_a.none() = nb::none(),
+ "large_resource_limit"_a.none() = nb::none(),
+ "enable_debug_info"_a = false, "print_generic_op_form"_a = false,
+ "tree_printing_dir_path"_a.none() = nb::none(),
"Enable IR printing, default as mlir-print-ir-after-all.")
.def(
"enable_verifier",
@@ -139,7 +139,7 @@ void mlir::python::populatePassManagerSubmodule(nb::module_ &m) {
throw nb::value_error(errorMsg.join().c_str());
return new PyPassManager(passManager);
},
- "pipeline"_a, "context"_a = nb::none(),
+ "pipeline"_a, "context"_a.none() = nb::none(),
"Parse a textual pass-pipeline and return a top-level PassManager "
"that can be applied on a Module. Throw a ValueError if the pipeline "
"can't be parsed")
diff --git a/mlir/lib/Bindings/Python/TransformInterpreter.cpp b/mlir/lib/Bindings/Python/TransformInterpreter.cpp
index 81c02e905505a..920bca886f617 100644
--- a/mlir/lib/Bindings/Python/TransformInterpreter.cpp
+++ b/mlir/lib/Bindings/Python/TransformInterpreter.cpp
@@ -14,8 +14,8 @@
#include "mlir-c/IR.h"
#include "mlir-c/Support.h"
#include "mlir/Bindings/Python/Diagnostics.h"
-#include "mlir/Bindings/Python/Nanobind.h"
#include "mlir/Bindings/Python/NanobindAdaptors.h"
+#include "mlir/Bindings/Python/Nanobind.h"
namespace nb = nanobind;
diff --git a/mlir/test/python/CMakeLists.txt b/mlir/test/python/CMakeLists.txt
index e1e82ef367b1e..d68f3ff82e883 100644
--- a/mlir/test/python/CMakeLists.txt
+++ b/mlir/test/python/CMakeLists.txt
@@ -13,7 +13,7 @@ add_subdirectory(lib)
set(MLIR_PYTHON_TEST_DEPENDS MLIRPythonModules)
if(NOT MLIR_STANDALONE_BUILD)
- list(APPEND MLIR_PYTHON_TEST_DEPENDS FileCheck count not)
+ list(APPEND MLIR_PYTHON_TEST_DEPENDS FileCheck count)
endif()
add_lit_testsuite(check-mlir-python "Running the MLIR Python regression tests"
${CMAKE_CURRENT_BINARY_DIR}
>From 8d2d18c0092ccfb04486ca5181f73e39a36b5203 Mon Sep 17 00:00:00 2001
From: makslevental <maksim.levental at gmail.com>
Date: Mon, 8 Sep 2025 10:33:34 -0700
Subject: [PATCH 3/3] [MLIR][Python] remove .none() arg descriptor
---
mlir/lib/Bindings/Python/DialectGPU.cpp | 4 +-
mlir/lib/Bindings/Python/DialectLLVM.cpp | 12 +--
mlir/lib/Bindings/Python/DialectNVGPU.cpp | 2 +-
mlir/lib/Bindings/Python/DialectPDL.cpp | 8 +-
mlir/lib/Bindings/Python/DialectSMT.cpp | 4 +-
.../Bindings/Python/DialectSparseTensor.cpp | 5 +-
mlir/lib/Bindings/Python/DialectTransform.cpp | 10 +-
mlir/lib/Bindings/Python/IRAffine.cpp | 33 ++++---
mlir/lib/Bindings/Python/IRAttributes.cpp | 56 ++++++-----
mlir/lib/Bindings/Python/IRCore.cpp | 93 +++++++++----------
mlir/lib/Bindings/Python/IRInterfaces.cpp | 23 ++---
mlir/lib/Bindings/Python/IRTypes.cpp | 72 +++++++-------
mlir/lib/Bindings/Python/Pass.cpp | 12 +--
13 files changed, 156 insertions(+), 178 deletions(-)
diff --git a/mlir/lib/Bindings/Python/DialectGPU.cpp b/mlir/lib/Bindings/Python/DialectGPU.cpp
index a21176fffb441..2568d535edb5a 100644
--- a/mlir/lib/Bindings/Python/DialectGPU.cpp
+++ b/mlir/lib/Bindings/Python/DialectGPU.cpp
@@ -38,7 +38,7 @@ NB_MODULE(_mlirDialectsGPU, m) {
return cls(mlirGPUAsyncTokenTypeGet(ctx));
},
"Gets an instance of AsyncTokenType in the same context", nb::arg("cls"),
- nb::arg("ctx").none() = nb::none());
+ nb::arg("ctx") = nb::none());
//===-------------------------------------------------------------------===//
// ObjectAttr
@@ -62,7 +62,7 @@ NB_MODULE(_mlirDialectsGPU, m) {
: MlirAttribute{nullptr}));
},
"cls"_a, "target"_a, "format"_a, "object"_a,
- "properties"_a.none() = nb::none(), "kernels"_a.none() = nb::none(),
+ "properties"_a = nb::none(), "kernels"_a = nb::none(),
"Gets a gpu.object from parameters.")
.def_property_readonly(
"target",
diff --git a/mlir/lib/Bindings/Python/DialectLLVM.cpp b/mlir/lib/Bindings/Python/DialectLLVM.cpp
index ee106c0321669..55b9331270cdc 100644
--- a/mlir/lib/Bindings/Python/DialectLLVM.cpp
+++ b/mlir/lib/Bindings/Python/DialectLLVM.cpp
@@ -47,7 +47,7 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
return cls(type);
},
"cls"_a, "elements"_a, nb::kw_only(), "packed"_a = false,
- "loc"_a.none() = nb::none());
+ "loc"_a = nb::none());
llvmStructType.def_classmethod(
"get_identified",
@@ -55,7 +55,7 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
return cls(mlirLLVMStructTypeIdentifiedGet(
context, mlirStringRefCreate(name.data(), name.size())));
},
- "cls"_a, "name"_a, nb::kw_only(), "context"_a.none() = nb::none());
+ "cls"_a, "name"_a, nb::kw_only(), "context"_a = nb::none());
llvmStructType.def_classmethod(
"get_opaque",
@@ -63,7 +63,7 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
return cls(mlirLLVMStructTypeOpaqueGet(
context, mlirStringRefCreate(name.data(), name.size())));
},
- "cls"_a, "name"_a, "context"_a.none() = nb::none());
+ "cls"_a, "name"_a, "context"_a = nb::none());
llvmStructType.def(
"set_body",
@@ -86,7 +86,7 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
elements.size(), elements.data(), packed));
},
"cls"_a, "name"_a, "elements"_a, nb::kw_only(), "packed"_a = false,
- "context"_a.none() = nb::none());
+ "context"_a = nb::none());
llvmStructType.def_property_readonly(
"name", [](MlirType type) -> std::optional<std::string> {
@@ -133,8 +133,8 @@ static void populateDialectLLVMSubmodule(const nanobind::module_ &m) {
}
return cls(type);
},
- "cls"_a, "address_space"_a.none() = nb::none(), nb::kw_only(),
- "context"_a.none() = nb::none())
+ "cls"_a, "address_space"_a = nb::none(), nb::kw_only(),
+ "context"_a = nb::none())
.def_property_readonly("address_space", [](MlirType type) {
return mlirLLVMPointerTypeGetAddressSpace(type);
});
diff --git a/mlir/lib/Bindings/Python/DialectNVGPU.cpp b/mlir/lib/Bindings/Python/DialectNVGPU.cpp
index bb3f519c962f7..18917416412c1 100644
--- a/mlir/lib/Bindings/Python/DialectNVGPU.cpp
+++ b/mlir/lib/Bindings/Python/DialectNVGPU.cpp
@@ -31,7 +31,7 @@ static void populateDialectNVGPUSubmodule(const nb::module_ &m) {
"Gets an instance of TensorMapDescriptorType in the same context",
nb::arg("cls"), nb::arg("tensor_type"), nb::arg("swizzle"),
nb::arg("l2promo"), nb::arg("oob_fill"), nb::arg("interleave"),
- nb::arg("ctx").none() = nb::none());
+ nb::arg("ctx") = nb::none());
}
NB_MODULE(_mlirDialectsNVGPU, m) {
diff --git a/mlir/lib/Bindings/Python/DialectPDL.cpp b/mlir/lib/Bindings/Python/DialectPDL.cpp
index 2acedbc26b072..ac163b59a0fb5 100644
--- a/mlir/lib/Bindings/Python/DialectPDL.cpp
+++ b/mlir/lib/Bindings/Python/DialectPDL.cpp
@@ -36,7 +36,7 @@ static void populateDialectPDLSubmodule(const nanobind::module_ &m) {
return cls(mlirPDLAttributeTypeGet(ctx));
},
"Get an instance of AttributeType in given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
//===-------------------------------------------------------------------===//
// OperationType
@@ -50,7 +50,7 @@ static void populateDialectPDLSubmodule(const nanobind::module_ &m) {
return cls(mlirPDLOperationTypeGet(ctx));
},
"Get an instance of OperationType in given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
//===-------------------------------------------------------------------===//
// RangeType
@@ -81,7 +81,7 @@ static void populateDialectPDLSubmodule(const nanobind::module_ &m) {
return cls(mlirPDLTypeTypeGet(ctx));
},
"Get an instance of TypeType in given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
//===-------------------------------------------------------------------===//
// ValueType
@@ -94,7 +94,7 @@ static void populateDialectPDLSubmodule(const nanobind::module_ &m) {
return cls(mlirPDLValueTypeGet(ctx));
},
"Get an instance of TypeType in given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
}
NB_MODULE(_mlirDialectsPDL, m) {
diff --git a/mlir/lib/Bindings/Python/DialectSMT.cpp b/mlir/lib/Bindings/Python/DialectSMT.cpp
index cab4219fea72b..3123e3bdda496 100644
--- a/mlir/lib/Bindings/Python/DialectSMT.cpp
+++ b/mlir/lib/Bindings/Python/DialectSMT.cpp
@@ -32,7 +32,7 @@ static void populateDialectSMTSubmodule(nanobind::module_ &m) {
[](const nb::object &, MlirContext context) {
return mlirSMTTypeGetBool(context);
},
- "cls"_a, "context"_a.none() = nb::none());
+ "cls"_a, "context"_a = nb::none());
auto smtBitVectorType =
mlir_type_subclass(m, "BitVectorType", mlirSMTTypeIsABitVector)
.def_classmethod(
@@ -40,7 +40,7 @@ static void populateDialectSMTSubmodule(nanobind::module_ &m) {
[](const nb::object &, int32_t width, MlirContext context) {
return mlirSMTTypeGetBitVector(context, width);
},
- "cls"_a, "width"_a, "context"_a.none() = nb::none());
+ "cls"_a, "width"_a, "context"_a = nb::none());
auto exportSMTLIB = [](MlirOperation module, bool inlineSingleUseValues,
bool indentLetBody) {
diff --git a/mlir/lib/Bindings/Python/DialectSparseTensor.cpp b/mlir/lib/Bindings/Python/DialectSparseTensor.cpp
index 9d7dc110764fb..00b65ee9745dc 100644
--- a/mlir/lib/Bindings/Python/DialectSparseTensor.cpp
+++ b/mlir/lib/Bindings/Python/DialectSparseTensor.cpp
@@ -53,9 +53,8 @@ static void populateDialectSparseTensorSubmodule(const nb::module_ &m) {
},
nb::arg("cls"), nb::arg("lvl_types"), nb::arg("dim_to_lvl").none(),
nb::arg("lvl_to_dim").none(), nb::arg("pos_width"),
- nb::arg("crd_width"), nb::arg("explicit_val").none() = nb::none(),
- nb::arg("implicit_val").none() = nb::none(),
- nb::arg("context").none() = nb::none(),
+ nb::arg("crd_width"), nb::arg("explicit_val") = nb::none(),
+ nb::arg("implicit_val") = nb::none(), nb::arg("context") = nb::none(),
"Gets a sparse_tensor.encoding from parameters.")
.def_classmethod(
"build_level_type",
diff --git a/mlir/lib/Bindings/Python/DialectTransform.cpp b/mlir/lib/Bindings/Python/DialectTransform.cpp
index 1a62b06cd16b7..150c69953d960 100644
--- a/mlir/lib/Bindings/Python/DialectTransform.cpp
+++ b/mlir/lib/Bindings/Python/DialectTransform.cpp
@@ -33,7 +33,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
return cls(mlirTransformAnyOpTypeGet(ctx));
},
"Get an instance of AnyOpType in the given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
//===-------------------------------------------------------------------===//
// AnyParamType
@@ -48,7 +48,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
return cls(mlirTransformAnyParamTypeGet(ctx));
},
"Get an instance of AnyParamType in the given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
//===-------------------------------------------------------------------===//
// AnyValueType
@@ -63,7 +63,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
return cls(mlirTransformAnyValueTypeGet(ctx));
},
"Get an instance of AnyValueType in the given context.", nb::arg("cls"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
//===-------------------------------------------------------------------===//
// OperationType
@@ -83,7 +83,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
"Get an instance of OperationType for the given kind in the given "
"context",
nb::arg("cls"), nb::arg("operation_name"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
operationType.def_property_readonly(
"operation_name",
[](MlirType type) {
@@ -106,7 +106,7 @@ static void populateDialectTransformSubmodule(const nb::module_ &m) {
return cls(mlirTransformParamTypeGet(ctx, type));
},
"Get an instance of ParamType for the given type in the given context.",
- nb::arg("cls"), nb::arg("type"), nb::arg("context").none() = nb::none());
+ nb::arg("cls"), nb::arg("type"), nb::arg("context") = nb::none());
paramType.def_property_readonly(
"type",
[](MlirType type) {
diff --git a/mlir/lib/Bindings/Python/IRAffine.cpp b/mlir/lib/Bindings/Python/IRAffine.cpp
index a6499c952df6e..bc6aa0dac6221 100644
--- a/mlir/lib/Bindings/Python/IRAffine.cpp
+++ b/mlir/lib/Bindings/Python/IRAffine.cpp
@@ -142,7 +142,7 @@ class PyAffineConstantExpr : public PyConcreteAffineExpr<PyAffineConstantExpr> {
static void bindDerived(ClassTy &c) {
c.def_static("get", &PyAffineConstantExpr::get, nb::arg("value"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
c.def_prop_ro("value", [](PyAffineConstantExpr &self) {
return mlirAffineConstantExprGetValue(self);
});
@@ -162,7 +162,7 @@ class PyAffineDimExpr : public PyConcreteAffineExpr<PyAffineDimExpr> {
static void bindDerived(ClassTy &c) {
c.def_static("get", &PyAffineDimExpr::get, nb::arg("position"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
c.def_prop_ro("position", [](PyAffineDimExpr &self) {
return mlirAffineDimExprGetPosition(self);
});
@@ -182,7 +182,7 @@ class PyAffineSymbolExpr : public PyConcreteAffineExpr<PyAffineSymbolExpr> {
static void bindDerived(ClassTy &c) {
c.def_static("get", &PyAffineSymbolExpr::get, nb::arg("position"),
- nb::arg("context").none() = nb::none());
+ nb::arg("context") = nb::none());
c.def_prop_ro("position", [](PyAffineSymbolExpr &self) {
return mlirAffineSymbolExprGetPosition(self);
});
@@ -588,7 +588,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
self.getContext(),
mlirAffineExprShiftDims(self, numDims, shift, offset));
},
- nb::arg("num_dims"), nb::arg("shift"), nb::arg("offset").none() = 0)
+ nb::arg("num_dims"), nb::arg("shift"), nb::arg("offset") = 0)
.def(
"shift_symbols",
[](PyAffineExpr &self, uint32_t numSymbols, uint32_t shift,
@@ -597,8 +597,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
self.getContext(),
mlirAffineExprShiftSymbols(self, numSymbols, shift, offset));
},
- nb::arg("num_symbols"), nb::arg("shift"),
- nb::arg("offset").none() = 0)
+ nb::arg("num_symbols"), nb::arg("shift"), nb::arg("offset") = 0)
.def_static(
"simplify_affine_expr",
[](PyAffineExpr &self, uint32_t numDims, uint32_t numSymbols) {
@@ -655,15 +654,15 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
"Gets an affine expression containing the rounded-up result "
"of dividing an expression by a constant.")
.def_static("get_constant", &PyAffineConstantExpr::get, nb::arg("value"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Gets a constant affine expression with the given value.")
.def_static(
"get_dim", &PyAffineDimExpr::get, nb::arg("position"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Gets an affine expression of a dimension at the given position.")
.def_static(
"get_symbol", &PyAffineSymbolExpr::get, nb::arg("position"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Gets an affine expression of a symbol at the given position.")
.def(
"dump", [](PyAffineExpr &self) { mlirAffineExprDump(self); },
@@ -746,7 +745,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
return PyAffineMap(context->getRef(), map);
},
nb::arg("dim_count"), nb::arg("symbol_count"), nb::arg("exprs"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Gets a map with the given expressions as results.")
.def_static(
"get_constant",
@@ -755,7 +754,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
mlirAffineMapConstantGet(context->get(), value);
return PyAffineMap(context->getRef(), affineMap);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets an affine map with a single constant result")
.def_static(
"get_empty",
@@ -763,7 +762,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
MlirAffineMap affineMap = mlirAffineMapEmptyGet(context->get());
return PyAffineMap(context->getRef(), affineMap);
},
- nb::arg("context").none() = nb::none(), "Gets an empty affine map.")
+ nb::arg("context") = nb::none(), "Gets an empty affine map.")
.def_static(
"get_identity",
[](intptr_t nDims, DefaultingPyMlirContext context) {
@@ -771,7 +770,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
mlirAffineMapMultiDimIdentityGet(context->get(), nDims);
return PyAffineMap(context->getRef(), affineMap);
},
- nb::arg("n_dims"), nb::arg("context").none() = nb::none(),
+ nb::arg("n_dims"), nb::arg("context") = nb::none(),
"Gets an identity map with the given number of dimensions.")
.def_static(
"get_minor_identity",
@@ -782,7 +781,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
return PyAffineMap(context->getRef(), affineMap);
},
nb::arg("n_dims"), nb::arg("n_results"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Gets a minor identity map with the given number of dimensions and "
"results.")
.def_static(
@@ -796,7 +795,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
context->get(), permutation.size(), permutation.data());
return PyAffineMap(context->getRef(), affineMap);
},
- nb::arg("permutation"), nb::arg("context").none() = nb::none(),
+ nb::arg("permutation"), nb::arg("context") = nb::none(),
"Gets an affine map that permutes its inputs.")
.def(
"get_submap",
@@ -923,7 +922,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
return PyIntegerSet(context->getRef(), set);
},
nb::arg("num_dims"), nb::arg("num_symbols"), nb::arg("exprs"),
- nb::arg("eq_flags"), nb::arg("context").none() = nb::none())
+ nb::arg("eq_flags"), nb::arg("context") = nb::none())
.def_static(
"get_empty",
[](intptr_t numDims, intptr_t numSymbols,
@@ -933,7 +932,7 @@ void mlir::python::populateIRAffine(nb::module_ &m) {
return PyIntegerSet(context->getRef(), set);
},
nb::arg("num_dims"), nb::arg("num_symbols"),
- nb::arg("context").none() = nb::none())
+ nb::arg("context") = nb::none())
.def(
"get_replaced",
[](PyIntegerSet &self, const nb::list &dimExprs,
diff --git a/mlir/lib/Bindings/Python/IRAttributes.cpp b/mlir/lib/Bindings/Python/IRAttributes.cpp
index f2eafa7c2d45c..b3c768846c74f 100644
--- a/mlir/lib/Bindings/Python/IRAttributes.cpp
+++ b/mlir/lib/Bindings/Python/IRAttributes.cpp
@@ -351,7 +351,7 @@ class PyDenseArrayAttribute : public PyConcreteAttribute<DerivedT> {
}
return getAttribute(values, ctx->getRef());
},
- nb::arg("values"), nb::arg("context").none() = nb::none(),
+ nb::arg("values"), nb::arg("context") = nb::none(),
"Gets a uniqued dense array attribute");
} else {
c.def_static(
@@ -359,7 +359,7 @@ class PyDenseArrayAttribute : public PyConcreteAttribute<DerivedT> {
[](const std::vector<EltTy> &values, DefaultingPyMlirContext ctx) {
return getAttribute(values, ctx->getRef());
},
- nb::arg("values"), nb::arg("context").none() = nb::none(),
+ nb::arg("values"), nb::arg("context") = nb::none(),
"Gets a uniqued dense array attribute");
}
// Bind the array methods.
@@ -515,7 +515,7 @@ class PyArrayAttribute : public PyConcreteAttribute<PyArrayAttribute> {
context->get(), mlirAttributes.size(), mlirAttributes.data());
return PyArrayAttribute(context->getRef(), attr);
},
- nb::arg("attributes"), nb::arg("context").none() = nb::none(),
+ nb::arg("attributes"), nb::arg("context") = nb::none(),
"Gets a uniqued Array attribute");
c.def("__getitem__",
[](PyArrayAttribute &arr, intptr_t i) {
@@ -564,7 +564,7 @@ class PyFloatAttribute : public PyConcreteAttribute<PyFloatAttribute> {
throw MLIRError("Invalid attribute", errors.take());
return PyFloatAttribute(type.getContext(), attr);
},
- nb::arg("type"), nb::arg("value"), nb::arg("loc").none() = nb::none(),
+ nb::arg("type"), nb::arg("value"), nb::arg("loc") = nb::none(),
"Gets an uniqued float point attribute associated to a type");
c.def_static(
"get_f32",
@@ -573,7 +573,7 @@ class PyFloatAttribute : public PyConcreteAttribute<PyFloatAttribute> {
context->get(), mlirF32TypeGet(context->get()), value);
return PyFloatAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets an uniqued float point attribute associated to a f32 type");
c.def_static(
"get_f64",
@@ -582,7 +582,7 @@ class PyFloatAttribute : public PyConcreteAttribute<PyFloatAttribute> {
context->get(), mlirF64TypeGet(context->get()), value);
return PyFloatAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets an uniqued float point attribute associated to a f64 type");
c.def_prop_ro("value", mlirFloatAttrGetValueDouble,
"Returns the value of the float attribute");
@@ -642,7 +642,7 @@ class PyBoolAttribute : public PyConcreteAttribute<PyBoolAttribute> {
MlirAttribute attr = mlirBoolAttrGet(context->get(), value);
return PyBoolAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets an uniqued bool attribute");
c.def_prop_ro("value", mlirBoolAttrGetValue,
"Returns the value of the bool attribute");
@@ -679,7 +679,7 @@ class PySymbolRefAttribute : public PyConcreteAttribute<PySymbolRefAttribute> {
DefaultingPyMlirContext context) {
return PySymbolRefAttribute::fromList(symbols, context.resolve());
},
- nb::arg("symbols"), nb::arg("context").none() = nb::none(),
+ nb::arg("symbols"), nb::arg("context") = nb::none(),
"Gets a uniqued SymbolRef attribute from a list of symbol names");
c.def_prop_ro(
"value",
@@ -713,7 +713,7 @@ class PyFlatSymbolRefAttribute
mlirFlatSymbolRefAttrGet(context->get(), toMlirStringRef(value));
return PyFlatSymbolRefAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets a uniqued FlatSymbolRef attribute");
c.def_prop_ro(
"value",
@@ -746,7 +746,7 @@ class PyOpaqueAttribute : public PyConcreteAttribute<PyOpaqueAttribute> {
return PyOpaqueAttribute(context->getRef(), attr);
},
nb::arg("dialect_namespace"), nb::arg("buffer"), nb::arg("type"),
- nb::arg("context").none() = nb::none(), "Gets an Opaque attribute.");
+ nb::arg("context") = nb::none(), "Gets an Opaque attribute.");
c.def_prop_ro(
"dialect_namespace",
[](PyOpaqueAttribute &self) {
@@ -780,7 +780,7 @@ class PyStringAttribute : public PyConcreteAttribute<PyStringAttribute> {
mlirStringAttrGet(context->get(), toMlirStringRef(value));
return PyStringAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets a uniqued string attribute");
c.def_static(
"get",
@@ -789,7 +789,7 @@ class PyStringAttribute : public PyConcreteAttribute<PyStringAttribute> {
mlirStringAttrGet(context->get(), toMlirStringRef(value));
return PyStringAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets a uniqued string attribute");
c.def_static(
"get_typed",
@@ -1030,13 +1030,12 @@ class PyDenseElementsAttribute
c.def("__len__", &PyDenseElementsAttribute::dunderLen)
.def_static("get", PyDenseElementsAttribute::getFromBuffer,
nb::arg("array"), nb::arg("signless") = true,
- nb::arg("type").none() = nb::none(),
- nb::arg("shape").none() = nb::none(),
- nb::arg("context").none() = nb::none(),
+ nb::arg("type") = nb::none(), nb::arg("shape") = nb::none(),
+ nb::arg("context") = nb::none(),
kDenseElementsAttrGetDocstring)
.def_static("get", PyDenseElementsAttribute::getFromList,
- nb::arg("attrs"), nb::arg("type").none() = nb::none(),
- nb::arg("context").none() = nb::none(),
+ nb::arg("attrs"), nb::arg("type") = nb::none(),
+ nb::arg("context") = nb::none(),
kDenseElementsAttrGetFromListDocstring)
.def_static("get_splat", PyDenseElementsAttribute::getSplat,
nb::arg("shaped_type"), nb::arg("element_attr"),
@@ -1505,12 +1504,12 @@ class PyDenseResourceElementsAttribute
}
static void bindDerived(ClassTy &c) {
- c.def_static(
- "get_from_buffer", PyDenseResourceElementsAttribute::getFromBuffer,
- nb::arg("array"), nb::arg("name"), nb::arg("type"),
- nb::arg("alignment").none() = nb::none(), nb::arg("is_mutable") = false,
- nb::arg("context").none() = nb::none(),
- kDenseResourceElementsAttrGetFromBufferDocstring);
+ c.def_static("get_from_buffer",
+ PyDenseResourceElementsAttribute::getFromBuffer,
+ nb::arg("array"), nb::arg("name"), nb::arg("type"),
+ nb::arg("alignment") = nb::none(),
+ nb::arg("is_mutable") = false, nb::arg("context") = nb::none(),
+ kDenseResourceElementsAttrGetFromBufferDocstring);
}
};
@@ -1550,7 +1549,7 @@ class PyDictAttribute : public PyConcreteAttribute<PyDictAttribute> {
mlirNamedAttributes.data());
return PyDictAttribute(context->getRef(), attr);
},
- nb::arg("value") = nb::dict(), nb::arg("context").none() = nb::none(),
+ nb::arg("value") = nb::dict(), nb::arg("context") = nb::none(),
"Gets an uniqued dict attribute");
c.def("__getitem__", [](PyDictAttribute &self, const std::string &name) {
MlirAttribute attr =
@@ -1622,7 +1621,7 @@ class PyTypeAttribute : public PyConcreteAttribute<PyTypeAttribute> {
MlirAttribute attr = mlirTypeAttrGet(value.get());
return PyTypeAttribute(context->getRef(), attr);
},
- nb::arg("value"), nb::arg("context").none() = nb::none(),
+ nb::arg("value"), nb::arg("context") = nb::none(),
"Gets a uniqued Type attribute");
c.def_prop_ro("value", [](PyTypeAttribute &self) {
return mlirTypeAttrGetValue(self.get());
@@ -1646,7 +1645,7 @@ class PyUnitAttribute : public PyConcreteAttribute<PyUnitAttribute> {
return PyUnitAttribute(context->getRef(),
mlirUnitAttrGet(context->get()));
},
- nb::arg("context").none() = nb::none(), "Create a Unit attribute.");
+ nb::arg("context") = nb::none(), "Create a Unit attribute.");
}
};
@@ -1669,8 +1668,7 @@ class PyStridedLayoutAttribute
ctx->get(), offset, strides.size(), strides.data());
return PyStridedLayoutAttribute(ctx->getRef(), attr);
},
- nb::arg("offset"), nb::arg("strides"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("offset"), nb::arg("strides"), nb::arg("context") = nb::none(),
"Gets a strided layout attribute.");
c.def_static(
"get_fully_dynamic",
@@ -1682,7 +1680,7 @@ class PyStridedLayoutAttribute
ctx->get(), dynamic, strides.size(), strides.data());
return PyStridedLayoutAttribute(ctx->getRef(), attr);
},
- nb::arg("rank"), nb::arg("context").none() = nb::none(),
+ nb::arg("rank"), nb::arg("context") = nb::none(),
"Gets a strided layout attribute with dynamic offset and strides of "
"a "
"given rank.");
diff --git a/mlir/lib/Bindings/Python/IRCore.cpp b/mlir/lib/Bindings/Python/IRCore.cpp
index ba00ef712084b..8273a9346e5dd 100644
--- a/mlir/lib/Bindings/Python/IRCore.cpp
+++ b/mlir/lib/Bindings/Python/IRCore.cpp
@@ -3104,7 +3104,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
return PyLocation(context->getRef(),
mlirLocationUnknownGet(context->get()));
},
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Gets a Location representing an unknown location")
.def_static(
"callsite",
@@ -3119,8 +3119,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
return PyLocation(context->getRef(),
mlirLocationCallSiteGet(callee.get(), caller));
},
- nb::arg("callee"), nb::arg("frames"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("callee"), nb::arg("frames"), nb::arg("context") = nb::none(),
kContextGetCallSiteLocationDocstring)
.def("is_a_callsite", mlirLocationIsACallSite)
.def_prop_ro("callee", mlirLocationCallSiteGetCallee)
@@ -3135,8 +3134,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
context->get(), toMlirStringRef(filename), line, col));
},
nb::arg("filename"), nb::arg("line"), nb::arg("col"),
- nb::arg("context").none() = nb::none(),
- kContextGetFileLocationDocstring)
+ nb::arg("context") = nb::none(), kContextGetFileLocationDocstring)
.def_static(
"file",
[](std::string filename, int startLine, int startCol, int endLine,
@@ -3148,7 +3146,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
},
nb::arg("filename"), nb::arg("start_line"), nb::arg("start_col"),
nb::arg("end_line"), nb::arg("end_col"),
- nb::arg("context").none() = nb::none(), kContextGetFileRangeDocstring)
+ nb::arg("context") = nb::none(), kContextGetFileRangeDocstring)
.def("is_a_file", mlirLocationIsAFileLineColRange)
.def_prop_ro("filename",
[](MlirLocation loc) {
@@ -3173,9 +3171,8 @@ void mlir::python::populateIRCore(nb::module_ &m) {
metadata ? metadata->get() : MlirAttribute{0});
return PyLocation(context->getRef(), location);
},
- nb::arg("locations"), nb::arg("metadata").none() = nb::none(),
- nb::arg("context").none() = nb::none(),
- kContextGetFusedLocationDocstring)
+ nb::arg("locations"), nb::arg("metadata") = nb::none(),
+ nb::arg("context") = nb::none(), kContextGetFusedLocationDocstring)
.def("is_a_fused", mlirLocationIsAFused)
.def_prop_ro("locations",
[](MlirLocation loc) {
@@ -3197,9 +3194,8 @@ void mlir::python::populateIRCore(nb::module_ &m) {
childLoc ? childLoc->get()
: mlirLocationUnknownGet(context->get())));
},
- nb::arg("name"), nb::arg("childLoc").none() = nb::none(),
- nb::arg("context").none() = nb::none(),
- kContextGetNameLocationDocString)
+ nb::arg("name"), nb::arg("childLoc") = nb::none(),
+ nb::arg("context") = nb::none(), kContextGetNameLocationDocString)
.def("is_a_name", mlirLocationIsAName)
.def_prop_ro("name_str",
[](MlirLocation loc) {
@@ -3212,7 +3208,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
return PyLocation(context->getRef(),
mlirLocationFromAttribute(attribute));
},
- nb::arg("attribute"), nb::arg("context").none() = nb::none(),
+ nb::arg("attribute"), nb::arg("context") = nb::none(),
"Gets a Location from a LocationAttr")
.def_prop_ro(
"context",
@@ -3253,7 +3249,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
throw MLIRError("Unable to parse module assembly", errors.take());
return PyModule::forModule(module).releaseObject();
},
- nb::arg("asm"), nb::arg("context").none() = nb::none(),
+ nb::arg("asm"), nb::arg("context") = nb::none(),
kModuleParseDocstring)
.def_static(
"parse",
@@ -3265,7 +3261,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
throw MLIRError("Unable to parse module assembly", errors.take());
return PyModule::forModule(module).releaseObject();
},
- nb::arg("asm"), nb::arg("context").none() = nb::none(),
+ nb::arg("asm"), nb::arg("context") = nb::none(),
kModuleParseDocstring)
.def_static(
"parseFile",
@@ -3277,7 +3273,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
throw MLIRError("Unable to parse module assembly", errors.take());
return PyModule::forModule(module).releaseObject();
},
- nb::arg("path"), nb::arg("context").none() = nb::none(),
+ nb::arg("path"), nb::arg("context") = nb::none(),
kModuleParseDocstring)
.def_static(
"create",
@@ -3286,7 +3282,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
MlirModule module = mlirModuleCreateEmpty(pyLoc.get());
return PyModule::forModule(module).releaseObject();
},
- nb::arg("loc").none() = nb::none(), "Creates an empty module")
+ nb::arg("loc") = nb::none(), "Creates an empty module")
.def_prop_ro(
"context",
[](PyModule &self) { return self.getContext().getObject(); },
@@ -3427,31 +3423,31 @@ void mlir::python::populateIRCore(nb::module_ &m) {
.def("print",
nb::overload_cast<PyAsmState &, nb::object, bool>(
&PyOperationBase::print),
- nb::arg("state"), nb::arg("file").none() = nb::none(),
+ nb::arg("state"), nb::arg("file") = nb::none(),
nb::arg("binary") = false, kOperationPrintStateDocstring)
.def("print",
nb::overload_cast<std::optional<int64_t>, std::optional<int64_t>,
bool, bool, bool, bool, bool, bool, nb::object,
bool, bool>(&PyOperationBase::print),
// Careful: Lots of arguments must match up with print method.
- nb::arg("large_elements_limit").none() = nb::none(),
- nb::arg("large_resource_limit").none() = nb::none(),
+ nb::arg("large_elements_limit") = nb::none(),
+ nb::arg("large_resource_limit") = nb::none(),
nb::arg("enable_debug_info") = false,
nb::arg("pretty_debug_info") = false,
nb::arg("print_generic_op_form") = false,
nb::arg("use_local_scope") = false,
nb::arg("use_name_loc_as_prefix") = false,
- nb::arg("assume_verified") = false,
- nb::arg("file").none() = nb::none(), nb::arg("binary") = false,
- nb::arg("skip_regions") = false, kOperationPrintDocstring)
+ nb::arg("assume_verified") = false, nb::arg("file") = nb::none(),
+ nb::arg("binary") = false, nb::arg("skip_regions") = false,
+ kOperationPrintDocstring)
.def("write_bytecode", &PyOperationBase::writeBytecode, nb::arg("file"),
- nb::arg("desired_version").none() = nb::none(),
+ nb::arg("desired_version") = nb::none(),
kOperationPrintBytecodeDocstring)
.def("get_asm", &PyOperationBase::getAsm,
// Careful: Lots of arguments must match up with get_asm method.
nb::arg("binary") = false,
- nb::arg("large_elements_limit").none() = nb::none(),
- nb::arg("large_resource_limit").none() = nb::none(),
+ nb::arg("large_elements_limit") = nb::none(),
+ nb::arg("large_resource_limit") = nb::none(),
nb::arg("enable_debug_info") = false,
nb::arg("pretty_debug_info") = false,
nb::arg("print_generic_op_form") = false,
@@ -3480,7 +3476,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
[](PyOperationBase &self, nb::object ip) {
return self.getOperation().clone(ip);
},
- nb::arg("ip").none() = nb::none())
+ nb::arg("ip") = nb::none())
.def(
"detach_from_parent",
[](PyOperationBase &self) {
@@ -3531,11 +3527,10 @@ void mlir::python::populateIRCore(nb::module_ &m) {
successors, regions, pyLoc, maybeIp,
inferType);
},
- nb::arg("name"), nb::arg("results").none() = nb::none(),
- nb::arg("operands").none() = nb::none(),
- nb::arg("attributes").none() = nb::none(),
- nb::arg("successors").none() = nb::none(), nb::arg("regions") = 0,
- nb::arg("loc").none() = nb::none(), nb::arg("ip").none() = nb::none(),
+ nb::arg("name"), nb::arg("results") = nb::none(),
+ nb::arg("operands") = nb::none(), nb::arg("attributes") = nb::none(),
+ nb::arg("successors") = nb::none(), nb::arg("regions") = 0,
+ nb::arg("loc") = nb::none(), nb::arg("ip") = nb::none(),
nb::arg("infer_type") = false, kOperationCreateDocstring)
.def_static(
"parse",
@@ -3545,7 +3540,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
->createOpView();
},
nb::arg("source"), nb::kw_only(), nb::arg("source_name") = "",
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Parses an operation. Supports both text assembly format and binary "
"bytecode format.")
.def_prop_ro(MLIR_PYTHON_CAPI_PTR_ATTR, &PyOperation::getCapsule)
@@ -3584,15 +3579,13 @@ void mlir::python::populateIRCore(nb::module_ &m) {
attributes, successors, regions, pyLoc, maybeIp));
},
nb::arg("name"), nb::arg("opRegionSpec"),
- nb::arg("operandSegmentSpecObj").none() = nb::none(),
- nb::arg("resultSegmentSpecObj").none() = nb::none(),
- nb::arg("results").none() = nb::none(),
- nb::arg("operands").none() = nb::none(),
- nb::arg("attributes").none() = nb::none(),
- nb::arg("successors").none() = nb::none(),
- nb::arg("regions").none() = nb::none(),
- nb::arg("loc").none() = nb::none(),
- nb::arg("ip").none() = nb::none())
+ nb::arg("operandSegmentSpecObj") = nb::none(),
+ nb::arg("resultSegmentSpecObj") = nb::none(),
+ nb::arg("results") = nb::none(), nb::arg("operands") = nb::none(),
+ nb::arg("attributes") = nb::none(),
+ nb::arg("successors") = nb::none(),
+ nb::arg("regions") = nb::none(), nb::arg("loc") = nb::none(),
+ nb::arg("ip") = nb::none())
.def_prop_ro("operation", &PyOpView::getOperationObject)
.def_prop_ro("opview", [](nb::object self) { return self; })
@@ -3632,12 +3625,10 @@ void mlir::python::populateIRCore(nb::module_ &m) {
operandList, attributes, successors,
regions, pyLoc, maybeIp);
},
- nb::arg("cls"), nb::arg("results").none() = nb::none(),
- nb::arg("operands").none() = nb::none(),
- nb::arg("attributes").none() = nb::none(),
- nb::arg("successors").none() = nb::none(),
- nb::arg("regions").none() = nb::none(),
- nb::arg("loc").none() = nb::none(), nb::arg("ip").none() = nb::none(),
+ nb::arg("cls"), nb::arg("results") = nb::none(),
+ nb::arg("operands") = nb::none(), nb::arg("attributes") = nb::none(),
+ nb::arg("successors") = nb::none(), nb::arg("regions") = nb::none(),
+ nb::arg("loc") = nb::none(), nb::arg("ip") = nb::none(),
"Builds a specific, generated OpView based on class level attributes.");
opViewClass.attr("parse") = classmethod(
[](const nb::object &cls, const std::string &sourceStr,
@@ -3661,7 +3652,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
return PyOpView::constructDerived(cls, parsed.getObject());
},
nb::arg("cls"), nb::arg("source"), nb::kw_only(),
- nb::arg("source_name") = "", nb::arg("context").none() = nb::none(),
+ nb::arg("source_name") = "", nb::arg("context") = nb::none(),
"Parses a specific, generated OpView based on class level attributes");
//----------------------------------------------------------------------------
@@ -3911,7 +3902,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
throw MLIRError("Unable to parse attribute", errors.take());
return attr;
},
- nb::arg("asm"), nb::arg("context").none() = nb::none(),
+ nb::arg("asm"), nb::arg("context") = nb::none(),
"Parses an attribute from an assembly form. Raises an MLIRError on "
"failure.")
.def_prop_ro(
@@ -4028,7 +4019,7 @@ void mlir::python::populateIRCore(nb::module_ &m) {
throw MLIRError("Unable to parse type", errors.take());
return type;
},
- nb::arg("asm"), nb::arg("context").none() = nb::none(),
+ nb::arg("asm"), nb::arg("context") = nb::none(),
kContextParseTypeDocstring)
.def_prop_ro(
"context", [](PyType &self) { return self.getContext().getObject(); },
diff --git a/mlir/lib/Bindings/Python/IRInterfaces.cpp b/mlir/lib/Bindings/Python/IRInterfaces.cpp
index 9e1fedaab5235..6aa057c2a78aa 100644
--- a/mlir/lib/Bindings/Python/IRInterfaces.cpp
+++ b/mlir/lib/Bindings/Python/IRInterfaces.cpp
@@ -195,7 +195,7 @@ class PyConcreteOpInterface {
static void bind(nb::module_ &m) {
nb::class_<ConcreteIface> cls(m, ConcreteIface::pyClassName);
cls.def(nb::init<nb::object, DefaultingPyMlirContext>(), nb::arg("object"),
- nb::arg("context").none() = nb::none(), constructorDoc)
+ nb::arg("context") = nb::none(), constructorDoc)
.def_prop_ro("operation", &PyConcreteOpInterface::getOperationObject,
operationDoc)
.def_prop_ro("opview", &PyConcreteOpInterface::getOpView, opviewDoc);
@@ -303,12 +303,11 @@ class PyInferTypeOpInterface
static void bindDerived(ClassTy &cls) {
cls.def("inferReturnTypes", &PyInferTypeOpInterface::inferReturnTypes,
- nb::arg("operands").none() = nb::none(),
- nb::arg("attributes").none() = nb::none(),
- nb::arg("properties").none() = nb::none(),
- nb::arg("regions").none() = nb::none(),
- nb::arg("context").none() = nb::none(),
- nb::arg("loc").none() = nb::none(), inferReturnTypesDoc);
+ nb::arg("operands") = nb::none(),
+ nb::arg("attributes") = nb::none(),
+ nb::arg("properties") = nb::none(), nb::arg("regions") = nb::none(),
+ nb::arg("context") = nb::none(), nb::arg("loc") = nb::none(),
+ inferReturnTypesDoc);
}
};
@@ -463,12 +462,10 @@ class PyInferShapedTypeOpInterface
static void bindDerived(ClassTy &cls) {
cls.def("inferReturnTypeComponents",
&PyInferShapedTypeOpInterface::inferReturnTypeComponents,
- nb::arg("operands").none() = nb::none(),
- nb::arg("attributes").none() = nb::none(),
- nb::arg("regions").none() = nb::none(),
- nb::arg("properties").none() = nb::none(),
- nb::arg("context").none() = nb::none(),
- nb::arg("loc").none() = nb::none(), inferReturnTypeComponentsDoc);
+ nb::arg("operands") = nb::none(),
+ nb::arg("attributes") = nb::none(), nb::arg("regions") = nb::none(),
+ nb::arg("properties") = nb::none(), nb::arg("context") = nb::none(),
+ nb::arg("loc") = nb::none(), inferReturnTypeComponentsDoc);
}
};
diff --git a/mlir/lib/Bindings/Python/IRTypes.cpp b/mlir/lib/Bindings/Python/IRTypes.cpp
index a9b12590188f8..745b9c48c5165 100644
--- a/mlir/lib/Bindings/Python/IRTypes.cpp
+++ b/mlir/lib/Bindings/Python/IRTypes.cpp
@@ -49,7 +49,7 @@ class PyIntegerType : public PyConcreteType<PyIntegerType> {
MlirType t = mlirIntegerTypeGet(context->get(), width);
return PyIntegerType(context->getRef(), t);
},
- nb::arg("width"), nb::arg("context").none() = nb::none(),
+ nb::arg("width"), nb::arg("context") = nb::none(),
"Create a signless integer type");
c.def_static(
"get_signed",
@@ -57,7 +57,7 @@ class PyIntegerType : public PyConcreteType<PyIntegerType> {
MlirType t = mlirIntegerTypeSignedGet(context->get(), width);
return PyIntegerType(context->getRef(), t);
},
- nb::arg("width"), nb::arg("context").none() = nb::none(),
+ nb::arg("width"), nb::arg("context") = nb::none(),
"Create a signed integer type");
c.def_static(
"get_unsigned",
@@ -65,7 +65,7 @@ class PyIntegerType : public PyConcreteType<PyIntegerType> {
MlirType t = mlirIntegerTypeUnsignedGet(context->get(), width);
return PyIntegerType(context->getRef(), t);
},
- nb::arg("width"), nb::arg("context").none() = nb::none(),
+ nb::arg("width"), nb::arg("context") = nb::none(),
"Create an unsigned integer type");
c.def_prop_ro(
"width",
@@ -108,7 +108,7 @@ class PyIndexType : public PyConcreteType<PyIndexType> {
MlirType t = mlirIndexTypeGet(context->get());
return PyIndexType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a index type.");
+ nb::arg("context") = nb::none(), "Create a index type.");
}
};
@@ -142,7 +142,7 @@ class PyFloat4E2M1FNType
MlirType t = mlirFloat4E2M1FNTypeGet(context->get());
return PyFloat4E2M1FNType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float4_e2m1fn type.");
+ nb::arg("context") = nb::none(), "Create a float4_e2m1fn type.");
}
};
@@ -163,7 +163,7 @@ class PyFloat6E2M3FNType
MlirType t = mlirFloat6E2M3FNTypeGet(context->get());
return PyFloat6E2M3FNType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float6_e2m3fn type.");
+ nb::arg("context") = nb::none(), "Create a float6_e2m3fn type.");
}
};
@@ -184,7 +184,7 @@ class PyFloat6E3M2FNType
MlirType t = mlirFloat6E3M2FNTypeGet(context->get());
return PyFloat6E3M2FNType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float6_e3m2fn type.");
+ nb::arg("context") = nb::none(), "Create a float6_e3m2fn type.");
}
};
@@ -205,7 +205,7 @@ class PyFloat8E4M3FNType
MlirType t = mlirFloat8E4M3FNTypeGet(context->get());
return PyFloat8E4M3FNType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float8_e4m3fn type.");
+ nb::arg("context") = nb::none(), "Create a float8_e4m3fn type.");
}
};
@@ -225,7 +225,7 @@ class PyFloat8E5M2Type : public PyConcreteType<PyFloat8E5M2Type, PyFloatType> {
MlirType t = mlirFloat8E5M2TypeGet(context->get());
return PyFloat8E5M2Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float8_e5m2 type.");
+ nb::arg("context") = nb::none(), "Create a float8_e5m2 type.");
}
};
@@ -245,7 +245,7 @@ class PyFloat8E4M3Type : public PyConcreteType<PyFloat8E4M3Type, PyFloatType> {
MlirType t = mlirFloat8E4M3TypeGet(context->get());
return PyFloat8E4M3Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float8_e4m3 type.");
+ nb::arg("context") = nb::none(), "Create a float8_e4m3 type.");
}
};
@@ -266,8 +266,7 @@ class PyFloat8E4M3FNUZType
MlirType t = mlirFloat8E4M3FNUZTypeGet(context->get());
return PyFloat8E4M3FNUZType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(),
- "Create a float8_e4m3fnuz type.");
+ nb::arg("context") = nb::none(), "Create a float8_e4m3fnuz type.");
}
};
@@ -288,8 +287,7 @@ class PyFloat8E4M3B11FNUZType
MlirType t = mlirFloat8E4M3B11FNUZTypeGet(context->get());
return PyFloat8E4M3B11FNUZType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(),
- "Create a float8_e4m3b11fnuz type.");
+ nb::arg("context") = nb::none(), "Create a float8_e4m3b11fnuz type.");
}
};
@@ -310,8 +308,7 @@ class PyFloat8E5M2FNUZType
MlirType t = mlirFloat8E5M2FNUZTypeGet(context->get());
return PyFloat8E5M2FNUZType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(),
- "Create a float8_e5m2fnuz type.");
+ nb::arg("context") = nb::none(), "Create a float8_e5m2fnuz type.");
}
};
@@ -331,7 +328,7 @@ class PyFloat8E3M4Type : public PyConcreteType<PyFloat8E3M4Type, PyFloatType> {
MlirType t = mlirFloat8E3M4TypeGet(context->get());
return PyFloat8E3M4Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a float8_e3m4 type.");
+ nb::arg("context") = nb::none(), "Create a float8_e3m4 type.");
}
};
@@ -352,8 +349,7 @@ class PyFloat8E8M0FNUType
MlirType t = mlirFloat8E8M0FNUTypeGet(context->get());
return PyFloat8E8M0FNUType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(),
- "Create a float8_e8m0fnu type.");
+ nb::arg("context") = nb::none(), "Create a float8_e8m0fnu type.");
}
};
@@ -373,7 +369,7 @@ class PyBF16Type : public PyConcreteType<PyBF16Type, PyFloatType> {
MlirType t = mlirBF16TypeGet(context->get());
return PyBF16Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a bf16 type.");
+ nb::arg("context") = nb::none(), "Create a bf16 type.");
}
};
@@ -393,7 +389,7 @@ class PyF16Type : public PyConcreteType<PyF16Type, PyFloatType> {
MlirType t = mlirF16TypeGet(context->get());
return PyF16Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a f16 type.");
+ nb::arg("context") = nb::none(), "Create a f16 type.");
}
};
@@ -413,7 +409,7 @@ class PyTF32Type : public PyConcreteType<PyTF32Type, PyFloatType> {
MlirType t = mlirTF32TypeGet(context->get());
return PyTF32Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a tf32 type.");
+ nb::arg("context") = nb::none(), "Create a tf32 type.");
}
};
@@ -433,7 +429,7 @@ class PyF32Type : public PyConcreteType<PyF32Type, PyFloatType> {
MlirType t = mlirF32TypeGet(context->get());
return PyF32Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a f32 type.");
+ nb::arg("context") = nb::none(), "Create a f32 type.");
}
};
@@ -453,7 +449,7 @@ class PyF64Type : public PyConcreteType<PyF64Type, PyFloatType> {
MlirType t = mlirF64TypeGet(context->get());
return PyF64Type(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a f64 type.");
+ nb::arg("context") = nb::none(), "Create a f64 type.");
}
};
@@ -473,7 +469,7 @@ class PyNoneType : public PyConcreteType<PyNoneType> {
MlirType t = mlirNoneTypeGet(context->get());
return PyNoneType(context->getRef(), t);
},
- nb::arg("context").none() = nb::none(), "Create a none type.");
+ nb::arg("context") = nb::none(), "Create a none type.");
}
};
@@ -639,9 +635,9 @@ class PyVectorType : public PyConcreteType<PyVectorType, PyShapedType> {
static void bindDerived(ClassTy &c) {
c.def_static("get", &PyVectorType::get, nb::arg("shape"),
nb::arg("element_type"), nb::kw_only(),
- nb::arg("scalable").none() = nb::none(),
- nb::arg("scalable_dims").none() = nb::none(),
- nb::arg("loc").none() = nb::none(), "Create a vector type")
+ nb::arg("scalable") = nb::none(),
+ nb::arg("scalable_dims") = nb::none(),
+ nb::arg("loc") = nb::none(), "Create a vector type")
.def_prop_ro(
"scalable",
[](MlirType self) { return mlirVectorTypeIsScalable(self); })
@@ -720,8 +716,8 @@ class PyRankedTensorType
return PyRankedTensorType(elementType.getContext(), t);
},
nb::arg("shape"), nb::arg("element_type"),
- nb::arg("encoding").none() = nb::none(),
- nb::arg("loc").none() = nb::none(), "Create a ranked tensor type");
+ nb::arg("encoding") = nb::none(), nb::arg("loc") = nb::none(),
+ "Create a ranked tensor type");
c.def_prop_ro("encoding",
[](PyRankedTensorType &self) -> std::optional<MlirAttribute> {
MlirAttribute encoding =
@@ -753,7 +749,7 @@ class PyUnrankedTensorType
throw MLIRError("Invalid type", errors.take());
return PyUnrankedTensorType(elementType.getContext(), t);
},
- nb::arg("element_type"), nb::arg("loc").none() = nb::none(),
+ nb::arg("element_type"), nb::arg("loc") = nb::none(),
"Create a unranked tensor type");
}
};
@@ -785,9 +781,8 @@ class PyMemRefType : public PyConcreteType<PyMemRefType, PyShapedType> {
return PyMemRefType(elementType.getContext(), t);
},
nb::arg("shape"), nb::arg("element_type"),
- nb::arg("layout").none() = nb::none(),
- nb::arg("memory_space").none() = nb::none(),
- nb::arg("loc").none() = nb::none(), "Create a memref type")
+ nb::arg("layout") = nb::none(), nb::arg("memory_space") = nb::none(),
+ nb::arg("loc") = nb::none(), "Create a memref type")
.def_prop_ro(
"layout",
[](PyMemRefType &self) -> MlirAttribute {
@@ -852,7 +847,7 @@ class PyUnrankedMemRefType
return PyUnrankedMemRefType(elementType.getContext(), t);
},
nb::arg("element_type"), nb::arg("memory_space").none(),
- nb::arg("loc").none() = nb::none(), "Create a unranked memref type")
+ nb::arg("loc") = nb::none(), "Create a unranked memref type")
.def_prop_ro(
"memory_space",
[](PyUnrankedMemRefType &self) -> std::optional<MlirAttribute> {
@@ -882,7 +877,7 @@ class PyTupleType : public PyConcreteType<PyTupleType> {
elements.data());
return PyTupleType(context->getRef(), t);
},
- nb::arg("elements"), nb::arg("context").none() = nb::none(),
+ nb::arg("elements"), nb::arg("context") = nb::none(),
"Create a tuple type");
c.def(
"get_type",
@@ -918,8 +913,7 @@ class PyFunctionType : public PyConcreteType<PyFunctionType> {
results.size(), results.data());
return PyFunctionType(context->getRef(), t);
},
- nb::arg("inputs"), nb::arg("results"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("inputs"), nb::arg("results"), nb::arg("context") = nb::none(),
"Gets a FunctionType from a list of input and result types");
c.def_prop_ro(
"inputs",
@@ -971,7 +965,7 @@ class PyOpaqueType : public PyConcreteType<PyOpaqueType> {
return PyOpaqueType(context->getRef(), type);
},
nb::arg("dialect_namespace"), nb::arg("buffer"),
- nb::arg("context").none() = nb::none(),
+ nb::arg("context") = nb::none(),
"Create an unregistered (opaque) dialect type.");
c.def_prop_ro(
"dialect_namespace",
diff --git a/mlir/lib/Bindings/Python/Pass.cpp b/mlir/lib/Bindings/Python/Pass.cpp
index 88e28dca76bb9..72bf8ed8f856f 100644
--- a/mlir/lib/Bindings/Python/Pass.cpp
+++ b/mlir/lib/Bindings/Python/Pass.cpp
@@ -67,7 +67,7 @@ void mlir::python::populatePassManagerSubmodule(nb::module_ &m) {
mlirStringRefCreate(anchorOp.data(), anchorOp.size()));
new (&self) PyPassManager(passManager);
},
- "anchor_op"_a = nb::str("any"), "context"_a.none() = nb::none(),
+ "anchor_op"_a = nb::str("any"), "context"_a = nb::none(),
"Create a new PassManager for the current (or provided) Context.")
.def_prop_ro(MLIR_PYTHON_CAPI_PTR_ATTR, &PyPassManager::getCapsule)
.def(MLIR_PYTHON_CAPI_FACTORY_ATTR, &PyPassManager::createFromCapsule)
@@ -109,10 +109,10 @@ void mlir::python::populatePassManagerSubmodule(nb::module_ &m) {
"print_before_all"_a = false, "print_after_all"_a = true,
"print_module_scope"_a = false, "print_after_change"_a = false,
"print_after_failure"_a = false,
- "large_elements_limit"_a.none() = nb::none(),
- "large_resource_limit"_a.none() = nb::none(),
- "enable_debug_info"_a = false, "print_generic_op_form"_a = false,
- "tree_printing_dir_path"_a.none() = nb::none(),
+ "large_elements_limit"_a = nb::none(),
+ "large_resource_limit"_a = nb::none(), "enable_debug_info"_a = false,
+ "print_generic_op_form"_a = false,
+ "tree_printing_dir_path"_a = nb::none(),
"Enable IR printing, default as mlir-print-ir-after-all.")
.def(
"enable_verifier",
@@ -139,7 +139,7 @@ void mlir::python::populatePassManagerSubmodule(nb::module_ &m) {
throw nb::value_error(errorMsg.join().c_str());
return new PyPassManager(passManager);
},
- "pipeline"_a, "context"_a.none() = nb::none(),
+ "pipeline"_a, "context"_a = nb::none(),
"Parse a textual pass-pipeline and return a top-level PassManager "
"that can be applied on a Module. Throw a ValueError if the pipeline "
"can't be parsed")
More information about the Mlir-commits
mailing list