[HAL] Add missing bufferUsage for Mapping in tryAddSharedUsageBits (#24549)

- Map persistently to support sharing via export/import.
- Persistent mapping in turn requires host-visible memory.

Signed-off-by: Tobias Fuchs <fuchs@roofline.ai>
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Transforms/ResolveTopologyQueries.cpp b/compiler/src/iree/compiler/Dialect/HAL/Transforms/ResolveTopologyQueries.cpp
index 7ce5422..b1d3647 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/Transforms/ResolveTopologyQueries.cpp
+++ b/compiler/src/iree/compiler/Dialect/HAL/Transforms/ResolveTopologyQueries.cpp
@@ -132,6 +132,12 @@
   for (auto affinity : optimalAttr.getAffinities()) {
     if (hasTransparentAccessToAll(topology, affinity, optimalAttr)) {
       bufferUsage = bufferUsage | IREE::HAL::BufferUsageBitfield::Mapping;
+      // This buffer is shared across devices. Map persistently to
+      // support sharing via export/import.
+      // Persistent mapping in turn requires host-visible memory.
+      bufferUsage =
+          bufferUsage | IREE::HAL::BufferUsageBitfield::MappingPersistent;
+      memoryTypes = memoryTypes | IREE::HAL::MemoryTypeBitfield::HostVisible;
       return true;
     }
   }