[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