Go to file
Clemens Hammacher 2664a259a9 [wasm] Use shared mutex for background compile token
This introduces a new {base::SharedMutex}, which mimics
{std::shared_mutex}, available in C++17.
It is being used for synchronizing the WebAssembly background compile
tasks. This removes a lot of unnecessary contention, leading to
synchronization of background tasks that should be able to run in
parallel ideally.
Locally, this reduces Liftoff compilation time by more than 20 percent.

R=mstarzinger@chromium.org, mlippautz@chromium.org

Bug: chromium:924956
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel
Change-Id: I8c522faf385149bfe2cf00d777a7942c537f9cd2
Reviewed-on: https://chromium-review.googlesource.com/c/1477731
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59729}
2019-02-20 12:08:33 +00:00
benchmarks [test] Ensure random generator in JSTests does not use float arithmetic 2018-12-17 10:05:08 +00:00
build_overrides [ndk] Change android ndk root for v8 2018-01-11 08:10:33 +00:00
custom_deps [build] Add common directory for custom deps 2018-06-08 19:23:02 +00:00
docs
gni Reland^2 "[build] disable C++ optimization for mksnapshot code." 2019-02-15 14:44:29 +00:00
include [Intl] Track Usage for String.prototype.normalize 2019-02-20 03:41:27 +00:00
infra [test] Remove redundant ubsan-vptr builder configs 2019-02-19 13:49:55 +00:00
samples Add a sample that uses the JS API to create wasm 2018-06-07 23:43:38 +00:00
src [wasm] Use shared mutex for background compile token 2019-02-20 12:08:33 +00:00
test Reland "[builtins]: Optimize CreateTypedArray to use element size log 2 for calculations." 2019-02-20 12:06:53 +00:00
testing Remove dummy files created for rolling googletest. 2018-03-27 05:55:56 +00:00
third_party [array] Eagerly copy elements into a FixedArray for sorting 2019-02-18 11:02:17 +00:00
tools [test] Remove obsolete ubsan suppression 2019-02-20 09:16:57 +00:00
.clang-format
.clang-tidy [tool] Remove unfixed clang-tidy warnings to ease use. 2018-10-26 07:40:32 +00:00
.editorconfig
.git-blame-ignore-revs
.gitattributes .gitattributes: Mark minified emscripten js files as -diff 2018-09-19 16:27:10 +00:00
.gitignore Revert "[build] Port "Add patched eu-strip in third_party"" 2019-01-31 16:44:20 +00:00
.gn [test] Remove obsolete test262 archive extract 2018-03-28 13:52:15 +00:00
.vpython [tools] Correctly identify and report test crashes and infra failures 2018-10-30 15:05:40 +00:00
.ycm_extra_conf.py [ycm] Switch from gnu++11 to gnu++14 2017-11-27 07:48:21 +00:00
AUTHORS Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
BUILD.gn [torque] Extract compiler into separate function for easier reusability 2019-02-20 06:17:07 +00:00
ChangeLog [release] Merge ChangeLog back to master 2018-12-07 15:41:59 +00:00
CODE_OF_CONDUCT.md
codereview.settings
DEPS Roll ICU to 07e7295d from 960f195 2019-02-20 01:19:36 +00:00
LICENSE Add antlr4 runtime library to support Torque 2018-04-10 10:01:01 +00:00
LICENSE.fdlibm
LICENSE.strongtalk
LICENSE.v8
LICENSE.valgrind
OWNERS Reduce wasm OWNERS to current team members 2018-10-15 14:47:49 +00:00
PRESUBMIT.py [torque] Temporarily remove torque format check to pass presubmit 2019-02-20 08:58:17 +00:00
README.md
snapshot_toolchain.gni Reland "Add Windows ARM64 ABI support to V8" 2018-10-24 19:46:36 +00:00
WATCHLISTS Update WATCHLIST wrt yangguo 2018-11-23 08:29:12 +00:00

V8 JavaScript Engine

V8 is Google's open source JavaScript engine.

V8 implements ECMAScript as specified in ECMA-262.

V8 is written in C++ and is used in Google Chrome, the open source browser from Google.

V8 can run standalone, or can be embedded into any C++ application.

V8 Project page: https://github.com/v8/v8/wiki

Getting the Code

Checkout depot tools, and run

    fetch v8

This will checkout V8 into the directory v8 and fetch all of its dependencies. To stay up to date, run

    git pull origin
    gclient sync

For fetching all branches, add the following into your remote configuration in .git/config:

    fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
    fetch = +refs/tags/*:refs/tags/*

Contributing

Please follow the instructions mentioned on the V8 wiki.