Commit Graph

68818 Commits

Author SHA1 Message Date
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
Dominik Inführ
f98856e006 [builtins] Only iterate builtins in ReplacePlaceholders
We don't need to iterate all heap objects here since we are only
interested in builtins.

Bug: v8:11641
Change-Id: Ib5b959010ad82b6fe50991f85a93d165030bd804
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857962
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74271}
2021-04-29 11:10:14 +00:00
Wenyu Zhao
7e031690a2 [heap] Temporarily skip CodeRange and GC tests for TPH
* Will bring them back after TPH supports collection.

Bug: v8:11641
Change-Id: Ia170302ccaad9595663cf6bc618e725545a916e5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2858294
Auto-Submit: Wenyu Zhao <wenyu.zhao@anu.edu.au>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74270}
2021-04-29 10:02:27 +00:00
Camillo Bruni
9a068b9f09 [tools] System analyzer: fix parsing linlined deopt location
Change-Id: I424e4de75cfd628d034033c99ce2a6e7b88c6a52
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857958
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74269}
2021-04-29 09:33:03 +00:00
Toon Verwaest
00845abb32 [debug] Include Token::CLASS in class scopes and ContainsPosition
While evaluating a class literal the containing function points to
Token::CLASS. It may have pushed a context for that class that uses
the range of the class scope. So far the class scope had a range that
started after the class name or class token in case of anonymous
classes. That means the source position of the function frame doesn't
point to a position that is included in the active context range. This
breaks the debugger because it relies on being able to find the
matching parser scope for the active context by looking at the source
position.

The fix is two-fold:
- extend the class scope source range to include Token::CLASS
- update ScopeChainRetriever::ContainsPosition to include the start
  position of class scopes as a valid source position. We can't always
  include start due to arrow functions that don't have braces.

Bug: chromium:1156498
Change-Id: I9ec640c6326289dadcb154bb0a329ca6f8188f8b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857957
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74268}
2021-04-29 08:43:23 +00:00
Camillo Bruni
4c07451639 [promises] Fix slow path when context promise hooks are present
Bug: chromium:1201936
Change-Id: I1ee545e33587ddf4a5c7e1cbd64b53d36c75a146
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850936
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74267}
2021-04-29 08:11:03 +00:00
Jakob Kummerow
c85723a6f1 [wasm] Fix BigInt imports to asm.js modules
Replacing a crash with a TypeError.

Bug: chromium:1203692
Change-Id: I6970f980b46f20033f29c1deb9bc5d49ea2014ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856842
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74266}
2021-04-29 07:33:03 +00:00
Jakob Gruber
f436772423 [compiler] Make FixedArrays bg-serializable
Drive-by: Fix type hierarchies of a few FixedArray-related classes.
Done in this CL because it's based on the changes to FixedArrayData.
Drive-by: Allow AllocateFastLiteral (now TryAllocateFastLiteral) to
fail. Needed since currently ObjectRef creation may fail.

Bug: v8:7790
Change-Id: I1f8cf35a16408ed0e327f12602c832838254bb03
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2853592
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74265}
2021-04-29 07:05:21 +00:00
Jakob Gruber
b286b100de [snapshot] Fix the Memory.json benchmark again
In non-object-print builds, we were missing a trailing newline int
tracing output, messing up Memory.json parsing.

Tbr: machenbach@chromium.org
Change-Id: Ic826a4e20e348be6687c4981b48e6ab094f470ce
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857955
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74264}
2021-04-29 06:41:21 +00:00
Junliang Yan
6e479fb8a7 ppc: [liftoff] implement emit_i64_eqz/set_cond
Change-Id: Idf927a4c8bc5e4751e5e8913fe9912fd44001190
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857854
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#74263}
2021-04-28 22:44:41 +00:00
Michael Lippautz
3b2552de14 Limit [[nodiscard]] to clang
GCC 7.4 has problems with combining [[nodiscard]] with
__attribute__((visibility(""))). Disable as there's enough compilation
coverage for clang to find issues.

Bug: v8:11707
Change-Id: I9e61463c4d11dbc3b03d458e2810206fb93de108
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854737
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74262}
2021-04-28 20:20:31 +00:00
Shu-yu Guo
0b5ec843cc [ptr-cage] Factor CodeRange out of MemoryAllocator and share along with ptr cage
This CL factors out a CodeRange class out of MemoryAllocator.

When V8_COMPRESS_POINTERS_IN_SHARED_CAGE is defined, there is a single
CodeRange shared by all Isolates in the process. This also turns short
builtins back for both configurations of pointer compression. When
sharing a cage, there is a single copy of the re-embedded builtins.

Since a shared pointer cage is still experimental, to avoid API churn
this CodeRange's size is not configurable and is always the maximal size
depending on the underlying platform.

Change-Id: Ie94f52746f2c5450247a999cc6071e3914d4cf0c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2819206
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74261}
2021-04-28 19:17:00 +00:00
Zhi An Ng
51c55292db Revert "[web snapshot] Support numbers"
This reverts commit 7dcc70b8c9.

Reason for revert: Fails to compile on V8 Linux gcc https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20gcc/11474/overview

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: If107fb890c28a60c2d87859f634fdafeb73dc6c3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857156
Auto-Submit: Zhi An Ng <zhin@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@{#74260}
2021-04-28 18:56:11 +00:00
Vicky Kontoura
7dcc70b8c9 [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}
2021-04-28 18:30:50 +00:00
Dan Elphick
5d2ec36dd2 [build] Fix build failures in Chrome
Use relative paths to access v8 root build rules since // means
something different in a chrome build.

Bug: v8:7330
Change-Id: I4eac73b394daaf0250b0fa2ad415af560b03c114
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856840
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@{#74258}
2021-04-28 17:44:20 +00:00
Almothana Athamneh
7c47f10bd0 [infra] Add bot to compile with v8_enable_heap_sandbox=true
Bug: v8:11694
Change-Id: I27122524ee2991aca324867186a9443c57af3552
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856542
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74257}
2021-04-28 17:34:50 +00:00
Michael Achenbach
ad8871bb3c Revert "[build] Enable gn check for most of v8"
This reverts commit dbd5ae5296.

Reason for revert:
https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20internal%20snapshot/33829
https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20vtunejit/41526
https://ci.chromium.org/p/v8/builders/ci/V8%20iOS%20-%20sim/12150
https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20debug%20-%20perfetto%20-%20builder/12811

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: I20e4f99217c93794ab523b4018c5161d8364f7b7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856839
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74256}
2021-04-28 16:57:01 +00:00
Dan Elphick
dbd5ae5296 [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}
2021-04-28 16:28:30 +00:00
Dan Elphick
fee82d7fee [build] Fix gn check errors for v8windbg
Bug: v8:7330
Change-Id: I4bb602a41f127d4e3201defa3176f7e99e6d3753
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2851894
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Auto-Submit: Dan Elphick <delphick@chromium.org>
Reviewed-by: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#74254}
2021-04-28 15:40:20 +00:00
Clemens Backes
6ad860b3ec [wasm][cleanup] Hold wasm engine in a raw pointer
After the --wasm-shared-engine flag was removed (in
https://crrev.com/c/1864935), there is no point any more in holding the
wasm engine in a shared_ptr. The engine is initialized once for the
whole process, and only deallocated during global tear down.

R=jkummerow@chromium.org

Bug: v8:11384
Change-Id: Id8e96eaecfcab8b44842ec323c94529e9c5a5e25
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2853589
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74253}
2021-04-28 15:08:10 +00:00
Dominik Inführ
5a8afe011d [heap] Allow allocation in shared heap
This CL adds the new AllocationTypes kSharedOld and kSharedMap for
the allocation of objects in the shared heap. An Isolate can be converted
into a shared isolate with Isolate::UseAsSharedIsolate(). Client
isolates can then be attached to the shared isolate.

Bug: v8:11708
Change-Id: Ie2ed30b83b404e01e6f6079c5a4bdaa9302e8004
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850709
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74252}
2021-04-28 14:21:19 +00:00
Dan Elphick
e00444dfe2 [build] Fix v8_check_header_includes with gn check
Moves the v8_check_header_includes part of v8_base_without_compiler into
a separate v8_source_set that depends either directly or transitively on
every rule containing a header file.

Bug: v8:7330
Change-Id: I38bf4d62b514b3bede19c0180fbf436957a75391
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854752
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74251}
2021-04-28 13:32:19 +00:00
Georg Neis
669132a469 [compiler] Fix RepresentationSelector::VisitUnused
The exception concerning type None actually seems avoidable and
can cause issues with incomplete nodes remaining in the graph.

Bug: chromium:1202312, chromium:1202625
Change-Id: I89062715e7f640c66b3f7cdca249db8cde768f29
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850917
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74250}
2021-04-28 13:11:49 +00:00
Benedikt Meurer
53fc4807cd [debug] Disallow LiveEdit of active frames.
Previously we'd allow to replace the source of functions that are on the
current execution stack under certain conditions, but this has resulted
in an endless stream of bugs due to weird edge cases, and so we're now
limiting LiveEdit to functions that don't have any activation (including
not a suspended generator / async function activation).

We might eventually add the ability to LiveEdit functions with
activations and have them "upgrade upon next invocation", but that
doesn't seem to be an extremely important use case right now.

Fixed: chromium:1195927
Change-Id: I87a45ba4d0ddcfbf867bd4e73738d76b2d789e04
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2846892
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74249}
2021-04-28 13:00:19 +00:00
Jochen Eisinger
786d486172 Create a microtask scope before performing a microtask checkpoint
When the embedder uses microtask scopes to control microtask execution,
we check in the V8 API that there's always a microtask scope on the
stack when entering V8. However, a microtask might call into the
embedder which in turn can call into V8, so we have to put a fake scope
on the stack before executing microtasks to avoid hitting the check.

Bug: chromium:728583
Change-Id: I99bcbcca26eaaac827d0ec09064044f616fb9efc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2853597
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74248}
2021-04-28 10:25:59 +00:00
Jakob Gruber
e9db173bc7 Revert "[compiler] Make BigInts bg-serialized"
This reverts commit 317462be1c.

Reason for revert: Landed prematurely.

Original change's description:
> [compiler] Make BigInts bg-serialized
>
> BigInts are immutable after initialization, thus an acquire-release
> synchronization point is sufficient to read safely from the background
> thread. This CL introduces the `length` field as that sync point.
>
> Bug: v8:7790
> Change-Id: I977f30836b311c3851896dd29e708f78a090f547
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854745
> Auto-Submit: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Michael Stanton <mvstanton@chromium.org>
> Commit-Queue: Michael Stanton <mvstanton@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74245}

Tbr: mvstanton@chromium.org
Bug: v8:7790
Change-Id: I0fab1a8e161c75267aead3735708e26620686fa6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854749
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74247}
2021-04-28 09:41:07 +00:00
Maya Lekova
ede8d74de8 Revert "[test] Disable flaky cctest on stress_concurrent_allocation"
This reverts commit 336673f4fc.

Reason for revert: Verifying a fix - https://chromium-review.googlesource.com/c/v8/v8/+/2853587

Original change's description:
> [test] Disable flaky cctest on stress_concurrent_allocation
>
> Bug: v8:11695
> Change-Id: I3b558260a23b4fb7d16bc8f1e9c57b94bce03838
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854299
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Auto-Submit: Maya Lekova <mslekova@chromium.org>
> Commit-Queue: Maya Lekova <mslekova@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74228}

Bug: v8:11695
Change-Id: Iab080de98a6f2b96f98104bec4f96e0331de4573
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854746
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@{#74246}
2021-04-28 09:18:05 +00:00
Jakob Gruber
317462be1c [compiler] Make BigInts bg-serialized
BigInts are immutable after initialization, thus an acquire-release
synchronization point is sufficient to read safely from the background
thread. This CL introduces the `length` field as that sync point.

Bug: v8:7790
Change-Id: I977f30836b311c3851896dd29e708f78a090f547
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854745
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74245}
2021-04-28 09:06:24 +00:00
Lu Yahan
bbe0c56af7 [riscv64]skip atomic test case regress-1196837
Change-Id: Ieea30b779eb1b0804222cd60872b459cc38855fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2853282
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Brice Dobry <brice.dobry@futurewei.com>
Cr-Commit-Position: refs/heads/master@{#74244}
2021-04-28 08:53:44 +00:00
Michael Lippautz
6181e5b7ca base: Move lsan.h to base/sanitizer/
Bug: chromium:1056170
Change-Id: I470411540fc9d8beaaed52b7aed3c773b9b99b4b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854739
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74243}
2021-04-28 08:50:06 +00:00
Maya Lekova
ec36abead2 [respect] Rename UBSAN's blacklists to ignorelists
This renames UBSAN's lists to match the names expected by the sanitizer
config as specified in
1343ce81aa

Bug: v8:10619
Change-Id: I83f671cb68e4541735acb8d86d267f6a1a49b0a0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854744
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74242}
2021-04-28 07:55:39 +00:00
Jakob Gruber
f5594f50ac [snapshot] Fix the Memory.json benchmark
.. which traces various stats (time, memory) related to the snapshot.
Due to various flag shuffles, it was broken as of Oct 2020, with some
line items reporting constant 0.

This also refactors --profile-deserialization and
--serialization-statistics s.t. the former only reports
deserialization times and the latter reports memory. Memory.json now
passes both flags.

Change-Id: I7dacbbbe9f7a667e0802d0f7a44703dc34524a4e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854742
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74241}
2021-04-28 07:54:34 +00:00
Ross McIlroy
373d42a245 [Compiler] Push all roots first in ScheduleEarlyVisitor
Rather than pushing each root seperately, then emptying the
queue and pushing the next, instead push all roots together then
work through the queue. This reduces the number of node visits
by around 6x compared to pushing roots seperately.

BUG=v8:9684

Change-Id: I481fc177731f9d2b12e00c2a6d1be06a93429ff2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854298
Auto-Submit: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74240}
2021-04-28 07:53:29 +00:00
Leszek Swirski
486925b47d [sparkplug] Add custom builtin for ToBoolean
Add a special builtin performing a ToBoolean operation for jumps in
baseline code, which

   a) returns the original value as the first return value, to avoid
      needing to save it in the caller, and
   b) returns the true/false value as a Smi, to make the baseline-side
      comparison a cheap comparison against zero.

This reduces JumpIfToBoolean (on x64) from ~40 to ~30 bytes.

Bug: v8:11420
Change-Id: Idee51405b1e450cdd11ccb45ed82ddbc9119ae74
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854654
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74239}
2021-04-28 07:52:24 +00:00
Shu-yu Guo
d057c82313 [api] Update v8::Module::Evaluate comment for TLA
With top-level await enabled by default, the behavior of
v8::Module::Evaluate is changed to always return a Promise, and should
be documented.

No-try: true
Change-Id: I8bf41a18d8d98befecd62d6423ab37fdbaac3aad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854874
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74238}
2021-04-28 07:51:20 +00:00
Dominik Inführ
7b55cdd417 [objects] native_context() can be null until fully initialized
A NativeContext is initialized in two steps: First the map is allocated,
only afterwards the NativeContext. It could happen that there is a GC
happening when allocating the NativeContext. In such a case the
native_context for the Map is still set to null.

Fix this by also allowing null in Map::MapVerify.

Bug: v8:11695
Change-Id: Id8dcd6aef83aff4cbfff45a1e993e555cff8e7bb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2853587
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74237}
2021-04-28 07:50:14 +00:00
v8-ci-autoroll-builder
872cc036b7 Update V8 DEPS.
Rolling v8/build: 6273d81..94367a1

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

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

Rolling v8/third_party/depot_tools: c91f5f6..ae1b2b1

Rolling v8/third_party/google_benchmark/src: 86da5ec..835951a

Rolling v8/tools/luci-go: git_revision:173195137e006c3bbbd2394409e3d752f8b3c62f..git_revision:a3a1f3a2e925eb44367c62783877c922c9ef7289

Rolling v8/tools/luci-go: git_revision:173195137e006c3bbbd2394409e3d752f8b3c62f..git_revision:a3a1f3a2e925eb44367c62783877c922c9ef7289

Rolling v8/tools/luci-go: git_revision:173195137e006c3bbbd2394409e3d752f8b3c62f..git_revision:a3a1f3a2e925eb44367c62783877c922c9ef7289

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

Change-Id: Ia1b0769152c8b3e11691c452d8f0e338ede4b3af
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2855902
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@{#74236}
2021-04-28 03:48:53 +00:00
Milad Fa
6bbf2dfa5b cppgc: fix unittest compilation on gcc 8
MatcherBase::buffer_ defined under "gtest/gtest-matchers.h"
is a union of sizes that may be too large for Config object
currently being passed to it. This might result in `buffer_` to remain
uninitialized.

More information about the error can be found
in the comment section of this CL: https://crrev.com/c/2228887

Change-Id: Ibeef1189a7db8056f00cc85dbccec506d345a7eb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854278
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#74235}
2021-04-27 18:12:15 +00:00
Andreas Haas
833fae2409 [wasm][liftoff] Fix handling of register pairs in clear_used
R=clemensb@chromium.org

Bug: chromium:1202736
Change-Id: Id4056ba60fdaa5d5fbe2099ef0823da70a28e6ac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2853601
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74234}
2021-04-27 17:33:55 +00:00
Michael Lippautz
bd916e69af cppgc: Replace memory model macros with proper functions
Bug: chromium:1056170
Change-Id: I41ebc2e507d1662588364396f1129c75a0f0841d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2851890
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74233}
2021-04-27 17:10:09 +00:00
Nico Weber
87043bbb96 [diagnostics] Don't build system trace code on non-win non-mac
Bug: v8:11699
Change-Id: I286ea7d3a6455528c66eee3f479455bfc49f190c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2852039
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74232}
2021-04-27 16:08:49 +00:00
Manos Koukoutos
2ec2bda84b [wasm][test] Improve initializer expressions in mjsunit
Changes:
- Add WasmInitExpr class which knows how to create initializer
  expressions as pairs of {type, value}. Also define a default for every
  type. Emit such pairs to a byte array with emit_init_expr().
- Add an initializer expression to every global (addGlobal() uses the
  default if the argument is absent).
- Introduce wasmI64Const();
- Update tests as needed.

Change-Id: I75ffe96604891506ad78bd3677ce1efe5e0cee07
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2851892
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74231}
2021-04-27 15:57:50 +00:00
Georg Neis
6b9822448e [compiler] Fix bogus integer range types
The kInt64, kUint64, and kIntPtr type definitions made no sense.
This CL removes kIntPtr and fixes+renames k(I|Ui)nt64. It also adds
some DCHECKs to avoid similar bugs in the future.

Bug: chromium:1202609
Change-Id: Ibe2e9c7501c22959b850d2b1076e819455440450
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2851895
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74230}
2021-04-27 15:26:39 +00:00
Junliang Yan
6ae6905ccc ppc: [liftoff] implement emit_i32_eqz and emit_i32_set_cond
Change-Id: Ib492a0165d8aed748d8ece406bc51931ee577391
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2849179
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#74229}
2021-04-27 15:18:59 +00:00
Maya Lekova
336673f4fc [test] Disable flaky cctest on stress_concurrent_allocation
Bug: v8:11695
Change-Id: I3b558260a23b4fb7d16bc8f1e9c57b94bce03838
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854299
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74228}
2021-04-27 14:59:39 +00:00
Leszek Swirski
718030c479 [sparkplug] Remove context param from some baseline builtins
Remove a couple of cases where builtins called by the baseline code
needed a context parameter, either because the interface descriptor
accidentally included the context, or by adding a trivial context load
from the frame where appropriate.

Bug: v8:11420
Change-Id: I3f34cd452f42dd876255375ae357feb245c78cdc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848464
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74227}
2021-04-27 13:28:44 +00:00