Commit Graph

73044 Commits

Author SHA1 Message Date
Piotr Sikora
d1f04238f5 [bazel] Use //external: bindings for dependencies.
This simplifies integration with Bazel workspaces that already
have those libraries imported under different repository names.

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Change-Id: Iee6dee1abb8fca10f6b998b2ec9f459c14376bc1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3333633
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78552}
2022-01-10 21:18:54 +00:00
Piotr Sikora
f2724654a5 [bazel] Split zlib into core and compression utils.
This allows other Bazel projects to use their existing zlib import,
and only pull compression utils from Chromium's zlib.

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Change-Id: I1f88632dd07661312aa2aaf8716c1742c1f29c53
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3375479
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78551}
2022-01-10 20:39:04 +00:00
Piotr Sikora
12bb012592 [bazel] Don't use source files from external dependencies.
This allows other Bazel projects to fetch those dependencies
without relying on a full "gclient" checkout.

Added "com_googlesource_chromium" prefix to repository names to
indicate that those are Chromium forks and not official releases.

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Change-Id: I87272c3e8c28d14d8974cea144e457713c59d994
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3375478
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78550}
2022-01-10 20:08:45 +00:00
Corentin Pescheloche
747cdba92b Shift EmbedderState values next to each other
For consistency with the other enums values, avoid gaps between
EmbedderState values.

Bug: chromium:1263871
Change-Id: I22c58700f292b007ced7c12db219f578f82d77d1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3370081
Auto-Submit: Corentin Pescheloche <cpescheloche@fb.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78549}
2022-01-10 17:43:47 +00:00
Adenilson Cavalcanti
4dd8d9a926 [pac] Allow PAC-only build of C++ code
The enablement of PAC in Chromium will have two phases where support
will first be enabled on C++ code (e.g. Blink/Chrome/etc) and its
dependencies, followed next by support for dynamic code generated by
V8.

This change will allow enable PAC support for C++ code when V8
is built with Chromium.

Bug: chromium:919548
Change-Id: I8ebcbcfe3c2a3a38807b814f936272ac09625795
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3372162
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78548}
2022-01-10 17:42:45 +00:00
Alexander Timin
da4467b64a [tracing] Add missing v8.inspector category declaration
Add the new disabled-by-default-v8.inspector category (added by  [1]) to the category list to ensure that v8 can be built with perfetto client library (example failure [2]).

[1] https://chromium-review.googlesource.com/c/v8/v8/+/3364085  
[2] https://ci.chromium.org/ui/p/chromium/builders/try/linux-perfetto-rel/5926/overview

Change-Id: I7b187a18d2f996148fbfd42f9039f9a2012537bf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3370121
Auto-Submit: Alexander Timin <altimin@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78547}
2022-01-10 17:41:42 +00:00
Clemens Backes
8d8a021c8d Revert "[wasm] Lazy compilation after deserialization"
This reverts commit fbcdb28178.

Reason for revert: New test fails for multiple (concurrent) isolates: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux/45152/overview

Original change's description:
> [wasm] Lazy compilation after deserialization
>
> The serialization format contains one boolean flag per function which
> specifies whether the function code exists in the serialized module or
> not. With this CL, this boolean flag is extended to a three-value flag
> which indicates whether the function exists, and if not, whether the
> function was executed before serialization. This information can then be
> used upon deserialization to compile only those functions that were
> executed before serialization.
>
> Design doc: https://docs.google.com/document/d/1U3uqq4njqLqFhr1G2sU_bmpQxY-3bvfG55udSb-DvA4/edit?usp=sharing
>
> Bug: v8:12281
> Change-Id: I465e31e5422fa45163256be0e6594045865f0174
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3364089
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Commit-Queue: Andreas Haas <ahaas@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#78545}

Bug: v8:12281
Change-Id: If0e327d02e8257a4d1cfcf8b82381af11f28e91c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3377126
Auto-Submit: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#78546}
2022-01-10 17:37:03 +00:00
Andreas Haas
fbcdb28178 [wasm] Lazy compilation after deserialization
The serialization format contains one boolean flag per function which
specifies whether the function code exists in the serialized module or
not. With this CL, this boolean flag is extended to a three-value flag
which indicates whether the function exists, and if not, whether the
function was executed before serialization. This information can then be
used upon deserialization to compile only those functions that were
executed before serialization.

Design doc: https://docs.google.com/document/d/1U3uqq4njqLqFhr1G2sU_bmpQxY-3bvfG55udSb-DvA4/edit?usp=sharing

Bug: v8:12281
Change-Id: I465e31e5422fa45163256be0e6594045865f0174
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3364089
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78545}
2022-01-10 16:35:48 +00:00
Milad Fa
b480971834 PPC/AIX [simd]: Implement vector load and splat
This CL takes advantage of the P9 `vector byte-reverse`
instruction to implement Simd LoadSplat opcodes.

We will need to implement the rest of the `load transform` ops
before enabling this from wasm-compiler on BE machines.

Change-Id: I094e37d3b15e0dc04484eb2a701cb479f18e2f9e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3371790
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#78544}
2022-01-10 15:46:58 +00:00
Al Muthanna Athamina
625392095a Doubling number of shards for 'test262 extra' on 'V8 Linux64'
Bug: v8:12538
Change-Id: I4f1d4bc33846c158044da76b882d54469ff031a4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3377124
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78543}
2022-01-10 15:29:28 +00:00
Benedikt Meurer
765ca6a0d3 [inspector] Capture stack trace only once for JSError objects.
When creating a new JSError object (or using the non-standard API
`Error.captureStackTrace`) V8 would previously capture the "simple stack
trace" (as FixedArray of CallSiteInfo instances) to be used for the non-
standard `error.stack` property, and if the inspector was active also
capture the "detailed stack trace" (as FixedArray of StackFrameInfo
instances). This turns out to be quite a lot of overhead, both in terms
of execution time as well as memory pressure, especially since the
information needed for the inspector is a proper subset of the
information needed by `error.stack`.

So this CL addresses the above issue by capturing only the "simple stack
trace" (in the common case) and computing the "detailed stack trace"
from the "simple stack trace" when on demand. This is accomplished by
introducing a new ErrorStackData container that is used to store the
stack trace information on JSErrors when the inspector is active. When
capturing stack trace for a JSError object while the inspector is
active, we take the maximum of the program controlled stack trace limit
and the inspector requested stack trace limit, and memorize the program
controlled stack trace limit for later formatting (to ensure that the
presence of the inspector is not observable by the program).

On the `standalone.js` benchmark from crbug.com/1283162 (with the
default max call stack size of 200) we reduce execution time by around
16% compared to ToT. And compared to V8 9.9.4 (the version prior to the
regression in crbug.com/1280831), we are 6% faster now.

Doc: https://bit.ly/v8-cheaper-inspector-stack-traces
Bug: chromium:1280831, chromium:1278650, chromium:1258599
Bug: chromium:1280803, chromium:1280832, chromium:1280818
Fixed: chromium:1283162
Change-Id: I57dac73e0ecf7d50ea57c3eb4981067deb28133e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3366660
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78542}
2022-01-10 14:55:18 +00:00
XiangYang
506c0cf24f [snapshot] The length of the snapshot version string is 64 bytes
Modify the wrong code annotation.

Change-Id: Ied592d7066f394581ba36480eb91221f1ba53bbc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3359104
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78541}
2022-01-10 14:46:58 +00:00
Romain Pokrzywka
d6f8af0169 [heap] Fix NewArrayList tripping DCHECK with LocalFactory
LocalFactory::AllocateRaw() only allows the kOld and kSharedOld
allocation types, but NewArrayList() calls NewFixedArray() without
an explicit allocation argument, which then defaults to kYoung.

Add an allocation argument to NewArrayList() with the same default
value as for NewFixedArray() and pass kOld when calling it from
NewScriptWithId() to avoid tripping the DCHECK with LocalFactory.

Follow-up to https://crrev.com/c/3211575

Bug: chromium:1244145
Change-Id: I88d394bda250c45bf49141b78c09f6ca4a61dbe3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3354087
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78540}
2022-01-10 14:44:08 +00:00
Benedikt Meurer
2cc1b98167 [owners] Same owners for src/init/heap-symbols.h and src/objects.
The special symbols defined in heap-symbols.h were extracted out of
src/heap/heap.{cc,h} a long time ago because they logically belong to
the objects and not to the implementation of the GC/heap, so they should
have the same ownership as the objects that use them in src/objects.

Bug: none
Change-Id: I9a87c1600dc26b0fc5e620a13d409fb9116235e2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3375546
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78539}
2022-01-10 14:42:28 +00:00
Shu-yu Guo
fb855334e5 [heap] Fix --trace-gc-object-stats stats in debug builds
Bug: v8:11708
Change-Id: Ibf0f91b9e63646f226a2e70ec4a1733820e968ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3373135
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78538}
2022-01-10 14:07:21 +00:00
Piotr Sikora
db77f7fb4a [bazel] Generate inspector files using @rules_python.
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Change-Id: I776b98676df0094c141a395cfbe10801153e1076
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3343881
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78537}
2022-01-10 13:32:28 +00:00
Liviu Rau
de09719410 Doubling number of shards for 'test262 extra' on 'V8 Linux'
Bug: v8:12538
Change-Id: I57496ee0f50df92000c445c07acc8d6ee763d4e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3377123
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78536}
2022-01-10 13:27:29 +00:00
Piotr Sikora
8622563f32 [bazel] Fix zlib build on arm64.
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Change-Id: Ibc7b458e9ee7b632294aba2750716cbbd72923b1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3377103
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78535}
2022-01-10 12:35:30 +00:00
Piotr Sikora
eeb0c00471 [bazel] Add support for building on ppc64le.
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Change-Id: I23135214a6cf78122b35ed7d43c7fa22a8ece34e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3375471
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78534}
2022-01-10 12:09:18 +00:00
Piotr Sikora
4938c58754 [bazel] Add support for building on riscv64.
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Change-Id: I880b06d9b4fe37d242869ab4f18c15c28b48fb8a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3375470
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78533}
2022-01-10 11:20:28 +00:00
Clemens Backes
2a7f160233 [compiler] Fix SIMD register overlap check
We should only check the "SIMD sibling" register if we are handling a
SIMD register. This avoids unneeded spills, and in this particular case
ran into a DCHECK because there are only 29 registers, but we tried
checking #29.

R=thibaudm@chromium.org

Bug: v8:12330, v8:1285007
Change-Id: Ife8b295ac958990611ca8816bbfbfb5124a4297d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3372916
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78532}
2022-01-10 10:41:30 +00:00
Piotr Sikora
b4870d2822 [bazel] Add support for building on s390x.
Tested with both GCC and Clang on s390x (under QEMU).

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Change-Id: Iad6609136e25a6e94d51f365e4c54e6f042aa897
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3346395
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78531}
2022-01-10 10:40:28 +00:00
Al Muthanna Athamina
e4bf033142 Doubling number of shards for test262 novfp3 on arm sim debug
Bug: v8:12538
Change-Id: I89e7fcde7226d680f3385f527cb2e456829a476d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3376962
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78530}
2022-01-10 10:22:39 +00:00
Manos Koukoutos
05f6d3f9f8 Reland "[wasm] Fast paths in EvaluateInitExpression"
This is a reland of be6bd4f448.
The reason for revert was two bots timing out. On further inspection,
the timeouts seem unrelated.

Original change's description:
> [wasm] Fast paths in EvaluateInitExpression
>
> We add fast paths for the most common types of expressions in
> {EvaluateInitExpression} to improve instantiation time. We fall back to
> full expression decoding for less common operators, or for expressions
> with operands.
>
> Bug: chromium:1284557
> Change-Id: I39a1816176974058b801cdad6eaaa6da156cea04
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3367627
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#78497}

Bug: chromium:1284557
Change-Id: I209458c1fa36ae41899434b90759ebe3fe5e2a57
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3375545
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78529}
2022-01-10 10:19:01 +00:00
Clemens Backes
33273f099e [testrunner] Add missing comma
Without the comma, the two strings '--no-enable-sse3' and
'--noenable-ssse3' will be concatenated, resulting in missing detection
for the no_simd_hardware flag.

R=liviurau@chromium.org

Bug: v8:12521
Change-Id: Icbdc5e8057d1eeead472f76efd52c379bffbe5b6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3372914
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78528}
2022-01-10 10:06:52 +00:00
Al Muthanna Athamina
6a4d6d98a7 Enable javascript promise hooks on pointer compression
Bug: v8:12483
Change-Id: Ic488540c3d4905813a705b0fb6d742d267c994c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3366239
Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78527}
2022-01-10 10:05:50 +00:00
Leszek Swirski
04e57ea614 [test] kraken/audio-beat-detection is slow in jitless
Bug: v8:12529
Change-Id: I73c8176cf0b3570f1424b85038467d5b965d3d04
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3375548
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78526}
2022-01-10 09:31:38 +00:00
v8-ci-autoroll-builder
5b2db71282 Update V8 DEPS.
Rolling v8/build: 66cd756..12badc1

R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: I11dd012d8a4c8775f6ddeac2190df8ce496da986
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3376582
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#78525}
2022-01-10 03:56:18 +00:00
Yujie Wang
8861ca7b74 [riscv64] Add RISCV64 support for wasm-relaxed-simd
- Implement `kRiscvF32x4RecipApprox`, `kRiscvF32x4RecipSqrtApprox`,
  `kRiscvF32x4Qfma`, `kRiscvF32x4Qfms`, `kRiscvF64x2Qfma` and `kRiscvF64x2Qfms`
  in `code-generator-riscv64.cc`

- Reuse lane-select, min-max and trunc instrctions in
  `instruction-selector-riscv64.cc`

Bug: v8:11976
Change-Id: I8566f7e082a3d7071ec9fc64c742da82425a4d4d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3364077
Reviewed-by: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78524}
2022-01-10 01:40:22 +00:00
v8-ci-autoroll-builder
c0cec07e54 Update V8 DEPS.
Rolling v8/build: 208eb9e..66cd756

Rolling v8/buildtools/third_party/libc++abi/trunk: c884e7a..a0ace99

Rolling v8/buildtools/third_party/libunwind/trunk: 4bf418e..58d1647

R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: Ifc8c5d9708af08c0765e8f3567cfb64aab267d7f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3371679
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#78523}
2022-01-09 04:01:27 +00:00
v8-ci-autoroll-builder
bc317c76dd Update V8 DEPS.
Rolling v8/build: 3fd1fd5..208eb9e

Rolling v8/buildtools/linux64: git_revision:387b368dfe63fec317f8e609d90c634807f2764e..git_revision:f1b1412521b41e47118b29863224171e434a27a2

Rolling v8/third_party/android_platform: abc362f..5023a5c

Rolling v8/third_party/depot_tools: 9552069..d3cc7ad

Rolling v8/tools/clang: 17ca796..6e330f7

R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: Id6780cf6c36e72f0ded9dc918b470ebe4b65755d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3373548
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#78522}
2022-01-08 03:57:06 +00:00
Clemens Backes
9af895db5d [compiler] Remove more unneeded accessors
Inlining the field accesses make the code simpler by avoiding the
abstraction of the accessor, and makes stepping through the code for
debugging easier.

R=thibaudm@chromium.org

Bug: v8:12330
Change-Id: I51bd0e88baa5ffba5bd4bfcca36e95caab7468c3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3372913
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78521}
2022-01-07 21:30:35 +00:00
Clemens Backes
facb3fbd5f [compiler] Remove unneeded data() accessors
Since the accessors are only called from other methods in the same
class, we can just access the field directly. This makes stepping
through easier and makes the code simpler by avoiding an unneeded
abstraction.

R=thibaudm@chromium.org

Bug: v8:12330
Change-Id: I39727324e82fcfd15b3b242c53ed5534e2e5511d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3372912
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78520}
2022-01-07 21:25:56 +00:00
Austin Sullivan
60a35f6029 Remove trailing serialization tag in test
This should have been updated in https://crrev.com/c/3370408

Bug: chromium:1284506
Change-Id: Ie44d80b507c9a798ce6f4776672270f9d4b12195
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3371463
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Austin Sullivan <asully@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78519}
2022-01-07 20:09:25 +00:00
Frank Tang
f811e89269 [Temporal] Part2 Add constructor and simple getters.
Bug: v8:11544

Change-Id: I3206ca3e0c505b14e4497ccb2af25a31940a1c1e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2967755
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78518}
2022-01-07 19:18:33 +00:00
Clemens Backes
5d32b17be4 [wasm] Skip SIMD test on non-SIMD hardware
The test was added in https://crrev.com/c/3372910, but needs to be
skipped on non-SIMD hardware because it contains SIMD instructions.

R=thibaudm@chromium.org

Bug: v8:12330, chromium:1284980
Change-Id: Ifaede466b24aea4f9ef6b062414a31698bcca864
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3372917
Auto-Submit: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78517}
2022-01-07 17:55:15 +00:00
Clemens Backes
97d39db4c7 [compiler] Simplify register state accesses
The register state is accessed a lot in the mid-tier register allocator.
Instead of going through an accessor with a DCHECK, just access
directly. This makes stepping for debugging a lot easier, and will
result in an easy-to-debug nullptr access if the register state is not
initialized.

R=thibaudm@chromium.org

Bug: v8:12330
Change-Id: Icf4d1cc187a34f28ee44fc9b80ee5d765aa14b9a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3372911
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78516}
2022-01-07 17:43:05 +00:00
Clemens Backes
3b6b21f595 [liftoff] Allow bailout for missing ARMv7
The bailout is there explicitly in the code, so we should allow it in
{CheckBailoutAllowed}.

R=ahaas@chromium.org

Bug: v8:12527
Change-Id: Ifd906afb5f034f05c2bf7d9a28e3ab458549e7ef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3372915
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78515}
2022-01-07 16:50:55 +00:00
Clemens Backes
1b3d232321 [compiler] Fix another SIMD register spilling issue
Spilling was already fixed if a fixed SIMD register overlaps with an
allocated FP register, but the other way around was missing: If an odd
FP register (in this case d1) is used as a fixed output register, but
this register is in use as the upper half of a SIMD register (in this
case q0), we did not detect this and would just use overwrite the SIMD
half.
This CL also fixes this case.

R=thibaudm@chromium.org

Bug: v8:12330, chromium:1284980
Change-Id: Id3f98b7accd77e38ab4cd5ff8910aaf5ad96a1ed
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3372910
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78514}
2022-01-07 16:48:35 +00:00
Shu-yu Guo
3170b9903d Reland "[scanner] Combine surrogate pairs at start when scanning private names"
This is a reland of c7c5b49298

Changes since revert:
- Save position instead of using PushBack
- Allow private-name-surrogate-pair to fail on no_i18n builds

Original change's description:
> [scanner] Combine surrogate pairs at start when scanning private names
>
> Bug: v8:12523
> Change-Id: Ic3779fe6f20965d177d99d0a570a735df72e4fde
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3366994
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Shu-yu Guo <syg@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#78493}

Bug: v8:12523
Change-Id: I8a92953549f5b38bfa004488db42bf9d835e1222
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3368361
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78513}
2022-01-07 16:46:47 +00:00
Clemens Backes
bfcb2f82cd [compiler] Output RegisterBitVector for debugging
This adds an output operator for {RegisterBitVector}, mostly for getting
better DCHECK error messages.

R=thibaudm@chromium.org

Bug: v8:12330
Change-Id: I98f822f94a3b6a240c8ead7ea4de4049abe9998e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3372909
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78512}
2022-01-07 16:41:25 +00:00
Piotr Sikora
57f06a8bf3 [bazel] Fix build with older versions of GCC.
Missed in https://crrev.com/c/3333635.

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Change-Id: I53ab2fbbb967ec62fd1ebbf6ea4df9d112fd7415
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3368869
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78511}
2022-01-07 10:13:34 +00:00
Piotr Sikora
1388e51ae3 [bazel] Fix build on arm64.
Missed in https://crrev.com/c/3337367.

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Change-Id: I32363a5a4282a9e32ad71ae12ec6e4d9def40f96
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3368870
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78510}
2022-01-07 10:12:32 +00:00
Piotr Sikora
0a6f6d5c7c [bazel] Fix build on Windows.
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Change-Id: I25ed38cc61cb3b621a71c4fe9e3b7cfb0e7578ba
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3368871
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78509}
2022-01-07 10:11:28 +00:00
v8-ci-autoroll-builder
1227b58a8c Update V8 DEPS.
Rolling v8/build: f29e3b6..3fd1fd5

Rolling v8/buildtools/linux64: git_revision:19bf826e6e5d05100cb3568e90e48bd3c97d4f22..git_revision:387b368dfe63fec317f8e609d90c634807f2764e

Rolling v8/buildtools/third_party/libunwind/trunk: 6a10e3e..4bf418e

Rolling v8/third_party/depot_tools: e971498..9552069

Rolling v8/tools/clang: 24c1100..17ca796

Rolling v8/tools/luci-go: git_revision:89429843eb2dedb599a6c7c7754343b97d95943d..git_revision:d1e877e2b3e5a05a5cd34c4a340fedba14a16c2b

Rolling v8/tools/luci-go: git_revision:89429843eb2dedb599a6c7c7754343b97d95943d..git_revision:d1e877e2b3e5a05a5cd34c4a340fedba14a16c2b

R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: I9b882395fb44b11308a3e55166bbf7f527c538d3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3371705
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#78508}
2022-01-07 03:47:32 +00:00
Victor Costan
679c317efb Restore typed array serialization format.
https://crrev.com/c/3297708 changed the serialization format for typed
arrays without bumping the format version. As a consequence, builds that
include that CL fail to deserialize typed arrays serialized by previous
V8 versions.

This CL reverts the serialization format change, and does minimal test
changes to reflect the revert. https://crbug.com/v8/12532 tracks
serializing typed array flags in a backwards-compatible manner.

Bug: chromium:1284506
Change-Id: Ib32e88c6383e0ad4ad1a9ff63f413a1eb123b1ef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3370408
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Victor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78507}
2022-01-07 00:54:14 +00:00
Omer Katz
86aa8e4093 cppgc: Avoid using members on stack in cppgc
Bug: chromium:1283720
Cq-Include-Trybots: luci.v8.try:v8_linux_blink_rel
Change-Id: Ifd9982a9315ebbed8765bc9f15ac3ffcbf04612f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3368269
Auto-Submit: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78506}
2022-01-06 08:30:35 +00:00
v8-ci-autoroll-builder
a7aa6c7063 Update V8 DEPS.
Rolling v8/build: ccc9811..f29e3b6

Rolling v8/buildtools/linux64: git_revision:281ba2c91861b10fec7407c4b6172ec3d4661243..git_revision:19bf826e6e5d05100cb3568e90e48bd3c97d4f22

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/ec88714..aa0e8d0

Rolling v8/third_party/depot_tools: 02d65ea..e971498

Rolling v8/tools/clang: 2d10229..24c1100

Rolling v8/tools/luci-go: git_revision:e897e118887a2e6c50a82212b660cb2a7c58d910..git_revision:89429843eb2dedb599a6c7c7754343b97d95943d

Rolling v8/tools/luci-go: git_revision:e897e118887a2e6c50a82212b660cb2a7c58d910..git_revision:89429843eb2dedb599a6c7c7754343b97d95943d

R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: I9d02d870a7233878220336aaa985c9216f521c58
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3362608
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#78505}
2022-01-06 03:51:24 +00:00
Aleksei Koziatinskii
a66b09e551 fix(cppgc): removed deleted cstors in CppHeapCreateParams
In the C++20 a following paper was implemented [1]. This
paper makes code below illformed. The high level idea is
that as soon as class gets non default constructor - all
default initializations are not added implicitly.

class A {
public:
  A(const A&) = delete;
};

int main() {
  A a{};
  return 0;
}

So if V8 embedder is building its code with C++20 it can
not initialize v8::CppHeapCreateParams struct and as a
result can not create a CppHeap.

One of the possible mitigations (3.3) from the paper is
to add non copyable field into class. Luckily there
is std::vector<std::unique_ptr>> in this class already.

[1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1008r1.pdf

Change-Id: I8a2dc35784d7646b5f73a5e178716e9bf2ffe601
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3348007
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Alexey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78504}
2022-01-06 02:49:44 +00:00
Frank Tang
c9f4177cd5 [test262] Roll test262
04cd6da0..6c9b4de

Bug: v8:7834
Change-Id: I29159c3421ad81ec86544ac9682c76abc73c6703
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3367376
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78503}
2022-01-05 22:24:34 +00:00