Go to file
Qifan Pan 63134966fd [turbofan] Fix a bug of SignedBigInt64 in representation changer
The expected behavior of the optimized code is deoptimizing when using a BigInt
as an index and throwing an error (from CheckedTaggedToInt64).
The representation changer tries to insert conversions for this case where

- The output node is represented in Word64 (SignedBigInt64)
- The use info is CheckedSigned64AsWord64

The representation changer first rematerializes the output node to
TaggedPointer because the type check is not BigInt. Then it falls wrongly to
the branch where the output representation is TaggedPointer, the output type is
SignedBigInt64 in GetWord64RepresentationFor.

Bug: v8:9407, chromium:1403574, chromium:1404607
Change-Id: I9d7ef4c94c1dc0aa3b4f49871ec35ef0877efc24
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4135876
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Qifan Pan <panq@google.com>
Cr-Commit-Position: refs/heads/main@{#85094}
2023-01-04 15:30:31 +00:00
.github
bazel [bazel] Add v8_disable_write_barriers to build config 2023-01-02 12:06:51 +00:00
build_overrides
custom_deps
docs
gni [reland] adds the ability for v8 to use sin/cos from libm 2022-12-02 21:59:04 +00:00
include [cppgc]: Fix build on msvc 2023-01-04 10:12:56 +00:00
infra [wasm] Remove wasm_write_protect_code variant 2023-01-03 13:57:50 +00:00
samples
src [turbofan] Fix a bug of SignedBigInt64 in representation changer 2023-01-04 15:30:31 +00:00
test [turbofan] Fix a bug of SignedBigInt64 in representation changer 2023-01-04 15:30:31 +00:00
testing
third_party [reland] adds the ability for v8 to use sin/cos from libm 2022-12-02 21:59:04 +00:00
tools [testrunner] Allow rules with negated build variables in variants.py 2023-01-04 13:47:46 +00:00
.bazelrc
.clang-format
.clang-tidy
.editorconfig
.flake8
.git-blame-ignore-revs
.gitattributes
.gitignore Adds sin/cos from glibc 2022-11-30 09:20:05 +00:00
.gn
.mailmap
.style.yapf
.vpython3 Reland "[resultdb] Add ResultDB indicator" 2022-10-14 11:05:59 +00:00
.ycm_extra_conf.py [ycm] Fix YouCompleteMe config 2022-11-02 15:59:48 +00:00
AUTHORS [fastcall] Support external pointers in fast api calls 2022-12-01 14:19:33 +00:00
BUILD.bazel [string-iswellformed] Implement String#{is,to}WellFormed 2022-12-22 18:04:40 +00:00
BUILD.gn [infra] Add TSAN CQ and CI builders with debug/dchecks 2023-01-03 13:20:30 +00:00
CODE_OF_CONDUCT.md
codereview.settings
COMMON_OWNERS [owners] Add mliedtke to COMMON_OWNERS 2022-09-16 14:12:27 +00:00
DEPS Update V8 DEPS (trusted) 2023-01-04 03:54:57 +00:00
DIR_METADATA
ENG_REVIEW_OWNERS Add mlippautz@ to ENG_REVIEW_OWNERS. 2022-10-06 18:48:33 +00:00
INFRA_OWNERS
INTL_OWNERS
LICENSE
LICENSE.fdlibm
LICENSE.strongtalk
LICENSE.v8
LOONG_OWNERS
MIPS_OWNERS
OWNERS Make .ycm_extra_conf owned by COMMON_OWNERS 2022-11-07 09:51:53 +00:00
PPC_OWNERS
PRESUBMIT.py [presubmit] Handle Windows path for header guard check 2022-12-13 17:30:02 +00:00
README.md
RISCV_OWNERS
S390_OWNERS
WATCHLISTS
WORKSPACE

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.