Commit Graph

59420 Commits

Author SHA1 Message Date
Ross McIlroy
081114b5db [TurboProp] Use GraphAssembler to track effect/control in linearizer.
Updates the EffectControlLinerizer to feed all nodes it processes
through the GraphAssembler. This is required to enable the GraphAssembler
to maintain the schedule for TurboProp, but also means we can avoid
keeping track of the current effect and control nodes in the
EffectControlLinearizer and use the GraphAssembler for that instead.

Also modifies EffectControlLinearizer to avoid accessing the basic block
while lowering nodes, since a basic block updating GraphAssembler could
modify the current block. Once lowered, we finalizes GraphAssembler to
provide the updated basic block for which the original control should be
processed.

BUG=v8:9684

Change-Id: Ibe7f396e15f8bebf35b9c50d56c245cbc92547f5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1842453
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64528}
2019-10-23 20:45:40 +00:00
Mike Stanton
7ebde180b6 [Torque] Eliminate unnecessarily unique namespaces for more builtins
Specifically string, object, proxy & regexp.
With this CL, the pattern is removed from all torque files.

R=tebbi@chromium.org

Change-Id: Ifcc1efda6053df8f02fc730825055f6cd5644e84
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873691
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64527}
2019-10-23 20:44:10 +00:00
Frank Tang
a1f148385b Reland "[Intl] Ship calendar and numberingSystem options"
This is a reland of 5d57f4e143

Breakage addressed by
https://chromium-review.googlesource.com/c/chromium/src/+/1874491

Original change's description:
> [Intl] Ship calendar and numberingSystem options
>
> Ship the "calendar" and "numberingSystem" options for
> Intl.DateTimeFormat (both options) and Intl.NumberFormat (only the later
> one) and support other calendar. Also consider the calendar while
> choosing calendar pattern.
>
> I2L: http://shorturl.at/bgkAH
> I2S: http://shorturl.at/nuKUV
>
> Flags: --harmony-intl-add-calendar-numbering-system
>        --harmony-intl-other-calendars
>
> API owner approvals: chrishtr@ yoav@yoav.ws bratell.d@gmail.com
>
> Plan to land into m80 tree and only merge after 10/17 m79 branch off.
>
> Bug: v8:9154, v8:9155, v8:9320
> Change-Id: Ifa209919a40db60465f99405f3620a3b73b10204
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1838436
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64437}

Bug: v8:9154, v8:9155, v8:9320, chromium:1016909
Change-Id: Ie8eac6283042cb66fc4a98fd2230385c068fa759
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874089
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64526}
2019-10-23 19:56:50 +00:00
Deepti Gandluri
2599d3cc20 [wasm] Fix incorrect check for growing shared WebAssembly.memory
Bug: chromium:1010272
Change-Id: Ieff61089255ee088fad45f15a0f1a8f93eeec94b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1869077
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64525}
2019-10-23 18:14:50 +00:00
Ng Zhi An
db579b2ed4 Fix palignr immediate disasm
The immediate value was incorrect and-ed with 3.

Also, for palignr, if the immediate is larger that 32
(for 128-bit) or 16 (for 64-bit), it produces a zero result.
In the case of disasm, I don't think we need to do anything.

Change-Id: I258fd16fbe57fa7e00ab306d0fbf1b1b73950566
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876660
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64524}
2019-10-23 17:55:20 +00:00
Irina Yatsenko
845f06338d Race between crashkeys for collecting heap dumps
Crashkeys are static and non-refcounted, so when one thread clears
a crashkey, it affects all other threads. This means, we cannot set
them in parallel running jobs such as ScavengePage. This change moves
the crashkey about heap collection up the stack into the main thread.

Change-Id: I28f16eaadd9b122c06a68d1d4207f27319994509
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874384
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Irina Yatsenko <irinayat@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#64523}
2019-10-23 17:14:09 +00:00
Milad Farazmand
642bffa07f PPC: [turbofan][ppc] Simplify {CallDescriptor::HasFunctionDescriptor}.
Port 5e7de6aa54

R=mstarzinger@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:9872
LOG=N

Change-Id: I2d2048643a4aba82b2f0e368afcf88c7e629c3d8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876510
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64522}
2019-10-23 17:13:04 +00:00
Igor Sheludko
495a8ed4b2 Revert "[diagnostics] Adapt printing logic for huge TypedArrays"
This reverts commit 9cca9eec90.

Reason for revert: UBSan is not happy

Original change's description:
> [diagnostics] Adapt printing logic for huge TypedArrays
> 
> 1) don't print off-heap TypedArray elements with --mock-arraybuffer-allocator
> 2) print integer HeapNumbers with max precision
> 
> Bug: v8:4153
> Change-Id: I4ae00b5044e3a9b2dd641aba0e06496042d6ff76
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1875095
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64520}

TBR=ishell@chromium.org,verwaest@chromium.org

Change-Id: I064efb3ca06cc56fff209bc1c6fb6fb518af4f83
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:4153
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876066
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64521}
2019-10-23 16:41:16 +00:00
Igor Sheludko
9cca9eec90 [diagnostics] Adapt printing logic for huge TypedArrays
1) don't print off-heap TypedArray elements with --mock-arraybuffer-allocator
2) print integer HeapNumbers with max precision

Bug: v8:4153
Change-Id: I4ae00b5044e3a9b2dd641aba0e06496042d6ff76
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1875095
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64520}
2019-10-23 15:38:04 +00:00
Ross McIlroy
0c0042cca7 [TurboProp] Add the ability for GraphAssembler to update basic blocks.
Adds the ability for the GraphAssembler to operate on, and maintain, a
scheduled graph. This will be used by TurboProp to maintain the initial
schedule created before effect-control-linearization, by updating this schedule
during effect-control, select and memory lowering stages rather than doing a
later reschedule.

In order to do this, an internal BlockUpdater is added to GraphAssembler,
which is enabled by passing the schedule to the GraphAssembler. The
GraphAssembler is modified to call into the block updater when nodes are added
and updates the schedule with new basic blocks when new control flow is updated.

BUG=v8:9684

Change-Id: I6d428ad21d869c472bb20f43cc8caf44722f090a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1841355
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64519}
2019-10-23 15:25:54 +00:00
Dominik Inführ
9c8f8fad9a [heap] Remove MemoryChunk::FromAnyPointerAddress
This function was only used for the write barrier since the store
buffer only stored slots and needed a way to get to the object's start.
Now that we insert into the remembered set directly from the write
barrier this isn't an issue anymore: the write barrier knows the
object start.

Change-Id: I701465ea40b7c4ee20404ecbcf3750e5fa6fd219
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876049
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64518}
2019-10-23 14:56:54 +00:00
Michael Achenbach
dfc21ed6be [build] Fix multi-arch build for pointer-compression - part 2
Bug: v8:9899
Change-Id: Ia67d19e4b213db44a62c559a24a29ee6dd687810
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876056
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64517}
2019-10-23 14:44:55 +00:00
Milad Farazmand
8938dff2b0 PPC/s390: [wasm-simd] Implement f64x2 add sub mul div for arm
Port 26afd8f314

R=zhin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I04f0237f608aad0e426cebfca4e8d4e9ff8cd5ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1875391
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64516}
2019-10-23 14:39:34 +00:00
Igor Sheludko
ab55754467 [builtins] Use uintptr for iteration in TypedArray builtins, pt.3
The CL fixes the following builtins:
  %TypedArray%.prototype.map

Bug: v8:4153
Change-Id: I1db5716d5044788da8a792e4449d501ac7507823
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876047
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64515}
2019-10-23 14:33:04 +00:00
Igor Sheludko
17d6b5bb64 [builtins] Use uintptr in TypedArray's size computation functions
The size/length limits are still at kSmiMaxValue.

Bug: v8:4153
Change-Id: I6ffda50a3b9f235b97a3718e86df7deadce9f6f8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874346
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64514}
2019-10-23 14:28:04 +00:00
Santiago Aboy Solanes
c195def147 [ptr-compr] Added tagged equality cases to DecompressionOptimizer
Added the opcodes kWord32Equal and kChangeTaggedToCompressed to
DecompressionOptimizer.

Currently  TaggedEqual node generates ChangeTaggedToCompressed
nodes before the Word32Equal inputs. This means we need to also
propagate kOnly32BitsObserved from kChangeTaggedToCompressed.

Bug: v8:7703
Change-Id: I61fee07269696c60e065e1bbfee3a65c1b1537fc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871911
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64513}
2019-10-23 13:53:04 +00:00
Michael Starzinger
00937422fb [turbofan] Make {CallDescriptor} fully immutable.
This changes the way {SaveFPRegsMode} is stored in a {CallDescriptor}.
The value is now encoded in the flags field, similar to all other
boolean properties. It removes the last mutable field from the call
descriptor, making the struct fully immutable.

R=neis@chromium.org

Change-Id: I6bca118c7ce0c5bc77e7aa2fcc6541439bd27b3b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868616
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64512}
2019-10-23 13:49:31 +00:00
Clemens Backes
f30a92e6f2 [wasm] Move global storage accessors out of interpreter
These accessors do not make any use of the interpreter, hence we can
define them on the WasmInstanceObject alone. This will allow to reuse
them for other (non-interpreted) frames.

R=mstarzinger@chromium.org

Bug: v8:9676
Change-Id: Iff8b665a4c25581b934c25b66a13cebe044cb02c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1875097
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64511}
2019-10-23 12:39:34 +00:00
Michael Achenbach
23bd735394 [build] Fix multi-arch build for pointer compression
Bug: v8:9899
Change-Id: I7509b376b33ab7a36106ed3af322ec4058fcdcfe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876048
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64510}
2019-10-23 12:27:04 +00:00
Leszek Swirski
fa13871a7d [heap] Introduce OffThreadSpace
Add a new PagedSpace called OffThreadSpace. This space will be used for
off-thread allocation -- it never marks or sweeps, and always expands
into fresh pages. Once allocation completes, this space's pages can be
merged into the old space.

The space is similar to the CompactionSpace, and merging for both is
identical, so we intrduce a new LocalSpace base class that both extend.
They differ in interaction with the sweeper and in how new pages are
acquired.

This patch adds the new space and uses it in a few unittests. Future
work will use it in the main source code.

Bug: chromium:1011762
Change-Id: Ia008cc95c6e1ef1d1e7ae305fa80fbfc1ff4be2d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873690
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64509}
2019-10-23 11:45:48 +00:00
Jakob Gruber
b1c1a81faf [regexp] Expose RegExp::Exec through the API
Previously, embedders had to fetch the 'exec' property off the RegExp
prototype in order to call exec (and such calls involve two
transitions between C++ and JS).

This CL exposes a convenient RegExp::Exec method through the API.

Bug: v8:9695
Change-Id: I57a9174626143d26f2ea34676b8e55fef64932cf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864940
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64508}
2019-10-23 11:23:04 +00:00
Michael Starzinger
5e7de6aa54 [turbofan][ppc] Simplify {CallDescriptor::HasFunctionDescriptor}.
R=neis@chromium.org,miladfar@ca.ibm.com
BUG=v8:9872

Change-Id: Ia8b0da9a6026f7933503ecd9e735d7fc3fdff364
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1869190
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64507}
2019-10-23 11:16:19 +00:00
Igor Sheludko
dec3de8a70 [builtins] Make ToIndex() uintptr index friendly
The new ToIndex() must eventually replace ToSmiIndex().

The CL fixes the following abstract operations:
  GetViewValue(view, requestIndex, isLittleEndian, type)
  SetViewValue(view, requestIndex, isLittleEndian, type, value)

and the following builtins:
  DataView.prototype.getXXX
  DataView.prototype.setXXX

where XXX are all typed elements.

Bug: v8:4153
Change-Id: Ic2f33e91b59426deb0efa28bb4c15253e80a299c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874345
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64506}
2019-10-23 10:57:24 +00:00
Mu Tao
1e256fc3f6 [mips][wasm-simd] Implement f64x2 splat extract replace for mips
Port f22837dbf1

R=xwafish@gmail.com

Change-Id: Iece021bb832618cac0d111639b388d94f7da7028
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868773
Commit-Queue: Mu Tao <pamilty@gmail.com>
Auto-Submit: Mu Tao <pamilty@gmail.com>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64505}
2019-10-23 10:41:35 +00:00
Clemens Backes
b5260f5351 [wasm][cleanup] Remove dead macro
R=mstarzinger@chromium.org

Bug: v8:9810
Change-Id: Ib08647b5d6c4238732eed5a2ed1f1d0eea010076
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1875099
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64504}
2019-10-23 10:35:44 +00:00
Michael Starzinger
d5ef741fe8 [turbofan] Change {InstructionCode} to uint32_t.
The {InstructionCode} is only used to store plain (non-negative) values
of the {ArchOpcode} enum, or additionally encodes {BitField} values. The
underlying base type 'U' of a {BitField} is uint32_t. To avoid all the
numerous implicit conversions between int32_t and uint32_t, this is
changing the {InstructionCode} so that uint32_t is used exclusively.

R=neis@chromium.org
BUG=v8:9872

Change-Id: If64107ad9298011e219b4827735eafb51465beb0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1869193
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64503}
2019-10-23 10:26:09 +00:00
Jakob Gruber
4ba579401a [compiler] Remove StackPointerGreaterThan from pure op list
This operator implicitly reads the stack pointer register and is thus
not pure. This CL removes it from the list of pure operators and
inserts it into the effect chain at its use sites.

Drive-by: Alpha-sort the list in CanAllocate.

Bug: v8:9534
Change-Id: Icf96fb3e308600dbacec3dbfb7386a4f0d0bdc39
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1875098
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64502}
2019-10-23 10:21:17 +00:00
Jakob Gruber
b0fadf7f70 [regexp] Expose RegExp::NewWithBacktrackLimit through the API
Bug: v8:9695
Change-Id: I401a18c84a9ec1af7e14f44004a0788cbfd4a34b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864657
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64501}
2019-10-23 10:14:08 +00:00
Igor Sheludko
b71af5c38a [builtins] Use uintptr as index in String builtins, pt.1
The CL refactors the following builtins:
  String.prototype.startsWith
  String.prototype.endsWith

to use ClampToIndexRange(x, len) instead of NumberMin(NumberMax(x, 0), len).

Bug: v8:8996
Change-Id: I20ab42088168e517840385cc2db435361004d9c0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873702
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64500}
2019-10-23 09:41:39 +00:00
Mu Tao
5958b57ef4 [mips][wasm-simd] Implement f64x2 add sub mul div for mips
Port 26afd8f314

Change-Id: I4033e6bb50166d59679dddd8ba0480b4bc4b821d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874969
Commit-Queue: Mu Tao <pamilty@gmail.com>
Auto-Submit: Mu Tao <pamilty@gmail.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64499}
2019-10-23 09:25:47 +00:00
Clemens Backes
50784597e8 Speed up {MemCopy} and {MemMove} for small sizes
The same change on the {CopyChars} function gave an unexpected 10-20%
speedup on microbenchmarks across platforms (ia32, x64, Atom_x64).
This CL explores whether a similar change generally speeds up {MemCopy}
and {MemMove} (only on x64 for now). If this is the case, we might be
able to carefully extend the same pattern to other platforms and remove
custom assembly implementations without too much regression.

R=leszeks@chromium.org

Bug: v8:9810
Change-Id: Ib9674807b67cd2a463680b97a91ae1b41c3be65b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871607
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64498}
2019-10-23 08:33:07 +00:00
Mu Tao
720961bb39 [mips][wasm-simd] Implement f64x2 sqrt for mips
Port 434f96812f

Change-Id: I9e9cb8b9ca56d5af3b5ffffa5908501c9214752d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874968
Commit-Queue: Mu Tao <pamilty@gmail.com>
Auto-Submit: Mu Tao <pamilty@gmail.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64497}
2019-10-23 08:25:18 +00:00
Jakob Gruber
6f1de28834 [regexp] Add use counters for slow exec and replace calls
These counters track how often the slow path of these two builtins is
hit. Exec is very permissive, its fast-path check doesn't look at the
regexp prototype at all. Replace is strict; any change on the
prototype will trigger the slow path.

Chromium CL: https://crrev.com/c/1875250

Bug: v8:5577
Change-Id: I9807f43829981445b75b5c5d29800cbdac9bc26a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873698
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64496}
2019-10-23 08:06:17 +00:00
Z Nguyen-Huu
4f52630b0a [builtins] Port some RegExp functions to Torque
RegExpPrototypeExecBody, RegExpPrototypeExecBodyWithoutResultFast

Bug: v8:8976
Change-Id: I79f4d3e27baf5ff7aec9538fa463d810dbb75e4e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866957
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64495}
2019-10-23 06:04:40 +00:00
Simon Zünd
6a55a37d3a [Cleanup] Integrate v8_nosnapshot into mksnapshot
This CL integrates the "v8_nosnapshot" source set into the "mksnapshot"
binary. The "mksnapshot" binary is the last use-site after unconditionally
enabling snapshot and embedded builtins.

Bug: v8:8519
Change-Id: I8e737e10a3f7729e18ac71733b811bf399ebf330
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873685
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64494}
2019-10-23 05:57:37 +00:00
Gus Caplan
2205ab3a92 [Torque] port Array.isArray to torque
Bug: v8:9891
Change-Id: I5a9600b44c2363cc9681976e4ed2b86eccf35830
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1869581
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64493}
2019-10-23 05:37:28 +00:00
Mu Tao
331922ffd0 [mips][wasm-simd] Implement v8x16.swizzle for mips
Port a0b95232a9

R=xwafish@gmail.com

Change-Id: I15c385a676e574f36d8c25c6f6294ac344b0af43
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868557
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Mu Tao <pamilty@gmail.com>
Cr-Commit-Position: refs/heads/master@{#64492}
2019-10-23 05:07:12 +00:00
Mu Tao
04368bbbf8 [mips][wasm-simd] Implement f64x2 abs neg for mips
Port afbbfcbe1c

R=xwafish@gmail.com

Change-Id: Iab3a9f32d8bccddcdca8d9a874869e62ae961948
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868558
Auto-Submit: Mu Tao <pamilty@gmail.com>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64491}
2019-10-23 05:06:08 +00:00
Mu Tao
da0ef75fde [mips][regexp] Apply the backtrack limit in jitted code
Port 0089006fc5

Original Commit Message:

    .. similar to how it is applied in the interpreter. We reserve a stack
    slot for the backtrack count, increment it on each backtrack, and fail
    if the limit is hit.

Change-Id: I51879e6cafb3c77d635fc6e84e7e2c5ce3a088e6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873445
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Mu Tao <pamilty@gmail.com>
Cr-Commit-Position: refs/heads/master@{#64490}
2019-10-23 04:42:07 +00:00
v8-ci-autoroll-builder
59c50264f1 Update V8 DEPS.
Rolling v8/build: 996a3e8..e9c43f1

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/0388283..9f6271e

Rolling v8/third_party/depot_tools: 53f9e09..db1e79c

Rolling v8/third_party/icu: 5005010..b51014b

Rolling v8/tools/clang: c5d85f1..aa07e59

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

Change-Id: I52086f4e4c1226e0555dd912b89473e1448cddd4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874828
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@{#64489}
2019-10-23 03:45:26 +00:00
Ng Zhi An
26afd8f314 [wasm-simd] Implement f64x2 add sub mul div for arm
Bug: v8:9813
Change-Id: Idee4daded322731648fe51e75f3b9e8be2dcd0d6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872929
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64488}
2019-10-22 22:19:06 +00:00
Ng Zhi An
0c7b551fc3 Reland "Clean up macros"
This is a reland of 08b26f53c6

Fixed the original crash, by removing a disasm for psllq and psrlq
that is now handled by the macro list.

Original change's description:
> Clean up macros
>
> Move some instruction definitions into sse-instr, which is used to
> generate some disasm tests, so we can remove some cases there.
>
> Bug: v8:9810
> Change-Id: I0615ec823396da08bc5d234cf1dabca6afd3f052
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866965
> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64441}

Bug: v8:9810
Change-Id: I69335a889f5f72b76a79e4e9860835232e6e38a8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872298
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64487}
2019-10-22 21:39:56 +00:00
Mu Tao
d8ba2856f4 [mips]Reland^2 "[runtime] Move Context::native_context to the map"
Port 3cad6bf5d7

Original Commit Message:

    This is a reland of c7c47c68f2.

    This makes TSAN happy in addition to:

    Previously I presumed that the context read from a frame in the profiler was
    a valid context. Turns out that on non-intel we're not guaranteed that the
    frame is properly set up. In the case we looked at, the profiler took a
    sample right before writing the frame marker indicating a builtin frame,
    causing the "context" pointer from that frame to be a bytecode array. Since
    we'll read random garbage on the stack as a possible context pointer, I made
    the code reading the native context from it a little more defensive.

    Bug: v8:9860
    Tbr: ulan@chromium.org, neis@chromium.org, ishell@chromium.org

    Original change's description:
    > [runtime] Move Context::native_context to the map
    >
    > Remove the native context slot from contexts by making context maps
    > native-context-specific. Now we require 2 loads to go from a context to the
    > native context, but we have 1 field fewer to store when creating contexts.
    >
    > Change-Id: I3c0d7c50c94060c4129db684f46a567de6f30e8d
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859629
    > Commit-Queue: Toon Verwaest <verwaest@chromium.org>
    > Reviewed-by: Igor Sheludko <ishell@chromium.org>
    > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
    > Reviewed-by: Maya Lekova <mslekova@chromium.org>
    > Reviewed-by: Georg Neis <neis@chromium.org>
    > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
    > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#64296}

R=xwafish@gmail.com

Change-Id: I6496a8c5be8cbabf48cddc2d59111410f31eb75f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868774
Auto-Submit: Mu Tao <pamilty@gmail.com>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64486}
2019-10-22 18:43:36 +00:00
Milad Farazmand
31756013f1 PPC/s390: [wasm-simd] Implement f64x2 sqrt for arm
Port 434f96812f

R=zhin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I2b374de4d50022e88b240dbad5eddcab8cfe9547
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874085
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64485}
2019-10-22 17:56:26 +00:00
Adam Klein
6c41668e6f Update test/intl OWNERS
Remove inactive contributors (cira and mnita) and add ftang and jshin.

Change-Id: Ibd1e4f11553b78e1cd938a7ce8958fe5341829d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872540
Reviewed-by: Frank Tang <ftang@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64484}
2019-10-22 17:29:36 +00:00
Gus Caplan
7a60f322ef [Torque] port FastConsoleAssert to Torque
Change-Id: Iee27a99a9627d73e10c4c85c31d07a5204808259
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864574
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64483}
2019-10-22 17:22:46 +00:00
Andreas Haas
729d5de6a2 [api] Define TypedArray::kMaxLength in api.cc
Otherwise the value cannot be used in gtests in EXPECT_GT expressions.
The reason is that EXPECT_GT takes values by reference and not by
value, so the declaration in v8.h is not enough.

R=clemensb@chromium.org

Bug: v8:9810
Change-Id: I6f85024d483701fcc65d1ccfc5254dbdbcce16c1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871606
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64482}
2019-10-22 16:57:36 +00:00
Ng Zhi An
434f96812f [wasm-simd] Implement f64x2 sqrt for arm
Bug: v8:9813
Change-Id: Ib78d7506fa8c8b755a8e1feccc5d948834ddc3a6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873106
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64481}
2019-10-22 16:43:36 +00:00
Gus Caplan
bdc0a0ec7c [Torque] port Symbol prototype methods to Torque
Change-Id: I97ccbb29f9d4d92bb2ac20402ff8240632533989
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864572
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64480}
2019-10-22 16:04:22 +00:00
Ulan Degenbaev
10b5e80637 [api] Add v8::BackingStore::IsShared
The new predicate indicates whether the backing store was created for
an ArrayBuffer or a SharedArrayBuffer. It is useful for some embedders.

Bug: v8:9380
Change-Id: I804063bb8c4c17815defd6538ce6a1b32f6a4531
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873689
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64479}
2019-10-22 15:36:42 +00:00