Adding alignment to vm.buffer.alloc and vm.buffer.clone.
iree_vm_buffer_clone isn't as efficient today as there's no way to
allocate uninitialized aligned memory but that's ok because we don't
yet emit that call anyway.
Fixes #9165.
diff --git a/runtime/bindings/python/vm.cc b/runtime/bindings/python/vm.cc
index b550ce4..3e32df9 100644
--- a/runtime/bindings/python/vm.cc
+++ b/runtime/bindings/python/vm.cc
@@ -532,19 +532,21 @@
iree_vm_buffer_retain_ref, iree_vm_buffer_deref,
iree_vm_buffer_isa);
vm_buffer
- .def(py::init([](iree_host_size_t length, bool is_mutable) {
+ .def(py::init([](iree_host_size_t length, iree_host_size_t alignment,
+ bool is_mutable) {
iree_vm_buffer_access_t access = 0;
if (is_mutable) {
access |= IREE_VM_BUFFER_ACCESS_MUTABLE;
}
iree_vm_buffer_t* raw_buffer;
CheckApiStatus(
- iree_vm_buffer_create(access, length, iree_allocator_system(),
- &raw_buffer),
+ iree_vm_buffer_create(access, length, alignment,
+ iree_allocator_system(), &raw_buffer),
"Error creating buffer");
return VmBuffer::StealFromRawPtr(raw_buffer);
}),
- py::arg("length"), py::arg("mutable") = true)
+ py::arg("length"), py::arg("alignment") = 0,
+ py::arg("mutable") = true)
.def_buffer([](VmBuffer& self) -> py::buffer_info {
return py::buffer_info(
/*ptr=*/self.raw_ptr()->data.data,