Commit Graph

70092 Commits

Author SHA1 Message Date
Liu Yu
074de64e2c [wasm][liftoff][mips] Detect NaNs for fuzzing
Port: e699762e06

Bug: v8:11856
Change-Id: Ib832dfcee864b21b4e56498fca54e9ae01c44ae7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2983711
Auto-Submit: Liu yu <liuyu@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#75350}
2021-06-24 08:04:43 +00:00
Sigurd Schneider
79b1646753 Don't crash on checking meta-data for non-object exceptions
Bug: chromium:1213393
Change-Id: I56817237424bb83aa9e5d06a47187f245c3cae0e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2983200
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75349}
2021-06-24 07:49:23 +00:00
Timothy Gu
0f471e8213 Add mailmap entry for timothygu99@gmail.com
Change-Id: I3ec23a8969e311be3afe684df4a545bec0453449
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2971404
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Auto-Submit: Timothy Gu <timothygu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75348}
2021-06-24 07:41:37 +00:00
Lei Zhang
50296372ea Add noexcept to cppgc::BasicPersistent's move assignment operator.
Change-Id: I9dbca09523644934eefb14fdb60f360b28417fa2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2983712
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75347}
2021-06-24 07:23:53 +00:00
Mathias Bynens
2912ebc422 Allow COMMON_OWNERS to LGTM .mailmap CLs
Bug: chromium:1213438
Change-Id: I52e381841b888e0f5edc0bad9e0319e840829914
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982600
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Auto-Submit: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75346}
2021-06-24 07:21:03 +00:00
Patrick Thier
1af5bac41b [sparkplug] Batch compilation: Increase initial queue capacity
- Increase initial queue capacity from 4 to 32 to reduce growing/copying
of the queue.
- In addition remove the HandleScopes to reduce overhead.
The only caller (BytecodeBudgetInterruptFromBytecode) already
creates one.

Bug: v8:11790
Change-Id: I33cb9222706f9b349c56a7ea14142a930b8ecbf8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982012
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75345}
2021-06-24 07:14:53 +00:00
v8-ci-autoroll-builder
c539f80eca Update V8 DEPS.
Rolling v8/build: e589a83..9dc1297

Rolling v8/buildtools: 9c143ac..46bcd59

Rolling v8/buildtools/linux64: git_revision:e9b8433248ae2c117644b4e40b33203e7d3da192..git_revision:d924640c25f9d90386716116a53957f24d709042

Rolling v8/buildtools/third_party/libc++abi/trunk: f4328ad..bf260ac

Rolling v8/third_party/aemu-linux-x64: LieFB6bFq-7RUGMVRhbOR3IXo6WdPE7fCzCMv4PnaScC..JZYvEBpGNCDNOK3uLHlpKn_AN6roNsL0YVup96egRSEC

Rolling v8/third_party/depot_tools: 09f358b..cf60c0a

Rolling v8/tools/clang: 8dd9dda..098695c

TBR=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: I29cdcfc4ef39ce45c615634b1b1452d776af5604
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2983847
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@{#75344}
2021-06-24 03:46:23 +00:00
Zheng Liu
3d640fef63 [riscv64] Fix IsIllegalInstruction function
Check whether the right most 16 bits are all-zero.

Change-Id: I13bb8856888cbabc19c1f9354048f05ff9e4aacb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2983839
Reviewed-by: Ji Qiu <qiuji@iscas.ac.cn>
Commit-Queue: Ji Qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/master@{#75343}
2021-06-24 03:28:53 +00:00
Milad Fa
c1190cf9b7 PPC/s390: [wasm][liftoff][ia32][x64] Detect NaNs for fuzzing
Port e699762e06

Original Commit Message:

    Instrument floating-point operations to set a flag if the result is NaN.
    Does not handle f32x4 and f64x2 results yet.

R=thibaudm@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
BUG=
LOG=N

Change-Id: If81861b65d2a0a98389eebb480127069fd1b5509
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2983458
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75342}
2021-06-23 23:04:43 +00:00
Milad Fa
28b93bed7a S390: check offset of lay during codegen
The immediate offset passed to `lay` might be bigger than the
allowed 20 bits, in which case we need to add it to the base
register manually.

Issue came up after this CL https://crrev.com/c/2904926 when
a related test case started failing as the offset was changed.

Change-Id: I9997bf0ed4e42e32ac52bbd2771bbcb13a328e64
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2983164
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75341}
2021-06-23 21:34:43 +00:00
Timothy Gu
224b659cd4 Install class "name" accessor before methods
https://github.com/tc39/ecma262/pull/1490 changed the spec so that the
"name" property of a class should be installed after "length" but before
"prototype". This CL adapts accordingly.

After this change, there is now no need for the separate code path to
set the "name" accessor at runtime. Delete the relevant runtime code as
well.

Bug: v8:8771
Change-Id: I8f809b45bf209c899cf5df76d0ebf6d9a45a6d4e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2974772
Commit-Queue: Timothy Gu <timothygu@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75340}
2021-06-23 18:05:30 +00:00
Adam Kallai
250a64806c Fix the build on Windows on ARM
SNPrintF function is moved into base/strings.h [1],
so it needs to fix the scope of this function
for Windows on ARM related source as well.

[1] https://chromium-review.googlesource.com/c/v8/v8/+/2972732

Bug: None
Change-Id: Ia9934f17941558b6338f28900f069766507c87b2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982016
Reviewed-by: Dan Elphick <delphick@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75339}
2021-06-23 16:59:20 +00:00
Clemens Backes
c581e790dc Reland "[wasm] Remove WasmInstructionBuffer"
This is a reland of ac6546469d.
Two constants defined in {AssemblerBase} were not defined anywhere,
which is fixed now.

Original change's description:
> [wasm] Remove WasmInstructionBuffer
>
> {WasmInstructionBuffer} was basically a wrapper around {AssemblerBuffer}
> which remembered the last {AssemblerBuffer} on {Grow()}. Since the
> {Assembler} itself already keeps track of the latest {AssemblerBuffer},
> this functionality is mostly redundant. All we need instead is a method
> to retrieve the {AssemblerBuffer} from the {Assembler}.
>
> This CL thus removes {WasmInstructionBuffer} and instead adds
> {AssemblerBase::ReleaseBuffer}.
>
> R=jkummerow@chromium.org, mslekova@chromium.org
> CC=dlehmann@google.com
>
> Bug: v8:11714
> Change-Id: Id07945b67992802a6177bf09e5f5c5be08f657b0
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982013
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Maya Lekova <mslekova@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75336}

Bug: v8:11714
Change-Id: I8797de1a7a78a93aaef936e46bfd1e73ec2cc9d5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982015
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75338}
2021-06-23 16:38:58 +00:00
Maya Lekova
f8182a8e8a Revert "[wasm] Remove WasmInstructionBuffer"
This reverts commit ac6546469d.

Reason for revert: Breaks ASAN no-inline - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Clusterfuzz%20Linux64%20ASAN%20no%20inline%20-%20release%20builder/22909/overview

Original change's description:
> [wasm] Remove WasmInstructionBuffer
>
> {WasmInstructionBuffer} was basically a wrapper around {AssemblerBuffer}
> which remembered the last {AssemblerBuffer} on {Grow()}. Since the
> {Assembler} itself already keeps track of the latest {AssemblerBuffer},
> this functionality is mostly redundant. All we need instead is a method
> to retrieve the {AssemblerBuffer} from the {Assembler}.
>
> This CL thus removes {WasmInstructionBuffer} and instead adds
> {AssemblerBase::ReleaseBuffer}.
>
> R=​jkummerow@chromium.org, mslekova@chromium.org
> CC=​dlehmann@google.com
>
> Bug: v8:11714
> Change-Id: Id07945b67992802a6177bf09e5f5c5be08f657b0
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982013
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Maya Lekova <mslekova@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75336}

Bug: v8:11714
Change-Id: Iff32952f712ab2f0f9a16d91906d0135c084f4df
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982014
Auto-Submit: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#75337}
2021-06-23 15:47:16 +00:00
Clemens Backes
ac6546469d [wasm] Remove WasmInstructionBuffer
{WasmInstructionBuffer} was basically a wrapper around {AssemblerBuffer}
which remembered the last {AssemblerBuffer} on {Grow()}. Since the
{Assembler} itself already keeps track of the latest {AssemblerBuffer},
this functionality is mostly redundant. All we need instead is a method
to retrieve the {AssemblerBuffer} from the {Assembler}.

This CL thus removes {WasmInstructionBuffer} and instead adds
{AssemblerBase::ReleaseBuffer}.

R=jkummerow@chromium.org, mslekova@chromium.org
CC=dlehmann@google.com

Bug: v8:11714
Change-Id: Id07945b67992802a6177bf09e5f5c5be08f657b0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982013
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75336}
2021-06-23 15:27:49 +00:00
Thibaud Michaud
e699762e06 [wasm][liftoff][ia32][x64] Detect NaNs for fuzzing
Instrument floating-point operations to set a flag if the result is NaN.
Does not handle f32x4 and f64x2 results yet.

R=clemensb@chromium.org

Bug: v8:11856
Change-Id: I1c3603e2c0c92e71bea8418e85852c01904379af
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2979600
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75335}
2021-06-23 15:17:48 +00:00
Clemens Backes
cd41108d82 [wasm] Fix race on isolate shutdown
If we were unlucky and start wrapper compilation exactly after the
isolate started shutting down, we would not have an isolate info any
more in the isolate and would access a nullptr.
This CL fixes that by just returning an invalid operations barrier token
in that case.

R=ahaas@chromium.org

Bug: v8:11878
Change-Id: I6dcb28a21debb12ba812f705cd5c6387c76eda09
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982339
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75334}
2021-06-23 14:24:58 +00:00
Maya Lekova
d0aebc06e0 [fastcall] Support JSArray as arguments
This CL adds support in TurboFan for passing JSArrays as arguments to
fast API callbacks. It also extends the v8::Array class with a
CopyAndConvertArrayToCppBuffer method to allow the embedder to perform
quick conversions of their JSArrays to a C++ buffer. The CL also adds
tests in d8. Design doc:
https://docs.google.com/document/d/1BNKKZNgrGYafx8kqSfNEQqQYY5n4A6mGufss_Vz-h-4/edit#heading=h.c0kgf82jnlpp

Bug: chromium:1052746, chromium:715122
Change-Id: If47ac60d9ebe6462bbf3adff002e2da8e14e8fc8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2940900
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75333}
2021-06-23 14:01:40 +00:00
Milad Fa
70dd5f89e3 S390 [liftoff]: push and pop Simd registers
Detect if Simd is enabled and if so push/pop the entire
128 bit value, if not then only push/pop the double values.

Change-Id: I45d54dcf799a685066559cc3521ef44cd884b788
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2979352
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75332}
2021-06-23 13:03:38 +00:00
Santiago Aboy Solanes
b49e43e34d [compiler] Mark TemplateObjectDescription as NeverEverSerialized
Bug: v8:7790
Change-Id: I617d076a0f2a63bcd0ba5b896b14dee5370bbbc9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982237
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75331}
2021-06-23 12:53:28 +00:00
Michael Lippautz
e8c5de2137 api: Make sure TracedReference never is a zap value
When checks are enabled, ensure that the global handle zap value never
leaks into user code as it indicates that the garbage collector failed
to keep alive an object.

Bug: chromium:1056170
Change-Id: I4836fe49cd6e443d689068af10276ed99b46eb10
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972729
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75330}
2021-06-23 12:32:48 +00:00
Victor Gomes
00fb203d58 [baseline] Use CodeBuilder:TryBuild to handle on heap compilation
Bug: v8:11872
Change-Id: Ibd26b025fc5eb12d90c3a1c932bd9b8473612016
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2978254
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75329}
2021-06-23 12:14:38 +00:00
Al Muthanna Athamina
151668b935 [infra] Add experimental bot for external code space
Bug: v8:11902
Change-Id: Id7b19d540bf9b4047febb7fcc2193f3c08fb1ca5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2979872
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75328}
2021-06-23 11:33:03 +00:00
Santiago Aboy Solanes
78ba02233d [compiler] Mark boilerplate descriptions as NeverEverSerialized
Mark:
 * ArrayBoilerplateDescription
 * ObjectBoilerplateDescription
as NeverEverSerialized, disable their Data classes and remove the
related code.

Bug: v8:7790
Change-Id: I9ac1f27d9d7a0d36a04214422261e157cbbcd4b7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2979604
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75327}
2021-06-23 11:20:13 +00:00
Igor Sheludko
939ee79d99 [runtime] Fix spec violation in Object.defineProperties
... which didn't properly handle non-Smi integer indices with
JSTypedArray receivers.

The addition of new JSReceiver::OrdinaryDefineOwnProperty() overload
with LookupIterator::Key caused circular dependency between lookup.h
and js-objects.h, so the LookupIterator::Key was moved out of the
LookupIterator class in order to make it forward-declarable.

Bug: chromium:1209405
Change-Id: I265f0c00f65ab6476c8f1d0ca1264f555d43465f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972727
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75326}
2021-06-23 10:13:03 +00:00
Jakob Kummerow
16146df5d8 [heap] Don't create fillers in LO space
LargeObjectSpace doesn't make use of filler objects, so if we
create them when right-trimming objects, then that's a waste
of time at best, and causes a segfault in a SLOW_DCHECK at worst,
namely when CreateFillerObjectAt calls GetHeapFromWritableObject
on what's effectively an inner pointer (on some random LO page).

Change-Id: I91bbcaa219db78a0f98660590d5156c4b4a5414e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972914
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75325}
2021-06-23 10:07:03 +00:00
Ross McIlroy
c93c2f8e1d [Turboprop] Add support for inlined js wasm calls.
In preperation for enabling limited inlining in Turboprop, add support
for lowering of Wasm JS calls that could be inlined as a result.

BUG=v8:9684

Change-Id: I744e190d6f14eeed7a9758cbd7f784f759785f4a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2979601
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75324}
2021-06-23 09:27:23 +00:00
Mihir Shah
9711289d06 A jump-table implementation for constant case switch statements
The change is made since for switch statements with lots of cases,
where each case is a constant integer, the emitted bytecode is still
a series of jumps, when we can instead use a jump table.

If there are 6 or more cases (similar to GCC) of Smi literals, and
if the max Smi case minus the min Smi case is not more than 3 times
the number of cases, we use a jump table up front to handle Smi's,
and then use traditional if-else logic for the rest of the cases.

We then use the jump table in interpreter/bytecode-jump-table to
do the optimization.

This tries to go off issue 9738 in v8's issue tracker. It is not
exactly the same, since that recommends doing the work at JIT-time,
but has similar ideas. It also partially goes off issue 10764.

Bug: v8:9738
Change-Id: Ic805682ee3abf9ce464bb733b427fa0c83a6e10c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2904926
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75323}
2021-06-23 09:26:23 +00:00
Yoshisato Yanagisawa
b0ad4a11d2 Add re-client linux/win binaries to DEPS.
Fetch re-client binaries CIPD package via CIPD during gclient sync step.

Bug: chromium:1222951
Change-Id: I7c748b6555df293ee8a43a8b523f63a40cb70f6f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2981692
Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Auto-Submit: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75322}
2021-06-23 08:40:33 +00:00
Timothy Gu
528a01042d [parser] Ignore parenthesized identifiers when setting function name
Code such as

    var a;
    (a) = function() {};

should not lead to a.name being set to "a".

This fixes the last of the anonymous function naming bugs.

Bug: v8:4709
Change-Id: I70c2fcbcec1a57752fd58038262d02aefe26e28a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2970705
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75321}
2021-06-23 08:23:03 +00:00
Michael Achenbach
5e275b580f [test] Allow more time for tsan testing
This increases the base factor for timeouts on tsan as testing got
slower after https://crrev.com/c/2953321

Due to overall slower runtime we also increase the shards.

Bug: v8:11906
Change-Id: Ic5de5859755266a1e327433ce8efe6c171490a8d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2979671
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75320}
2021-06-23 07:51:52 +00:00
Leszek Swirski
6d1d1fbd8b Reland "[sparkplug] Trigger compilation when a FBV exists"
This is a reland of 3296de2f65
It includes pthier@'s fix of overzealous OSR

Original change's description:
> [sparkplug] Trigger compilation when a FBV exists
>
> We were gating baseline compilation on FBV allocation, but in some
> cases, the feedback vector may be allocated eagerly (notably, if we are
> logging function events). Instead, unconditionally try baseline
> compilation after ensuring the feedback vector exists.
>
> Bug: v8:11420
> Change-Id: I1264a1d541a74d4eccb5caf65c360ac23836a1a8
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2953161
> Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Patrick Thier <pthier@chromium.org>
> Reviewed-by: Patrick Thier <pthier@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75242}

Bug: v8:11420
Change-Id: Ia6864856926d6760bbe6c89ee010fa62cf23b6ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2976660
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75319}
2021-06-23 07:42:33 +00:00
John Xu
93604c5ab7 Upstream Cobalt changes in cpu
These are the changes Cobalt currently has in V8's cpu related code.
- Add missing Starboard CPU code
- Replace some V8_OS_WIN with V8_TARGET_OS_WIN, they are found when
  cross-compiling for Linux platforms on Windows

Bug: v8:10927
Change-Id: Id63ae8614cbe6fe0eb53df89060c8ca2c9969ef4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2963803
Commit-Queue: John Xu <johnx@google.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75318}
2021-06-23 05:33:34 +00:00
John Xu
2c2b2132e6 Add Dummy implementations of atomics for Cobalt
This is part of Cobalt's upstream effort to be more in sync with V8.
Cobalt does not trigger the atomics functions in runtime-atomics.cc so
we use dummy implementations for now.

Bug: v8:10927
Change-Id: I2da75b7f9b22b41a1ff00af1ab4b43641e9a33bf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2963801
Commit-Queue: John Xu <johnx@google.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75317}
2021-06-23 05:24:23 +00:00
v8-ci-autoroll-builder
c758c7135d Update V8 DEPS.
Rolling v8/build: 69cba92..e589a83

Rolling v8/buildtools: 7bff39b..9c143ac

Rolling v8/buildtools/linux64: git_revision:170c2dba1e0c0299fe8c6a441caf2f2352a42ae0..git_revision:e9b8433248ae2c117644b4e40b33203e7d3da192

Rolling v8/buildtools/third_party/libc++/trunk: 79a2e92..8fa8794

Rolling v8/third_party/aemu-linux-x64: KN9a-2MYhLQ9kDLdCOca4xZcBjrhMIzoD4ReyO0u95IC..LieFB6bFq-7RUGMVRhbOR3IXo6WdPE7fCzCMv4PnaScC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/2ba6b1f..a2a4ced

Rolling v8/third_party/depot_tools: b714c17..09f358b

Rolling v8/third_party/googletest/src: 7153098..355d57d

Rolling v8/tools/clang: 2d4e9fd..8dd9dda

TBR=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: I04c672d47a7f34507045c81964f869d5fe145d52
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2981458
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@{#75316}
2021-06-23 03:52:03 +00:00
Dan Elphick
c941c4d960 Fix mips build after adding base/strings.h
Bug: v8:11879
Change-Id: I8f307490ca253e6d458db14cc5bf771d6fe1db57
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2979593
Auto-Submit: Dan Elphick <delphick@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#75315}
2021-06-23 01:38:59 +00:00
Dan Elphick
3c25c398a0 Fix riscv64 build due to base/strings.h change
Bug: v8:11917
Change-Id: Ie80a24bc9826aa42d7a35dcebda3bd4ed5be05ba
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2980971
Auto-Submit: Dan Elphick <delphick@chromium.org>
Commit-Queue: Ji Qiu <qiuji@iscas.ac.cn>
Reviewed-by: Ji Qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/master@{#75314}
2021-06-23 01:32:24 +00:00
Junliang Yan
06398e1ca1 ppc: [liftoff] implement Load for liftoff
Change-Id: I237f5ad18b82e2e2bf807241ce587a38a27e0b10
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2979592
Commit-Queue: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Auto-Submit: Junliang Yan <junyan@redhat.com>
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75313}
2021-06-22 18:33:42 +00:00
Milad Fa
8810a11847 PPC/s390: [base] Create base/strings.h
Port 9010201c99

Original Commit Message:

    Moves VSNPrintf, SNPrintf and StrNCpy out of utils/utils.h into
    base/strings.h.

R=delphick@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
BUG=
LOG=N

Change-Id: Ia06003c1daea94e3767083b910bee1498bec37cd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2979474
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75312}
2021-06-22 18:31:02 +00:00
Ross McIlroy
ecea71d067 [Turboprop] Temporarily disable dynamic map checks.
To enable experimentation with inlining, temporarily disable dynamic
map checks which currently don't support inlining.

BUG=v8:9684

Change-Id: Iba674550213b393ab150ba241a2dad4ca8fdfd85
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2978257
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75311}
2021-06-22 18:08:44 +00:00
Jakob Kummerow
7065784ac9 [bigint] Burnikel-Ziegler division
The Burnikel-Ziegler division algorithm is used for divisors
with 57 or more internal digits. It has better asymptotic
complexity than "schoolbook" division because it can make use
of fast multiplication under the hood.

Bug: v8:11515
Change-Id: Ib5d573a0afa560d42972c4ae06aff810a8b9cadb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2960221
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75310}
2021-06-22 17:58:21 +00:00
Georg Neis
eeead50c9c Instrument JSObject::GetHeaderSize to track down Chrome crashes
Bug: chromium:1211264
Change-Id: If47e40e82d79707c7032837f56450790c089cf4b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2976659
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75309}
2021-06-22 17:23:13 +00:00
Dan Elphick
9010201c99 [base] Create base/strings.h
Moves VSNPrintf, SNPrintf and StrNCpy out of utils/utils.h into
base/strings.h.

Bug: v8:11879
Change-Id: I0e165cb27c42f89c9acd1c6378514b40a90cd18d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972732
Auto-Submit: Dan Elphick <delphick@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75308}
2021-06-22 16:55:32 +00:00
Santiago Aboy Solanes
b952ea1685 [compiler] Skip MapRef descriptor array's serialize methods
We don't need to serialize the descriptor array when concurrent
inlining so we can skip the methods related to serializing.

While doing so we bumped into two broken tests in serializer-tester.
Since we are planning on removing the serializer soon, it makes more
sense to remove them than trying to fix them.

Bug: v8:7790
Change-Id: Ib1feea16f09edebbd9927afc4178ed10f85fd42f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2975300
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75307}
2021-06-22 16:39:33 +00:00
Andreas Haas
07e6b125c9 [wasm] Don't expect a high-resolution counter for deserialization time
In the first CL to introduce a histogram for deserialization time a
high-resolution counter was required to get microsecond precision.
However, with the histogram we want to detect if we need to optimize
deserialization or not. For this information high precision does not
matter, it is more important that we get information from all devices.

R=clemensb@chromium.org

Bug: v8:11862
Change-Id: Id72e25ab7e5ac8217393ab6fd11416187822a158
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2978256
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75306}
2021-06-22 15:07:42 +00:00
Junliang Yan
00b4515c51 s390: fix offset overflow on atomic op
Change-Id: If8017e175fe4568ba10889dbb3b88cce897ec57e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972736
Auto-Submit: Junliang Yan <junyan@redhat.com>
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75305}
2021-06-22 14:55:52 +00:00
Camillo Bruni
39a1ae9a0d [codegen] Fix places where we explicitly rely on movl
This partially reverts https://crrev.com/c/2649032
The previous CL was a bit too aggressive in replaceing movl with Move
which does sign extension for int32.

We can only safely replace movl if the input is in the [0, 2**31] range.


Bug: chromium:1220855
Change-Id: I6c29db1acd7de6b03ffaf802a868b6a531252bc0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2975860
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75304}
2021-06-22 14:32:42 +00:00
Milad Fa
299f4c5daf S390: Check memory offset when emitting vstbr
Add a similar check used in vlbr to make sure offset is
a 12 bit unsigned integer.

Change-Id: I12ef8734a7223fa375a31e55ecc81d1175de17c0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2977272
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75303}
2021-06-22 14:17:52 +00:00
Leszek Swirski
18bcc9a6f2 [system-analyzer] Add source map support
- Asynchronously load source map from sourceMappingURL
  - Once loaded, annotate source positions with their original position
  - Update script panel tooltip to include link to original source
     - For the above, make DOM.element a slightly more flexible API,
       allowing defining attributes and children
     - Also fix ToolTipEvent handling to support nodes.
  - Shuffle around some code to make createScriptNode async, in case
    we want to load the source map when building the script node itself.
  - Drive-by: make source markers a simple backgroundColor when there is
    only one group.

Change-Id: I0926807761cbfe8b6dd8ff5154815a7e5ccb39bf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972827
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75302}
2021-06-22 14:11:03 +00:00
Victor Gomes
329ee4d423 [baseline] Use RO empty byte array in NewEmptyCode
Bug: v8:11872
Change-Id: I95fb2199fb91f51e9b03a8a88000f9240d5d104b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2978255
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75301}
2021-06-22 13:38:52 +00:00