[wasm] Use modification scopes on module level and not function level
During WebAssembly compilation and instantiation we entered a {CodeSpaceMemoryModificationScope} several times per function. This introduced significant overhead, see the referenced bug. With this CL we enter the {CodeSpaceMemoryModificationScope} on a per-module granularity and not on a function granularity. We enter now the following scopes: * one scope for the whole synchronous compilation; * one scope for each finishing step in asynchronous compilation (each step finishes multiple functions); * one scope for module instantiation, without the execution of the start function. Locally these changes reduced the overhead significantly. R=mstarzinger@chromium.org, titzer@chromium.org CC=clemensh@chromium.org Bug: chromium:787731 Change-Id: I5c5694544a97f4c1e5a2a29da9a005d0ca7616bd Reviewed-on: https://chromium-review.googlesource.com/787851Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#49618}
Showing
Please
register
or
sign in
to comment