Commit Graph

59519 Commits

Author SHA1 Message Date
Andreas Haas
dc1d0796d5 [turbofan] Optimize verification of switch nodes
I changed the verification algorithm of switch nodes from a quadratic
algorithm to a linear one. On my machine this speeds up the test from
17 seconds to 2 seconds in the x64.optdebug build.

R=mslekova@chromium.org

Bug: v8:9810
Change-Id: I952d3fcc641b4e269b8ebac8f65fe545c6062587
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1905768
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64877}
2019-11-11 11:06:31 +00:00
Tobias Tebbi
1b04772f7f [torque] weak pointer type Weak<T> + port CreateObjectWithoutProperties
Overview:
- Change basic type hierarchy to split Tagged into StrongTagged (= Object) and
  and WeakHeapObject. This enables to emit the right CSA types (Object, MaybeObject).
- The new Weak<T> type encodes a possibly cleared weak bit pattern that
  points to type T if it's not cleared.
- Make TNode<Object> a subtype of TNode<MaybeObject> so that the generated code
  compiles on the C++ side. Drive-by change: simplify a few CSA helpers by using
  MaybeObject as a common supertype of MaybeObject and Object.
- Port CreateObjectWithoutProperties and LoadMapPrototypeInfo.

Bug: v8:7793
Change-Id: I895a6501ce3e287ea8cf4065aaff3a5535245ab4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889870
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64876}
2019-11-11 11:04:46 +00:00
Dan Elphick
3568e4441c [cleanup] Tnodify ExitPoint
Also fixes its uses in interpreter-generator.cc and
accessor-assembler.cc.

Bug: v8:9810
Change-Id: Ie9817f3e53c54588a4ad28c2c98da1a48ac73681
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906571
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64875}
2019-11-11 11:03:41 +00:00
Michael Achenbach
b64c9fb5f4 [build] Add configs for compile-only fuchsia trybot
TBR=tmrts@chromium.org

No-Try: true
Bug: chromium:1021522
Change-Id: I1f5f9bb4f9feb6eae34e62667421a8956c4d007e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906382
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64874}
2019-11-11 10:14:26 +00:00
Jakob Gruber
a178446c56 [build] Add missing deps definition
This fixes MSVC Windows builds that were broken due to a missing deps
definition.

Bug: v8:9954
Change-Id: I19c5112226caadae6a0221acee7bcf19cf0abbc8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906379
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64873}
2019-11-11 09:07:09 +00:00
Jakob Gruber
b3d748a282 [regalloc] Use an adaptive data structure for live sets
Live sets represent sets of live virtual registers at block entry and
exit points. They are usually sparsely populated; for example, a sample
taken from Octane2 shows 80% of sampled live sets with a fill ratio of
10% or less.

Prior to this CL, live sets were implemented as a statically-sized bit
vector. This is fine for low-ish virtual register counts, but becomes
wasteful at higher numbers.

This CL attempts to address this issue through an adaptive
implementation. Small live sets remain bit vectors, while larger sets
switch to a PersistentMap-based implementation. PersistentMap has very
memory-efficient add/remove/copy operations.

Of course, with adaptive data structures we enter the territory of
parameter fiddling. In this case, two parameters are used:
kMaxSmallSetSize controls when to switch implementations, and
kMaxDeletionsBeforePrune controls when pruning (= managing the # of
deleted entries in the map) sets in.

On the (degenerate) test case from the linked bug, the register
allocation zone shrinks from 1008MB to 475MB. For more realistic cases
I expect savings on the order of 10s of KB.

Bug: v8:9574
Change-Id: Id903bbe23f030b418e8d887ef4839c8d65126c52
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1891693
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64872}
2019-11-11 08:58:49 +00:00
Michael Achenbach
1d403ce701 [foozzie] Mock out measureMemory for correctness fuzzing
No-Try: true
Bug: chromium:1023247
Change-Id: I23abb26425d7adcd69d07af906738a69bac8688d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906380
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64871}
2019-11-11 08:57:09 +00:00
v8-ci-autoroll-builder
636e6c9b62 Update V8 DEPS.
Rolling v8/build: e6adad9..789c8f5

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

Change-Id: Ibb2f7b826ec35925c3ddaef2b8549e7cd5a1ce6e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1908650
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@{#64870}
2019-11-11 03:43:24 +00:00
v8-ci-autoroll-builder
ec46af863a Update V8 DEPS.
Rolling v8/build: 184cee3..e6adad9

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

Change-Id: I82f851809195a2137618b58c36932f4fa509e1a1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1908648
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@{#64869}
2019-11-10 03:42:32 +00:00
Zhao Jiazhong
4ec5b79ce2 [mips][wasm-simd] Implement f64x2 comparisons
port b6edadc https://crrev.com/c/1872930

Original Commit Message:

  [wasm-simd] Implement f64x2 comparisons for arm

Change-Id: If0fab2307a7f6da75f27ecd90cef6e15945214dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903290
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#64868}
2019-11-09 22:13:42 +00:00
v8-ci-autoroll-builder
6faaf4cc27 Update V8 DEPS.
Rolling v8/build: 3cf8d94..184cee3

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/f9004ee..56af378

Rolling v8/third_party/depot_tools: 1917f7a..ea1884b

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

Change-Id: I10e6a47cc088ff8e1ed1e74595d2bd1a4ae12301
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906234
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@{#64867}
2019-11-09 03:54:01 +00:00
Ng Zhi An
43244a06c9 [wasm-simd] Implement remaining load_splat for x64
Implements v32x4.load_splat and v64x2.load_splat.

Bug: v8:9886
Change-Id: I18f3b012f9980d258985edf2ff26577fe495eff5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903747
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64866}
2019-11-08 18:07:33 +00:00
Dan Elphick
35addcaaac [heap] Shrink RO_SPACE pages for Immortal immovable objects
Shrink RO_SPACE since it contains Immortal immovable objects and is
otherwise reporting a virtual size of 256KB when only half of that
will ever be used.

Bug: v8:9230, v8:7464
Change-Id: I68c17bb6c4ff12170774bad6a07dbb8b9d49cce1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906207
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64865}
2019-11-08 17:07:33 +00:00
Dan Elphick
66a9dbe87d [cleanup] Tnodify builtins-iterator-gen.cc
Bug: v8:9810
Change-Id: Ie2cba5da240f53f7be7d6aee0426489d972a22a1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906569
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64864}
2019-11-08 16:55:53 +00:00
David Carlier
a494bcfc88 Introducing trap handler support for FreeBSD x64.
Using proper register (RIP) on this platform.

Change-Id: Iaa0a25e328bd82c152db0ef3632523fd7d621020
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1857221
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64863}
2019-11-08 16:46:05 +00:00
Michael Achenbach
b8b8b04c58 [foozzie] Add cpu-feature flags to correctness fuzzer
No-Try: true
Bug: chromium:1021463
Change-Id: I15d45a51b7341b5767d8eb4c16e7d41508a2811b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906568
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64862}
2019-11-08 16:25:13 +00:00
Dan Elphick
9d79c8f849 [builtins] Fix type of exception variable
Exception variables can be Object (e.g. throw 4) so loosen the type from
HeapObject.

Bug: v8:9810
Change-Id: I14600978ed5159b2b661bd09e69ad6d6530553ed
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906566
Commit-Queue: Dan Elphick <delphick@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Auto-Submit: Dan Elphick <delphick@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64861}
2019-11-08 16:14:33 +00:00
Milad Farazmand
5f69bbc233 PPC: Fix the operand used to apply an offset to stack checks
Port: 0591865471

Change-Id: I758bd32868186fd3257f88e2c0eb1179332d52d6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1904851
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64860}
2019-11-08 14:05:33 +00:00
Milad Farazmand
f83b1b3beb [tracing] Fix endianness problem when using booleans
All the data types defined under ArgValue are 8 bytes
expect "bool as_bool". When casting to <uint64_t> under
"tracing/trace-event.h", boolean gets placed on the lower
byte of the memory on LE, and on the higher byte on BE machines.
When using a "Union" to read back the value as a boolean, only
the lower byte of the memory location is read which makes it
fine on LE machines, however the value will not be present on BE
machines.

Using an 8 byte data type as boolean will assure the entire filed
is read instead of only the lower byte.

Change-Id: I0740b9c019588c963a4c7878af60c6df04827141
TBR: petermarshall@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1896835
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64859}
2019-11-08 13:35:41 +00:00
Michael Achenbach
76c57b5630 [numfuzz] Add cpu-features extra flags to numfuzz
This combines flags switching off CPU-features randomly with all
other flags on the numfuzz fuzzers.

In a follow up we can add also other interesting flags for testing
more features.

Bug: chromium:1021463
No-Try: true
Change-Id: Ia27d1b8b82dff2bf497242b30ec0b6ef2dfd722d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1905846
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64858}
2019-11-08 13:00:41 +00:00
Igor Sheludko
e465a15216 [builtins][turbofan] Support huge TypedArrays in %ArrayIteratorPrototype%.next()
Bug: v8:4153
Change-Id: Ieea327828a364ae1934f1a342f361dc68d7bbab6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903433
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64857}
2019-11-08 12:54:23 +00:00
Dan Elphick
501739245c [api] Tweak SharedMemoryStatistics Api
Move the API from Isolate to V8 and add better memory fields.

Bug: v8:7464
Change-Id: Ic82c7c74ac8f20a2f2cb896dc0203fdd0b5d8d5f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1905546
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64856}
2019-11-08 12:29:51 +00:00
Michael Starzinger
bfe1328565 [wasm] Remove runtime call support from Liftoff.
This removes the support to emit runtime calls in Liftoff code and uses
WebAssembly runtime stubs instead. Calls to such stubs are smaller and
more efficient. They also use embedded builtins directly instead of the
on-heap {Code} object trampolines. This also removes the last use of a
runtime call that passes a dynamically loaded CEntry builtin from the
macro assembler.

R=clemensb@chromium.org

Change-Id: I9fa9f3b7a2b66cb76a677b70ce3cee49cb340f0f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903443
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64855}
2019-11-08 11:23:12 +00:00
Clemens Backes
2daa1138e3 [bits] Make bit rotation branchless
A minor optimization to the four bit rotation functions.

Drive-by: Make them constexpr.

R=ahaas@chromium.org

Bug: v8:9810
Change-Id: Ic563310030aa487f976017032291a553705d1ec2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903972
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64854}
2019-11-08 10:50:40 +00:00
Clemens Backes
af608d4bd4 [utils] Remove unused classes and functions
This removes dead classes and functions from utils.h.

R=sigurds@chromium.org

Bug: v8:9810, v8:8912
Change-Id: I8e15600f77b8ccc8ce25b4fd25e6a1b4303ad657
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903969
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64853}
2019-11-08 10:49:37 +00:00
Andreas Haas
08c0abb565 [gm.py] Add wasm-spec-tests and wasm-js as test targets
R=jkummerow@chromium.org

Notry: true
Bug: v8:9810
Change-Id: I3859508de250225b9d8ae322e107079f6dc0c88b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903974
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64852}
2019-11-08 10:00:00 +00:00
Clemens Backes
fa056cd088 [utils] Move {WhichPowerOf2} to base::bits
{WhichPowerOf2} is basically the same as {CountTrailingZeros}, with a
restriction to powers of two. Since it does not use or depend on any v8
internals, it can be moved to src/base/bits.h.
This CL also changes the implementation to use the CTZ builtin if
available, and falls back to popcnt otherwise.

Drive-by: Make it constexpr, and rename to {WhichPowerOfTwo}.

R=sigurds@chromium.org

Bug: v8:9810, v8:8912
Change-Id: I8368d098f9ab1247f3b9f036f1385a38de10cc6a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903966
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64851}
2019-11-08 09:45:50 +00:00
Clemens Backes
2a32d96bd2 [utils] Remove BoolToInt helper
This function is trivial, can and be inlined to the single use.
This makes utils.h a tiny little bit smaller.

R=verwaest@chromium.org

Bug: v8:9810, v8:8912
Change-Id: I877f3713530644a1cb9e0f286cf87f55072d33da
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903444
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64850}
2019-11-08 08:29:15 +00:00
Clemens Backes
77a2b4c18b [wasm] Improve code size estimate for streaming
In streaming compilation, we were computing a way too low code size
estimate, since all {WasmFunction::code} fields were still zero when we
were calling {EstimateNativeModuleCodeSize}. This lead to many separate
code spaces being created during compilation, creating significant
performance and memory overhead.

This CL fixes this by passing the code section length when creating the
{NativeModule}. From this, we can compute the code size estimate just as
before.

Drive-by: Rename "functions_count" to "num_functions" in
{ProcessCodeSectionHeader} to be consistent with the declaration.

R=ahaas@chromium.org

Bug: v8:9950
Change-Id: I30a54c01ed24d0dfecb8a4b6d123015f1803ddeb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903439
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64849}
2019-11-08 08:28:11 +00:00
Ulan Degenbaev
fb7676769b [heap] Switch main thread marking visitors to MarkingVisitorBase
Now incremental marker and stop-the-world marker use the same visitor,
which is derived from MarkingVisitorBase. This removes code duplication
and also should reduce binary size.

The marking worklist processing code also changes to not color the
object black before visiting it. Instead the visitor colors the
object black in ShouldVisit method.

Bug: chromium:1019218
Change-Id: I57971122f3c77ad2770b6754d696b79d802ef1a4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1901271
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64848}
2019-11-08 08:21:51 +00:00
v8-ci-autoroll-builder
f3b9d9e55c Update V8 DEPS.
Rolling v8/build: 6f08017..3cf8d94

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/1944f6e..f9004ee

Rolling v8/third_party/depot_tools: 23247b9..1917f7a

Rolling v8/tools/clang/dsymutil: OWlhXkmj18li3yhJk59Kmjbc5KdgLh56TwCd1qBdzlIC..M56jPzDv1620Rnm__jTMYS62Zi8rxHVq7yw0qeBFEgkC

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

Change-Id: Ie03147c4aaff505fd88c8de6a435db9ae8fdc997
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1905106
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@{#64847}
2019-11-08 03:50:59 +00:00
Ng Zhi An
5e514a9693 [wasm-simd] Implement i64x2 splat extract replace for arm
Bug: v8:9813
Change-Id: Ie99fdbf5307a1515a1838ac6902a5bcd99d11e14
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1900660
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64846}
2019-11-07 21:28:39 +00:00
Clemens Backes
dde3166beb [wasm] Remove one {NewNativeModule} method
This makes the {code_size_estimate} computation explicit in the caller,
and removes one of the two {NewNativeModule} constructors. It turns out
that the calculation is totally off in the streaming calculation phase,
since no function bodies have been parsed yet. So all
{WasmFunction::code} fields are still empty, and we compute an estimate
that is way too low.
This CL prepares the actual fix for that (by computing a better estimate
at specific call sites).

R=ahaas@chromium.org

Bug: v8:9950
Change-Id: I68a891c97e5f65a9c7e73e21684bdfa7e261e216
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1901273
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64845}
2019-11-07 18:07:29 +00:00
Milad Farazmand
43ad81f36b [wasm-simd] Using the correct type from ValueType enum
Change-Id: I145dd2ea5fd2308301ba7e6710f84f276dc70367
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903809
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64844}
2019-11-07 17:59:40 +00:00
Santiago Aboy Solanes
1bafcc6b99 [test] MultipleIsolates is only slow when not in pointer compression
Change-Id: Ia6b805c48f71cea7a0f0ada06c9a35713ed49f28
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903968
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64843}
2019-11-07 16:56:26 +00:00
Nico Hartmann
0fc1f3a9b7 Fixes argument CHECKs in serializer that are too strict
Bug: chromium:1021712
Change-Id: I9523760f2fa11726dd7015058b2267035f3f9f7a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903442
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64842}
2019-11-07 16:51:16 +00:00
Clemens Backes
0ede421ba1 [wasm] Fix and extend comments on JS API
R=ahaas@chromium.org

Bug: v8:9810
Change-Id: I9f6d13445c8c577256cabe070f9082d041af3a2d
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903437
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64841}
2019-11-07 15:29:16 +00:00
Dominic Farolino
d9a81bd55c Fix dir() and table() method lengths
This CL fixes the lengths of the console dir() and table() methods to
match the WHATWG Console Standard and the IDL WPTs.

R=mathias@chromium.org

Bug: chromium:948678
Change-Id: I2c603e202a3e5995eec06dadac09807f76ee9167
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1902968
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Dominic Farolino <dom@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64840}
2019-11-07 15:09:36 +00:00
Hannes Payer
3b1f3dd76e Add dinfuehr@ to src/heap/OWNERS
Change-Id: I5c6004e77ffdf76679ecf764d3048917f2890b23
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903438
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64839}
2019-11-07 15:00:36 +00:00
Zhao Jiazhong
ca8db078ca [mips][Liftoff] Implement i64 shift with immediate
port 42e8c23 https://crrev.com/c/1899770

Original Commit Message:

  [Liftoff] Implement i64 shift with immediate

  Especially on ia32 and x64, shifts with immediate generate much shorter
  and more efficient code.

Change-Id: Ia7f20db8e3ed88efe8c09e4afc9dbadc8e3b0362
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903289
Auto-Submit: Zhao Jiazhong <kyslie3100@gmail.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64838}
2019-11-07 14:00:45 +00:00
Andreas Haas
40c68c36dc [backingstore] Check maximum size in API creation functions
With this CL we prevent embedders to allocate backing stores that are
bigger than what can be handled by V8.

R=ulan@chromium.org
CC=jkummerow@chromium.org

Bug: chromium:1008840
Change-Id: Ifff5e14c42fbdae187283540a54ffbfeda935574
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1900455
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64837}
2019-11-07 12:40:15 +00:00
Sigurd Schneider
0dfd9ea512 [coverage] Fix coverage with default arguments
In the presence of default arguments, the body of the function gets
wrapped into another block. This caused our trailing-range-after-return
optimization to not apply, because the wrapper block had no source
range assigned. This CL correctly assignes a source range to that block,
which allows already present code to handle it correctly.

Note that this is not a real coverage bug; we've just been reporting
whitespace as uncovered. We're fixing it for consistency.

Originally reported on github.com/bcoe/c8/issues/66

Bug: v8:9952
Change-Id: Iab3905f558eb99126e0dad8072d03d0a312fdcd3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903430
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64836}
2019-11-07 12:34:35 +00:00
Dan Elphick
db7140229c [builtins] Make CEntry builtin Code objects non-executable
Make every CEntry_* builtin except
CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit
non-executable since they don't seem to be needed. The remaining one is
still required until Linkage::GetCEntryStubCallDescriptor is converted
to use CallBuiltinPointer.

Bug: v8:9338
Change-Id: Id1fcad95958ec3299328f7ed0e322ff2f766cfd4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1897540
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64835}
2019-11-07 12:25:25 +00:00
Santiago Aboy Solanes
07f26fc606 [ptr-compr] Remove the DecompressionElimination Reducer
Since the turbo_decompression_elimination flag is removed, there
are several methods in machine-type.h that get simplified, e.g
TypeCompressedTaggedPointer() can be replaced by just
"TaggedPointer()".

Also Removing the creation of Change to/from Compressed nodes.
Removing these Change nodes' logic is left to a follow-up CL.

Bug: v8:7703
Change-Id: Iff1f9aa8361189cf781a26317fd342b942fd5aa4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1897537
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64834}
2019-11-07 11:42:45 +00:00
Santiago Aboy Solanes
2d0d184d85 [turbolizer] Snappier transitions when zooming selections
Bug: v8:7327
Change-Id: I79c55d93b8a9f05b81fcbb1897d946cb56e99370
Notry: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1901270
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64833}
2019-11-07 11:09:44 +00:00
Dominik Inführ
5e97378f92 [heap] Promote young objects by default in MC
Start experiment to promote all young live objects during mark-compact.

The last CL https://crrev.com/c/1879938 got reverted because of a flaky
test, see v8:9192.

Change-Id: I16897f45fffeafbb7e70c21899976a4c026e69ba
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903432
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64832}
2019-11-07 11:01:14 +00:00
Dan Elphick
276b13cb00 [api] Create SharedMemoryStatistics API
Creates new APIs to get Shared Memory statistics like the size of
read-only space and potentially the memory used by shared array buffers.

Currently all shared memory statistics are zero.

Bug: v8:7464
Change-Id: Ib8d58f885beaa1d65ccef7b64dd4f3db4149bca3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1900465
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64831}
2019-11-07 10:54:36 +00:00
Dominik Inführ
51dbe16ce0 Increase old space size for regress-678917.js
When --always-promote-young-mc is enabled, this test becomes more
flaky. Increase old space size, such that objects fit into the
old generation during mark-compact.

Bug: v8:9192
Change-Id: Iad3b914c7d5b7bafa752f3b6178684a137bd8dad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890101
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64830}
2019-11-07 10:19:45 +00:00
Dominik Inführ
0b27777e8e [heap] Reuse SweepAndRetryAllocation function
Reuse sweeping+free list allocation code from
SweepAndRetryAllocation in RawSlowRefillLinearAllocationArea.

Share code such that bugs like the linked one are less likely to
happen.

Bug: chromium:1020981
Change-Id: I0abfaa9f7a8f2b62ad24ca85774130f354104e93
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1901277
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64829}
2019-11-07 09:56:14 +00:00
Clemens Backes
a1e8c6fba8 Reland "[wasm] Remove fixed limit on number of background tasks"
This is a reland of 54379af9b0. Instead
of removing the limit completely, this limits to 128 parallel tasks
now. This avoids some special handling for the previous default value
of -1.

Original change's description:
> [wasm] Remove fixed limit on number of background tasks
>
> After fixing https://crbug.com/v8/8916, background compilation scales
> far beyond 10 threads, especially for TurboFan (where much more work is
> parallelizable). Thus, remove the limit of 10 background compilation
> tasks, and use all available threads instead.
>
> R=mstarzinger@chromium.org
>
> Bug: v8:8916
> Change-Id: I13c30777e3c85b2de7901b5eac3e6a41457a56f9
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893348
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64724}

Bug: v8:8916, chromium:1021442
Change-Id: Ie9a9368c74d26c4595c0e94e914b025e403daaa4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1899991
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64828}
2019-11-07 09:34:33 +00:00