Commit Graph

63076 Commits

Author SHA1 Message Date
Clemens Backes
6e856b5e34 [wasm][interpreter] Remove RaiseException
This method was there to turn a trap into an exception. It's not used
any more, so can be removed.

R=ahaas@chromium.org

Bug: v8:10389
Change-Id: I39bb3141722ddf1e09271348016c1d6f6d72b928
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264103
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68534}
2020-06-25 10:30:22 +00:00
Clemens Backes
f2cb20289d [wasm] Remove dead code from test utils
This removes several dead functions from the wasm-module-runner.cc.

R=ahaas@chromium.org

Change-Id: I35efbc6960a28f41d14ca5d8e828c4e6f2953409
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264100
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68533}
2020-06-25 10:22:52 +00:00
Mike Stanton
9957621277 [ic] Make FeedbackVector slot arrays immutable
Currently the FeedbackVector uses arrays in slots that are polymorphic,
usually in a <map, handler> tuple pattern. Helper functions try to
re-use an existing array if it's already in place.

For Concurrent TurboFan, it would be far better if these FixedArrays
were immutable. We could then count on semantic correctness when
harvesting their information from a background thread without locking.

Additionally, the arrays should always be initialized fully before
being set in place.

Bug: v8:7790
Change-Id: I81eae3bda48c2d0d8eea41d1bc9c62afb7e619d5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264364
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68532}
2020-06-25 10:01:52 +00:00
Peter Ralbovsky
3c815cb2fc Updated BUILD.gn to link fuzzilli
Change-Id: Ia303e0384aee4f6998599fc9f04104517c51aa66
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2249663
Commit-Queue: Peter Ralbovsky <ralbovsky@google.com>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68531}
2020-06-25 08:46:32 +00:00
Jakob Kummerow
fdaa6c286e Avoid some recursion in InvalidatePrototypeChains
We can walk linear prototype chains using iteration instead of
recursion, reducing the likelihood (though not excluding the
possibility) that large prototype-relation graphs will run into
a stack overflow.
This partial mitigation should be performance neutral.

Bug: v8:10522
Change-Id: Ia266efe38a9cc52fe6ab2189066f45c4566f3596
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2245591
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68530}
2020-06-25 08:28:02 +00:00
Shu-yu Guo
4239880777 Reland "[test] Add is_cfi variable for test status files"
This is a reland of f0c9e93297

TBR=machenbach@chromium.org

Original change's description:
> [test] Add is_cfi variable for test status files
>
> Bug: v8:10640
> Change-Id: Ifa485c285f345ca1ffba949feb8fc70b160a018c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264627
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Shu-yu Guo <syg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#68523}

Bug: v8:10640
Change-Id: Iabf005127eea412b991f3f59d9e786f3c1eb7891
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2265240
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68529}
2020-06-24 23:34:10 +00:00
Shu-yu Guo
5da083ab0f Revert "[wasm] Re-exported globals preserve their identity"
This reverts commit f7a1932ef9.

Reason for revert: Breaking wasm wpt tests: https://ci.chromium.org/p/v8/builders/ci/V8%20Blink%20Linux/5408

Original change's description:
> [wasm] Re-exported globals preserve their identity
> 
> V8 fails a recently added spec test that when an imported global get
> re-exported, it should preserve its identity. This CL fixes the behavior
> in V8.
> 
> Drive-by change: fix the object printer of globals: a global which
> stores a reference type only has a tagged buffer, a global which stores
> a value type only has an untagged buffer.
> 
> R=​clemensb@chromium.org
> 
> Bug: v8:10556
> Change-Id: I949d147fe4395610cfec6cf60082e1faecb23036
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235702
> Commit-Queue: Andreas Haas <ahaas@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#68513}

TBR=ahaas@chromium.org,clemensb@chromium.org

Change-Id: I06eb1996cafe7d4e93a7e59d21679fea239cf961
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:10556
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264956
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68528}
2020-06-24 22:57:41 +00:00
Shu-yu Guo
6c8d9ad0a5 Revert "[test] Add is_cfi variable for test status files"
This reverts commit f0c9e93297.

Reason for revert: Suspicion of breaking infra somehow

Original change's description:
> [test] Add is_cfi variable for test status files
> 
> Bug: v8:10640
> Change-Id: Ifa485c285f345ca1ffba949feb8fc70b160a018c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264627
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Shu-yu Guo <syg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#68523}

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

Change-Id: I9a71ac443d64d2e8121f6a7ea52af833bb8add36
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:10640
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264953
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68527}
2020-06-24 20:49:36 +00:00
Ng Zhi An
f332380e47 [wasm-simd][arm] Prototype f32x4.nearest
Prototype f32x4.nearest on ARM for both ARM v7 and ARM v8. ARM v8 has
support for vrintn, and for ARM v7 we fallback to runtime.

Since ARM v8 uses vrintn, which is the same instruction used for
F32RoundTiesEven (scalar), wasm-compiler reuses the Float32RoundTiesEven
check.

Bug: v8:10553
Change-Id: I066b8c5f10fd86294afe1c530c516493deeb7b53
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2258037
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68526}
2020-06-24 20:40:24 +00:00
Manos Koukoutos
e19c945b22 [wasm-gc] Skip null check for non-nullable arrays in generated code
Bug: v8:7748
Change-Id: Ic55c1aeb2bceb72dff1338c4d9cbde9aa799f25a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2262914
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68525}
2020-06-24 20:31:15 +00:00
Manos Koukoutos
305e3dfcc9 [wasm-gc][cleanup] Fix/Tidy up some easy TODOs etc.
Bug: v8:7748
Change-Id: I45a8f1398554da8a9543c866b4125fd9711e230b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2263933
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68524}
2020-06-24 20:28:55 +00:00
Shu-yu Guo
f0c9e93297 [test] Add is_cfi variable for test status files
Bug: v8:10640
Change-Id: Ifa485c285f345ca1ffba949feb8fc70b160a018c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264627
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68523}
2020-06-24 19:53:25 +00:00
Manos Koukoutos
327c2d2acf [wasm-gc] Introduce HeapTypeImmediate
Some operations require an immediate argument that represents a heap
type. This CL introduces a class to represent it and uses it where
appropriate. Also, the redundant TypeIndexImmediate is removed.

Bug: v8:7748
Change-Id: Ib4b1d50764a79f5dd3240688f8165c39745eaad8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2260874
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68522}
2020-06-24 18:12:59 +00:00
Clemens Backes
46f9931ccf [wasm] Add more likely and unlikely annotations
All error handling should be marked V8_UNLIKELY, because this is never
on the hot path.

R=thibaudm@chromium.org

Bug: v8:10576
Change-Id: I8bc996e96a2e90f21ec065fbce4656d311097f74
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2263153
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68521}
2020-06-24 17:11:08 +00:00
Andreas Haas
0366e2f869 [wasm][ia32][liftoff] Implement 32-bit atomic exchange
R=clemensb@chromium.org

Bug: v8:10108
Change-Id: I50e94888340601febcede6be9899ca1ffaaed5a5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264358
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68520}
2020-06-24 16:51:08 +00:00
Santiago Aboy Solanes
879bb039fc [compiler] Add synchronization for background prototype chain walk
Bug: v8:7790
Change-Id: I1c0275401671bb85d92afd2910618a0a345c26c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2210233
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68519}
2020-06-24 16:29:48 +00:00
Maya Lekova
f569be617a [respect] Clean compiler and codegen directories
Bug: v8:10619
Change-Id: I9097e203404ca36301a08665a7383c9585301a67
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264359
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Auto-Submit: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68518}
2020-06-24 15:47:43 +00:00
Andreas Haas
57817760e0 [wasm][ia32][liftoff] Implement 32-bit atomic sub
R=clemensb@chromium.org

Bug: v8:10108
Change-Id: I5050d58d9601214e88bb88b24502f288de0b7be8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264357
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68517}
2020-06-24 15:43:13 +00:00
Dan Elphick
3e3403ea0d [heap] Fix read-only space metrics for aligned allocations
Fix returning from TryAllocateLinearlyAligned without updating the
allocation stats if a preceding filler was required. Also makes
AllocateRaw take an int instead of size_t in line with other Spaces.

Bug: v8:8875, chromium:1097389
Change-Id: If0932caa94dce1cd45b41f44fa225a2007772ea1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264354
Auto-Submit: Dan Elphick <delphick@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68516}
2020-06-24 15:05:55 +00:00
Clemens Backes
98a9c44be9 [wasm] Refactor decoder tracing
Move more logic into the {TraceLine} class. In release builds, this
class will not do anything. Since there is no code after the switch in
{DecodeOp} any more after this CL, we can apply tail-call optimization
(via explicit returns in C++), which will save an additional call in
some cases.

R=thibaudm@chromium.org

Bug: v8:10576
Change-Id: Ie11ec550ab33d0c03a27375f34576e3a75dcf6ad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2254021
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68515}
2020-06-24 14:48:53 +00:00
Clemens Backes
5ce53d3666 [wasm] Use VALIDATE macro consistently
Every condition which can only fail on invalid wire bytes should be
wrapped in the VALIDATE macro. This way, it will automatically be
skipped if {validate} is false, and we will automatically add V8_LIKELY
annotations to the branches.

Also, consistently use the style
if (!VALIDATE(condition)) {
  ... handle error ...
}
... continue ...

Drive-by: Remove unnecessary OPCODE_ERROR macro.
Drive-by 2: Replace unreachable code (after a switch) by UNREACHABLE.

R=thibaudm@chromium.org

Bug: v8:10576
Change-Id: I9b592bd4abde80d86e72c63739d77b4814dc96de
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2262917
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68514}
2020-06-24 14:39:23 +00:00
Andreas Haas
f7a1932ef9 [wasm] Re-exported globals preserve their identity
V8 fails a recently added spec test that when an imported global get
re-exported, it should preserve its identity. This CL fixes the behavior
in V8.

Drive-by change: fix the object printer of globals: a global which
stores a reference type only has a tagged buffer, a global which stores
a value type only has an untagged buffer.

R=clemensb@chromium.org

Bug: v8:10556
Change-Id: I949d147fe4395610cfec6cf60082e1faecb23036
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235702
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68513}
2020-06-24 14:10:43 +00:00
Clemens Backes
3f9119d586 [wasm] Remove lazy compilation support from the interpreter
Since the interpreter is not used in production any more, it does not
need to support lazy compilation. Since the code is still (accidentally)
triggered by indirect calls, we need to refactor that code. It only
allows calls within the same instance anyway.

R=ahaas@chromium.org

Bug: v8:10389
Change-Id: Ied1c8effd4c9fbb857a068db587de3463867ac80
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2259942
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68512}
2020-06-24 13:49:37 +00:00
Manos Koukoutos
f4f8f247e7 [wasm][perf-bug] Fix perf regression due to expensive subtyping check
The more complicated subtyping checks due to the new wasm-gc types
caused a performance regression. This CL:
- Adds a V8_LIKELY annotation to the more common path
  (type equality).
- Factors the rest of the check out of the inlinable part of subtype
  checking to reduce binary size, and thus cache misses.

Bug: chromium:1096769, v8:7748
Change-Id: Idd92789b40cc175c268ef5a53f042d4b881992af
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2263156
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68511}
2020-06-24 13:26:58 +00:00
Michael Achenbach
dd58472158 [foozzie] Bail out on timeouts during validity checks
If we pass flags that make runs very slow, also the validity checks
might time out. Previously this wasn't checked and output was just
cut off.

This also tightens the timeout on validity checks as they are
expected to run very fast.

No-Try: true
Bug: chromium:1098646
Change-Id: Iea9a932be86e84040b72a2311aaa1d44100b3378
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2262915
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68510}
2020-06-24 13:25:53 +00:00
Almothana Athamneh
6015e3a756 Remove unmaintained trybots
Bug: v8:10445
Change-Id: I2d5501fdf7f2c3a7c19176f15d002f4f7f0cc40e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2260564
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68509}
2020-06-24 12:49:32 +00:00
Clemens Backes
852f43cd70 [wasm] Make opcode properties constexpr
This allows the compiler to eliminate more unneeded branches. Since all
functions just do a lookup in a static table (either directly, or via
compiling a switch to such a lookup), they are also good candidates for
inlining, which is made possible by this change.

One DCHECK is removed instead of pulling in the inl header, which would
require more refactoring since the check is in a non-inl header.

R=thibaudm@chromium.org
TBR=jkummerow@chromium.org

Bug: v8:10576
Change-Id: If0fd25fd62c5f30b896fc67a5458a5ae475a6351
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2259944
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68508}
2020-06-24 11:58:22 +00:00
Almothana Athamneh
2d984508d2 [MB][Testing] Remove remaining trybots with legacy format
Bug: v8:10445
Change-Id: I13cfae71c12cf23c32f462d36f98bfcfd2dc2997
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2260558
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68507}
2020-06-24 09:39:21 +00:00
Dominik Inführ
7f0defa829 Skip concurrent allocation test
Test has flaky data race and will be fixed after branch to avoid
regressions.

Bug: v8:10637, v8:10315
Change-Id: Iddbbd91701aea622803146b84c9a9aa334bda927
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2263155
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68506}
2020-06-24 09:34:41 +00:00
Maya Lekova
e7606e6b69 [gcmole] Enable use-after-free detection
GCMole now comes with the long forgotten use-after-free detection
enabled by default. The CL also improves error logging when test
expectations mismatch with the actual output and updates the hash
of GCMole to be used with the newly built version with enabled UAF
detection.

The CL also contains an ignore for isolate.cc due to inability to
fix a warning there and fixes a couple of UAF warnings.

Bug: v8:9680
Change-Id: I7a009ffd5f67b1b5437567691ca4235ea873de70
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2257236
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68505}
2020-06-24 09:29:31 +00:00
Clemens Backes
9a6c9010bb Ignore unhandled promises in one more test
This is a follow-up to https://crrev.com/c/2238569.

R=cbruni@chromium.org

No-Try: true
Bug: v8:10556
Change-Id: Id667359a3098bf6e248716d33a8fcfc110236bb8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2262916
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68504}
2020-06-24 08:01:38 +00:00
Camillo Bruni
1335b1ec36 [d8] Exit with error code upon unhandled promise rejection
With this CL d8 exits with an error code if there is an unhandled
promise rejection, e.g. due tue a failed assertion in a promise. Up
until now these assertions were just ignored.

Bug: v8:10556
Change-Id: I25f20e4be45a2de130562deb15f6a144f0ac976f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238569
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68503}
2020-06-24 07:21:58 +00:00
Clemens Backes
3fd18f1258 Revert "Update V8 DEPS."
This reverts commit fa9214a029.

Reason for revert: Still broken: https://crbug.com/v8/10633

Original change's description:
> Update V8 DEPS.
> 
> Rolling v8/build: 2dc7c7a..876a780
> 
> Rolling v8/third_party/aemu-linux-x64: UoYLOT0X6577j70eB9nPqYQs9Z3Nh5lA4I-pRtTchO0C..ipSYUvRoHZQDXIwxn-c7KPxUWeLwGcF_l0HPFMH3eooC
> 
> Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/95c1f42..5718688
> 
> Rolling v8/third_party/depot_tools: 35c6274..bdfbdd2
> 
> Rolling v8/tools/clang: 42b285f..898dd03
> 
> TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com
> 
> Change-Id: Ie77acff55525ad5775bed0e5ee81f8a31e85f689
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2262235
> 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@{#68501}

TBR=machenbach@chromium.org,v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: Iefc8e1fb40d52d4c4c682cb26103d2860fb6d8c0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2262912
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68502}
2020-06-24 07:16:10 +00:00
v8-ci-autoroll-builder
fa9214a029 Update V8 DEPS.
Rolling v8/build: 2dc7c7a..876a780

Rolling v8/third_party/aemu-linux-x64: UoYLOT0X6577j70eB9nPqYQs9Z3Nh5lA4I-pRtTchO0C..ipSYUvRoHZQDXIwxn-c7KPxUWeLwGcF_l0HPFMH3eooC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/95c1f42..5718688

Rolling v8/third_party/depot_tools: 35c6274..bdfbdd2

Rolling v8/tools/clang: 42b285f..898dd03

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: Ie77acff55525ad5775bed0e5ee81f8a31e85f689
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2262235
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@{#68501}
2020-06-24 03:50:18 +00:00
Deepti Gandluri
e68728a262 [wasm] Add templatized methods for static bounds checks
The IsInBounds function is used in a few different places, when used for
bounds checks on 32-bit platforms, size_t for max_memory_size leads to
incorrect out of bounds accesses as size_t is not guaranteed to be
64-bit on all platforms. Use specific uint32_t, uint64_t methods for
Wasm bounds checking instead of size_t.

Bug: chromium:1080902
Change-Id: I0e21f0a310382c8ed0703c8302200d3352495c13
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2256858
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68500}
2020-06-24 03:41:28 +00:00
Deepti Gandluri
c4e66e3b5f [wasm] Add multiple retries to reserve wasm memory
The current memory reservation approach for wasm memory tries to reserve
upto the maximum, and only reserves initial if the maximum reservation  fails.
Add multiple retries with a smaller upper limit so that calls to grow
have a higher probability of succeeding.

Bug: v8:10519
Change-Id: Ice5b4c826ff993c9da7292e1b24a42a72306c098
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2259720
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68499}
2020-06-24 02:56:28 +00:00
Ng Zhi An
2cd264853c [wasm-simd][arm] Prototype f32x4.trunc
Prototype f32x4.trunc on ARM for both ARM v7 and ARM v8. ARM v8 has
support for vrintz, and for ARM v7 we fallback to runtime.

Since ARM v8 uses vrintz, which is the same instruction used for F32
trunc (scalar), wasm-compiler reuses the Float32RoundTruncate check.

Bug: v8:10553
Change-Id: I65ddc36ccff21f8f0ff21a6e768184c084ffcfea
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2256770
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68498}
2020-06-23 23:56:13 +00:00
Ng Zhi An
9394cef257 [arm] Add disasm support to format and print Q registers
Bug: v8:10553
Change-Id: I57610afbf676f17d11675da1099ca45633d00402
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2254482
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68497}
2020-06-23 22:26:16 +00:00
Ng Zhi An
8e4df90b8c [Py3] Get tools/testrunner closer to Py3
This modernizes python code without breaking Py2 compat.

Ran with command:

futurize --stage1 -w tools/testrunner

Bug: v8:9871
Change-Id: Ie23333cbd923197be0bffcad5041056e00990042
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2252554
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68496}
2020-06-23 21:09:06 +00:00
Z Nguyen-Huu
40657debf4 [v8windbg] Show bitset name of compiler type
Get value from type payload, check and show bitset name.

Change-Id: I6d0e0f30fca0b2aaddfd5f18abf948886552f2dc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2258815
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#68495}
2020-06-23 19:36:36 +00:00
Camillo Bruni
e7bd239af8 [heap] #ifdef FLAG_minor_mc use
This is the only FLAG_minor_mc usage that is not guarded by
#ifdef ENABLE_MINOR_MC.

Change-Id: I54d447ede6a6ab4bbfb6ffbd7674e240d8cc1987
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2260878
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68494}
2020-06-23 19:30:46 +00:00
Shu-yu Guo
e1bfdae808 Check for null or undefined when getting methods in AsyncFromSyncIterator
Both the .return and .throw methods are delegated to the underlying sync
iterator. These methods are retrieved using GetMethod [1], which checks
for either null or undefined instead of only undefined.

[1] https://tc39.es/ecma262/#sec-getmethod

Bug: v8:10395
Change-Id: Ide8db4270d48783da6fd1d45a5b01f2858e2828c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2258667
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68493}
2020-06-23 19:13:56 +00:00
Ng Zhi An
6f296e0b54 [Py3] Get tools/testrunner/testproc closer to Py3
This modernizes python code without breaking Py2 compat.

Ran with command:

futurize --stage1 -w tools/testrunner/testpro

Manual fixup to util_unittest to modify import paths and change to
absolute imports.

Bug: v8:9871
Change-Id: I2ac29622aff5daebc9dc42145c1d96dff8258546
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2252549
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68492}
2020-06-23 18:55:05 +00:00
Ng Zhi An
7603a30374 [wasm-simd][scalar-lowering] Bitmask
Scalar lowering for i8x16, i16x8, i32x4 bitmask.

Depending on which lane we are lowering, we can either shift the MSB
into the correct final bit position, then do a big OR of all the nodes.

Bug: v8:10308
Change-Id: Iddf6c077b5a8658a487cef59f2e3bbae3c8bd98d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2219327
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68491}
2020-06-23 18:09:56 +00:00
Ng Zhi An
bf9d6afb93 [Py3] Get tools/testrunner/local closer to Py3
This modernizes python code without breaking Py2 compat.

Ran with command:

futurize --stage1 -w tools/testrunner

and manual fixup in statusfile_unittest.py to change to update import
path and change to absolute imports (similar to pool_unittest.py)

Bug: v8:9871
Change-Id: I8851e2188ef9285f2bd57cc07e959e22e1b05f6b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2252548
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68490}
2020-06-23 18:08:36 +00:00
Dan Elphick
a6015b4754 [heap] Fix allocated_object_size for RO_SPACE
After https://chromium-review.googlesource.com/c/v8/v8/+/2250254,
allocated_object_size in RO_SPACE is incorrect. This changes it to use
the accounting_stats_ value. This also fixes the Capacity() which was
previously uninitialized. Both are tested in new ReadOnlySpace allocation
tests in test-spaces.cc.

Couple of cleanups:
* area_size_ becomes const since its value is fixed after construction.
* Deletes incorrect comment in base-space.h

Bug: v8:10454
Change-Id: I9bbbc1ef2548722eee9dae1bb8d67448eccf8955
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2259937
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68489}
2020-06-23 16:55:45 +00:00
Hannes Payer
9afb6f3260 [heap] Add --lazy-new-space-shrinking flag and configure the initial heap accordingly.
Bug: chromium:1054771
Change-Id: Id6fa131187caf67b2d7dddca548c2864ac5afaac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2260565
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68488}
2020-06-23 16:24:20 +00:00
Alex Turner
de05e68e3e [api] Add a ScriptId getter for Module objects
There is currently no API call that allows access to the id of the
script underlying a Module. As this function can only be used for
SourceTextModules, we also add IsSourceTextModule() and
IsSyntheticModule() to allow callers to distinguish them.

Bug: v8:10616
Change-Id: Ia55ea8e6993922b695019852e38ca54ffce32cbf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2248199
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Alex Turner <alexmt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68487}
2020-06-23 16:23:15 +00:00
Deepti Gandluri
e1a9c1e807 [wasm] Enable atomic operations on all memory by default
Currently, atomics operations are only allowed on shared memory and are
enabled on regular memory behind the --wasm-atomics-on-non-shared-memory
flag. Set the default value of this flag to true. This enables the
following behaviors:

 - No validation failures when atomic opcodes are used on wasm memory
 backed by ArrayBuffers
 - memory.atomics.wait{32/64} operations will trap when wasm memory is
 not shared
 - memory.atomics.notify will always return 0 if wasm memory is not
 not shared.

Bug: v8:9921
Change-Id: I1feb8c3db428187ee192ea72277957bfde9ac4b2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2258099
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68486}
2020-06-23 15:48:35 +00:00
Jakob Kummerow
906db63ff4 [wasm-gc] Implement rtt.canon
along with a very basic test case.

Bug: v8:7748
Change-Id: I93d4b280922dd9eba8defc1a83ca08a2a957376a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2254023
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68485}
2020-06-23 15:04:23 +00:00