Commit Graph

68813 Commits

Author SHA1 Message Date
Clemens Backes
296fa964fe [elements] Avoid racy data reads/writes
Instead of annotating those racy reads / writes to be ignore by TSan,
just use relaxed atomics. This makes us not rely on undefined behaviour,
and is unlikely to introduce noticeable overhead.

This removes the only uses of TSAN_ANNOTATE_IGNORE_WRITES_BEGIN and
friends, which allows us to remove the whole tsan.h header.

R=ulan@chromium.org
CC=​mlippautz@chromium.org

Bug: v8:11704
Change-Id: Ie6694c0ae5b40856b56fb97253ce626ec1f4c263
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859957
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74321}
2021-05-03 11:29:28 +00:00
Michael Lippautz
995f122e13 cppgc-js: Fix MarkingVerifier
The marking verifier used to run on a different stack than the marker
which could lead to it finding more objects than the marker. Fix this
by recording a stack end from which the verification starts. This
ensures that the verifier only finds a subset of the objects that the
actual stack scan finds.

Bug: v8:11709
Change-Id: I44fe7b247e56e75deded45b64c25379f1ad9e381
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859848
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74320}
2021-05-03 10:36:18 +00:00
Daniel Lehmann
a4c37558d1 [wasm] Add PKU alloc/free and support counter
To enforce W^X for the WebAssembly code space, we want to explore using
Intel memory protection keys for userspace, also known as MPK, PKEYs, or
PKU. Instead of flipping page protection flags with mprotect (which
incurs a high syscall overhead; and which switches flags for the whole
process), this associates a key with each page once, and then changes
the permissions of that key with a fast thread-local register write.
That is, this gives both finger-grained permissions (per-thread) and
more performance.

This CL is starts experimenting with PKUs by
(1) trying to allocate a protection key once per {WasmEngine} in x64
Linux systems, and
(2) adding a counter for recording the sucess/failure of that, to assess
the support for PKUs on the target machine.

The low-level PKU allocating functions should be moved into base/platform
long-term, but are inside wasm/ for this CL.

R=clemensb@chromium.org
CC=​jkummerow@chromium.org

Bug: v8:11714
Change-Id: Ia4858970ced4d0b84cc8c2651e86dceb532c88a7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850932
Commit-Queue: Daniel Lehmann <dlehmann@google.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74319}
2021-05-03 09:57:48 +00:00
Jochen Eisinger
09479110a0 Add microtasks scope to FinalizationRegistryCleanupTask
This task calls through the V8 API, so it needs to create a microtasks
scope.

Bug: chromium:728583
Change-Id: I47108a64575f1bd670eaea6c8a06720dd4d5552c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2865605
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74318}
2021-05-03 09:42:58 +00:00
Wenyu Zhao
7134d7f656 [test] Fix or skip CHECKs in tests for TPH
* Mostly are heap/space/page checks.

Bug: v8:11641
Change-Id: Ia1726f414109ac5e8a3bdb18ccaa46a63db6bc95
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2849823
Commit-Queue: Wenyu Zhao <wenyu.zhao@anu.edu.au>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74317}
2021-05-03 09:05:08 +00:00
Michael Achenbach
1a9c9f0fc0 [test] Stress concurrent inlining on numfuzz
This will give extra coverage of the mode on the numfuzz tsan bot.

No-Try: true
Bug: chromium:11655
Change-Id: Ifcc4ad304116fa1b0331cc48e41c07405193d514
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862809
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74316}
2021-05-03 06:45:13 +00:00
v8-ci-autoroll-builder
91a8494c32 Update V8 DEPS.
Rolling v8/build: d928fcd..3309cd8

Rolling v8/third_party/aemu-linux-x64: BGSmhPgYrPBnQ9dUEMh0QHNL988lWdkmpI87DIIfwkoC..IkJe_PGoF9FZE4NgmhuVPlSogmI0pgjjHezTAckYoEYC

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I43457e9a36ca72417b75ff3e63003482530c6a7e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2865718
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#74315}
2021-05-03 06:44:08 +00:00
Michael Achenbach
a20d18f138 Revert "cppgc: Try to fix test IteratePointersFindsCalleeSavedRegisters, vol.2"
This reverts commit c4cb14c754.

Reason for revert:
https://ci.chromium.org/p/v8/builders/ci/V8%20Mac64%20-%20debug/33969

Original change's description:
> cppgc: Try to fix test IteratePointersFindsCalleeSavedRegisters, vol.2
>
> The previous attempt has broken the tsan bot. The only reliable way to
> make sure that registers are not clobbered is by doing direct call from
> inline assembly, which is what this CL does.
>
> Change-Id: I6adbd5e735949a7cc4cc7fc686ee8c428863ffb9
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859947
> Commit-Queue: Anton Bikineev <bikineev@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74313}

Change-Id: I00260aeacdac8704475b37fd99d4ef552c523249
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2865746
Auto-Submit: Michael Achenbach <machenbach@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/master@{#74314}
2021-05-03 06:17:09 +00:00
Anton Bikineev
c4cb14c754 cppgc: Try to fix test IteratePointersFindsCalleeSavedRegisters, vol.2
The previous attempt has broken the tsan bot. The only reliable way to
make sure that registers are not clobbered is by doing direct call from
inline assembly, which is what this CL does.

Change-Id: I6adbd5e735949a7cc4cc7fc686ee8c428863ffb9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859947
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74313}
2021-05-02 12:15:57 +00:00
v8-ci-autoroll-builder
05fc473765 Update V8 DEPS.
Rolling v8/build: f292eb8..d928fcd

Rolling v8/tools/luci-go: git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155..git_revision:1b257aacd4934e5a8b2508b240ffc7d866df9273

Rolling v8/tools/luci-go: git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155..git_revision:1b257aacd4934e5a8b2508b240ffc7d866df9273

Rolling v8/tools/luci-go: git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155..git_revision:1b257aacd4934e5a8b2508b240ffc7d866df9273

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I972c30f88b7e49a4110608ea2f88c43c3f67cb1c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2865309
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#74312}
2021-05-02 04:09:57 +00:00
v8-ci-autoroll-builder
f0f6db3f91 Update V8 DEPS.
Rolling v8/build: 8cc6617..f292eb8

Rolling v8/third_party/aemu-linux-x64: kswh0qF56RoEDBXJbyo1IWPAJ9F7WGAvMHGyWGbpBtUC..BGSmhPgYrPBnQ9dUEMh0QHNL988lWdkmpI87DIIfwkoC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/bbfed50..00b6eba

Rolling v8/third_party/depot_tools: 0d1afc9..f663e54

Rolling v8/third_party/google_benchmark/src: 64cb55e..ba9a763

Rolling v8/tools/clang: ba668f1..7bc447f

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I61de01e618ebe21d4a2cd55b9f0d78bf74dc9857
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2864566
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#74311}
2021-05-01 03:59:26 +00:00
Clemens Backes
cd3d4b5e7b [wasm][test] Fix for gcc 7.4
This fixes a compiler warning on gcc 7.4.

R=ahaas@chromium.org
CC=machenbach@chromium.org

Bug: v8:11716
Change-Id: I385765f1ac3de17eea1bb56109869636f8ae9d95
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862779
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74310}
2021-04-30 17:10:00 +00:00
Jakob Kummerow
a43f3818df [cctest] Make sure FLAG_stack_size settings have effect
Using the default cctest TEST(...) macro causes later writes to
FLAG_stack_size to have no effect, because the StackGuard reads
that flag's value during Isolate initialization, which is done
before the test body is executed. This patch changes the two
existing tests that accidentally did this to UNINITIALIZED_TEST,
putting them in charge of Isolate creation, thereby ensuring that
the intended stack size is configured correctly.

Change-Id: Ib030795ef46f23d576f6dbbd26b347ac804b5085
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862778
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74309}
2021-04-30 17:08:55 +00:00
Dan Elphick
6bb5688fe0 Reland "[build] Fix gn check failures in v8/third_party"
This is a reland of e13a744a45

Fixed jsoncpp BUILD.gn errors by removing missing files.

Original change's description:
> [build] Fix gn check failures in v8/third_party
>
> This removes the blanket exclusion for third_party but leaves
> third_party/icu excluded (which is the same as chrome).
>
> Most fixed issues are to do with previously removed header files and
> missing dependencies.
>
> Bug: v8:7330
> Change-Id: I7e634e35c0620a1f3db9aba01119921e4f781e3e
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856838
> Auto-Submit: Dan Elphick <delphick@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74295}

Bug: v8:7330
Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng
Change-Id: I4c2c63cc3cb6fb3fabe33717b20ac4a1efeec09b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862772
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74308}
2021-04-30 16:26:19 +00:00
Clemens Backes
a7a0ff10af [cleanup][include] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=mlippautz@chromium.org

Bug: v8:11717
Change-Id: I41c4c18dd3f70ec255e9d2769ffd25a38f6f2784
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862764
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74307}
2021-04-30 16:22:19 +00:00
Clemens Backes
8259cafa24 [cleanup][regexp] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=pthier@chromium.org

Bug: v8:11717
Change-Id: Id930a72e938a82e4dd8117cb2d4834d9dfb7e9e5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862763
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74306}
2021-04-30 16:10:29 +00:00
Nico Hartmann
8ae6f77f49 Update V8 DEPS.
Rolling v8/base/trace_event/common: cab90cb..d5bb24e

Rolling v8/build: 94367a1..8cc6617

Rolling v8/buildtools: 5dbd89c..5da6005

Rolling v8/buildtools/linux64: git_revision:dba01723a441c358d843a575cb7720d54ddcdf92..git_revision:6771ce569fb4803dad7a427aa2e2c23e960b917e

Rolling v8/buildtools/third_party/libc++abi/trunk: f6a8e55..5f51521

Rolling v8/third_party/aemu-linux-x64: KmvDYKZZ-xQz7ZzzSKBh3HrWPpQv89vfFY9mBp6RDq4C..kswh0qF56RoEDBXJbyo1IWPAJ9F7WGAvMHGyWGbpBtUC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/ca2c407..bbfed50

Rolling v8/third_party/depot_tools: ae1b2b1..0d1afc9

Rolling v8/third_party/google_benchmark/src: 835951a..64cb55e

Rolling v8/third_party/zlib: 0949050..e8da4da

Rolling v8/tools/luci-go: git_revision:a3a1f3a2e925eb44367c62783877c922c9ef7289..git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155

Rolling v8/tools/luci-go: git_revision:a3a1f3a2e925eb44367c62783877c922c9ef7289..git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155

Rolling v8/tools/luci-go: git_revision:a3a1f3a2e925eb44367c62783877c922c9ef7289..git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: Id081f2b8d4214852d1bb19eab4df82379db03ba5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862144
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74305}
2021-04-30 15:12:39 +00:00
Vicky Kontoura
f488ad78cb [web snapshot] Support oddballs
This CL adds support for oddballs false, true, null and undefined.

Bug: v8:11525, v8:11706
Change-Id: I0dc870f05578c0eb9ff06bf2ccd2474e18464566
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856843
Commit-Queue: Vicky Kontoura <vkont@google.com>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74304}
2021-04-30 14:32:29 +00:00
Jochen Eisinger
a5c321024c CallDepthScope should track the current microtask scope
Tracking the context is not enough, as we might clear the context to
avoid repeatedly reentering the same context.

Also fix unittests that relied on the default microtask queue getting
automatically processed instead of the one of the current context.

Bug: chromium:728583
Change-Id: Ia9a51c513fc7363a518af86cc54c5bda26b5fbe8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859850
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74303}
2021-04-30 14:08:49 +00:00
Clemens Backes
d665f40fa2 [cleanup][execution] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=jkummerow@chromium.org

Bug: v8:11717
Change-Id: I29e8dfca88f871b5d6b4c6422d036157021514da
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862762
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74302}
2021-04-30 12:53:09 +00:00
Benedikt Meurer
379331b7a4 [debugger] Don't attach source positions to implicit returns.
Previously we'd attach source positions to implicit returns that are
generated when leaving an async function with a promise rejection. This
was due to the use of `kNoSourcePosition` on the `end_position` in the
`ReturnStatement` nodes as indicator to pick the return position from
the function literal, instead of really not putting a source position on
that specific `Return` bytecode.

This CL adds a dedicated marker to `ReturnStatement` to express that the
`BytecodeGenerator` should put the return position from the function
literal there instead of overloading the meaning of `kNoSourcePosition`.

Bug: chromium:901819, chromium:782461
Fixed: chromium:1199919, chromium:1201706
Change-Id: I3647e0c3d711e9c3d6ae44606b70ec92ad82e1cf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859945
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74301}
2021-04-30 12:33:29 +00:00
Michael Achenbach
78dbc1439d Revert "[build] Fix gn check failures in v8/third_party"
This reverts commit e13a744a45.

Reason for revert: breaks perfetto:
https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20debug%20-%20perfetto%20-%20builder/12849

Original change's description:
> [build] Fix gn check failures in v8/third_party
>
> This removes the blanket exclusion for third_party but leaves
> third_party/icu excluded (which is the same as chrome).
>
> Most fixed issues are to do with previously removed header files and
> missing dependencies.
>
> Bug: v8:7330
> Change-Id: I7e634e35c0620a1f3db9aba01119921e4f781e3e
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856838
> Auto-Submit: Dan Elphick <delphick@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74295}

Bug: v8:7330
Change-Id: I05cf897c0aeb6bf87f9889b878358c0d02600081
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862767
Auto-Submit: Michael Achenbach <machenbach@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/master@{#74300}
2021-04-30 12:21:10 +00:00
Clemens Backes
bdfd5e2207 [cleanup][objects] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=jkummerow@chromium.org

Bug: v8:11717
Change-Id: Iaaab7cc1ba8af297cf6f3aafa349bf29b34cd60d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859949
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74299}
2021-04-30 12:11:39 +00:00
Clemens Backes
b5a6366896 [cleanup][debug][inspector] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=szuend@chromium.org

Bug: v8:11717
Change-Id: Icce08a55509b06bacfc75276a2ae69c59e8b021d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859951
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74298}
2021-04-30 11:57:49 +00:00
Clemens Backes
52c7ab5654 [cleanup][test] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=ahaas@chromium.org

Bug: v8:11717
Change-Id: Ica92f4ddc9c351c1c63147cbcf050086ca26cc07
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859854
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74297}
2021-04-30 11:46:14 +00:00
Clemens Backes
f24b38af2c [cleanup][wasm] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=jkummerow@chromium.org

Bug: v8:11717
Change-Id: I5e6261c9a4825f6b58068d57327601723edfa481
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859948
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74296}
2021-04-30 11:45:09 +00:00
Dan Elphick
e13a744a45 [build] Fix gn check failures in v8/third_party
This removes the blanket exclusion for third_party but leaves
third_party/icu excluded (which is the same as chrome).

Most fixed issues are to do with previously removed header files and
missing dependencies.

Bug: v8:7330
Change-Id: I7e634e35c0620a1f3db9aba01119921e4f781e3e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856838
Auto-Submit: Dan Elphick <delphick@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74295}
2021-04-30 11:23:19 +00:00
Santiago Aboy Solanes
885b1185b3 [compiler] Update prototype chain lookup on MapRef and MapData
Map::HasOnlyStablePrototypesWithFastElements and
Map::SerializeForElementStore were asking if the prototype was a
JSObject but they were doing so with the original map on every loop
iteration instead of the current prototype's map.

Also, we can change it so that instead of using the underlying data
to check if it was a JSObject, but we can get the same information
reading the map's instance_type directly.

Bug: v8:7790
Change-Id: I314b361e59dd16e101d4fbcfbe558aeffd576cd5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859164
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74294}
2021-04-30 10:09:19 +00:00
Clemens Backes
b0ce0e3403 [cleanup][base] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=mlippautz@chromium.org

Bug: v8:11717
Change-Id: I05951486c8bbcd06bd4f329793cc483a1ade6833
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859851
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74293}
2021-04-30 10:07:49 +00:00
Clemens Backes
cd59c53a90 [cleanup][utils] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=mlippautz@chromium.org

Bug: v8:11717
Change-Id: I26602ad8aa509646053ec1bdd79470116b89dc3f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859853
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74292}
2021-04-30 09:57:29 +00:00
Wenyu Zhao
bcff0072da [test] Skip shared-heap tests and one more code range test for TPH
Bug: v8:11641
Change-Id: I3d9efa63ffb2ec7d188c13d0bf24bdc7e8297a28
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2861064
Auto-Submit: Wenyu Zhao <wenyu.zhao@anu.edu.au>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74291}
2021-04-30 08:19:22 +00:00
Marja Hölttä
387c803020 [super IC] Fix a receiver vs lookup start object confusion bug
Bug: chromium:1203122
Change-Id: I80a22bbc1e700cca33e26d6a1cf294a5e9a334eb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856538
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74290}
2021-04-30 08:11:22 +00:00
Alex Rudenko
7d5e5f6c62 Implement V8InspectorSession::initializeCommandLineAPIScope
In https://crrev.com/c/2842128, a concern was raised that using
`V8InspectorSession::createCommandLineAPI` directly would not cache the command line
API definitions and V8 could expose a higher level API for this use
case. This CL exposes `InjectedScript::ContextScope` via V8InspectorSession.
If this approach is approved, V8InspectorSession::createCommandLineAPI
could be removed.

Example usage: https://crrev.com/c/2858964

Bug: chromium:1200705
Change-Id: Ib9fcadcb9bbd75c08f0122b0e4ee61e2874c4f8a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857640
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74289}
2021-04-30 06:12:33 +00:00
Junliang Yan
1a5d2e31c6 ppc: [liftoff] implement f32/64_set_cond
Change-Id: I294c465230b1c1b8bdb21e8e42bc419c8528d217
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2860742
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#74288}
2021-04-29 20:22:35 +00:00
Jakob Kummerow
e0b941688e [wasm-gc] Optimize performance of call_ref
By (mostly) unifying the different kinds of WasmFunctionData, and
precomputing and caching what we can, we can reduce the amount of
work that has to be done for each call.
We still have to store the current instance for JS function calls;
that may be eliminatable in the future.
WasmCapiFunctions are not included in the refactoring yet.

Bug: v8:7748,v8:9495
Change-Id: Ie6839153153d5854670cd01bc77a86111c1f68d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856543
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74287}
2021-04-29 18:42:45 +00:00
Vicky Kontoura
60b27a114f Reland "[web snapshot] Support numbers"
This is a reland of 7dcc70b8c9

Original change's description:
> [web snapshot] Support numbers
>
> This CL adds support for integer and double values in web snapshots.
>
> Bug: v8:11525, v8:11706
> Change-Id: Ib75c52d440cd51bf78f57eecca09cecf35b801a4
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854734
> Commit-Queue: Vicky Kontoura <vkont@google.com>
> Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74259}

Bug: v8:11525
Bug: v8:11706
Change-Id: Ia5912ab22db24559c6d0f028a8e744ec448e2250
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859942
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Vicky Kontoura <vkont@google.com>
Cr-Commit-Position: refs/heads/master@{#74286}
2021-04-29 17:44:05 +00:00
Sam Parker
4bd6f82cda [arm64][compiler] Instruction select add/sub sxtw
Modify TryAnyExtendMatch to combine Int64Add/Int64Sub(x, ChangeInt32ToInt64(y))
to use an extend register operand, removing the cast.

Change-Id: Id130f8a9614e2c208f9ed8c17b923ee738fcb916
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857964
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
Cr-Commit-Position: refs/heads/master@{#74285}
2021-04-29 16:45:45 +00:00
Vasili Skurydzin
ad5f34a1d8 [ppc64] Skip simd tests if power processor version is earlier than 9
Change-Id: Idabbd2b1326fcca04cd937a730c5418f9c9cf8af
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2855075
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Vasili Skurydzin <vasili.skurydzin@ibm.com>
Cr-Commit-Position: refs/heads/master@{#74284}
2021-04-29 15:36:04 +00:00
Junliang Yan
629ee772e3 ppc: [liftoff] implement LoadConstant
Change-Id: Ia3c703dc47744cffc3f86ec46abb341e6c37590c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857637
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#74283}
2021-04-29 15:33:14 +00:00
Maya Lekova
14bc096e31 Revert "cppgc: Fix test IteratePointersFindsCalleeSavedRegisters"
This reverts commit 4ff37d3a3f.

Reason for revert: Fails with stress_incremental_marking - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20stress-incremental-marking/3049/blamelist

Original change's description:
> cppgc: Fix test IteratePointersFindsCalleeSavedRegisters
>
> call the compiler can clobber the tested register. Moving this tricky
> part into a noninlinable lambda allows to reduce pressure from the
> register allocator and thereby avoid such clobbering.
>
> Subtle: between the first inline assembly and the IteratePointers()
> Change-Id: Ibeca8fa2f4fd54d07c2f585a4e876504a6a991b7
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859843
> Commit-Queue: Anton Bikineev <bikineev@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74280}

Change-Id: Ib257e30273f382d19ec922e2fa3279c39e918cde
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859847
Auto-Submit: Maya Lekova <mslekova@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/master@{#74282}
2021-04-29 15:32:06 +00:00
Camillo Bruni
19b705682c [tools] Fix system-analyzer Script selection
Selecting a single script from related events was not implemented.

Change-Id: Id6dbe7f8eb235c5917e48a9ade7347404c114618
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859943
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74281}
2021-04-29 14:45:24 +00:00
Anton Bikineev
4ff37d3a3f cppgc: Fix test IteratePointersFindsCalleeSavedRegisters
call the compiler can clobber the tested register. Moving this tricky
part into a noninlinable lambda allows to reduce pressure from the
register allocator and thereby avoid such clobbering.

Subtle: between the first inline assembly and the IteratePointers()
Change-Id: Ibeca8fa2f4fd54d07c2f585a4e876504a6a991b7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859843
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74280}
2021-04-29 14:37:34 +00:00
Milad Fa
530080c44a PPC: Add Power10 to the supported list and enable related features
This CL adds Power10 recognition to Linux, AIX as well as IBMi.

Enabled features include:
MODULO
FPR_GPR_MOV
SIMD
LWSYNC
ISELECT
VSX

Change-Id: Ifc337e6497a3efe9697bcf03063a2b94471f96e9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2855041
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Reviewed-by: Vasili Skurydzin <vasili.skurydzin@ibm.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#74279}
2021-04-29 14:27:55 +00:00
Dan Elphick
55ae1a5239 Reland "[build] Enable gn check for most of v8"
This is a reland of dbd5ae5296

Less common configs were fixed in other CLs.

Original change's description:
> [build] Enable gn check for most of v8
>
> Currently there are 32 gn check failures across v8 (not including
> third_party). These are due to issues in cppgc and inspector, which are
> not trivially resolveable, so for now 4 targets (+ third_party) are
> being excluded from the checks.
>
> Bug: v8:7330
> Change-Id: I506abe8e452c26239262499fc1fe2a6347a4c84b
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2851886
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Dan Elphick <delphick@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74255}

Bug: v8:7330
Change-Id: I82047cfa7f8213312158123885808c2a4ad02160
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859842
Commit-Queue: Dan Elphick <delphick@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Dan Elphick <delphick@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74278}
2021-04-29 14:12:34 +00:00
Dan Elphick
b5f8c81658 [build] Fix perfetto gn check errors
Converts two deps to public_deps and adds a missing dependency.

Bug: v8:7330
Change-Id: Ib83920bbd9886d8ebd2d4e531fde0d40c5e8cc33
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857967
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74277}
2021-04-29 13:17:54 +00:00
Benedikt Meurer
93f85699e2 [debugger] Remove "Restart frame" feature.
The "Restart frame" feature was implemented as part of LiveEdit and
primarily used to support LiveEdit of active functions, but that was
previously disabled as part of https://crrev.com/c/2846892 because it's
too brittle and causes crashes when using seemingly unrelated features.
The "Restart frame" feature was also available as a context menu item
separately in the DevTools front-end, but that was also already removed
as part of https://crrev.com/c/2854681 earlier. So all uses are gone
now.

This change works by marking Debugger.restartFrame as deprecated and
having it respond with a ServerError all the time. It thus allows us to
remove a whole bunch of machinery that was essentially just put in
various places to support the restart_fp_ magic. In particular the
debugger no longer needs any machine specific builtins now.

Bug: chromium:1195927
Change-Id: I1153ba6b00e979620af57dd9f58aa1c035ec4484
Fixed: chromium:1203606
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854750
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74276}
2021-04-29 13:08:14 +00:00
Michael Lippautz
bfaca03f79 cppgc: Improve marking verifier
- Reset parent object and signal stack with nullptr sentinel
- Adjust FATAL messaging
- Fix dispatch for in-construction objects on stack

Bug: v8:11709
Change-Id: I4da0f0f373699aa1fa09745231911c7056978a4f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856837
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74275}
2021-04-29 13:05:55 +00:00
Georg Neis
15610ebbfd [compiler] Enable an accidentally disabled test
Tbr: nicohartmann@chromium.org
Change-Id: I88048691595dcd8df55082d57455c49f32a5fe31
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857966
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74274}
2021-04-29 12:58:24 +00:00
Junliang Yan
20db488f66 [liftoff] use LoadFullPointer for root slots
Root slots are full pointer size. Using tagged ptr loads
will lead to errors on big endian platform.

Change-Id: I477597fadee025b6fb060d67a83bee60290aeb14
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857636
Commit-Queue: Junliang Yan <junyan@redhat.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74273}
2021-04-29 12:08:44 +00:00
Dan Elphick
3d1254dc0a [build] Fix gn check errors for less common configs
This fixes the gn check errors for configs using
v8_use_external_startup_data = false and v8_enable_vtunejit = true.

Bug: v8:7330
Change-Id: If7eb48bbf339ba53646e4722c7c90d6e5857ff22
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859162
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Dan Elphick <delphick@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74272}
2021-04-29 11:52:14 +00:00