SIGN IN SIGN UP

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