Add a MakeSharedObjects pass (#8953)
This pass makes all functions unshared and all structs and arrays shared. It avoids validation errors from storing unshared function references in shared structs and arrays by replacing all function references with i31 references holding indices into a function table. Indirect calls and casts are updated to extract their function reference from the table. This new pass will make it easier to convert unshared Wasm GC programs to run on the shared heap for testing purposes. It will also lower shared functions emitted by toolchains to allow them to run on prototypes that do not support shared functions.
T
Thomas Lively committed
26d46edccf594f4cb22b4897407157f95e4aa4a5
Parent: 16272ba
Committed by GitHub <noreply@github.com>
on 7/30/2026, 11:02:16 PM