Commit Graph

58966 Commits

Author SHA1 Message Date
Tobias Tebbi
164d0d3af0 [torque] fix dangling pointer into std::vector for index fields
Bug: v8:7793

Change-Id: Id2e03e7d42aeab155572fa9cc3093dcff16f5668
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859622
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64274}
2019-10-14 14:12:33 +00:00
Clemens Backes
def681de00 [api] Deprecate old tasks API
It was marked V8_DEPRECATE_SOON in https://crrev.com/c/1261936 (part of
M-71).

R=ahaas@chromium.org, ulan@chromium.org

Bug: v8:9810
Change-Id: I64a7937b518dbf2a75361bbbecd514618922d543
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1849523
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64273}
2019-10-14 12:17:02 +00:00
Thibaud Michaud
9be57e86de [wasm][decoder] Update merge values for one-armed if blocks
R=ahaas@chromium.org

Change-Id: Iea0fe775eb8c101200fe41e5e188bbdc85c03df7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1856000
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64272}
2019-10-14 11:17:00 +00:00
Michael Starzinger
47f3a53f70 [wasm] Fix bogus uses of {WasmGraphBuilder::Buffer}.
With exception handling enabled new call paths open up, which will
perform environment merging while a "call" or "call_indirect" is
currently being emitted. This will lead to double-use of the buffer
returned by calls to {Buffer} or {Realloc}. In general we should
transition away from this optimization to safer constructs such as
{base::SmallVector} to avoid such bugs.

R=clemensb@chromium.org
TEST=mjsunit/regress/regress-9832
BUG=v8:9832

Change-Id: I4c862ac1bc7dc34ad62279c82f6414153e8cbddb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1856006
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64271}
2019-10-14 09:32:37 +00:00
Tobias Tebbi
e58cd93543 [torque] fix unused code errors for code used in asserts
The assert code gets put into an unreachable block in release builds
to make sure it's type-checked and torque knows the code it contains is
used, but still it doesn't emit actual machine code.

Bug: v8:7793
Change-Id: I580fdd7ac059e0dbe85283fd35c3038634a7228e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1857226
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Auto-Submit: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64270}
2019-10-14 09:21:07 +00:00
Maya Lekova
31da5d197a [turbofan] Analysis of the broker Refs distribution
This analysis shows the number of used/unused refs
as well as their by-type distribution and outputs the broker zone
memory. It introduces a new flag --trace-heap-broker-memory.

Doc: https://docs.google.com/document/d/1oUMxlC2YbficEVkQ1X8TK9WNCWRmLqzDRFy4z3cJsII/edit#heading=h.3sde9siqk2yw

Bug: v8:9720
Change-Id: I4fafc225134d0548e976ce00d67bd5cabeda60c3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1849526
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64269}
2019-10-14 08:10:05 +00:00
Michael Achenbach
4a1a23f093 [test] Skip slow tests
TBR=gsathya@chromium.org
NOTRY=true

Change-Id: I6ddb04fe4aec3596bfc70170310745924909de52
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1857222
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64268}
2019-10-14 07:37:15 +00:00
Michael Achenbach
9a035110d4 [test] Fix test-skip config
NOTRY=true
TBR=gdeepti@chromium.org

Bug: v8:9845
Change-Id: I973521ae0d1fc3706c23f664e47962ac29e0196c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1857223
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64267}
2019-10-14 06:59:24 +00:00
v8-ci-autoroll-builder
754cdc6af1 Update V8 DEPS.
Rolling v8/build: 34b1290..4250046

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

Change-Id: I774107b9e6408832b63d9171e26a3dfbf6231f79
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1857432
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@{#64266}
2019-10-14 03:19:15 +00:00
v8-ci-autoroll-builder
af86670a48 Update V8 DEPS.
Rolling v8/build: f48946c..34b1290

Rolling v8/third_party/depot_tools: 2cbae8a..5abb9b7

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

Change-Id: Ia24eb083291276b5f4e8a2535bb16e21204ee05e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1857430
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@{#64265}
2019-10-13 03:32:23 +00:00
Michael Achenbach
ae1c62a8ef Whitespace change to test bots
TBR=santa

Change-Id: I32f9eaa4006c235064d077de47cf7ae48f881502
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1857220
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64264}
2019-10-12 16:27:42 +00:00
David Carlier
1b94fcac4d Small fixes for OS::SignalCodeMovingGC on OpenBSD
This patch stores the result of sysconf() in a long integer and
checks the result of Free().

Change-Id: If77e46a2f188e6bc36ef2e98eac36bf7a7d67dff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1855942
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64263}
2019-10-12 08:51:42 +00:00
v8-ci-autoroll-builder
da34e54e2e Update V8 DEPS.
Rolling v8/build: b68f5d6..f48946c

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/788d15f..1550399

Rolling v8/third_party/depot_tools: 8e57b4b..2cbae8a

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

Change-Id: I6f7895a5b3de6384eb0f6156b53f3945aa0667f7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1857426
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@{#64262}
2019-10-12 03:41:12 +00:00
Zhang, Shiyu
4693fdf9b7 [runtime] Add fast path for ConvertToKeysArray
... for the case we haven't seen any elements on the entire prototype chain.

Contributed by tao.pan@intel.com

Change-Id: Ied7d1a918b545e71d94ab1521bf0d233ea15cfce
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1848960
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com>
Cr-Commit-Position: refs/heads/master@{#64261}
2019-10-12 02:12:11 +00:00
Deepti Gandluri
568d510083 [test262] Skip failing related-year test on android
Bug: v8:9845
Change-Id: I638f9bc41023cd4faef46dcafe646c13f3e14573
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1857208
Reviewed-by: Frank Tang <ftang@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64260}
2019-10-11 23:51:11 +00:00
Ng Zhi An
8069c8c481 [cleanup] Change scratch to temp simd register
This requires a change to instruction selector to UseUnique so that it
does not shadow the temporary register.

Bug: v8:9810
Change-Id: Iaceadbc39f0c51a92c2a73c4b1097d49a7397876
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1850614
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64259}
2019-10-11 23:14:31 +00:00
Seth Brenith
8c7ae31456 [torque] Generate instance types
Design doc:
https://docs.google.com/document/d/1ZU6rCvF2YHBGMLujWqqaxlPsjFfjKDE9C3-EugfdlAE/edit

Changes from the design doc:
- Changed to use 'class' declarations rather than 'type' declarations
  for things that need instance types but whose layout is not known to
  Torque. These declarations end with a semicolon rather than having a
  full set of methods and fields surrounded by {}. If the class's name
  should not be treated as a class name in generated output (because
  it's actually a template, or doesn't exist at all), we use the
  standard 'generates' clause to declare the most appropriate C++ class.
- Removed @instanceTypeName.
- @highestInstanceType became @highestInstanceTypeWithinParentClassRange
  to indicate a semantic change: it no longer denotes the highest
  instance type globally, but only within the range of values for its
  immediate parent class. This lets us use it for Oddball, which is
  expected to be the highest primitive type.
- Added new abstract classes JSCustomElementsObject and JSSpecialObject
  to help with some range checks.
- Added @lowestInstanceTypeWithinParentClassRange so we can move the new
  classes JSCustomElementsObject and JSSpecialObject to the beginning of
  the JSObject range. This seems like the least-brittle way to establish
  ranges that also include JSProxy (and these ranges are verified with
  static assertions in instance-type.h).
- Renamed @instanceTypeValue to @apiExposedInstanceTypeValue.
- Renamed @instanceTypeFlags to @reserveBitsInInstanceType.

This change introduces the new annotations and adds the ability for
Torque to assign instance types that satisfy those annotations. Torque
now emits two new macros:
- TORQUE_ASSIGNED_INSTANCE_TYPES, which is used to define the
  InstanceType enumeration
- TORQUE_ASSIGNED_INSTANCE_TYPE_LIST, which replaces the non-String
  parts of INSTANCE_TYPE_LIST

The design document mentions a couple of other macro lists that could
easily be replaced, but I'd like to defer those to a subsequent checkin
because this one is already pretty large.

Bug: v8:7793
Change-Id: Ie71d93a9d5b610e62be0ffa3bb36180c3357a6e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1757094
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64258}
2019-10-11 22:37:22 +00:00
Johannes Henkel
844cf4d8a8 [DevTools] Roll inspector protocol (v8)
New rev: a14dad30f0e5b0fc05911856d5a20b1ffe89fd9b

Change-Id: I92a70bb8e5fef13e7422d609d3899ea1092def8c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847785
Auto-Submit: Johannes Henkel <johannes@chromium.org>
Reviewed-by: Alexei Filippov <alph@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64257}
2019-10-11 21:22:31 +00:00
Ng Zhi An
727668298e [wasm-simd] Implement memory tracing for kSimd128 data types
Increase the embedded vector size to 91 as that is the max size needed to print
a s128 as a 32x4.

- max value of uint32_t has 10 digits in decimal, 1 for a potential sign,
  3 spaces in between 4 of them -> 3 + 4 * 11 = 47
- max value of uint32_t has 8 digits in hex, 3 spaces in between -> 3 + 4 * 8 = 35
- the prefix "v128:" -> 5
- " / " to separate the decimal and hex representation -> 3
- null byte

47 + 35 + 5 + 3 + 1 = 91

Bug: v8:9754
Change-Id: I153c30738fa8862b44fb5103cbe62ea0bcea9718
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1814885
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64256}
2019-10-11 20:45:21 +00:00
Frank Tang
4c1e09a4e9 [Intl] Only set HourCycle if needed
* Change the logic to reflect the spec change of
  https://github.com/tc39/proposal-intl-datetime-style/pull/37/
* Move enum value of kUndefined to 0 to make unset behavior the same as
  kUndefined.
* Change the expectation of existing tests
* Additional tests - https://github.com/tc39/test262/pull/2385

Bug: v8:9826
Change-Id: Ic437b5f6414aa641ae73766d8c5fd5b9d352a230
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1846722
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64255}
2019-10-11 20:44:17 +00:00
Robert Sesek
a2cf979020 Switch base::Semaphore to use dispatch_semaphore_t on Mac.
The dispatch_semaphore_t is a higher-level, more-efficient semaphore
primitive if the cross-process capabilities of semaphore_t are not
needed.

Bug: chromium:1012386
Change-Id: I9cc6f025f00159f9424c054a3395542b9db00b89
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1848211
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64254}
2019-10-11 20:43:11 +00:00
Frank Tang
f5dac714ad Fix crash in creating NumberFormat
setUnicodeKeywordValue doesn't remove unrelated keyword/value pairs
when the locale is too long, which causes NumberFormat to fail when
calling createInstance. Fix this by using LocaleBuilder to add keyword/value
into a new locale instead of removing the keyword.

Also see https://unicode-org.atlassian.net/browse/ICU-20862

Bug: chromium:1012579
Change-Id: I0f664f60dad8fe786443c8ca8b21ea43323cbf49
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1855586
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64253}
2019-10-11 20:42:06 +00:00
Clemens Backes
0b4e0f8558 [api] Deprecate obsolete wasm methods
The API was marked to be depracated soon in https://crrev.com/c/1847366.
Chromium switched to the new APIs in https://crrev.com/c/1855822.

R=ulan@chromium.org

Bug: v8:9810
Change-Id: I0befb06e180b57ec21ca4c2d56fa8e10a36b0d9e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1856001
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64252}
2019-10-11 20:41:01 +00:00
Igor Sheludko
4391203de5 Revert "[ptr-compr][x64] Temporarily enable pointer compression on x64"
This reverts commit d471ec9fd5.

Reason for revert: Unexpected redness on non-ptr-compr bots.

Original change's description:
> [ptr-compr][x64] Temporarily enable pointer compression on x64
>
> Bug: v8:7703
> Change-Id: Id7858d2d7324670d01836f7acbb952cd99c4a8b7
> Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
> Cq-Include-Trybots: luci.v8.try:v8_linux64_cfi_rel_ng
> Cq-Include-Trybots: luci.chromium.try:fuchsia_x64,linux-rel,mac-rel
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1849522
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64248}

Tbr: verwaest@chromium.org,machenbach@chromium.org
No-Tree-Checks: true
Bug: v8:7703
Change-Id: I841d9722642f75f1277aedd70c4476aee041d946
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1857218
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64251}
2019-10-11 19:57:01 +00:00
Seth Brenith
6d8a7e987b [tools] skip code_space in mkgrokdump
The pointer to the first page of code space is not consistent and
therefore shouldn't be included in the mkgrokdump output.

No-Tree-Checks: true
Bug: v8:9844
Change-Id: I697c34e30e9b67b44e603e92d4bd3c7b81c1af3c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1856511
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64250}
2019-10-11 18:22:59 +00:00
Leszek Swirski
947a124e47 [runtime] Fix CloneObject for all in-place repr changes
Bug: chromium:1012301
Change-Id: I805affc8b18130d9d4de995eed8a905d7fcd4d75
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1856005
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64249}
2019-10-11 16:09:45 +00:00
Igor Sheludko
d471ec9fd5 [ptr-compr][x64] Temporarily enable pointer compression on x64
Bug: v8:7703
Change-Id: Id7858d2d7324670d01836f7acbb952cd99c4a8b7
Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
Cq-Include-Trybots: luci.v8.try:v8_linux64_cfi_rel_ng
Cq-Include-Trybots: luci.chromium.try:fuchsia_x64,linux-rel,mac-rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1849522
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64248}
2019-10-11 15:29:23 +00:00
Ulan Degenbaev
94dc6d2e8f [heap, tsan] Annotate concurrent marking for TSAN
TSAN complains about missing synchronization on access to the page flags
because it does not support and recognize the memory fence we emit after
page initialization.

This adds a TSAN only acquire load to the code accesses page flags
similar to the existing load in MarkObject.

Bug: v8:9842
Change-Id: I34dac308ac1cce1d74a4a1bad95a482abc071595
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1856008
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64247}
2019-10-11 15:12:33 +00:00
Igor Sheludko
1ce9b553b5 [ptr-compr] Update FixedArrayBase::kMaxSize for 31-bit Smi and ptr-compr
When we allocate a large page we write a free space filler of the object's
size which is encoded as a Smi. Previously the 1Gb didn't fit into 31-bit
Smi. In addition, when pointer compression is enabled we should use the
same limitation as we had for 32 bit architectures.

Bug: v8:9767, chromium:1013042
Change-Id: I6e372324417f03977943f18816eaaf49540184ab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1856007
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64246}
2019-10-11 14:56:14 +00:00
Jiayao Lin
c0ed9d1683 Fix unused-but-set-variable building with GCC
When building with GCC8.1, has error: variable ‘kUpperBoundIsMax’,
‘kLowerBoundIsMin’ set but not used [-Werror=unused-but-set-variable]
so, using USE(var) to fix this error

Change-Id: I05133d3cb5843f4c0a4a59591470b0fcaa21f16f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1848852
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64245}
2019-10-11 14:52:04 +00:00
Jakob Kummerow
d509ed53fc Update DescriptorArray and Map to use InternalIndex
This is for consistency and compiler-enforced type safety. No change
in behavior intended.

Change-Id: I31467832ba6c63fd5f97df9fee6221559b283d67
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1852766
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64244}
2019-10-11 14:40:43 +00:00
Igor Sheludko
052206e115 [ptr-compr] Remove overzealous operand check of Compress node
In some cases operand of compress operation may be a decompress node of
different representation. For example, after linearizing of
CheckedTaggedToTagged[Signed|Pointer](value) we will proceed using
|value| node which may have any other tagged representation.

Bug: v8:8977, v8:7703
Change-Id: I3e276511f2c6127b3ecc1fe1cef4f64e7120d027
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1856003
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64243}
2019-10-11 13:59:15 +00:00
Santiago Aboy Solanes
153dedaeff [arm64] Updated poison tests for root movement
The root was moved to the beginning of a 4Gb reservation, which
imapacts codegen https://chromium-review.googlesource.com/c/v8/v8/+/1835548

Since the tests are now passing, removed the SKIP on cctests.

Bug: v8:9820, v8:9706
Change-Id: Icb45e5b078c405aee880bd7f1c333d28acb7c271
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1849527
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64242}
2019-10-11 13:58:06 +00:00
Ulan Degenbaev
e870715fdf [heap] Retry ArrayBuffer backing store allocation after GCs.
This makes allocation of backing stores more robust by perfoming GCs
on allocation failure. The GCs help if there are existing large backing
stores that are retained by dead JSArrayBuffer objects.

Bug: chromium:1008938, v8:9380
Change-Id: Ic80b29214b8843427dfcdd141df71363821afe71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1855998
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64241}
2019-10-11 13:51:05 +00:00
Ulan Degenbaev
77ff0a5566 Refactor construction of [Shared]ArrayBuffers.
The backing store is now propagated to the constructors directly,
instead of being attached after the construction. This ensures that
the backing store is allocated before the array buffer so that we can
trigger GCs on backing store allocation (if allocation fails).

The only exception is builtin where we have to allocate the array buffer
before the backing store to comply with the spec.

Bug: v8:9380
Tbr: verwaest@chromium.org
Change-Id: Ib37db65853f3673dd769368cc3e8b6538ad07ff2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1853444
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64240}
2019-10-11 13:04:45 +00:00
Georg Neis
775e97d8fa Revert "Disable --instruction-scheduling for mksnapshot"
This reverts commit 12b22b5198.

Reason for revert: Experiment finished.

Original change's description:
> Disable --instruction-scheduling for mksnapshot
> 
> This is an experiment to see the memory/performance impact.
> 
> Bug: v8:9775
> Change-Id: I2ae61ae8bb5c6c1c55436e96c4b2d8201cbf4739
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832177
> Reviewed-by: Michael Stanton <mvstanton@chromium.org>
> Commit-Queue: Georg Neis <neis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64062}

TBR=mvstanton@chromium.org,neis@chromium.org

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

Bug: v8:9775
Change-Id: Ife556af5f8c09c25f20756a9b2ac940cb74359e2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1855983
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64239}
2019-10-11 13:01:06 +00:00
cjihrig
5199fb7cae Update postmortem metadata generation script
Update postmortem metadata constants for V8 7.8 in Node.js.

Change-Id: Ia2bf5ef611f4f6d87783b1fd1b340ae42e4a92a0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1849139
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64238}
2019-10-11 12:31:25 +00:00
Dan Elphick
2f1bc98f4e [csa] Tnodifiy builtins-async-iterator-gen.cc
Bug: v8:6949
Change-Id: I6cafec59b063e46d55967b678b209202d0328cd3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1852770
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64237}
2019-10-11 12:26:35 +00:00
Jakob Kummerow
7aa91da56d [elements.cc] Introduce InternalIndex class
instead of plain uint32_t as entry. This provides some type safety,
because the compiler will check that we are not mixing up indexes
and entries. It also paves the way to consistently using size_t for
TypedArray indexes.

Bug: v8:4153
Change-Id: Ie0eb63693c871efda9860d3d288896819868b66a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1852765
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64236}
2019-10-11 11:51:58 +00:00
Joey Gouly
9b6e45e179 [arm64][turbofan] Fold sign extensions and right shifts
Code from ARES-6 Basic:

  ldur w11, [x5, #15]
  asr w11, w11, #1
  sxtw x11, w11

With this CL:

  ldur w11, [x5, #15]
  sbfx x11, x11, #1, #31

This increases performance of Ares6 Basic by ~2% on Cortex-A53.
Also reduces the snapshot by ~2000 instructions.

Change-Id: Ie9801da730f832337306422d2a9c63461d9e5690
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1849530
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
Cr-Commit-Position: refs/heads/master@{#64235}
2019-10-11 10:12:44 +00:00
Dominik Inführ
57cdda9eb4 [heap] Test aborting evacuation with invalidation
When aborting evacuation of a page, the GC also needs to take care
of invalidated objects and recorded slots on the page. Add a test
to ensure that future changes do not break this behavior.

Bug: chromium:1012081
Change-Id: I110db67157e4b8c7fdb4d1061e9df6955b532a70
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1855758
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64234}
2019-10-11 09:37:33 +00:00
Michael Starzinger
0cd2f08238 [builtins] Simplify calls to kCompileForOnStackReplacement.
R=mslekova@chromium.org
BUG=v8:9810

Change-Id: Ia671189b25d4f212887e41a7b2d6a5b028f3c51c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1852771
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64233}
2019-10-11 09:28:03 +00:00
Dan Elphick
651f4cca88 [interpreter] Optimize return bytecodes on arm
Tweaks AdvanceBytecodeOffsetOrReturn so that the sequence of (cmp,beq)+
instructions is converted to (cmp, cmpne+, beq) saving an instruction
for every return bytecode. In reality this just saves a single
instruction.

Bug: v8:9771
Change-Id: I7cf2d5ae27ff5495808792aa4c953b97c2bb5b71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1853246
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64232}
2019-10-11 09:13:23 +00:00
Frank Tang
f156560621 Roll icu
Bug: v8:9812
Change-Id: I6ca086a6efde614e8296c25aafa823349237e988
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1854896
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64231}
2019-10-11 06:58:50 +00:00
v8-ci-autoroll-builder
c4d8f36ec2 Update V8 DEPS.
Rolling v8/build: 42a7475..b68f5d6

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/df24b8a..788d15f

Rolling v8/third_party/depot_tools: 3481902..8e57b4b

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

Change-Id: I36e95d69961f85aa6444e557670a1b9efe2e1ebc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1853587
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@{#64230}
2019-10-11 03:42:08 +00:00
Ng Zhi An
d1f87915f0 Fix loads and stores of s128 for arm
The vst1 and vld1 instruction does a post-increment access. What we
intend is the usual access at (base+offset). This change adds a helper
function that is called for load and stores of s128, which emits the add
instruction to do base+offset, and then change the addressing mode of
the load/store to Operand2_R, which generates the variant of vld1/vst1
without the offset register. This is similar to how kSimd128 values are
loaded/stored in VisitUnalignedLoad and VisitUnalignedStore.

We also remove kSimd128 cases from UnalignedLoad and UnalignedStore,
since it is supported (see A3.2.1 Unaligned Data Access, ARM DDI
0406C.d)

Bug: v8:9746
Bug: v8:9748
Change-Id: I60b987ac58a5eaacd498a940625163484a3dc2db
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1834771
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64229}
2019-10-10 22:25:34 +00:00
Joyee Cheung
0db88a2dd4 [class] stage --harmony-private-methods
Bug: v8:8330
Change-Id: I958f9db0a4f768637ca50b2b19788793236afadf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1854014
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/master@{#64228}
2019-10-10 22:03:03 +00:00
Joyee Cheung
bd7fc1588b Run class-methods-private and class-static-methods-private test262
Bug: v8:8330, v8:9611
Change-Id: Iec4771311a1be0a6d4fc299740c6a965aee6c291
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1854009
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/master@{#64227}
2019-10-10 21:14:33 +00:00
Ng Zhi An
890fc4cd6a [wasm-simd] Implement f64x2 min max for ia32
Bug: v8:9728
Change-Id: I56900b52d37f245cba228ec41a3acbfb7d47363b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1837718
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64226}
2019-10-10 20:40:11 +00:00
Joyee Cheung
7fa12e2a4f [class] fix undefined private name access in computed property keys
This patch implements https://github.com/tc39/proposal-class-fields/pull/269
and makes sure we always throw TypeError when there is invalid private
name access in computed property keys.

Before this patch, private name variables of private fields and methods
are initialized together with computed property keys in the order they
are declared. Accessing undefined private names in the computed property
keys thus fail silently.

After this patch, we initialize the private name variables of private
fields before we initialize the computed property keys, so that invalid
access to private fields in the computed keys can be checked in the IC.
We now also initialize the brand early, so that invalid access to private
methods or accessors in the computed keys throw TypeError during brand
checks - and since these accesses are guarded by brand checks, we can
create the private methods and accessors after the class is
defined, and merge the home object setting with the creation
of the closures.

Bug: v8:8330, v8:9611
Change-Id: I01363f7befac6cf9dd28ec229b99a99102bcf012
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1846571
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64225}
2019-10-10 19:43:01 +00:00