Commit Graph

59749 Commits

Author SHA1 Message Date
Michael Achenbach
e728d90e34 [test] Skip test on fuzzer
R=neis@chromium.org

No-Try: true
Change-Id: I91ebaceb036381f8183b0703ccfed58e1cbbeeb3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1943152
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65257}
2019-11-29 11:03:29 +00:00
Leszek Swirski
48367856b4 Revert "[exceptions] Don't re-request interrupt in InvokeWithTryCatch"
This reverts commit 4ed9d48f34.

Reason for revert: UBSan failure https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/9084

Original change's description:
> [exceptions] Don't re-request interrupt in InvokeWithTryCatch
> 
> This CL changes InvokeWithTryCatch to not re-request the terminate
> execution interrupt, but instead schedule the termination exception.
> This ensures that leaving the outermost TryCatch scope will clear
> the exception, and no interrupt remains.
> 
> Previously, the interrupt request could remain and prevent further
> JavaScript execution even after the TryCatch scope was left.
> 
> Change-Id: I1e603dc822bbcb0def4cf0a898d59cf8d4b9d039
> Bug: chromium:1014415
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871910
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#65255}

TBR=yangguo@chromium.org,sigurds@chromium.org,verwaest@chromium.org

Change-Id: Iedefe5320d8bdc442a87e03698a20daf6a0ebf4f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1014415
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1943149
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65256}
2019-11-29 09:31:58 +00:00
Sigurd Schneider
4ed9d48f34 [exceptions] Don't re-request interrupt in InvokeWithTryCatch
This CL changes InvokeWithTryCatch to not re-request the terminate
execution interrupt, but instead schedule the termination exception.
This ensures that leaving the outermost TryCatch scope will clear
the exception, and no interrupt remains.

Previously, the interrupt request could remain and prevent further
JavaScript execution even after the TryCatch scope was left.

Change-Id: I1e603dc822bbcb0def4cf0a898d59cf8d4b9d039
Bug: chromium:1014415
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871910
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65255}
2019-11-29 08:55:27 +00:00
v8-ci-autoroll-builder
aaa5810f18 Update V8 DEPS.
Rolling v8/build: eeb227e..2fc048c

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/fa0def7..b97d4ce

Rolling v8/third_party/depot_tools: f31cb80..7c62ed6

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

Change-Id: I0fb2bb08bc55ecc83695a5f7aa5bcb7676fb550b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1942916
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@{#65254}
2019-11-29 03:53:16 +00:00
jiepan
e10a30d454 Fix PrintParameter of S8x16Shuffle
The lane indices of S8x16Shuffle will be printed as null-terminated
character array in Operator1's PrintParameter implementation.This patch
add S8x16ShuffleParameter class, override operater<<, print indices as
integer array.

before fix:
Shuffle[\b\t\n^K\f\r^N^O]

after fix:
Shuffle[8,9,10,11,12,13,14,15,0,0,0,0,0,0,0,0]

Change-Id: I421e639f5229d3a5e348868be33f2d8bbfcfd2d6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1922735
Commit-Queue: Jie Pan <jie.pan@intel.com>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Auto-Submit: Jie Pan <jie.pan@intel.com>
Cr-Commit-Position: refs/heads/master@{#65253}
2019-11-29 02:28:26 +00:00
Shu-yu Guo
80fd0b3d8a Fix the receiver when calling parenthesized optional chains
Correctly passing the receiver depends on the Call AST node's type.
Calling a parenthesized optional chain expression is parsed as a Call of
an OptionalChain of a Property.  Currently the computation of the type
does not take optional chains of property loads into consideration, so
calls of parenthesized optional chain expressions always get passed an
undefined receiver.

Bug: v8:10024
Change-Id: I904b0eeca2df30160def674fb32adf821403aef9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1938571
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65252}
2019-11-29 00:44:06 +00:00
Dan Elphick
f57ce0f4c8 [compiler] Ensure source positions collected when required
If source positions are not required when a background compilation task
starts, but then something like profiling is started before the task
finalizes, then logging of the compilation task will crash due to a
missing source position table.

This ensures source positions are collected if source positions are
required during finalization.

R=rmcilroy@chromium.org

Bug: chromium:1022749
Change-Id: Ie83c3d88131a1c1f434274ea9ee52895c6753b49
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1942611
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65251}
2019-11-28 20:14:37 +00:00
Santiago Aboy Solanes
1cfa7b8ce7 [ptr-compr][cleanup] Rename RemoveChangeTaggedToCompressed
git cl upload failed since I needed to do a git cl format. Missed that
and uploaded https://chromium-review.googlesource.com/c/v8/v8/+/1940153
without the rename.

Bug: v8:7703
Change-Id: I26090433af86968357eaeecf3e906a9e824647a5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940260
Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65250}
2019-11-28 18:41:16 +00:00
Hannes Payer
1253141ebc [heap] Make ConcurrentSweepingState an enum class.
Change-Id: I5d98dac3cde530f2bac5ef1239bc0e8805a01f99
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1942609
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65249}
2019-11-28 17:26:17 +00:00
Santiago Aboy Solanes
b26968ec43 [ptr-compr] Consider node ordering for RemoveChangeTaggedToCompressed
Due to the ordering of the nodes to be changed, we might change the
ChangeTaggedToCompressed's input before the ChangeTaggedToCompressed
node itself changes. Then, we need to check for this possibility too.

Bug: v8:7703
Change-Id: I2b453211dc264b509f2ea7c0cf891be50f404009
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1942607
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65248}
2019-11-28 17:06:46 +00:00
Anna Henningsen
ca5b0ec272 [heap] Ensure SyntheticModule is initialized before next allocation
Ensure that all fields of `SyntheticModule` are set before creating
the exports hash table for it, because the latter may trigger
garbage collection, leading to crashes.

This has been causing failures in the Node.js CI over the last weeks,
after making the creating of synthetic modules part of Node’s
startup sequence.

(I am generally not very familiar with this part of the V8
code and there might be a better way, or possibly a way to add a
reliable regression test, that I am not aware of.)

Refs: https://github.com/nodejs/node/issues/30498
Refs: https://github.com/nodejs/node/issues/30648
Change-Id: I32da4b7bd888c6ec1421f34f5bd52e7bad154c1e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939752
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65247}
2019-11-28 16:56:56 +00:00
Jakob Gruber
bb118e5e36 [gasm] Implement ReduceArrayPrototypeMap using the graph assembler
Ports are getting easier now. This one was fairly straightforward.

Bug: v8:9972
Change-Id: I69c0566060523e505e30980cb1d3d9633da976b0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940257
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65246}
2019-11-28 16:38:05 +00:00
Andreas Haas
e6b7d62e6e [wasm] Update wasm spec tests
The bulk-memory tests changed with recent proposal changes: OOB
accesses of size 0 cause traps now.

R=thibaudm@chromium.org
CC=​emcziegler@chromium.org

Change-Id: Id3f74373839434a61d3bf346a12146aa77894a8a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940159
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65245}
2019-11-28 16:02:05 +00:00
Jakob Gruber
87086a1fde [gasm] Add Effect/Control/FrameState wrapper classes
These node/edge kinds don't fit into the heap object type system; add
wrapper classes for them instead. The wrapper class must be explicitly
created, but is implicitly convertible to Node*.

Bug: v8:9972
Change-Id: Ic6c253a95bb5705fb946ee3f35508ea70c9f0070
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940255
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65244}
2019-11-28 15:48:25 +00:00
Jakob Gruber
39b9b26339 [gasm] Type constants and a few more methods
... for convenient TNode access (e.g.: PhiAt, LoadField, LoadElement).

Bug: v8:9972
Change-Id: Ie6f5f204079cf7c84279d1cb015055816f301916
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940254
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65243}
2019-11-28 15:45:49 +00:00
Clemens Backes
a183b8be7c [wasm] Clean up WASM_CALL_INDIRECT macros
Fix a TODO from Ben to change the macro argument order to match the
actual order in wasm code.
After this fix, we can remove the individual {WASM_CALL_INDIRECT[0-5]}
macros and implement them via a common variadic macro.

Also, rename {WASM_CALL_INDIRECT_TABLE0} to {WASM_CALL_INDIRECT_TABLE}.
The name was confusing, because this macro explictly allows to set a
table index different from 0. Thus, just drop the "0" in the name.

The individual test changes were done via a vim macro, to avoid manual
errors.

R=mstarzinger@chromium.org

Bug: v8:10021
Change-Id: I9f0f31511c5c6e20a0b07524bf75fe9cf1598eba
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940265
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65242}
2019-11-28 14:44:06 +00:00
Jakob Gruber
3ec1d59167 [gasm] Strengthen typing
This is an initial (and partial) step towards full typing in graph
assembler. It removes all uses of SloppyTNode, starts to introduce
types in the GraphAssembler base class, and makes lambda function
types (for if- and for-builders) more specific.

Plenty of TODOs remain; e.g. checked casts and complete typing of
GraphAssembler are left to follow-up work.

Bug: v8:9972
Change-Id: I780adf83b53ad76beda4726960d95ab6df13e2ce
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940476
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65241}
2019-11-28 14:22:26 +00:00
Georg Neis
9ac62c4dcc Introduce %IsBeingInterpreted
A call to this intrinsic will produce true in the interpreter and false
in optimized code. This is useful for writing tests.

Change-Id: I64d06ed062027e723eca82d6f879202244f21fdf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939750
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Georg Neis <neis@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65240}
2019-11-28 14:20:45 +00:00
Milad Farazmand
5115bea224 [csa] Fix unmatching argument signedness on ComputeSeededHash
CodeStubAssembler::ComputeSeededHash is passing key as Int32 to
ComputeSeededIntegerHash, but ComputeSeededIntegerHash only accepts
Uint32 value.
This could cause problems on s390 and ppc because GCC expects any
value less than 8 bytes sign/zero-extending to 64-bits by the caller,
therefore, the static cast from uint32->uint64 will be treated as
no-op (expecting zero-ext instead), which leads to unexpected
behaviors.

Change-Id: Icd1eecaea1415e36c0c13eef513ff69cc418f247
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940209
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#65239}
2019-11-28 14:11:45 +00:00
Michael Starzinger
5d272cf847 [wasm] Remove obsolete {Builtins::IsWasmRuntimeStub}.
The last use of the predicate in question was to switch builtins that
implement WebAssembly runtime stubs to use hard aborts instead of normal
aborts like other builtins. This is no longer needed since the builtins
in question are embedded and no longer copied into WebAssembly modules.

This also allows to move the {WASM_RUNTIME_STUB_LIST} macro out of the
builtins-defintions.h file and into the wasm-code-manager.h file.

R=clemensb@chromium.org
BUG=v8:10021

Change-Id: Ib42d3731fc92df378cfce39d39e7fbdbbf722937
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940266
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65238}
2019-11-28 14:02:15 +00:00
Clemens Backes
3bbadd008b [api] Remove deprecated wasm type and methods
They have been deprecated in v7.9, hence they can be removed in v8.0.

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

Bug: v8:10021
Change-Id: Ic21c5ee5703b548ddcca2ffeba6c583715d3fbd3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864947
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65237}
2019-11-28 13:55:15 +00:00
Michael Starzinger
d03802c6d2 [wasm] Use checked casts for builtins where possible.
This makes sure that proper checked casts (i.e. {CAST} instead of the
unsafe {UncheckedCast} before) are used for all WebAssembly runtime
stubs. This is possible because the corresponding builtins are embedded
and hence can use proper assertion mechanisms.

R=clemensb@chromium.org
BUG=v8:10021

Change-Id: I344ae8ba7dd4c5d3f5dc2467f7d58b93517d9af7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940264
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65236}
2019-11-28 13:49:55 +00:00
Milad Farazmand
5b156c5548 PPC/s390: [Liftoff] Test deterministic compilation
Port a0b1a9cd10

Original Commit Message:

    This adds a few tests that test that the output of Liftoff is
    deterministic.
    These tests will be extended to test the debug side table in follow-up
    CLs.

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

Change-Id: I3e3391afa73f93298d6aff47aecb8ae1e2299bd3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940208
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#65235}
2019-11-28 13:48:36 +00:00
Clemens Backes
595d5a4b4a [wasm] Modernize and simplify WasmInstanceNativeAllocations
Use {std::unique_ptr} instead of raw {malloc}ed memory. This increases
readability and memory safety significantly. The only downside is that
we cannot use {realloc} any more (there is no C++ replacement for that),
but that should not be noticeable.

Drive-by: Make fields private.

R=mstarzinger@chromium.org

Bug: v8:10021
Change-Id: Ie99d61fe136fc18a07aa45f38a5a9b6542308504
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940261
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65234}
2019-11-28 13:37:15 +00:00
Jakob Gruber
d39ba102ee [gasm] Implement ReduceArrayPrototypeReduce using the graph assembler
Very similar to the recent ArrayPrototypeForEach port, this moves the
Reduce reduction, which previously operated directly on the graph, to
graph assembler.

Nothing too interesting here, but it's becoming clearer that we will
need more flexible Branch (multiple merge values) and If (a `break`
mechanism) handling in the future.

Bug: v8:9972
Change-Id: Ic48c85305ba721a9a43c67f7ad13c60da310487e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1934329
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65233}
2019-11-28 12:14:29 +00:00
Peter Marshall
dc3a90be6c [debug] Revert to old line number behavior for new Function()
Reverting https://chromium-review.googlesource.com/c/v8/v8/+/1741660

This fixed one bug but caused a lot of others and on balance I think
reverting it is the lesser evil.

This also fixed generator-relocation.js because
(function*(){}).constructor is the function constructor and we try to
set a breakpoint on line 3.

Bug: chromium:109362, chromium:1028689
Fixes: v8:9721
Change-Id: I1bfe6ec57ce77ea7292df91266311f5c0194947e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940259
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65232}
2019-11-28 12:01:39 +00:00
Dan Elphick
c8704891be [api] SharedMemoryStatistics now reports RO-Heap stats
If V8_SHARED_RO_HEAP is set, then GetSharedMemoryStatistics now reports
the size of RO_SPACE. Additionally size values for RO_SPACE are zeroed
in the per-isolate Heap and Space stats.

Bug: v8:7464
Change-Id: I2d6843c001b55974460d1df034f08d1ed5b0d8da
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1900459
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65231}
2019-11-28 10:40:29 +00:00
Georg Neis
24710f3e15 [turbofan] Remove invalid DCHECK about result hints
https://chromium-review.googlesource.com/c/v8/v8/+/1937147 removed the
DCHECK in ProcessNamedPropertyAccess but forgot to remove the one in
ProcessKeyedPropertAccess too.

Tbr: mvstanton@chromium.org
Bug: v8:7790, chromium:1029198
Change-Id: Ia313c92969fe7d5e559e34995b39834267e6b3fd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940258
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65230}
2019-11-28 10:19:19 +00:00
Michael Starzinger
b969586d1b [turbofan] Un-sloppify {CodeAssembler::Return} methods.
R=tebbi@chromium.org
BUG=v8:10021

Change-Id: I39052fa22ea90b392a36e7841f8586c19c8ca9cf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940156
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65229}
2019-11-28 10:14:39 +00:00
Clemens Backes
12e06cd4eb [wasm] Over-reserve native allocations for function table
We implement exponential growing of the native allocations by always
growing at least by the old size. This speeds up use cases that grow a
table incrementally (e.g. by 1).

R=mstarzinger@chromium.org
CC=ecmziegler@chromium.org

Bug: v8:10018
Change-Id: I580ecf1ac87f793ff4a34ba45a86ae599eb3e6f7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939452
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65228}
2019-11-28 10:10:09 +00:00
Santiago Aboy Solanes
7a28ee82ed [ptr-compr] Add ChangeTaggedToCompressed case to DecompressionOptimizer
Even though they don't generate any code, it breaks some pattern
matching when these nodes are present (e.g comparisons with compressed
heap objects).

Bug: v8:7703
Change-Id: I9670c2b4e85b1635061b16d4b125de9ff51fd403
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940153
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65227}
2019-11-28 09:51:50 +00:00
David Carlier
4eee88051b libsampler fix register calls for FreeBSD
Those fields are incorrect in FreeBSD.
Upstreaming local FreeBSD patches.

Change-Id: I28cf6dbec1d5e4d26e62dd9a0d78d039c3e36cdb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906374
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65226}
2019-11-28 09:42:39 +00:00
Michael Starzinger
4e9ac5066c [turbofan] Remove unsafe {CodeAssembler::ReturnRaw}.
This removes the aforementioned untyped method and switches all users to
the typed TNode<> version. Those versions now contain proper checks to
compare the static information against the return count and types stored
in the call descriptor.

R=leszeks@chromium.org
BUG=v8:10021

Change-Id: I393ea6211babc100e007fb1678877d36efa7bbf7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939753
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65225}
2019-11-28 09:39:52 +00:00
Zhang, Shiyu
5253d7bf15 [runtime] Cache prototype chain enumerable keys in PrototypeInfo
This CL adds a prototype_chain_enum_cache to cache the enumeration of a
prototype and its entire chain on the PrototypeInfo. It can improve for-in
performance via simply merging the receiver enumeration with this cache.

It improves the score of JetStream2-tagcloud-SP case by ~9% on IA Chromebook.

Contributed by tao.pan@intel.com

Change-Id: Ib40bfe41e772672337155584672f06fa1ba1e70d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1870844
Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65224}
2019-11-28 04:32:08 +00:00
v8-ci-autoroll-builder
1d895572c7 Update V8 DEPS.
Rolling v8/build: 5fafe92..eeb227e

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/fec12b8..fa0def7

Rolling v8/third_party/depot_tools: 34267f8..f31cb80

Rolling v8/third_party/instrumented_libraries: 8c512f2..4dca59c

Rolling v8/tools/clang: 4d65f00..05979d8

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

Change-Id: Id69c231e8af78181690ec92abeb1159f21e9da70
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1941369
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@{#65223}
2019-11-28 03:54:37 +00:00
Joshua Litt
fedc6ad0d1 Revert "[regexp] Stage match indices."
This reverts commit bd9efe1fd1.

Reason for revert: clusterfuzz
Bug: chromium:1029174

Original change's description:
> [regexp] Stage match indices.
> 
> Bug: v8:9548
> Change-Id: Id6be43433b12733e39db712559715ba30e681059
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1935207
> Commit-Queue: Joshua Litt <joshualitt@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#65218}

TBR=adamk@chromium.org,jgruber@chromium.org,joshualitt@chromium.org

Change-Id: I098385e2dcebc7bfacd91312bcebfdb889b3d0ca
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:9548
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1941137
Reviewed-by: Joshua Litt <joshualitt@chromium.org>
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65222}
2019-11-27 23:35:22 +00:00
Dan Elphick
cef8ae2483 [compile] Collect RuntimeCallStats for AssembleCode
First this plumbs RuntimeCallStats from the OptimizingCompileDispatcher
down through to PipelineCompilationJob which stashes the
RuntimeCallStats on the PipelineData.

Adds new RCS thread-specific counters: OptimizeAssembleCode and
OptimizeBackgroundAssembleCode which are used in
PipelineImpl::AssembleCode.

Bug: v8:10006
Change-Id: Ieef6d32afddf4b0760e204010b09a85dfec92cf3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1926030
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65221}
2019-11-27 19:06:18 +00:00
Georg Neis
5a5d7d182f [turbofan] Add missing data to the serializer
The serializer was missing the opportunity to process calls later
constructed by JSNativeContextSpecialization::InlinePropertySetterCall
and InlinePropertyGetterCall. Added a test to ensure we're not missing
the data anymore.

This drops the "Missing data" warnings when running ARES-6 from 1044
to only 12.

Bug: v8:7790
Change-Id: Ic4b8a4cb2ac3927371b75f22de011b9957502319
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1937147
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65220}
2019-11-27 17:57:27 +00:00
Johannes Henkel
ce3ce2f66d [DevTools] Roll inspector_protocol (V8) (strtod)
New revision: 7a44a37f66b58358dd8ab85ccde1998fafa95e53

Upstream review:
https://chromium-review.googlesource.com/c/deps/inspector_protocol/+/1899564

Previously, we used a wrapper library, v8-inspector-protocol-encoding.h
to inject the string<->number conversion into the cbor parser. This
meant that the unittests, in
third_party/inspector_protocol/crdtp/json_test.cc inadvertently did
not run with the same string<->number conversion code. Thus, we missed
that the production implementation would return INF for out of range
double literals, as opposed to rejecting the incoming JSON.
When switching the library to the build dependency on json_platform_v8.cc
as it's in this change, the test immediately failed which made it
trivial to fix the implementation.

Old implementation:
https://chromium-review.googlesource.com/c/v8/v8/+/1913424/6/src/inspector/v8-inspector-protocol-encoding.cc

New implementation (checks std::isfinite):
https://chromium-review.googlesource.com/c/v8/v8/+/1913424/6/third_party/inspector_protocol/crdtp/json_platform_v8.cc

Change-Id: Ia48fe1f4e359eea47d0ede9ceadea1fd635292e0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1913424
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65219}
2019-11-27 17:35:47 +00:00
Joshua Litt
bd9efe1fd1 [regexp] Stage match indices.
Bug: v8:9548
Change-Id: Id6be43433b12733e39db712559715ba30e681059
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1935207
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65218}
2019-11-27 17:03:47 +00:00
Georg Neis
6b395d5a5d [turbofan] Rename FunctionBlueprint to VirtualClosure
... in line with VirtualContext and VirtualBoundFunction.

Bug: v8:7790
Change-Id: I454048ab4ddc192780a09017b8b47caf60386098
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940247
Auto-Submit: Georg Neis <neis@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65217}
2019-11-27 16:55:47 +00:00
Joshua Litt
1b594a295f Revert "[names] Fix some test262 name tests to conform with spec changes"
This reverts commit 48c9ca4462.

Reason for revert: Possible clusterfuzz issues
Bug: chromium:1028952

Original change's description:
> [names] Fix some test262 name tests to conform with spec changes
>
> In order to reflect web reality, TC39 has made some slight changes to
> name descriptors, see https://github.com/tc39/ecma262/pull/1490 for
> details. V8 was mostly already in compliance with these changes, but
> ThrowTypeError and anonymous classes needed some slight changes.
>
> Bug: v8:9646
> Change-Id: I163238954938f0c005e3adbc61b90498e01436da
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1764622
> Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
> Commit-Queue: Joshua Litt <joshualitt@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#63373}

TBR=gsathya@chromium.org,joshualitt@chromium.org

Bug: v8:9646
Change-Id: I06dd5527d30052d9c9dfc45a2862be930274aba7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939948
Reviewed-by: Joshua Litt <joshualitt@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65216}
2019-11-27 16:02:27 +00:00
Zhao Jiazhong
cd674a13da [mips64][turbofan][ptr-compr] Optimize Smi Tagging for 31 bit smis
port edd50ad https://crrev.com/c/1924355

Original Commit Message:

  In both ChangeIntPtrToSmi and ChangeInt32ToSmi we can use bitcasts
  instead of change nodes for Smi Tagging, when we are using 31 bit
  smis in 64 bit architectures with pointer compression enabled.

  In ChangeIntPtrToSmi we can ignore the truncation as well.

  Updated DecompressionOptimizer to match the new pattern.

Change-Id: I309e6c7ba671499f721149e1ea1c8e153fe3b2ef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939028
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65215}
2019-11-27 15:56:07 +00:00
Joshua Litt
d442c4310e [replaceAll] Fix DCHECK hit in runtime with replaceAll.
Bug: chromium:1028475
Change-Id: I0101930e01d41b0f29fa28a257e3dc720069faff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1936835
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65214}
2019-11-27 15:53:27 +00:00
David Carlier
0aee27f5f7 Porting icache generation for ARM to FreeBSD
Adaptation coming from the ports for upstream purposes.

Change-Id: Ia1d0d6dabfd10d5840084bb90814c33ea9fb6aa8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906373
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65213}
2019-11-27 15:44:17 +00:00
Ulan Degenbaev
4a5a1daae6 [heap] Unify draining of the main thread marking worklist
This removes the marking worklist draining loop from IncrementalMarking
and makes it use the one of MarkCompactCollector.

Bug: chromium:973627
Change-Id: I226b4b45be7d542a82bba20162ad210dfb419c39
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940250
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65212}
2019-11-27 15:34:07 +00:00
v8-ci-autoroll-builder
1bde17ce4a Update V8 DEPS.
Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/1ef02be..fec12b8

Rolling v8/third_party/depot_tools: 341d41b..34267f8

Rolling v8/third_party/instrumented_libraries: b627b3e..8c512f2

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

Change-Id: Iebb343ff9117ecf7377b7c4db9073807f44b6779
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939745
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@{#65211}
2019-11-27 15:18:37 +00:00
Clemens Backes
a15afd7786 [wasm] Grow table entries exponentially
In order to implement {dlsym} like functionality, toolchains might
generate code that grows the table by one element at a time (e.g.
Emscripten currently does that). To improve performance in such a case,
we over-allocate the backing store of the {WasmTableObject}. Whenever
the backing store grows, it grows at least by the old size of the table.
This ensures exponentially growth, avoiding too many re-allocations.

R=mstarzinger@chromium.org
CC=​ecmziegler@chromium.org

Bug: v8:10018
Change-Id: I502d590a89f7804363938a157b7ed2189283227a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939051
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65210}
2019-11-27 15:16:37 +00:00
Liviu Rau
fad8039ff1 Whitespace
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I0b0ab62625b69c3baa88d0b9850f946b901f31d5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939456
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65209}
2019-11-27 14:49:29 +00:00
Yang Guo
866621dd16 Deprecate SnapshotCreator::AddTemplate
BUG: v8:7463

Change-Id: I75e81aa78ce2cd75ab4e393ffaec614da6e2bf7b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939708
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Yang Guo <yangguo@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65208}
2019-11-27 14:05:16 +00:00