[Mlir-commits] [mlir] [mlir][Python] Drop Python <=3.9 compatibility patch (PR #183416)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Feb 25 15:50:15 PST 2026
https://github.com/RattataKing created https://github.com/llvm/llvm-project/pull/183416
According to PR #163499, minimum Python version for mlir-py is now 3.10, we no longer need patches for py<=3.9
>From 567975b832ba0fbffae271a3ee0750fa72f67550 Mon Sep 17 00:00:00 2001
From: Amily Wu <amilywu2 at amd.com>
Date: Wed, 25 Feb 2026 23:34:05 +0000
Subject: [PATCH] Clean py3.9 branch
---
mlir/lib/Bindings/Python/IRAttributes.cpp | 10 ----------
mlir/lib/Bindings/Python/IRCore.cpp | 24 -----------------------
2 files changed, 34 deletions(-)
diff --git a/mlir/lib/Bindings/Python/IRAttributes.cpp b/mlir/lib/Bindings/Python/IRAttributes.cpp
index 50eb336c9201c..32ff7a72cc298 100644
--- a/mlir/lib/Bindings/Python/IRAttributes.cpp
+++ b/mlir/lib/Bindings/Python/IRAttributes.cpp
@@ -774,12 +774,6 @@ std::unique_ptr<nb_buffer_info> PyDenseElementsAttribute::accessBuffer() {
}
void PyDenseElementsAttribute::bindDerived(ClassTy &c) {
-#if PY_VERSION_HEX < 0x03090000
- PyTypeObject *tp = reinterpret_cast<PyTypeObject *>(c.ptr());
- tp->tp_as_buffer->bf_getbuffer = PyDenseElementsAttribute::bf_getbuffer;
- tp->tp_as_buffer->bf_releasebuffer =
- PyDenseElementsAttribute::bf_releasebuffer;
-#endif
c.def("__len__", &PyDenseElementsAttribute::dunderLen)
.def_static(
"get", PyDenseElementsAttribute::getFromBuffer, nb::arg("array"),
@@ -931,14 +925,10 @@ MlirAttribute PyDenseElementsAttribute::getAttributeFromBuffer(
}
PyType_Slot PyDenseElementsAttribute::slots[] = {
-// Python 3.8 doesn't allow setting the buffer protocol slots from a type spec.
-#if PY_VERSION_HEX >= 0x03090000
{Py_bf_getbuffer,
reinterpret_cast<void *>(PyDenseElementsAttribute::bf_getbuffer)},
{Py_bf_releasebuffer,
reinterpret_cast<void *>(PyDenseElementsAttribute::bf_releasebuffer)},
-#endif
- {0, nullptr},
};
/*static*/ int PyDenseElementsAttribute::bf_getbuffer(PyObject *obj,
diff --git a/mlir/lib/Bindings/Python/IRCore.cpp b/mlir/lib/Bindings/Python/IRCore.cpp
index 283f463bd3b98..88d890f36b811 100644
--- a/mlir/lib/Bindings/Python/IRCore.cpp
+++ b/mlir/lib/Bindings/Python/IRCore.cpp
@@ -2714,30 +2714,6 @@ namespace {
#endif // Python 3.10.0a3
-// Python 3.9.0b1
-#if PY_VERSION_HEX < 0x030900B1 && !defined(PYPY_VERSION)
-
-// bpo-40429 added PyThreadState_GetFrame()
-PyFrameObject *PyThreadState_GetFrame(PyThreadState *tstate) {
- assert(tstate != _Py_NULL && "expected tstate != _Py_NULL");
- return _Py_CAST(PyFrameObject *, Py_XNewRef(tstate->frame));
-}
-
-// bpo-40421 added PyFrame_GetBack()
-PyFrameObject *PyFrame_GetBack(PyFrameObject *frame) {
- assert(frame != _Py_NULL && "expected frame != _Py_NULL");
- return _Py_CAST(PyFrameObject *, Py_XNewRef(frame->f_back));
-}
-
-// bpo-40421 added PyFrame_GetCode()
-PyCodeObject *PyFrame_GetCode(PyFrameObject *frame) {
- assert(frame != _Py_NULL && "expected frame != _Py_NULL");
- assert(frame->f_code != _Py_NULL && "expected frame->f_code != _Py_NULL");
- return _Py_CAST(PyCodeObject *, Py_NewRef(frame->f_code));
-}
-
-#endif // Python 3.9.0b1
-
using namespace mlir::python::MLIR_BINDINGS_PYTHON_DOMAIN;
MlirLocation tracebackToLocation(MlirContext ctx) {
More information about the Mlir-commits
mailing list