• Andreas Haas's avatar
    Reland [wasm] Allow the initialization of a single compilation unit · 28cc5dc6
    Andreas Haas authored
    Tsan figured out that I called compilation_units_.empty() outside a
    lock.
    
    Original message:
    This CL adds a new function {InitializeCompilationUnit} to initialize
    a single compilation unit and not just all compilation units at once.
    This is necessary for streaming compilation eventually. This also
    required some refactoring on how the working queue for compilation units
    works. Previously the synchronization was done with an atomic counter,
    now it is done with a lock. Note that the code to finish compilation
    of a module still only works if the working queue gets only empty when
    all work is done. I plan to change this in a different CL.
    
    Since the code would not be tested without streaming compilation, I added
    an experimental flag and a test to test the new code.
    
    R=clemensh@chromium.org, mtrofin@chromium.org
    
    Change-Id: Ia83560d1c70f0802271a88c514e0d1cb0458f6c4
    Reviewed-on: https://chromium-review.googlesource.com/561458Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#46454}
    28cc5dc6
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...
.gitignore Loading commit data...
.gn 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...