[Mlir-commits] [mlir] [MLIR][CAPI][Python] Add support for constructing memory effect instances (PR #210586)

Maksim Levental llvmlistbot at llvm.org
Sun Jul 19 11:27:19 PDT 2026


================
@@ -474,9 +538,46 @@ void populateIRInterfaces(nb::module_ &m) {
       .value("Speculatable", MlirSpeculatabilitySpeculatable)
       .value("RecursivelySpeculatable",
              MlirSpeculatabilityRecursivelySpeculatable);
-  auto memoryEffectsInstanceListClass =
-      nb::class_<PyMemoryEffectsInstanceList>(m, "MemoryEffectInstancesList");
-  (void)memoryEffectsInstanceListClass;
+  nb::class_<PyMemoryEffect>(m, "MemoryEffect", "A memory effect.")
+      .def_prop_ro_static("allocate",
+                          [](nb::object & /*class*/) {
+                            return PyMemoryEffect(
+                                mlirMemoryEffectsAllocateGet());
+                          })
+      .def_prop_ro_static("free",
+                          [](nb::object & /*class*/) {
+                            return PyMemoryEffect(mlirMemoryEffectsFreeGet());
+                          })
+      .def_prop_ro_static("read",
+                          [](nb::object & /*class*/) {
+                            return PyMemoryEffect(mlirMemoryEffectsReadGet());
+                          })
+      .def_prop_ro_static("write", [](nb::object & /*class*/) {
+        return PyMemoryEffect(mlirMemoryEffectsWriteGet());
----------------
makslevental wrote:

I feel like these should be capitalized to signal you're creating an object;


```suggestion
      .def_prop_ro_static("Allocate",
                          [](nb::object & /*class*/) {
                            return PyMemoryEffect(
                                mlirMemoryEffectsAllocateGet());
                          })
      .def_prop_ro_static("Free",
                          [](nb::object & /*class*/) {
                            return PyMemoryEffect(mlirMemoryEffectsFreeGet());
                          })
      .def_prop_ro_static("Read",
                          [](nb::object & /*class*/) {
                            return PyMemoryEffect(mlirMemoryEffectsReadGet());
                          })
      .def_prop_ro_static("Write", [](nb::object & /*class*/) {
        return PyMemoryEffect(mlirMemoryEffectsWriteGet());
```

https://github.com/llvm/llvm-project/pull/210586


More information about the Mlir-commits mailing list