[wasm] Avoid SSA environment reload after calls when possible
This patch takes advantage of memory information from the module to avoid unnecessary reloads of the SSA environment after a Wasm call. As far as I can sse, the SSA envinronment consists of the mem_start and mem_size values. Both these values cannot ever change if: initial_mem_size == max_mem_size. Although this should be obviously true for memories defined in the module itself, some explanation may be necessary for imported memories. During module instantiation, the imported memory is checked as part of InstanceBuilder::ProcessImportedMemory. The following properties are verified: 1) The current size of the imported memory is >= the initial declared size 2) The maximal size of the imported memory is <= the maximal declared size The effective maximal limit will be min(imported_max, declared_max), hence the optimization will only trigger if the imported memory is already as large as it can be. Since memory growth is impossible, there is no point in reloading the environment anyway. Change-Id: Ie6c6ad278175d253b61131972a6db7530bd52b90 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412082Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#78782}
Showing
Please
register
or
sign in
to comment