9b4514222e
all_true, any_true, bitmask, and extract_lane all replace a simd type with single scalar, so we don't need to set nullptr for the extraneous lane, and can set num_lanes to 1. So for a call node with any of the above nodes as one of its value, we were incorrectly replacing the extract lane node with 4 nodes - it should only be 1 scalar node. Drive by fix for LowerShift, it needs to check if the shift value node has replacement (e.g. if it is an extract lane node). Also we weren't setting the lowered type of a kPhi node. This can be a problem if the output of a Phi node is used by a F32x4ExtractLane and I32x4ExtractLane, which is possible (and type correct since both take v128). This will require that the output be both a float and a int, which is impossible. So fix it to Int32x4, and the uses of the phi nodes will convert appropriately. Added a test for the call node. Also tested this code by running one of our benchmarks, which exercises the Phi logic. Bug: v8:10507 Change-Id: I01a76b349ba9d0e157b64e737bdb4c70f96aa954 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2536952 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#71218} |
||
---|---|---|
build_overrides | ||
custom_deps | ||
docs | ||
gni | ||
include | ||
infra | ||
samples | ||
src | ||
test | ||
testing | ||
third_party | ||
tools | ||
.clang-format | ||
.clang-tidy | ||
.editorconfig | ||
.flake8 | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.gn | ||
.vpython | ||
.ycm_extra_conf.py | ||
AUTHORS | ||
BUILD.gn | ||
CODE_OF_CONDUCT.md | ||
codereview.settings | ||
COMMON_OWNERS | ||
DEPS | ||
DIR_METADATA | ||
ENG_REVIEW_OWNERS | ||
INFRA_OWNERS | ||
INTL_OWNERS | ||
LICENSE | ||
LICENSE.fdlibm | ||
LICENSE.strongtalk | ||
LICENSE.v8 | ||
MIPS_OWNERS | ||
OWNERS | ||
PPC_OWNERS | ||
PRESUBMIT.py | ||
README.md | ||
S390_OWNERS | ||
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://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.