Commit Graph

60277 Commits

Author SHA1 Message Date
Mythri Alle
338799cd18 Revert "Reland "[TurboFan] Don't serialize read-only heap objects""
This reverts commit a4db68d462.

Reason for revert: Speculatively reverting: failure on win32 bot
https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20debug/23495
Not sure if the test is flaky or this cl is actually making it flaky. Reverting while I investigate this issue.

Original change's description:
> Reland "[TurboFan] Don't serialize read-only heap objects"
> 
> Reland the cl with fixes to TSAN failures.
> 
> This reverts commit 03c9de7348.
> 
> 
> Original change's description:
> > Revert "[TurboFan] Don't serialize read-only heap objects"
> >
> > This reverts commit 9f18e55ff0.
> >
> > Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/29660
> >
> > Original change's description:
> > > [TurboFan] Don't serialize read-only heap objects
> > >
> > > Read-only heap objects are immutable and immovable. It is safe to access
> > > these objects directly from the heap. Not having to serialize them
> > > reduces the time we spend on main thread especially for TurboProp.
> > >
> > > Bug: v8:9684
> > > Change-Id: Ibabb7076af50c9007d2a8ed57fe257406958fb6a
> > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955596
> > > Reviewed-by: Michael Stanton <mvstanton@chromium.org>
> > > Reviewed-by: Maya Lekova <mslekova@chromium.org>
> > > Commit-Queue: Mythri Alle <mythria@chromium.org>
> > > Cr-Commit-Position: refs/heads/master@{#65490}
> >
> > TBR=mvstanton@chromium.org,neis@chromium.org,mythria@chromium.org,mslekova@chromium.org
> >
> > Change-Id: If2d8649cdc083f7d064684352501320a96a1ba2c
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: v8:9684
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1973732
> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#65492}
> 
> TBR=mvstanton@chromium.org,neis@chromium.org,mythria@chromium.org,mslekova@chromium.org,nicohartmann@chromium.org
> 
> # Not skipping CQ checks because original CL landed > 1 day ago.
> 
> Bug: v8:9684
> Change-Id: I54c9973d0f4d88504b2fb920feb3480fe1f1e1fc
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1980573
> Reviewed-by: Mythri Alle <mythria@chromium.org>
> Reviewed-by: Michael Stanton <mvstanton@chromium.org>
> Commit-Queue: Mythri Alle <mythria@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#65584}

TBR=mvstanton@chromium.org,neis@chromium.org,mythria@chromium.org,mslekova@chromium.org,nicohartmann@chromium.org

Change-Id: Ic28774a2530bb7b6688a974f2af4a23ec04ef236
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:9684
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1987250
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65585}
2020-01-06 12:40:12 +00:00
Mythri A
a4db68d462 Reland "[TurboFan] Don't serialize read-only heap objects"
Reland the cl with fixes to TSAN failures.

This reverts commit 03c9de7348.


Original change's description:
> Revert "[TurboFan] Don't serialize read-only heap objects"
>
> This reverts commit 9f18e55ff0.
>
> Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/29660
>
> Original change's description:
> > [TurboFan] Don't serialize read-only heap objects
> >
> > Read-only heap objects are immutable and immovable. It is safe to access
> > these objects directly from the heap. Not having to serialize them
> > reduces the time we spend on main thread especially for TurboProp.
> >
> > Bug: v8:9684
> > Change-Id: Ibabb7076af50c9007d2a8ed57fe257406958fb6a
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955596
> > Reviewed-by: Michael Stanton <mvstanton@chromium.org>
> > Reviewed-by: Maya Lekova <mslekova@chromium.org>
> > Commit-Queue: Mythri Alle <mythria@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#65490}
>
> TBR=mvstanton@chromium.org,neis@chromium.org,mythria@chromium.org,mslekova@chromium.org
>
> Change-Id: If2d8649cdc083f7d064684352501320a96a1ba2c
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: v8:9684
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1973732
> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#65492}

TBR=mvstanton@chromium.org,neis@chromium.org,mythria@chromium.org,mslekova@chromium.org,nicohartmann@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: v8:9684
Change-Id: I54c9973d0f4d88504b2fb920feb3480fe1f1e1fc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1980573
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65584}
2020-01-06 10:43:23 +00:00
Ng Zhi An
87ff1a4d06 Fix presubmit copyright regex to allow the year 2020
Change-Id: I4258a218e9b2bbba5b9d14eccc9c6779e701e793
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1986248
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65583}
2020-01-05 16:07:52 +00:00
v8-ci-autoroll-builder
8e2f174f3e Update V8 DEPS.
Rolling v8/build: 41f432e..9e12430

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/5f98f04..d3a10a0

Rolling v8/third_party/depot_tools: 4413434..cf50f77

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I56744193cc1cbcb5a511b448d066864f90e6ad63
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1984856
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@{#65582}
2020-01-05 13:02:31 +00:00
v8-ci-autoroll-builder
ae6a4ed2a3 Update V8 DEPS.
Rolling v8/build: 19d4aa5..41f432e

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/7c4300c..5f98f04

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: Iddb93c75f9b6ad4b9cb444ce149231020e82f328
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1984852
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@{#65581}
2020-01-03 03:33:26 +00:00
Shu-yu Guo
4c2379e582 Generate correct bytecode for calls of optional chains
The receiver may be undefined when calling optionally chained
properties, so CallAnyReceiver should be used instead of CallProperty.

TBR=rmcilroy@chromium.org

Bug: chromium:1038178
Change-Id: Id91f2ecda1a5b38f6d1c9a6b6f90c0ae7dcbe638
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1986205
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65580}
2020-01-02 23:12:45 +00:00
Joshua Litt
eb2d9591b8 [promises] Drop unnecessary 'deferred' label in torque.
I accidentally made a block deferred:
https://chromium-review.googlesource.com/c/v8/v8/+/1955756

Bug: chromium:1038283
Change-Id: I1603365c68ccf9c8d3040a59afeb8963f4332705
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1986185
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65579}
2020-01-02 20:56:14 +00:00
Milad Farazmand
c8c49f1cc9 [torque] Adding the missing algorithm header
Compilation fails on certain versions of gcc with
"'find_if' is not a member of 'std'"

Change-Id: Ifd0046e0838e5476515b646b35400d0973e80a01
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1980501
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65578}
2020-01-02 17:10:14 +00:00
Joshua Litt
643ae467e0 [protectors] Remove invalid DCHECK in protectors.
The native context can differ from the current isolates
raw_native_context, so this DCHECK was never valid.

Bug: chromium:1033966
Change-Id: Iecbbdf33a8645ffd6e8768f4ba0eb0292eca269f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1982582
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65577}
2020-01-02 15:49:54 +00:00
Peter Marshall
37f15b89eb [cleanup] Remove unused RunsTasksOnCurrentThread on task runner
This was needed for Perfetto at one point but now this is all handled
internally by the Perfetto Client API. The implementation was
potentially wrong as on some platforms we truncate the the thread ID
https://chromium-review.googlesource.com/c/v8/v8/+/1720821/1/src/base/platform/platform-posix.cc#528

Change-Id: I5124f4fb0df4d29ff78ab6c7a2c2b0c9a66a2af3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1981508
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65576}
2020-01-02 15:14:34 +00:00
Peter Marshall
234da71967 [cpu-profiler] Use a min num of samples in CPU profiler tests
This improves runtime and guarantees a number of samples, reducing
the chance of flakes and simplfying the code as well.

Change-Id: Ife559475240670e40e194285ba73853d18672e97
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1981506
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65575}
2020-01-02 14:48:14 +00:00
Peter Marshall
10be5423f6 [cpu-profiler] Speed up Inlining2 test by using a min num of samples
This test tried to get enough samples by varying the amount of work
done based on simulator vs. non-simulator builds. This didn't take
into account other things like release vs. debug, and some bots took
a very long time to run this test.

This CL uses the existing ProfilerHelper and sets a minimum number of
samples so that we can actually run the minimum amount of work for
any platform without manual tweaking.

This decreases runtime on x64.optdebug from 18.5 to 1.08s, and from
10+ min on x64.debug to 1.8s. arm.debug is ~4s now.

Bug: v8:10013
Change-Id: Ibdbdec00a300683554e3c67013e56d27dc7e6257
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1981504
Auto-Submit: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65574}
2020-01-02 14:10:44 +00:00
Peter Marshall
ac0c63319f Revert "[wasm] Add support to tier down/up Wasm NativeModule"
This reverts commit 6ce3046e2b.

Reason for revert: Flaky test failures, see flako run: https://ci.chromium.org/p/v8/builders/try.triggered/v8_flako/b8893085619399726256

Original change's description:
> [wasm] Add support to tier down/up Wasm NativeModule
>
> This is the first part of switching between Liftoff and Turbofan in
> debugging Wasm. In this CL, we implemented the logic to tier down/up all
> functions in module.
>
> Bug: v8:9654
> Change-Id: Ia25103ca29963afa103c124ff5f159f197c2b2b0
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1970470
> Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#65529}

TBR=clemensb@chromium.org,bmeurer@chromium.org,duongn@microsoft.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: v8:9654, v8:10086
Change-Id: I44a4c2bde87ba5e4e83859e3e3c96103249b585f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1981501
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65573}
2020-01-02 12:16:04 +00:00
Michael Achenbach
2cb12937b2 [test] Bump shards for slow steps
Also mark a slow test for better throughput.

No-Try: true
Change-Id: Ib8520ba3d00328cc27f330aff594b57d33ebe88d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1981502
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65572}
2020-01-02 10:54:44 +00:00
Peter Marshall
1560bbb9ef [cleanup] Refactor CodeEventListener to use handles
Just a cleanup, should not change behavior, although we will allocate
more handles in some cases.

Also re-orders some of the implementations of the interface to try
and keep things consistent.

Included cleanup: Change CodeEventDispatcher so that it now implements
CodeEventListener, given that it had that exact interface already.
Also remove the macro dispatch to try and make things a bit easier to
read.

Bug: chromium:1033407
Change-Id: Id943b10c49f102d9783d8f4cf3a8c43e04364c77
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1976390
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65571}
2020-01-02 09:13:34 +00:00
v8-ci-autoroll-builder
450736bf14 Update V8 DEPS.
Rolling v8/build: 1255ede..19d4aa5

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/b3788f2..7c4300c

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I47bac7d2b1a6856fbb1fdc46b4e1cc63f24cd49d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1984842
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@{#65570}
2020-01-02 03:48:33 +00:00
v8-ci-autoroll-builder
e02e58206d Update V8 DEPS.
Rolling v8/build: cac0fb4..1255ede

Rolling v8/buildtools: fa02977..8d21328

Rolling v8/buildtools/linux64: git_revision:6feb55993083dfd27b93da195c8a82a3a9529848..git_revision:a5bcbd726ac7bd342ca6ee3e3a006478fd1f00b5

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/c9e75ab..b3788f2

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I0ea7db7fbc1c79303a7524c432f8464dfe75391e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1984841
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@{#65569}
2020-01-01 04:02:02 +00:00
Mike Stanton
e78ebe447b [TurboFan] Remove serialized function limit
This limit hangs TypeScript and needs further investigation.

Bug: chromium:1038292
Change-Id: I5270052cb2b357f9f872d6de42a8122cee81b13e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1981499
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65568}
2019-12-31 14:53:12 +00:00
v8-ci-autoroll-builder
5e4532ac9a Update V8 DEPS.
Rolling v8/build: 54b7873..cac0fb4

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/f77838c..c9e75ab

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I4eed13bc79f1f2a80f5d3050e24a1c1c011a669a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1984839
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@{#65567}
2019-12-31 03:41:51 +00:00
Jakob Gruber
7f6736f2e9 [gasm] Port the Array.p.{includes,indexOf} reduction
Bug: v8:9972
Change-Id: Ieed4ba6648a20a9b372888d75e8eb7617acdf562
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1981490
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65566}
2019-12-30 15:40:20 +00:00
v8-ci-autoroll-builder
06313e39a6 Update V8 DEPS.
Rolling v8/build: 69e421a..54b7873

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/1890745..f77838c

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: Ic07b7b0b1ca3de37e18e39775d0f233ada3731ab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1983482
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@{#65565}
2019-12-28 04:02:27 +00:00
Mike Stanton
a9a6682633 [Turbofan] Reduce concurrent compilation recursion limit
Renderer hangs are possible with current limit (25). I'd like to know
what a limit of 15 does to benchmark performance, and see it's effect
on hangs.

Bug: chromium:1034768
Change-Id: Ie7fae638972816f547e6ca7a9d7f199cbcf6b2cc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1981492
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65564}
2019-12-27 17:01:46 +00:00
Clemens Backes
11fa409a24 [wasm] Add {wasm::DebugInfo} class for Liftoff inspection
This adds a {wasm::DebugInfo} struct which will hold the
{wasm::DebugSideTable}s for individual Liftoff functions, and will use
them to construct local scope information.

R=jkummerow@chromium.org, bmeurer@chromium.org

Bug: v8:10019
Change-Id: I7869cec5000e9b126c891a242fcccfc53c67662e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975758
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65563}
2019-12-27 16:13:36 +00:00
Joshua Litt
15ec4a09d3 [promises] Port Promise.race to Torque.
Bug: v8:9838
Change-Id: Iee3bcaa3a7149309c01d16be67d189ccc56bd0e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1965919
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65562}
2019-12-27 15:29:17 +00:00
Daniel Clifford
7e8a197c37 Port bitfield ScopeFlags to Torque
In the process:

* Rework the Torque definition of ScopeInfo to enable direct
  field-style access of ScopeFlags, removing some dead code in
  the process.
* Allow implicit FromConstexpr conversion from subtypes of
  'constexpr A' to other types. This makes it possible/easy to
  convert constexpr versions of enums to other types, since the
  constexpr version of the enum isn't addressable. It's namespace
  isn't a valid namespace and is an implementation detail anyway.
* Cleanup LanguageMode: Language mode is now an enum and directly
  mirrors the C++-side definition rather than being a Smi. With
  the changes above, a new type LanguageModeSmi is introduced
  that is the Smi representation of LanguageMode that can be
  implicitly casted from constexpr LanguageMode values.

Change-Id: I190412f95e02905f445d149883fbf1f2b8ed757b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977159
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65561}
2019-12-27 13:15:06 +00:00
Benedikt Meurer
5ba9362bf9 [inspector] Report Wasm modules upon "Debugger.enable".
When opening DevTools, make sure that Wasm modules properly show up,
aka are reported via "Debugger.scriptParsed" events. Previously these
scripts corresponding to Wasm modules had been filtered out explicitly
(accidentally).

Bug: chromium:1032042
Tbr: clemensb@chromium.org
Change-Id: Id5e49616a4959c9ca611dbae6f1a4e9a47413ea6
Doc: https://bit.ly/wasm-dbg-stories-2019#bookmark=id.drrsobk5mo0p
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1980588
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65560}
2019-12-27 09:51:26 +00:00
v8-ci-autoroll-builder
60d57f3aa7 Update V8 DEPS.
Rolling v8/build: 01e7f30..69e421a

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/fe10b5c..1890745

Rolling v8/tools/clang: ccefaab..86eb804

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: Ib5230e27e0d5e7670977d8583fa77bd05dbf4c43
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1982899
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@{#65559}
2019-12-27 04:00:26 +00:00
Joshua Litt
69314b4272 [replaceAll] Fix replaceAll overflow with StringCompareSequence.
Fixes a potential overflow when using the runtime's StringCompareSequence
by checking the string length first.

Bug: chromium:1032906
Change-Id: I7cb94473ae8331dd2ecf1fa98034829bebf8a9ac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1973936
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65558}
2019-12-26 18:47:05 +00:00
v8-ci-autoroll-builder
75a2683738 Update V8 DEPS.
Rolling v8/build: 45aab2c..01e7f30

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/bdfd74a..fe10b5c

Rolling v8/tools/clang: 1d36586..ccefaab

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I0074734ddfadead62c449b4bc2cfccd79e5f578e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1982251
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@{#65557}
2019-12-26 03:57:15 +00:00
Jakob Gruber
d6c9b4ad96 [gasm] Port the Array.prototype.{every,some} reduction
Tbr: mvstanton@chromium.org
Bug: v8:9972
Change-Id: If491e37e43e2a639b452b7d5558baca75bca1791
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1973737
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65556}
2019-12-25 09:31:54 +00:00
Jakob Gruber
694c7f56c5 [gasm] Port the Array.prototype.find reduction
Bug: v8:9972
Change-Id: I94a6a1a520de9da76a5de7bdcc19bd1b71b303cd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1973736
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65555}
2019-12-25 09:21:24 +00:00
Frank Tang
92cc62e5b9 Roll test262
3682ddd7..31f1bb5a

31f1bb5 Remove date related types for Intl.DisplayNames (#2448) by Frank Yung-Fong Tang · 61 minutes ago
502cc20 fix delete test, add error tests, fix lint (#2453) by Gus Caplan · 2 days ago
19fd4be Improve Object.prototype.isPrototypeOf coverage (#2446) by Alexey Shvayka · 5 days ago
0ea69c7 feat: regression tests for optional call (#2429) by Benjamin E. Coe · 5 days ago
a3370bf FinalizationGroup: Improve tests for cleanupSome/unregister interactions (#2440) by Mathieu Hofman · 5 days ago
0ddce19 Adding tests for Array.prototype.copyWithin (#2443) by Natalie Silvanovich · 5 days ago
cadd47a Add test for for-in order (#2432) by Kevin Gibbons · 5 days ago
f7ad295 Update tests now that FinalizationGroup.prototype.cleanupSome throws if cleanup is currently in progress. (#2434) by Jon Coppeard · 5 days ago
09380a4 Add test verifying that optional call preserves `this`. (#2436) by Ross Kirsling · 3 weeks ago
5c41447 Remove incorrect tests for AggregateError#toString (#2435) by Leo Balter · 3 weeks ago
65e996b Check the step 29 of InitializeDateTimeFormat (#2427) by Frank Yung-Fong Tang · 3 weeks ago
22978d3 add test for typeof proxy (#2438) by Gus Caplan · 3 weeks ago
8ef20fb Merge pull request #2439 from devsnek/engine262 by Leo Balter · 3 weeks ago
df8aa61 add engine262 runner by Gus Caplan · 3 weeks ago
2213d13 Merge pull request #2425 from bcoe/optional-chaining-iteration by Leo Balter · 5 weeks ago
5babea2 chore: added a few more examples based on code review by bcoe · 5 weeks ago
3d0c203 feat(optional-chaining): add tests for IterationStatement by bcoe · 5 weeks ago

Bug: v8:7834
Change-Id: Id2eac590b65d2070bbd3da905ce71d30fa5197c7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1980907
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65554}
2019-12-24 08:46:02 +00:00
Dan Elphick
8e8dbd379d [tools] Clean up temporary directory after collecting stats
Adds --retain option (all, none, json) which controls which files are
kept after running the benchmark.

No-Try: true
Change-Id: I033a8ff7938fd10f8a0fc9425043e24f1229ce0e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1980575
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65553}
2019-12-23 16:15:40 +00:00
Tobias Tebbi
c679efc440 [turbofan] make GraphAssembler isolate independent
This enables using the GraphAssembler for Wasm.

Change-Id: Id1f46db6cc05c9de6e878fb062434211a9c390ff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977160
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65552}
2019-12-23 13:47:29 +00:00
Nico Hartmann
d873128a67 [torque] Adds enum verifier to check closed enums for completeness
Bug: v8:10053
Change-Id: I90e0798ce490dea035cf4ecb934a4b8d98c61bc3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977859
Auto-Submit: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65551}
2019-12-23 09:39:29 +00:00
v8-ci-autoroll-builder
e09a068026 Update V8 DEPS.
Rolling v8/build: 2e9f699..45aab2c

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/efb804d..bdfd74a

Rolling v8/tools/clang: 5df4d00..1d36586

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I234983cfbdbfe01fde68606133405f6b1799781b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1980076
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@{#65550}
2019-12-23 03:44:09 +00:00
Zhang, Shiyu
a5967ad913 Update the dependency of v8_vtunejit
Contributed by fanchen.kong@intel.com

Change-Id: I4be08cb8fdbf7e2be3e9694cc0eb94e8128c8f50
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1973541
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com>
Cr-Commit-Position: refs/heads/master@{#65549}
2019-12-23 02:00:49 +00:00
v8-ci-autoroll-builder
a54f4beaea Update V8 DEPS.
Rolling v8/build: 60770dc..2e9f699

Rolling v8/third_party/zlib: d7f3ca9..814da1f

Rolling v8/tools/clang: 13263d5..5df4d00

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I49d10dd90a201942cb9a4a899b6237abf2ea0baf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1979836
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@{#65548}
2019-12-22 03:59:14 +00:00
v8-ci-autoroll-builder
3cad9b1eec Update V8 DEPS.
Rolling v8/build: 032b1bd..60770dc

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/104d957..efb804d

Rolling v8/third_party/depot_tools: 0593495..4413434

Rolling v8/tools/clang: cd8fb02..13263d5

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I754f7771db2c8defda57f601857757f5596ccdab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1978064
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@{#65547}
2019-12-21 03:48:53 +00:00
Ng Zhi An
83091c45c1 [liftoff][wasm-simd] Add allocation and spill logic for fp reg pair
kFpRegPair requires a bit of special case logic in allocation and spill
logic, since it requires adjacent fp registers, with the low register
being an even-numbered one.

We make use of a shift+and trick with the reg list to check this. Given
a bit mask of registers available, AND this with a right-shift-by-one
version of itself, and then AND it again with with a bit mask of even
numbered fp registers, we can get a bit mask where all available even
registers are set.

For example, given 00011011, where 1 means register is available:

  00011011
&  0001101 (right shift by 1)
----------
  00001001
& 01010101 (mask of even registers)
----------
  00000001

We see that only the first fp register is available, based on the
adjacency requirement.

The mask of even registers is defined to be uint64_t, to workarond shift
overflow issues when non-unsigned values are used, and also to make this
work on all platforms and compilers without implicit conversion warnings.
It is a bit wasteful, since we really only need storage_t, but since it
is a constexpr it should be okay.

The spilling case tries to be a bit smart, since there are three possible
cases (described in the code), two of which we can spill one register,
and in the last case we have to spill two registers. We try to
distinguish between these cases in order to minimize spills. The dumb
thing here is in the last case, we arbitrarily pick the first two
registers (d0, d1) to spill.

Bug: v8:9909
Change-Id: I408f9f79b1f3c505f2fd73bad15923188ae7aaf4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975033
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65546}
2019-12-20 22:03:42 +00:00
Ng Zhi An
f2cc948f99 [liftoff][wasm-simd] Support storing S128 values
Add support for storing values of type kWasmS128 to ia32, x64, arm,
arm64. These stores are never hit right now, since Liftoff does not
handle any S128 values yet.

Bug: v8:9909
Change-Id: Ib74b9db158428186757086711b8249866026dab5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1974834
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65545}
2019-12-20 18:45:23 +00:00
Frank Tang
1a6de19f1b Stage Intl.DisplayNames
I2I https://mail.google.com/mail/u/0/#search/Intl.DisplayNames+Intent/KtbxLwgxBjLmZRWGMwZfjnVwNFvdndwvBq
Design Doc: https://shorturl.at/emEHW
https://www.chromestatus.com/feature/4965112605573120
Latest spec: https://tc39.es/proposal-intl-displaynames/
Spec Github: https://github.com/tc39/proposal-intl-displaynames

Bug: v8:8703
Change-Id: I3757d2131029104984d26cd5f037f90dd7b136e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1976903
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65544}
2019-12-20 18:31:52 +00:00
Ng Zhi An
b1840ab9f6 [wasm-simd] Implement rounding average for arm64
Bug: v8:10039
Change-Id: Ic2775bfcae330ff9763bc28a65a806e6a41a5fba
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958013
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65543}
2019-12-20 17:13:12 +00:00
Ulan Degenbaev
38f39a01ff [heap] Introduce per-context marking worklists
These worklists are needed for accounting of objects retained by
native contexts for the new memory measurement API.

Bug: chromium:973627
Change-Id: I354c5ebbbac11da4d01800164e15b94a93aa654c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1943158
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65542}
2019-12-20 15:49:12 +00:00
Tobias Tebbi
4671cb5644 Revert "Extend GetIterator bytecode to perform JSReceiver check on object[Symbol.iterator]()"
This reverts commit 91e3243d60.

Reason for revert: This deopts to the wrong point.

Original change's description:
> Extend GetIterator bytecode to perform JSReceiver check on object[Symbol.iterator]()
> 
> Current GetIterator bytecode loads and calls @@iterator property on a
> given object. This change extends the bytecode functionality to check
> whether the value returned after calling @@iterator property is a valid
> JSReceiver. The bytecode throws SymbolIteratorInvalid exception if the
> returned value is not a valid JSReceiver. This change absorbs the
> functionality of additional two bytecodes - JumpIfJSReceiver and
> CallRuntime, that are part of the iterator protocol in the GetIterator
> bytecode.
> 
> Bug: v8:9489
> Change-Id: I9e84cfe85eeb9a1b8a97ca0595375ac26ba1bbfd
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792905
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Commit-Queue: Swapnil Gaikwad <swapnilgaikwad@google.com>
> Cr-Commit-Position: refs/heads/master@{#63704}

TBR=rmcilroy@chromium.org,leszeks@chromium.org,tebbi@chromium.org,swapnilgaikwad@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: v8:9489
Change-Id: I9324b5b01ead29912ad793a1e7b4d009643d7901
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1960288
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65541}
2019-12-20 14:56:02 +00:00
Clemens Backes
16cfeda9fe [wasm] Add inspector test for inspecting Liftoff frames
This adds a respective test, even though Liftoff frames currently do not
show scope information. The output will change with future CLs.

R=​jkummerow@chromium.org

Bug: v8:10019
Change-Id: I015863768c02678e97404f2edb538e3b4320d134
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975754
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65540}
2019-12-20 14:48:24 +00:00
Clemens Backes
7285a07a1c [wasm] Extend fast path to floats in wasm-to-js wrappers
This uses the Smi-fast-path that was added for i32 values also for f32
and f64. The code was generalized to do the smi-to-wasm-type and
float64-to-wasm-type conversion dependent on the type, and keep the rest
generic.

R=jkummerow@chromium.org

Bug: v8:10070
Change-Id: I42b021dcc99755883cf003579c730675e6d93ff6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1965577
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65539}
2019-12-20 14:23:12 +00:00
Tobias Tebbi
59e8d45ad8 [torque] multiple arrays in one object
This allows the definition of classes with several arrays and ports
SmallOrderedHashTable subclasses to Torque as an example, including
the existing CSA allocation functions for them.

Overview of changes:
- Introduce ResidueClass to encapsulate the modulo-arithmetic
  necessary to do alignment checks.
- Add MachineOperatorReducer to the CSA pipeline to address now
  missing CSA ad-hoc constant folding that got blocked by a
  temporary phi.
- Allow assignments to references to structs. This is needed to
  initialize the data_table part of SmallOrderedHashMap.
- Make the NumberLiteralExpression AST-node store a double instead
  of a string. This is necessary to detect arrays with constant size
  used for padding.
- Turn offsets into base::Optional<size_t> to ensure we don't use
  an invalid or statically unknown offset.
- Remove CreateFieldReferenceInstruction since it doesn't work for
  complex offset computations and the logic can be expressed better
  in ImplementationVisitor.
- Validate alignment of structs embedded in classes.

Bug: v8:10004 v8:7793
Change-Id: Ifa414b42278e572a0c577bf9da3d37f80771a258
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958011
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65538}
2019-12-20 14:10:22 +00:00
Tobias Tebbi
d2528de478 Reland "[csa] use JSGraph to create constants in CodeAssembler"
This is a reland of 53308bf7c0

Original change's description:
> [csa] use JSGraph to create constants in CodeAssembler
>
> Now that CodeAssembler uses optimizing TurboFan passes, creating
> constants without using the caching implemented in JSGraph leads to
> problems, since value numbering only works properly if all constants
> in the graph were introduced through the cache.
> To mitigate this, this CL creates the JSGraph earlier so that
> CodeAssembler can already use the same JSGraph used by later TurboFan
> optimizations.
> For other uses of RawMachineAssembler, everything stays as before.
>
> This issue is creating bot failures in
> https://chromium-review.googlesource.com/c/v8/v8/+/1958011
>
> Change-Id: Ife017876b19cb2602694279ef1da75f23e18a031
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1967329
> Reviewed-by: Maya Lekova <mslekova@chromium.org>
> Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#65477}

TBR=mslekova@chromium.org

Change-Id: I5c8218ce22470b3efa06d872176c910a4c5325a4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977858
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65537}
2019-12-20 13:07:02 +00:00
Tobias Tebbi
a3039123f2 [regalloc] temporarily disable control-flow aware allocation
Bug: v8:10077

Change-Id: I4b76d62462658dfa54f351ba10e52e57f63f3493
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977857
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65536}
2019-12-20 12:01:02 +00:00