Commit Graph

67893 Commits

Author SHA1 Message Date
Marja Hölttä
7a8da348a7 Reland: [web snapshots] Web Snapshots Version 0.01
(Reland: removed the d8 changes, will land them separately.)

The minimal implementation which does something useful. Initial
machinery for serializing / deserializing objects and functions (only
the very simple cases are supported).

For more info, see https://docs.google.com/document/d/1Qierkg3b3klIwCQt-oZCHqhcc1_9DXNIErBwvdpD4wU/edit?usp=sharing

Previous version: Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716288

TBR=leszeks@chromium.org,syg@chromium.org,hpayer@chromium.org

Bug: v8:11525
Change-Id: Ia61ed7de36f371d931eff68156ab467723915704
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2759510
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73401}
2021-03-15 12:00:40 +00:00
Victor Costan
f02aba9498 Add test coverage for x86 processors with SSE3 but not SSSE3 support.
One of the x86 ISA extensions is confusingly named SSSE3 (*Supplemental*
Streaming SIMD Extensions 3). SSSE3 supersedes SSE3, and is superseded
by SSE4.

This CL adds testing coverage for x86 CPUs that support SSE3
instructions, but do not support SSSE3 instructions. Chrome supports
these CPUs, and they are used by a non-trivial amount of Chrome's users
on Windows.

Change-Id: I7b1f1e0167708ae285a71530a01b9b474cb08352
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757893
Auto-Submit: Victor Costan <pwnall@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73400}
2021-03-15 10:09:09 +00:00
Thibaud Michaud
e05eb4fe17 [wasm][liftoff][eh] Implement delegate
R=clemensb@chromium.org

Bug: v8:11453
Change-Id: Iecc78f14cd514cd650e00f1a4731fddba53e47a5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752878
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73399}
2021-03-15 09:57:09 +00:00
Patrick Thier
6748e359a2 Accept Proxy in d8.test.verfiySourcePositions
If a Proxy is passed as argument to d8.test.verifySourcePositions,
unwrap the target function.

Bug: chromium:1186491
Change-Id: Iaacbf800f023121a07035a88745919df68f79217
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748081
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73398}
2021-03-15 09:53:14 +00:00
Seth Brenith
10f347690d [torque] Don't report unused macros if they're marked as unused
Torque generally supports marking things as unused by adding a single
underscore to the front of identifiers. For locals, this feature works
fine. For macros, it's only half-implemented: attempting to look up a
macro that starts with _ fails (as it should), but the compiler also
complains if the macro is unused. This change avoids emitting the latter
error.

Bug: v8:7793
Change-Id: Ib021c053004a180dd31993d3ad06cde463bafd5d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757208
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73397}
2021-03-15 09:52:10 +00:00
Clemens Backes
895a825d4b Revert "[wasm] Emit safepoint info for callee-saved registers in the deopt-index"
This reverts commit 74960db4db.

Reason for revert: Segfaults on CFI: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20CFI/4999/overview

Original change's description:
> [wasm] Emit safepoint info for callee-saved registers in the deopt-index
>
> Encode safepoint info of callee-saved registers in the deopt index of
> the normal safepoint.
>
> Change-Id: I93bd0d2330b7f592b767860743c04a65ddaa92f5
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739977
> Commit-Queue: Andreas Haas <ahaas@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73395}

Change-Id: Ic4803b06a64b615f2258c594b601b4e8fd4b7bff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2759513
Auto-Submit: Clemens Backes <clemensb@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@{#73396}
2021-03-15 09:46:11 +00:00
Andreas Haas
74960db4db [wasm] Emit safepoint info for callee-saved registers in the deopt-index
Encode safepoint info of callee-saved registers in the deopt index of
the normal safepoint.

Change-Id: I93bd0d2330b7f592b767860743c04a65ddaa92f5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739977
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73395}
2021-03-15 08:55:39 +00:00
Michael Lippautz
8c857fda59 cppgc: Cleanups
Cleanups around tracing bottlenecks and tests.

Bug: chromium:1056170
Change-Id: I1f9ddd6d8727971db3bed5294f4ff3fdd20a9e34
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757696
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73394}
2021-03-15 08:37:39 +00:00
Hong Zheng
84e0835ce7 Update load start time
Add a V8 API to update load start time for RAIL PERFORMANCE_LOAD mode

Bug: v8:10947

Change-Id: If86a815f8974b47a6f4ba82c3661c21b73f39553
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2423403
Auto-Submit: Hong Zheng <hong.zheng@intel.com>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73393}
2021-03-15 07:47:09 +00:00
Kim-Anh Tran
a7c8a3ea9b [debugger] Consider close-by functions when setting a breakpoint
This changes the behavior of SetBreakpointForScript to find more
accurate break positions.

Previously, setting a breakpoint would only consider the shared
function info that contained the requested position for setting a
breakpoint. More intuitively, a breakpoint should not necessarily
be set in a function that contains the position, but in the closest
breakable location that comes after the position we requested.

To achieve this we:
1. find the shared function info of the inner most function
that contains the requested_position.
This function's end position is used to find other shared function
infos in step 2.

2. search for all shared function infos that intersect with the
range [requested_position, inner_most_function.break_position[.

3. From the shared function infos extracted in 2, find the one
that has the closest breakable location to requested_position.

Also-By: bmeurer@chromium.org
Fixed: chromium:1137141
Change-Id: I4f4c6c3aac1ebea50cbcad9543b539ab1ded2b05
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742198
Commit-Queue: Kim-Anh Tran <kimanh@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73392}
2021-03-15 07:00:49 +00:00
v8-ci-autoroll-builder
0bb7449983 Update V8 DEPS.
Rolling v8/build: 421f3e0..5f2e66e

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/58bac68..6e87bdd

Rolling v8/third_party/depot_tools: bb890d6..159efca

Rolling v8/tools/clang: e645571..91db20b

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I496ee15bb259471bc77e856d91dbb29ab70ae657
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2758919
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@{#73391}
2021-03-15 03:47:39 +00:00
v8-ci-autoroll-builder
fbc3b185dc Update V8 DEPS.
Rolling v8/buildtools/linux64: git_revision:e0358b49272c8b354eda0a595e1d7887343fab27..git_revision:64b3b9401c1c3ed5f3c43c1cac00b91f83597ab8

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I9f79e66b832ab46ffbc3b3065613cd8a8e4ce563
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2758912
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@{#73390}
2021-03-14 03:45:18 +00:00
v8-ci-autoroll-builder
3ceaddf968 Update V8 DEPS.
Rolling v8/build: 7633fcf..421f3e0

Rolling v8/buildtools: 7242196..69cc9b8

Rolling v8/buildtools/linux64: git_revision:dfcbc6fed0a8352696f92d67ccad54048ad182b3..git_revision:e0358b49272c8b354eda0a595e1d7887343fab27

Rolling v8/third_party/aemu-linux-x64: xkJqHNeFPOJ9cNmeaij9qrxQTAP8oRjXHcuTdg2nny8C..fU_J9KtzLrfiXhqpf_1eV01gy30M641raluN5uaKPNAC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/7a3a736..58bac68

Rolling v8/third_party/depot_tools: e8b56fb..bb890d6

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I529b8768c8f7efd2d5960a8d10fa16fe914848df
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2758100
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@{#73389}
2021-03-13 03:46:57 +00:00
Junliang Yan
7e7458fcec s390x: [liftoff] fix stack endianness issue
Change-Id: I61af83e5f6399d82cd6cabdb2a4399f98f71cdb1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756712
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73388}
2021-03-13 00:59:07 +00:00
Ng Zhi An
1866b69c26 [ia32] Merge some macro-assembler functions into macro lists
Bug: v8:11384
Change-Id: I5da5cc11c69844833ab703bd2fb439e4f51db501
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2750727
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73387}
2021-03-13 00:15:07 +00:00
Ng Zhi An
c929b7a9ed [wasm-simd][ia32] Small optimization to v128.and_not
If AVX is supported, don't need dst == src, this can save a move.

Move the Andnps macro around, and update callsites in Liftoff.

Bug: v8:11190
Change-Id: I7307b70943fdd91550d608cb91e9890f23d1b3ad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2750726
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73386}
2021-03-12 23:35:57 +00:00
Ng Zhi An
104283a22e [wasm-simd][ia32] Small optimization for i64x2.abs
We no longer need unique register for src, since I64x2Abs
macro-assembler handles the case when dst == src (by using the scratch).
This is equivalent to calling the VisitRRSimd helper.

Bug: v8:11190
Change-Id: Ibabb6da970e983ca2c9326057a6dc43cc7b7c435
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2750725
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73385}
2021-03-12 22:48:47 +00:00
Milad Fa
ebad91c650 PPC [simd]: Implement vand complement, div and QF ops on Sim
Change-Id: I614d1ccf83e1275d06211917906e7094bfad5bc4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757691
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73384}
2021-03-12 22:13:27 +00:00
Bill Budge
c6c057ac2c Revert "[web snapshots] Web Snapshots Version 0.01"
This reverts commit fb03b88ed1.

Reason for revert: Very speculative revert to make Win64 ASAN bot green:
https://ci.chromium.org/p/v8/builders/ci/V8%20Win64%20ASAN/17685

Original change's description:
> [web snapshots] Web Snapshots Version 0.01
>
> The minimal implementation which does something useful. Initial
> machinery for serializing / deserializing objects and functions (only
> the very simple cases are supported).
>
> For more info, see https://docs.google.com/document/d/1Qierkg3b3klIwCQt-oZCHqhcc1_9DXNIErBwvdpD4wU/edit?usp=sharing
>
> Bug: v8:11525
>
> Change-Id: I73c4de11285c7912bf9870868d203d4b3d2b4e5f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716288
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Reviewed-by: Shu-yu Guo <syg@chromium.org>
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Marja Hölttä <marja@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73371}

Bug: v8:11525
Change-Id: I8e1ea8666f2d4d6eac3575a364e0532167dd3316
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757891
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73383}
2021-03-12 21:20:28 +00:00
Milad Fa
544185dbef PPC [simd]: Implement vperm, splat imm and load reverse on Sim
Also fixed the disassembler to include 10th bit of instruction.

Change-Id: Idc6659a8a9d6a291b68537bae533a32970a4441d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757567
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73382}
2021-03-12 19:30:49 +00:00
Clemens Backes
052db704e0 [cleanup] Remove redundant macro list
Just saw this on an unrelated change. This is a left-over from
https://crrev.com/c/2007490.

R=jkummerow@chromium.org

Bug: v8:11384
Change-Id: Iaa6134458e05b58a15ff465b01a86d18bfabd746
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756528
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73381}
2021-03-12 19:24:57 +00:00
Clemens Backes
7e8df34eb5 [no-wasm] Group wasm test functions in a separate macro list
A little cleanup after https://crrev.com/c/2752867.

R=jkummerow@chromium.org

Bug: v8:11238
Change-Id: I6e8b29c852ce6f8267f4b2fb4afe404659503a64
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756527
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73380}
2021-03-12 19:17:46 +00:00
Milad Fa
f468a85d4f PPC/s390: [wasm][liftoff] Avoid x28 even without pointer compression
Port 8d0f5a0418

Original Commit Message:

    Due to a recent change Liftoff used different register configurations
    in the pointer-compression and no-pointer-compression setups. This
    caused a mismatch between the registers used by Liftoff and the
    registers spilled by the WasmDebugBreak builtin.

    With this CL the same register configuration is used both with and
    without pointer compression. Even without x28 there are 24 registers
    that can be used. Moreover, 24 registers can be spilled without
    padding, which would be needed with 25 registers to preserve stack
    alignment.

    Drive-by change: Use Reglist in frame-constants on all platforms.

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

Change-Id: Ibad93faeaba88f929db16d239858da6e45ca673b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756550
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73379}
2021-03-12 18:18:02 +00:00
Michael Achenbach
39774379f0 Revert "[wx] Keep the execute bit while making code writable"
This reverts commit 3094d59889.

Reason for revert: Breaks on Mac arm64:
https://ci.chromium.org/p/v8/builders/ci/V8%20Mac%20-%20arm64%20-%20release/3109

Original change's description:
> [wx] Keep the execute bit while making code writable
>
> Otherwise SMC perturbs the icache too much it seems.
>
> Change-Id: Iceea779a7e3deee90efe29df568732d6ac5bcffa
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2753768
> Commit-Queue: Toon Verwaest <verwaest@chromium.org>
> Auto-Submit: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73355}

Change-Id: I4e85f6308ca22e366cdad4b621d233c3b1e3ed90
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756539
Auto-Submit: Michael Achenbach <machenbach@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@{#73378}
2021-03-12 17:07:14 +00:00
Michael Lippautz
3bb164334e cppgc: Fix GCInfo folding
Actually apply the folding on allocation.

Bug: chromium:1056170
Change-Id: Ief25fac49c5caff40579fd44249bba0ae82f9689
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756536
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73377}
2021-03-12 17:04:12 +00:00
Milad Fa
7e7b884f73 Revert "s390x: [liftoff] implement Indirect/CallIndirect"
This reverts commit 4fb19d5608.

Reason for revert: intermittent test failure on s390 native:

d8 --test test/wasm-spec-tests/tests/proposals/reference-types/select.js --random-seed=1408892184 --nohard-abort --testing-d8-test-runner --stress-background-compile --finalize-streaming-on-background --stress-wasm-code-gc --experimental-wasm-reftypes --wasm-staging


Original change's description:
> s390x: [liftoff] implement Indirect/CallIndirect
>
> Change-Id: I953d1f9e1789cb6f754b1206edcac752e4f22801
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749575
> Reviewed-by: Milad Fa <mfarazma@redhat.com>
> Commit-Queue: Junliang Yan <junyan@redhat.com>
> Cr-Commit-Position: refs/heads/master@{#73327}

Change-Id: I64fbf9a8ff9294500cac70142831f02806653e51
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756548
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73376}
2021-03-12 16:37:52 +00:00
Ulan Degenbaev
578f6be77f [api] Remove deprecated [Shared]ArrayBuffer API
Bug: v8:9380
Change-Id: I47d23dda133c3838c7f0e8e5ccfdbe3b9520684f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2720306
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73375}
2021-03-12 16:24:42 +00:00
Junliang Yan
5e08891f69 s390x: [liftoff] implement u32_to_intptr
Change-Id: I3f96414aa58fb7e5810036c669539b8593509ccf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756547
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73374}
2021-03-12 16:12:52 +00:00
Clemens Backes
d8c8387a59 [logging] Fix printing of single-byte enums
We still get e.g. ClusterFuzz reports with enums printed as
non-printable single-character strings (see linked bug).
This CL fixes this, and also includes the integral enum value for enum
that come with their own output operator.

This makes error messages strictly better, at the cost of some more code
per enum which is being used in a CHECK/DCHECK.
Note that binary size of release builds is not affected, since we do not
print the values there.

R=nicohartmann@chromium.org

Bug: v8:11384, chromium:1187484
Change-Id: I066b32f68440096babed9b629c7ffe3f2285cba8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756226
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73373}
2021-03-12 15:43:12 +00:00
Santiago Aboy Solanes
40f39b5d52 [cleanup] Refactor Map::EnsureDescriptorSlack's update loop
Don't call UpdateDescriptors twice on {map} in the cases where {map} is
not the initial map.

Change-Id: I2005b8dda1b15c87e0bf1d933a16a2aedfa7ac6b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2743888
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73372}
2021-03-12 15:36:52 +00:00
Marja Hölttä
fb03b88ed1 [web snapshots] Web Snapshots Version 0.01
The minimal implementation which does something useful. Initial
machinery for serializing / deserializing objects and functions (only
the very simple cases are supported).

For more info, see https://docs.google.com/document/d/1Qierkg3b3klIwCQt-oZCHqhcc1_9DXNIErBwvdpD4wU/edit?usp=sharing

Bug: v8:11525

Change-Id: I73c4de11285c7912bf9870868d203d4b3d2b4e5f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716288
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73371}
2021-03-12 14:46:02 +00:00
Yahan Lu
6d8e8ab315 [riscv64] Port the lastest change
[codegen][frames] Generalize argument padding slot code"
  [wasm-simd][riscv64] Add i64x2 ne and alltrue

Bug: v8:11347, v8:11348, v8:9198
Change-Id: I1338752fb9db332cd94500107bfd460f9167bb2e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2690182
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73370}
2021-03-12 14:36:02 +00:00
Mythri A
3329cbc8eb Enable FLAG_feedback_allocation_on_bytecode_size
This flag enables feedback allocation heuristics to be based on the
function size. The threshold for feedback allocation is set to
12 * bytecode size to roughly mimic the allocation after 12 invocations.

We tried 4 * bytecode size earlier and there were few memory regressions
on real world pages. Speedometer improved by ~1% [1, 2]. This time
trying with a higher factor this time to see if we still have
speedometer improvements without any memory regressions.

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=1177124
[2] https://bugs.chromium.org/p/chromium/issues/detail?id=1177241

Change-Id: I39c7d4aaf90b948b07419e4598e2193b8355c067
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752150
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73369}
2021-03-12 14:25:52 +00:00
Junliang Yan
7a957510da [wasm] Read/Write WasmValue in LE
Use Read/WriteLittleEndianValue call to make sure
we deal with wasm values in the correct endian order
on big endian machine.

Change-Id: I7ede8226319ecfd0605cefa1823e5bbaeb0ebb6a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752879
Commit-Queue: Junliang Yan <junyan@redhat.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73368}
2021-03-12 14:19:22 +00:00
Mythri A
52ec6165ad [turboprop] Increase the Turboprop interrupt budget to 20*K
Currently Turboprop interrupt budget is 14*K. From finch experiments and
from the local benchmark results it seems like we can push it
back a bit. Increasing the interrupt budget for Turboprop also pushes
the TurboFan compilations given the scale factor of 10. So this cl
increases the Turboprop budget from 14*K to 20*K and TurboFan budget
from 140*k to 200*K when turboprop is enabled. The default isn't
impacted.

Bug: v8:9684
Change-Id: I8603a215049dbc9da92f7da4b9e858624d263ae4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643386
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73367}
2021-03-12 13:56:53 +00:00
Andreas Haas
8d0f5a0418 [wasm][liftoff][arm64] Avoid x28 even without pointer compression
Due to a recent change Liftoff used different register configurations
in the pointer-compression and no-pointer-compression setups. This
caused a mismatch between the registers used by Liftoff and the
registers spilled by the WasmDebugBreak builtin.

With this CL the same register configuration is used both with and
without pointer compression. Even without x28 there are 24 registers
that can be used. Moreover, 24 registers can be spilled without
padding, which would be needed with 25 registers to preserve stack
alignment.

Drive-by change: Use Reglist in frame-constants on all platforms.

R=jkummerow@chromium.org

Bug: v8:7581
Change-Id: Iae2892718e905a7995a3fdd7be7fd4d75bebb3dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752884
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73366}
2021-03-12 13:07:17 +00:00
Jakob Kummerow
ce90b56d65 [gm.py] Fix Python2 compatibility
The recent arm64 improvements unintentionally required Python3.

No-Try: true
Change-Id: Ide94ea99cb69c530b3896e6577bd0b536e5374c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2754407
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73365}
2021-03-12 10:27:07 +00:00
Nico Hartmann
220e68c0fb [TurboFan] Move FunctionTemplateInfo to never serialized
This CL moves FunctionTemplateInfo to the list of never serialized
objects, allowing direct heap reads. To make this threadsafe, the CL:
- adds necessary atomic (relaxed/acquire-release) operations to the
  accessors of FunctionTemplateInfo.
- changes FunctionTemplateInfoRef::LookupHolderOfExpectedType to be
  usable from the background thread (e.g. no handle construction) with
  the caveat of skipping optimization in some cases where necessary
  JSObjects are not serialized.

Drive-by: Add missing serialization of objects possibly reachable
through CallHandlerInfo::data.

Bug: v8:7790
Change-Id: I49cf4f328ecfab368dff9076fde8f5783ead3246
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2679687
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73364}
2021-03-12 09:19:22 +00:00
Marja Hölttä
56b1970204 [test] Add a test for surprising __proto__ behavior
Change-Id: Ibc23b0440823ea17d592d729acf1787976612771
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752146
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73363}
2021-03-12 09:18:17 +00:00
Jakob Gruber
3b09573d10 [regexp] Remove unreliable test RegExpInterruptAndReenterIrregexp
We can't properly guarantee that the interrupt is served from inside
the irregexp engine (it could happen before or after). Without that
guarantee, the test is prone to flaking. It's not very useful in
general, since it essentially only tests that the
CHECK(!regexp_stack_->is_in_use()) in regexp-stack.cc exists.

The real fix is to support reentrancy.

Bug: v8:11435,v8:11382
Change-Id: I0a8c3313dd9285ac0c84fef867196dede4785ebb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752159
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73362}
2021-03-12 09:01:37 +00:00
Ross McIlroy
5ddbc33b80 Revert "[compiler] Cache StateValue processing in InstructionSelector."
This reverts commit 812eb26456.

Reason for revert: clusterfuzz crashes

Original change's description:
> [compiler] Cache StateValue processing in InstructionSelector.
>
> Processing StateValues into operands is one of the most costly
> parts of instruction selection. As it happens, StateValues are
> shared by many nodes, and so we are unecessarily reprocessing
> the same StateValues multiple times. This CL introduces caching
> for the processed StateValues enabling very fast emitting of
> operands for subsiquent instructions with the same StateValue.
> The hitrate for the cache is higher than 90% on most optimizations.
>
> BUG=v8:9684
>
> Change-Id: I45db86dcbf22ab972b892f11c608b825aeb3ecf3
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749634
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73342}

Bug: v8:9684
Change-Id: I7d8121f91a0a7ed764add64f12f3954635921cfa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756208
Auto-Submit: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@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@{#73361}
2021-03-12 08:51:08 +00:00
Toon Verwaest
dda756163a [json] Use SmallVector to buffer properties and elements
This improves performance a little for especially small parsed
objects, e.g., parsing json-parse-financial data in kraken 100.000
times goes from 3.25 s to 3.1 or below.

Change-Id: Ic9b668b44fc766da9d8ad03f51924f7dd8b5cc7a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752881
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73360}
2021-03-12 08:43:46 +00:00
Z Nguyen-Huu
d193e90c03 Reland "[v8windbg] Add more items in the Locals pane"
This is a reland of 19b62d0b4e

Fixing the misalignment issue founded in usban build by doing four-byte
comparison: compressing the "expected" values such as script.name() and
passing them to CheckProp as type Tagged_t

Original change's description:
> [v8windbg] Add more items in the Locals pane
>
> Add more items in the Locals pane representing the JS function name,
> source file name, and character offset within the source file, so
> that the user doesn’t need to dig through the shared_function_info to
> find them.
>
> Change-Id: I5d42b3c9542885a72e81613503d1d5abf51870b5
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712310
> Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
> Reviewed-by: Seth Brenith <seth.brenith@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#73282}

Change-Id: Idd77f61905651fbcfae5f5b590094639bc205834
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2744959
Reviewed-by: Seth Brenith <seth.brenith@microsoft.com>
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#73359}
2021-03-12 08:05:57 +00:00
v8-ci-autoroll-builder
d9d13b3814 Update V8 DEPS.
Rolling v8/build: cb067b2..7633fcf

Rolling v8/buildtools: 368c7dd..7242196

Rolling v8/third_party/aemu-linux-x64: ee1oRcPCyneRYNLsuBvxMYnBajvkvvdJY5BYvoaX0vUC..xkJqHNeFPOJ9cNmeaij9qrxQTAP8oRjXHcuTdg2nny8C

Rolling v8/third_party/depot_tools: c2c576e..e8b56fb

Rolling v8/third_party/zlib: 348acca..0949050

Rolling v8/tools/clang: e65f1a7..e645571

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I18a2f9da689173e7ea3a79cc32634606543d2cf9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752899
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@{#73358}
2021-03-12 04:05:36 +00:00
Milad Fa
8224bdf41c PPC/s390: Reland "[no-wasm] Exclude src/wasm from compilation"
Port 3f9ff062b0

Original Commit Message:

    This is a reland of 80f5dfda01. A condition
    in pipeline.cc was inverted, which lead to a CSA verifier error.

    Original change's description:
    > [no-wasm] Exclude src/wasm from compilation
    >
    > This is the biggest chunk, including
    > - all of src/wasm,
    > - torque file for wasm objects,
    > - torque file for wasm builtins,
    > - wasm builtins,
    > - wasm runtime functions,
    > - int64 lowering,
    > - simd scala lowering,
    > - WasmGraphBuilder (TF graph construction for wasm),
    > - wasm frame types,
    > - wasm interrupts,
    > - the JSWasmCall opcode,
    > - wasm backing store allocation.
    >
    > Those components are all recursively entangled, so I found no way to
    > split this change up further.
    >
    > Some includes that were recursively included by wasm headers needed to
    > be added explicitly now.
    >
    > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
    > because it only tests wasm backing stores. This file is excluded from
    > no-wasm builds then.
    >
    > R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
    >
    > Bug: v8:11238
    > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
    > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
    > Commit-Queue: Clemens Backes <clemensb@chromium.org>
    > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
    > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
    > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
    > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
    > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#73344}

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

Change-Id: I006f32407aea051c960f32942f9353f415547116
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2753143
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73357}
2021-03-11 21:15:06 +00:00
Shu-yu Guo
33c9fca34a Remove shipped feature flags
Removes

--harmony-string-replaceall (shipped since 8.5)
--harmony-logical-assignment (shipped since 8.5)
--harmony-atomics-waitasync (shipped since 8.7)

Bug: v8:9801,v8:10372,v8:10239
Change-Id: Ifb8db93948a067e75da5e581603acb916b91342a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2747201
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73356}
2021-03-11 21:03:16 +00:00
Toon Verwaest
3094d59889 [wx] Keep the execute bit while making code writable
Otherwise SMC perturbs the icache too much it seems.

Change-Id: Iceea779a7e3deee90efe29df568732d6ac5bcffa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2753768
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73355}
2021-03-11 18:57:56 +00:00
Milad Fa
90b8ef8402 PPC [simd]: Implement FP rounding on Sim
LVX simulation is also added in this CL.

Change-Id: I9c827d979cdcd86216f0b089e3819d65d6fc45c3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2753767
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73354}
2021-03-11 18:40:36 +00:00
Michael Lippautz
b8e7d60d5c cppgc: Fix shrink to free list
Add the object start bit when adding an entry to the free list.
Introduce a GC at the end of the tests to make sure that the object
start bitmap verification catches such issues.

Bug: chromium:1056170
Change-Id: Id8ca257ce054fc3fb199955cf1c4f38004033747
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752870
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73353}
2021-03-11 17:23:56 +00:00
Seth Brenith
ad0e581c48 [torque] Add option for printing Torque IR
While working on the Torque compiler, I've sometimes found it difficult
to understand Torque's intermediate representation and how it
corresponds to the output. In this change, I propose adding a build flag
that instructs Torque to emit comments describing its IR, interspersed
in the generated code. This is particularly useful for seeing the stack
management instructions (Peek, Poke, and DeleteRange) which don't emit
any corresponding C++ code.

Bug: v8:7793
Change-Id: I24bdec47da76c9bd751b928d3cd92aa513dc6593
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748040
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#73352}
2021-03-11 16:50:26 +00:00