d504203e93
Currently we didn't always consistently use the String feedback on JSAdd, but only if JSTypedLowering would already figure out statically that one of the inputs is already a String. That leads to some odd performance cliffs, as highlighted in the referenced bug. This CL fixes the JSTypedLowering::ReduceJSAdd to always bake in the String feedback. This improves the relevant performance tests from the bug from console.timeEnd: Runtime join3, 967.512000 console.timeEnd: Runtime join, 1004.599000 console.timeEnd: Runtime join3, 1124.764000 console.timeEnd: Runtime join, 966.164000 console.timeEnd: Runtime join3, 1145.296000 console.timeEnd: Runtime join, 966.176000 console.timeEnd: Runtime join3, 1145.272000 console.timeEnd: Runtime join, 931.266000 to console.timeEnd: Runtime join3, 903.050000 console.timeEnd: Runtime join, 856.509000 console.timeEnd: Runtime join3, 945.144000 console.timeEnd: Runtime join, 840.038000 console.timeEnd: Runtime join3, 927.965000 console.timeEnd: Runtime join, 841.263000 console.timeEnd: Runtime join3, 929.342000 console.timeEnd: Runtime join, 858.143000 which corresponds to an 8-18% improvement. Bug: v8:7415 Change-Id: I62e008298e4ee0864885b37817c91d055acf2a09 Reviewed-on: https://chromium-review.googlesource.com/936643 Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51551} |
||
---|---|---|
benchmarks | ||
build_overrides | ||
docs | ||
gni | ||
include | ||
infra | ||
samples | ||
src | ||
test | ||
testing | ||
third_party | ||
tools | ||
.clang-format | ||
.editorconfig | ||
.git-blame-ignore-revs | ||
.gitignore | ||
.gn | ||
.vpython | ||
.ycm_extra_conf.py | ||
AUTHORS | ||
BUILD.gn | ||
ChangeLog | ||
CODE_OF_CONDUCT.md | ||
codereview.settings | ||
DEPS | ||
LICENSE | ||
LICENSE.fdlibm | ||
LICENSE.strongtalk | ||
LICENSE.v8 | ||
LICENSE.valgrind | ||
OWNERS | ||
PRESUBMIT.py | ||
README.md | ||
snapshot_toolchain.gni | ||
WATCHLISTS |
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.