• Andreas Haas's avatar
    [wasm] Use modification scopes on module level and not function level · fd52adcb
    Andreas Haas authored
    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: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#49618}
    fd52adcb
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...