tree 6fe0e48e2738ffa7ea219c4d38fe93ecae6a5916
parent a1b922ff46551fedae1c171e9ac3918f50005d31
author Pooja Hemashekar <hemashekar@roofline.ai> 1787907152 +0200
committer GitHub <noreply@github.com> 1787907152 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJqkUxQCRC1aQ7uu5UhlAAAXzUQADmvZX1YOzTw0SpeD48gtHha
 3ytPpbzB04z9L0EgAHHVdhZtEDsZLavuBQlztbZ5ZYBWOf8IhVjH1G/uHP/NlTjK
 fBAa8TOm7u84aJCUwB54Hsxb/++GAzg3yB7xervZM4rwjPRlYPH1aRaGKqaTEcgx
 QNJDqG4VMA/VjdofyVMjIo6EiTyp5TQ43DUELdrkSM1GJIUEFII79qG44U506XTR
 LK/en62FAHhKDT3h5Azv2IAKnW71GI9lBF14lFFpda1s+POIO78PveWg6KrR1xDt
 49gXxGWvU6kYJ680ODvMuUH8qtjkSL3R7drNfwkpF6XH7unduOZKdn5nyABrSwgg
 AOE+mzqP7k6TN9ndDbLWXBjahvwU9AU0fV8NM5T/fxqE75mja3PQljUVX70gYf8U
 rZojNBFSsvQCze6tjX8EkExm2egBMhVhg/QrvaDWGjaY604jSvCghSjad15l5LWx
 lbkMaWWe1NhHLkuYkbZiXV1ZVXQ6ixKAeBN5F3qlu7xE6kfHZJye2KfOUXd1ScJm
 hREqGowNjse8vENRBxj+gzXGPvmtos0MOR3wh13iFARe8WirAbXLnUlnoZ4XPJp/
 0iKXutn2liVeCO3c30aMps9erWgx0Qx7/2uUElM8TwRY3rH4ayHPdm4ZI3TLamL/
 5s89+AbmL4XRMk9yFBYr
 =uo9r
 -----END PGP SIGNATURE-----
 

[HAL] Fix inline execution models (initializer inlining and dispatch ABI) (#24827)

The inline execution models were broken end-to-end in both the compiler
and runtime.

On the compiler side, the `HAL_Loader` and `HAL_Inline` dialects did not
support inlining, preventing `CombineInitializers` pass from combining
initializers containing their ops. This broke `inline-dynamic`
compilation generally, and stateful programs using mutable globals under
both `inline-dynamic` and `inline-static`.

On the runtime side, the `hal_loader` dispatch shim incorrectly
accounted for padding in the fixed portion of the VM cconv arguments by
using the C struct size, causing `inline-dynamic` dispatches to fail
with an argument/result signature mismatch.

The runtime also leaked the inline HAL storage buffer wrapper on
release. VM buffer destruction also assumed that every buffer was
created by `iree_vm_buffer_create/clone` as a single aligned allocation
containing both the `iree_vm_buffer_t` handle and its data. Inline HAL
instead embeds the handle inside a wrapper struct that maps an
`iree_hal_buffer_t`, initializing it in place with
`iree_vm_buffer_initialize`. Such buffers must invoke the wrapper’s
custom allocator to release the underlying HAL buffer and free the
wrapper, rather than calling `iree_allocator_free_aligned` on the
embedded handle. Since nothing else in the handle distinguishes the two
cases at destroy time, create/clone now tag their buffers with
`IREE_VM_BUFFER_ACCESS_COALLOCATED` (set internally), and destroy takes
the free-aligned path only for tagged buffers; all others pass the
handle to their allocator.

This PR adds the required inliner interfaces, fixes the dispatch
argument handling, distinguishes co-allocated and in-place-initialized
VM buffers during destruction, and adds compiler/runtime coverage for
the affected execution models and buffer lifetimes.

Assisted-by: Claude Code

---------

Signed-off-by: Pooja Hemashekar <hemashekar@roofline.ai>