Go to file
Jaroslav Sevcik c62a6da5b8 [turbofan] Analyze loops in memory optimizer.
Currently, we are flushing current allocation group state on loop entry.
With this CL, we only flush the state for loops that can allocate.
Non-allocating loop will preserve the state. This enables more
optimization opportunities for write barrier elimination and
allocation folding.

Unforutnately, the optimization will only trigger for
compiler-introduced loops - user loops always contain stack check
(which can allocate).

Bug: v8:8984
Change-Id: I5a47accec92455f4aabb0129800773596712029a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541043
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60501}
2019-03-28 08:05:41 +00:00
benchmarks [test] Ensure random generator in JSTests does not use float arithmetic 2018-12-17 10:05:08 +00:00
build_overrides
custom_deps [build] Add common directory for custom deps 2018-06-08 19:23:02 +00:00
docs [docs] Change links from old wiki to v8.dev 2019-03-07 12:13:30 +00:00
gni Disable v8_use_snapshot by default in 32-bit mac->win cross builds. 2019-03-26 15:12:51 +00:00
include Add V8_EXPORT to TickSample 2019-03-26 09:19:31 +00:00
infra Revert "Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"" 2019-03-21 17:57:15 +00:00
samples
src [turbofan] Analyze loops in memory optimizer. 2019-03-28 08:05:41 +00:00
test Revert "[snapshot] Add support for native counters." 2019-03-28 07:58:04 +00:00
testing
third_party [Builtins] Make it harder to store signalling NaNs in Torque/CSA 2019-03-26 10:22:50 +00:00
tools [cctest] Add V8_EXPORT_PRIVATE for cctest (tools part) 2019-03-27 13:12:26 +00:00
.clang-format
.clang-tidy [tool] Remove unfixed clang-tidy warnings to ease use. 2018-10-26 07:40:32 +00:00
.editorconfig Add .editorconfig 2017-07-28 13:39:24 +00:00
.git-blame-ignore-revs
.gitattributes .gitattributes: Mark minified emscripten js files as -diff 2018-09-19 16:27:10 +00:00
.gitignore Add .ccls-cache to .gitignore 2019-02-26 10:32:45 +00:00
.gn
.vpython [tools] Correctly identify and report test crashes and infra failures 2018-10-30 15:05:40 +00:00
.ycm_extra_conf.py
AUTHORS Use inherited ctors for MacroAssembler and TurboAssembler 2019-03-08 09:31:30 +00:00
BUILD.gn Revert "[snapshot] Add support for native counters." 2019-03-28 07:58:04 +00:00
ChangeLog [release] Merge ChangeLog back to master 2018-12-07 15:41:59 +00:00
CODE_OF_CONDUCT.md
codereview.settings Make Gerrit the default code review for V8 2017-06-30 17:37:37 +00:00
DEPS Update wasm-spec. 2019-03-28 04:33:31 +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 [owners] Add szuend@chromium.org to top level owners 2019-03-18 09:37:52 +00:00
PRESUBMIT.py Revert "[torque] Temporarily disable torque format check to pass presubmit" 2019-02-20 14:07:17 +00:00
README.md [docs] Change links from old wiki to v8.dev 2019-03-07 12:13:30 +00:00
snapshot_toolchain.gni Make win/cross build work better when targeting arm64 on macOS hosts. 2019-03-22 18:30:23 +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://v8.dev/docs

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 at v8.dev/docs/contribute.