Commit Graph

62937 Commits

Author SHA1 Message Date
Ng Zhi An
ab4a69a834 [clang-tidy] Prefer static_cast to c style casts
See
https://clang.llvm.org/extra/clang-tidy/checks/google-readability-casting.html
and https://google.github.io/styleguide/cppguide.html#Casting.
Bug: v8:10488

Change-Id: Ia5ac4216066dc591e0492a6c0c66305faa94aa81
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2233986
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68345}
2020-06-15 17:24:25 +00:00
Ng Zhi An
074fb79333 [clang-tidy] Remove unneeded casts
The intention is to print the address of Block, print it without any
cast.

See
https://clang.llvm.org/extra/clang-tidy/checks/google-readability-casting.html
and https://google.github.io/styleguide/cppguide.html#Casting.

Bug: v8:10488
Change-Id: Id174083d0c51518a808459b1b4cd12d5aa9781ab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2240503
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68344}
2020-06-15 17:19:49 +00:00
Ng Zhi An
93b78a6c7c Reland "[wasm-simd][x64] Prototype i32x4.dot_i16x8_s"
This is a reland of 3692bef9f9

Integer overflow in the test code is fixed by using
MulWithWraparound.

Original change's description:
> [wasm-simd][x64] Prototype i32x4.dot_i16x8_s
>
> This implements I32x4DotI16x8S for x64 and interpreter.
>
> Bug: v8:10583
> Change-Id: I404ac68c19c1686a93f29c3f4fc2d661c9558c67
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2229056
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#68244}

Bug: v8:10583
Change-Id: Ie7d0032f5398b6f725c02b572764258adacc8578
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2236962
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68343}
2020-06-15 17:00:28 +00:00
Thibaud Michaud
7cbad4a488 [wasm] Reduce NativeModuleCache overhead
When inserting the temporary cache key for synchronous compilation, use
the NativeModule's owned wire bytes. When we eventually install the
native module, key comparison can then take the fast path by checking
base pointer equality instead comparing the full bytes.

R=clemensb@chromium.org

Bug: chromium:1035786, v8:10576
Change-Id: I4bfb948b4383d58dd11060a7d1d1e0495ddeed2a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2246559
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68342}
2020-06-15 14:49:28 +00:00
Santiago Aboy Solanes
daf7715dc7 [compiler] Add the signal to do descriptor array's background search
Bug: v8:7790
Change-Id: I1c6622bd476832852af64c299dcf952bc9e92fe5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2245602
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68341}
2020-06-15 12:54:38 +00:00
Arnaud Robin
58dea48459 [wasm] Fix register uses in wasm tracing
The registers were not spilled correctly in liftoff when tracing
function calls, which caused runtime errors.

R=clemensb@chromium.org
CC=thibaudm@chromium.org

Bug: v8:10559
Change-Id: Ic0a9ae8a286bdee8f8440e006d0b47e52241ea5a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2245595
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Arnaud Robin <arobin@google.com>
Cr-Commit-Position: refs/heads/master@{#68340}
2020-06-15 11:13:18 +00:00
Jakob Gruber
f30b53bdae [nci] Add native_context_independent flags
... to OptimizedCompilationInfo, BytecodeGraphBuilder, and
JSHeapBroker.

Also add first uses of these flags in pipeline.cc by skipping certain
phases when nci is enabled. With this change, tests in the NCI variant
will start to fail since generic lowering is not fully implemented.
These implementations will follow incrementally in the next days.

Bug: v8:8888
Change-Id: I3f570fb92f09059d1f1f4015f88ffe80ccf746ad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2239572
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68339}
2020-06-15 11:09:38 +00:00
Michael Lippautz
340c545875 cppgc: Introduce HeapBase
Introduce HeapBase as an internal base implementation for concrete
heaps (unified, stand-alone).

Change-Id: I0aa7185e23f83e01e4e2ca23d983b28e32bb610e
Bug: chromium:1056170
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238573
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68338}
2020-06-15 11:03:08 +00:00
Yang Guo
251dea9dd5 [debugger] materialize scope values in TDZ as undefined.
R=szuend@chromium.org

Fixes: chromium:718827
Change-Id: I261ce2cf692b5bcf88f4f7f67249ec49c837de4e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2241521
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68337}
2020-06-15 10:09:58 +00:00
Emanuel Ziegler
8ee54c92c7 [wasm] Do not log code of functions whose module is not fully loaded
This is a reland of change Idb1061cafcba7a2a654a207402dca520f79a3bbe.
The access to wire_bytes has been protected by using atomic operations.

Under some circumstances, Wasm is trying to log code for which the
wire bytes are not fully loaded yet. This can happen during streaming
compilation when a few functions are already fully compiled but the
engine is still streaming the remaining functions.

If the profiler now kicks in, it will attempt to log these freshly
compiled functions. As these functions will not be executed before
the module is fully compiled, we can simply defer the logging in this
case.

R=clemensb@chromium.org

Bug: chromium:1085852
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
Change-Id: Iccb6607e8adb9fdaf6138d4ccd30de58d6a6cdff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2230536
Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68336}
2020-06-15 09:23:48 +00:00
Clemens Backes
1a82a10ba0 [wasm][debug] Pass pointer for detected features
We currently hit a nullptr access when trying to update the detected
feature set. Instead of adding a check for nullptr there (which would be
unnecessary overhead in production code), we just pass a pointer when
compiling for debugging.

R=thibaudm@chromium.org

Bug: chromium:1092408
Change-Id: I7804edc3f67237bbf28d0ed2f5c58339d3a0f8f7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238080
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68335}
2020-06-15 08:54:12 +00:00
Andreas Haas
d8a8612e9c [wasm][arm64] Implement atomic binops in Liftoff
R=v8-arm-ports@googlegroups.com, clemensb@chromium.org

Bug: v8:10108
Change-Id: I2026c50536a3053aa3bc7d412ed67ff13c5fa0e3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2231338
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68334}
2020-06-15 08:14:37 +00:00
Jakob Gruber
9aa3c608f4 [scanner] Update outdated DCHECK
We recently changed uc32 to be an unsigned type, and with the invalid
marker being static_cast<uc32>(-1) this DCHECK no longer holds. After
this CL it expicitly checks for the invalid marker.

Bug: v8:10568,chromium:1094226
Change-Id: Idd9efe055b38387e3e37b132cb786cca130767b3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2245592
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68333}
2020-06-15 07:21:43 +00:00
v8-ci-autoroll-builder
333c180451 Update V8 DEPS.
Rolling v8/build: 80a5599..908ea81

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

Change-Id: Iaa95742acd71c233dc06f7335e3f03fb64feb89e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2245216
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@{#68332}
2020-06-15 03:53:13 +00:00
v8-ci-autoroll-builder
7fc1764004 Update V8 DEPS.
Rolling v8/build: 6fbfa22..80a5599

Rolling v8/tools/clang: 5e1d63a..79a0420

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

Change-Id: Ia26223b35726dd00abede7ff99d804dd9f40dd38
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2245088
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@{#68331}
2020-06-14 03:57:21 +00:00
v8-ci-autoroll-builder
db4822d1a9 Update V8 DEPS.
Rolling v8/build: 8038ef2..6fbfa22

Rolling v8/third_party/aemu-linux-x64: 57_eaFwoIK_Q_ctYaumI8hKikv527lQj5R7ctUOZBz4C..VTMne1aEixrBYfQxsfnRBgzudRPhjV-iUQeXgznyNqgC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/d3a5699..b919b00

Rolling v8/third_party/depot_tools: 44de5e3..03705f6

Rolling v8/third_party/icu: 46f53df..9e7dae8

Rolling v8/third_party/zlib: a68151f..eaf99a4

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

Change-Id: I25eb86876a8eb304594c9c242cf7849b46e02766
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2244313
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@{#68330}
2020-06-13 03:57:00 +00:00
Frank Tang
5c7c683581 Sync DateTimeFormat with latest changes
https://tc39.es/proposal-intl-datetime-style/ (Jun 10, 2020)

fix extra s in message

Bug: v8:10613
Change-Id: I2ef4f4004c1e8f0a58bf4409578876d1553de59b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2242258
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68329}
2020-06-12 19:44:42 +00:00
Andreas Haas
9d6f96c187 [wasm] Prepare tests for flipping the wasm-bigint flag
We want to enable the wasm-bigint implementation by default. However,
at the moment there exist several tests which fail when wasm-bigint
gets enabled. With this CL we adjust or delete these tests so that they
pass once wasm-bigint gets enabled. At the same time we disable these
tests for now, and re-enable them in the CL that flips the flag.

R=jkummerow@chromium.org

Bug: v8:7741
Change-Id: I733bfe7ff19e403913b143e6ea86ab13602ab993
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2243212
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68328}
2020-06-12 18:12:42 +00:00
Ng Zhi An
3c0ca76673 [clang-tidy] Use explicit default
This default constructor is used in a couple of places (e.g. compilation-cache.cc) to hold a default value that is later overwritten.
See
https://chromium.googlesource.com/chromium/src/+/HEAD/styleguide/c++/c++-dos-and-donts.md#prefer-to-use.

Bug: v8:10488
Change-Id: Ibe4741cebdcf7c350580de3e6b0bd10fd8b7be73
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2240504
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68327}
2020-06-12 16:45:13 +00:00
Etienne Pierre-doray
d1aee56d1a [Jank]: Add uri trace events
To investigate jank found in UMA sampling profiler.

Bug: chromium:1081433
Change-Id: I457731380505af5a4d7a0c30d01b4049ffd2b436
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2242037
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68326}
2020-06-12 16:27:03 +00:00
Milad Farazmand
6ba537af01 s390: [wasm-simd] Prototype f32x4 and f64x2 rounding
Port 4559bd694f

Original Commit Message:

    Implements f32x4 and f64x2 ceil, floor, trunc, nearestint, arm64.

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

Change-Id: I055b5d9c725c51df9e2e3e8274ed8c6a57e7dfad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2242140
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#68325}
2020-06-12 16:14:52 +00:00
Seth Brenith
d1f42cce56 Use correctly sized offset in basic block instrumentation
The graph verifer caught this bug. The offset in a load instruction
should be pointer-sized.

Bug: v8:10605
Change-Id: I816165c9c9ef4f0d7fbdcaf9c70faf845dbbb9fd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238016
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#68324}
2020-06-12 15:43:22 +00:00
Manos Koukoutos
a75c4be6c4 [wasm] Failing tests in module-decoder-unittests print out the error
Change-Id: I959409fb1a4f2d427c252f3904b197b71e335825
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2241520
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68323}
2020-06-12 14:40:12 +00:00
Ulan Degenbaev
cfd27c55a2 [heap] Move FreeList related code into heap/free-list.* files
This also removes unused free list classes.

Change-Id: I705ca3aca94e404cf388e6c9bac2ff9f3c38fe10
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2241525
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68322}
2020-06-12 13:54:10 +00:00
Manos Koukoutos
45cc19bb04 [wasm][cleanup] Remove IsSubtypeNoImmediates
This function wasm created as a partial subtyping check after the
subtyping refactoring for wasm-gc, but is really not needed.

Change-Id: I5f3a38dba599f1571e26d29254eb0f8614c16a8b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2241519
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68321}
2020-06-12 13:06:40 +00:00
Daniel Bevenius
f08cbfdc40 Suppress cast-function-type in PersistentBase::SetWeak
This issue was seen in Node.js when compiling with GCC. It can also
been see if building V8 using GCC and enabling -Wcast-function-type
in BUILD.gn:
  "-Wcast-function-type",

There are unit tests in V8 that produce this warning, for example
test/cctest/test-global-handles.cc (formatted to fit the commit
message width):
g++ -MMD -MF obj/test/cctest/cctest_sources/test-global-handles.o.d
...
In file included from ../../include/v8-inspector.h:14,
                 from ../../src/execution/isolate.h:15,
                 from ../../src/api/api.h:10,
                 from ../../src/api/api-inl.h:8,
                 from ../../test/cctest/test-global-handles.cc:28:
../../include/v8.h:
In instantiation of ‘void v8::PersistentBase<T>::SetWeak(
    P*,
    typename v8::WeakCallbackInfo<P>::Callback,
    v8::WeakCallbackType)
[with
  P = v8::Global<v8::Object>;
  T = v8::Object;
  typename v8::WeakCallbackInfo<P>::Callback =
  void (*)(const v8::WeakCallbackInfo<v8::Global<v8::Object> >&)
]’:
../../test/cctest/test-global-handles.cc:292:47: required from here
../../include/v8.h:10750:16: warning:
cast between incompatible function types from
‘v8::WeakCallbackInfo<v8::Global<v8::Object> >::Callback’ {aka
‘void (*)(const v8::WeakCallbackInfo<v8::Global<v8::Object> >&)’} to
‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’}
[-Wcast-function-type]
10750 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This commit suggests adding a pragma specifically for GCC to suppress
this warning.

Bug: v8:8735
Change-Id: I5dd2dccf215a7fd2f6dd14993368cc5cbb6c71e5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2080361
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68320}
2020-06-12 13:01:10 +00:00
Thibaud Michaud
08f0d06f65 [regalloc] Fix hint position cache
Attempt to fix regressions introduced by:
https://chromium-review.googlesource.com/c/v8/v8/+/2235117
{current_hint_position_} is not precise enough and can be null even if
the range contains hints.
Instead, repurpose it during register allocation so that it always holds
the last hint position found for this top level live range. This ensures
that each use position is visited at most once even when the range is
split.

R=neis@chromium.org
CC=​sigurds@chromium.org

Bug: v8:10533, chromium:1093435
Change-Id: I21f3f12f061c3e4c7e845d161b19de7499200c0c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2239568
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68319}
2020-06-12 10:04:19 +00:00
Santiago Aboy Solanes
f8fa9d4ccb [compiler] Test linear search in a big DescriptorArray in the background
For DescriptorArrays with more than 8 elements, we do a BinarySearch on
the main thread. For background thread, BinarySearch is unsafe and we
have to fall back to LinearSearch.

Bug: v8:7790
Change-Id: I7136b616ae31f509e56cf5ceb5afd659d13e0d81
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2237142
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68318}
2020-06-12 09:57:09 +00:00
Georg Neis
92012d0851 [deoptimizer] Relax a CHECK
The condition was too strong since we never store Smis into
{previously_materialized_objects}.

Bug: chromium:1094132
Change-Id: I680eb7f175f12d3c44882fd8a9eff0d062eda55f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2241517
Commit-Queue: Georg Neis <neis@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Auto-Submit: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68317}
2020-06-12 09:40:39 +00:00
v8-ci-autoroll-builder
75cb6c0c3a Update V8 DEPS.
Rolling v8/build: 3405bae..8038ef2

Rolling v8/buildtools: 1b066f0..574cbd5

Rolling v8/buildtools/linux64: git_revision:d0a6f072070988e7b038496c4e7d6c562b649732..git_revision:9a0496a74efd13c1bb2abd866d8a227404615068

Rolling v8/third_party/aemu-linux-x64: Ov029PFraVEmOQQeqY3kUZj6ERgYTsBY7XgdZYAw76IC..57_eaFwoIK_Q_ctYaumI8hKikv527lQj5R7ctUOZBz4C

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/eb9f481..d3a5699

Rolling v8/third_party/depot_tools: 1dcaaa7..44de5e3

Rolling v8/tools/clang: 9f3f85f..5e1d63a

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

Change-Id: I13e7a541ae0a9600c44718ceb7fe8bd6e4d048b1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2242020
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@{#68316}
2020-06-12 03:49:29 +00:00
Michael Lippautz
154627bff4 cppgc: Rework pre-finalizer registration
Since the registration requires calling into the library, there's no
reason to get the heap through a magic getter on API level.

Bug: chromium:1056170
Change-Id: I8d2b1d0fcee8c855908bd26c71a22826c493ed29
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238568
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68315}
2020-06-11 20:12:21 +00:00
Ng Zhi An
485313f5c5 [clang-tidy] Make deleted member functions public
Making them private was a way to hide the functions, we can
explicitly delete them, which give a better compilation error message as
well.

Also see: https://stackoverflow.com/q/55205874

Bug: v8:10488
Change-Id: I0d185063e6e282109627f25b732108905ed36833
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2223233
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68314}
2020-06-11 16:47:41 +00:00
v8-ci-autoroll-builder
a70a359d41 Update V8 DEPS.
Rolling v8/build: 7ad9ac5..3405bae

Rolling v8/third_party/aemu-linux-x64: pcue74MrtwdptQfnABqz12W-F6Br8-PlTN1pD5o_aQsC..Ov029PFraVEmOQQeqY3kUZj6ERgYTsBY7XgdZYAw76IC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/03e7ff4..eb9f481

Rolling v8/third_party/depot_tools: dcb5c85..1dcaaa7

Rolling v8/tools/clang: 6ddf849..9f3f85f

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

Change-Id: I60847ebd591bafce6640cc7a137ab82bfc07acd5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2237960
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@{#68313}
2020-06-11 03:41:51 +00:00
Ng Zhi An
372bda6c14 [clang-tidy] Remove unneeded constructor
The constructor of ByteData isn't doing anything interesting, so
can be removed.

Bug: v8:10488
Change-Id: Ic114b947ff6471075c7df49c98ea7c59c5b522bc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2233978
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68312}
2020-06-11 00:51:30 +00:00
Ng Zhi An
a4dbf43ef9 [wasm-simd] Fix f32x4 f64x2 rounding opcodes
Match opcodes proposed in https://github.com/WebAssembly/simd/pull/127,
and also move them into the list of MVP opcodes.

Bug: v8:10553
Change-Id: I02d839002673ac4aad3f863579607aaa17a52338
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2240489
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68311}
2020-06-11 00:27:14 +00:00
Michael Lippautz
935d915186 cppgc: Introduce AllocationHandle
Unified heap support in V8 requires having another (at least internal)
heap that implements a unfied garbage collection strategy. This will
not re-use the already existing cppgc::Heap because there should be no
way in creating such a heap externally or scheduling stand-alone
garbage collections.

In order to have a common token, this CL introduces AllocationHandle
which can be passed to MakeGarbageCollected to allocate C++ objects.
V8 (soon) and the stand-alone heap both have methods to retrieve such
a handle.

This works around a problem with creating diamond class hierarchies
when a base class would be exposed on the public API level.

Fast paths for Blink are still possible because allocation handles can
be cached the same way (e.g. global, or TLS) as a heap can be cached.

Tbr: yangguo@chromium.org
Bug: chromium:1056170
Change-Id: I8e9472a2c24ef82d1178953e8429b1fd8a2344bc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238027
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68310}
2020-06-10 23:11:20 +00:00
Ng Zhi An
4559bd694f [wasm-simd][arm64] Prototype f32x4 and f64x2 rounding
Implements f32x4 and f64x2 ceil, floor, trunc, nearestint, arm64.

Bug: v8:10553
Change-Id: I346c6e60719ea953ff1adc9d8791768838e57cb9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2213083
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68309}
2020-06-10 22:43:00 +00:00
Ng Zhi An
dbc19aff90 [clang-tidy] Make deleted member functions public
Making them private was a way to hide the functions, we can
explicitly delete them, which give a better compilation error message as
well.

Also see: https://stackoverflow.com/q/55205874

Bug: v8:10488
Change-Id: I3d3227c3a87ee4de983b0d4a52f46203729b99f2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2233983
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68308}
2020-06-10 22:36:10 +00:00
Ng Zhi An
25cca47644 Fix validation check for shuffle immediates
Off-by-one error - valid shuffle values are [0..31] (inclusive).

Bug: chromium:1092013
Change-Id: Ic9edd79acb148fd2061869a1765b9a50e38403ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2239754
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68307}
2020-06-10 21:48:10 +00:00
Bill Budge
00215f3043 [torque] Clean up usage of NonNumberToNumber
Bug: v8:9891

Change-Id: I601dd2a4e1c7d1e3818a55b92e83ce6b072c7ad0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238486
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68306}
2020-06-10 21:46:00 +00:00
Milad Farazmand
a4c9b58206 PPC: [wasm-simd] Implement simd shift operations
Change-Id: Iae7b56504366c7867439b7d7956f1202b2a8dc5a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2239369
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#68305}
2020-06-10 21:30:50 +00:00
Ng Zhi An
667fafcec4 Reland "[wasm-simd] Prototype f64x2 rounding instructions"
This is a reland of f7f72b7b3a

This was reverted because of a test timing out on slow_path
variant (https://crrev.com/c/2237131 for details). Turns out
the test is just really slow, and was skipped on this variant
in https://crrev.com/c/2237628. Relanding without changes.


Original change's description:
> [wasm-simd] Prototype f64x2 rounding instructions
>
> Implements f64x2 ceil, floor, trunc, nearestint, for interpreter and
> x64.
>
> Bug: v8:10553
> Change-Id: I12a260a3b1d728368e5525d317d30fc9581cae04
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2213082
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#68241}

Tbr: tebbi@chromium.org
Bug: v8:10553
Change-Id: I4cdc23d0556f11310d32fa066f40b057fd49d2d7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2237350
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68304}
2020-06-10 20:51:21 +00:00
Ng Zhi An
414522e09b [clang-tidy] Remove unneeded casts
unsigned is (uint32_t) in both branches, so the cast can be removed.

See
https://clang.llvm.org/extra/clang-tidy/checks/google-readability-casting.html
and https://google.github.io/styleguide/cppguide.html#Casting.

Bug: v8:10488
Change-Id: I6d669e36509049fde449d8455c34d140f95b9b8b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2233989
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68303}
2020-06-10 20:47:50 +00:00
Ng Zhi An
58af0be444 [clang-tidy] Use nullptr keyword
Recommended by clang-tidy's modernize-use-nullptr.

Bug: v8:10488
Change-Id: I03a6af87f281c52edd01f3ad91f9ec6e28d398d0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2233985
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68302}
2020-06-10 19:23:50 +00:00
Ng Zhi An
f36463331b [clang-tidy] Prefer static_cast to c style casts
See
https://clang.llvm.org/extra/clang-tidy/checks/google-readability-casting.html
and https://google.github.io/styleguide/cppguide.html#Casting.

Change-Id: Ib5a3bb8873bc6d050c4d0abe36a3ae813bbd448a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2233987
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68301}
2020-06-10 19:15:30 +00:00
Ng Zhi An
ab84c50219 [clang-tidy] Prefer static_cast to c style casts
See
https://clang.llvm.org/extra/clang-tidy/checks/google-readability-casting.html
and https://google.github.io/styleguide/cppguide.html#Casting.

Change-Id: Ic40a585e034e804da9ded1563e85f6dd44506da1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2233988
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68300}
2020-06-10 18:59:21 +00:00
Santiago Aboy Solanes
4e24c353d8 [compiler] Test linear searches in a DescriptorArray in the background
This CL adds a linear search test in a DescriptorArray in a known flat
object in the background thread, while the main thread exercises the
same DescriptorArray.

Also sets the foundation for the follow-ups tests in background threads.

Bug: v8:7790
Change-Id: I0e99508204808baaf605161d2eeb717eabe712fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2207147
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68299}
2020-06-10 17:25:00 +00:00
Ng Zhi An
f35c747638 [clang-tidy] Add override to overridden destructors
See
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-override.html
for more on this warning.

Bug: v8:10488
Change-Id: Ic885590553364db58259ed1d211b3ace4bfe9d23
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2233984
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68298}
2020-06-10 17:03:11 +00:00
Ng Zhi An
837ac3f68f [arm] Fix simulator implementation for vld1
vld1 was calling set_neon_register with the wrong size for register. We
follow the pseudocode implementation in the manual, by splatting the
value into a d register, and writing to the list of registers in a loop.

Bug: chromium:1092059
Change-Id: I2ce594594cd59347c20b88926f8ecc18ef9d5514
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238506
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68297}
2020-06-10 17:01:53 +00:00
Victor Gomes
33081e58f8 [unittests] Convert to the new MOCK_METHOD macro.
Change-Id: I3a624b9cb164dd4a49606f311f71ea0115afe30a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238572
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68296}
2020-06-10 15:50:38 +00:00