Commit Graph

66814 Commits

Author SHA1 Message Date
Clemens Backes
f30c268173 Revert "[wasm-gc] Remove abstract rtts"
This reverts commit b77deeca4b.

Reason for revert: MSVC compile fails: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win64%20-%20msvc/16535/overview

Original change's description:
> [wasm-gc] Remove abstract rtts
>
> In the latest wasm-gc spec, rtts of abstract types are no longer
> allowed. Consequently, canonical rtts of concrete types always have
> a depth of 0.
>
> Changes:
> - Change the immediate argument of rtts to a type index over a heap
>   type. Abstract it with TypeIndexImmediate in function body decoding.
>   This affects:
>   value_type.h, read_value_type(), decoding of relevant opcodes,
>   wasm subtyping, WasmInitExpr, consume_init_expr(), and
>   wasm-module-builder.cc.
> - In function-body-decoder-impl.h, update rtt.canon to always produce
>   an rtt of depth 0.
> - Pass a unit32_t type index over a HeapType to all rtt-related
>   utilities.
> - Remove infrastructure for abstract-type rtts from the wasm compilers,
>   setup-heap-internal.cc, roots.h, and module-instantiate.cc.
> - Remove ObjectReferenceKnowledge::rtt_is_i31. Remove related branches
>   from ref.test, ref.cast and br_on_cast implementations in the wasm
>   compilers.
> - Remove unused 'parent' field from WasmTypeInfo.
> - Make the parent argument optional in NewWasmTypeInfo, CreateStructMap,
>   and CreateArrayMap.
> - Use more convenient arguments in IsHeapSubtypeOf.
> - Update tests.
>
> Bug: v8:7748
> Change-Id: Ib45efe0741e6558c9b291fc8b4a75ae303146bdc
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642248
> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#72321}

TBR=ulan@chromium.org,jkummerow@chromium.org,manoskouk@chromium.org

Change-Id: I2f0d97f1a34f7c81c5a97d7c37925cb84c66eea3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7748
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2650206
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72322}
2021-01-26 14:46:34 +00:00
Manos Koukoutos
b77deeca4b [wasm-gc] Remove abstract rtts
In the latest wasm-gc spec, rtts of abstract types are no longer
allowed. Consequently, canonical rtts of concrete types always have
a depth of 0.

Changes:
- Change the immediate argument of rtts to a type index over a heap
  type. Abstract it with TypeIndexImmediate in function body decoding.
  This affects:
  value_type.h, read_value_type(), decoding of relevant opcodes,
  wasm subtyping, WasmInitExpr, consume_init_expr(), and
  wasm-module-builder.cc.
- In function-body-decoder-impl.h, update rtt.canon to always produce
  an rtt of depth 0.
- Pass a unit32_t type index over a HeapType to all rtt-related
  utilities.
- Remove infrastructure for abstract-type rtts from the wasm compilers,
  setup-heap-internal.cc, roots.h, and module-instantiate.cc.
- Remove ObjectReferenceKnowledge::rtt_is_i31. Remove related branches
  from ref.test, ref.cast and br_on_cast implementations in the wasm
  compilers.
- Remove unused 'parent' field from WasmTypeInfo.
- Make the parent argument optional in NewWasmTypeInfo, CreateStructMap,
  and CreateArrayMap.
- Use more convenient arguments in IsHeapSubtypeOf.
- Update tests.

Bug: v8:7748
Change-Id: Ib45efe0741e6558c9b291fc8b4a75ae303146bdc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642248
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72321}
2021-01-26 13:54:09 +00:00
Pierre Langlois
4adf55a004 Reland "[diagnostics] Enable logging for --perf-prof and --ll-prof."
This is a reland of fcf28e8301

Original change's description:
> [diagnostics] Enable logging for --perf-prof and --ll-prof.
>
> Change-Id: I09722d0ce372a825dfe454583da433b38cf4de60
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2647109
> Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
> Cr-Commit-Position: refs/heads/master@{#72311}

Change-Id: Ib304c42eb16000a67ecb0264e7714339e7a2bbd1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649037
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
Cr-Commit-Position: refs/heads/master@{#72320}
2021-01-26 13:20:59 +00:00
Pierre Langlois
28572ad078 [mac] Enable support for JSCVT in builtins.
When cross-compiling builtins, hardcode the fact that targeting MACOSX
enables JSCVT. This is useful when cross-compiling from a x86 Mac where
the compiler itself does not define __ARM_FEATURE_JSCVT for the
mksnapshot binary.

Change-Id: I2817f18de42b18f6236e5d5f26d574a0955a7557
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637228
Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72319}
2021-01-26 13:18:19 +00:00
Dan Elphick
02f17a8c24 [clang-tidy] Reserve space in vectors before pushing
This reserves space in a newly several newly created vectors before
pushing a known number of elements.

Change-Id: If3ba016395e7b509ced549b57279a049125c5d7c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649034
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72318}
2021-01-26 13:06:09 +00:00
Clemens Backes
e284517ba8 [wasm][serialization] Allocate code in large chunks
On most platforms, we can do a single allocation for all code. On
platforms where this is not possible (e.g. ARM64 has a 128MB code space
limit), we will at least allocate big chunks instead of one chunk per
function. This reduces overhead in {WasmCodeAllocator} for maintaining
sets of used and available code space, and reduces locking during
deserialization.

In order to know how much code space to pre-allocate, the serializer
writes out the total code space size. This is then used during
deserialization to know how much code to expect.

R=thibaudm@chromium.org

Bug: v8:11164
Change-Id: If3846292544c7b6832b7a0b56357b74310f6fb23
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2644942
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72317}
2021-01-26 12:55:00 +00:00
Michael Achenbach
2145c6c7b3 Revert "[diagnostics] Enable logging for --perf-prof and --ll-prof."
This reverts commit fcf28e8301.

Reason for revert: Speculative revert since all gpu bots are failing:
https://ci.chromium.org/p/v8/builders/ci/Linux%20V8%20FYI%20Release%20(NVIDIA)/13141

Original change's description:
> [diagnostics] Enable logging for --perf-prof and --ll-prof.
>
> Change-Id: I09722d0ce372a825dfe454583da433b38cf4de60
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2647109
> Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
> Cr-Commit-Position: refs/heads/master@{#72311}

TBR=cbruni@chromium.org,jgruber@chromium.org,pierre.langlois@arm.com

Change-Id: I4f0fd218b707fd8eef9e1a5319d30012e76c88fd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649036
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72316}
2021-01-26 12:11:31 +00:00
Marja Hölttä
73d401b9d1 [test] Make worker related tests more fuzzable
Details: https://docs.google.com/document/d/1-Gi37Ks7rXMVVRkC_HkwGxenP7T1huQUOMrYOtkUCFk/edit?usp=sharing

Bug: v8:11340
Change-Id: Ia1d75270373a7ef2307e7ee0fd24da9ecfa27d18
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643381
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72315}
2021-01-26 12:09:59 +00:00
Georg Neis
ca5da5b9e5 [cleanup] Remove unused root empty_property_cell
Change-Id: I702f8c021490f0538a98cad9a61b1dbae60fb881
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649027
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72314}
2021-01-26 10:58:59 +00:00
Jakob Gruber
dda341e64e [compiler] Remove old hack for arguments adaptor frames
.. which applied to the AssemblePopArgumentsAdaptorFrame
function that no longer exists.

Drive-by: Remove unused functions in mips, mips64.

Bug: v8:11306
Change-Id: Ia47c4287a452afe0aea2be0902cb3adce15f02bf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649029
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72313}
2021-01-26 10:40:59 +00:00
Thibaud Michaud
e862ced330 [codegen] Use separate fields for access mode and lane size
The same bit field (MiscField) is currently used to encode either a SIMD
lane size or a memory access mode depending on the instruction.

For now this does not conflict, but in order to support protected loads
and stores on arm64, we will need to add a protected access mode to some
SIMD instructions that already encode a lane size (kArm64LoadSplat,
kArm64LoadLane, kArm64StoreLane).

To prepare for this, use non-overlapping bits of the Misc field to
encode the two properties.

R=zhin@chromium.org
CC=ahaas@chromium.org

Bug: v8:11098
Change-Id: I2320b2be74d023429f8b8c78a5736b13f53c0399
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643390
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72312}
2021-01-26 09:47:20 +00:00
Pierre Langlois
fcf28e8301 [diagnostics] Enable logging for --perf-prof and --ll-prof.
Change-Id: I09722d0ce372a825dfe454583da433b38cf4de60
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2647109
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
Cr-Commit-Position: refs/heads/master@{#72311}
2021-01-26 09:04:50 +00:00
Georg Neis
b7d26bda8b Revert "[test] Disable cctest/test-loop-analysis/LaEdgeMatrix2_0 on ODROID"
This reverts commit ec7e9a8dbc.

Reason for revert: failure was due to a clang bug that is fixed in
latest rolled clang.

Original change's description:
> [test] Disable cctest/test-loop-analysis/LaEdgeMatrix2_0 on ODROID
>
> Bug: chromium:1163847
> Change-Id: Iabb152cd1a5c04e2032cb1254d8b27ea081cbb27
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2614427
> Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71952}

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

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:1163847
Change-Id: Iba18918e8ceab166e7d5e9751e857f13142ed583
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2647153
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72310}
2021-01-26 07:09:30 +00:00
Milad Fa
5204fb6e23 PPC/s390: [wasm-simd][x64][liftoff] Implement store lane
Port 22e06c7b85

Original Commit Message:

    Factor out the code sequence into macro-assembler functions to be reused
    by Liftoff.

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

Change-Id: I94d4c8ec8a374a030918c7781b5d4a40dc29091b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2648985
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#72309}
2021-01-26 04:17:25 +00:00
v8-ci-autoroll-builder
7eeb08861a Update V8 DEPS.
Rolling v8/build: 710b42c..32fd3b2

Rolling v8/buildtools: 13547b9..450b6b6

Rolling v8/third_party/depot_tools: 07bd252..1076f38

Rolling v8/tools/swarming_client: 1a07271..a32a160

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

Change-Id: Iaf9a49e55a724d28bf41f9fb0d510105462af385
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649237
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@{#72308}
2021-01-26 04:16:20 +00:00
Daniel Clark
a09c076f00 [modules][api] Add version of HostImportModuleDynamically with import assertions
This change completes support for import assertions for dynamic import().

A new version of the HostImportModuleDynamically callback taking import
assertions is added to the public API. The name is very verbose; we
could consider removing the "ImportAssertions" part when the old API
is removed.

Bytecode generation is updated to pass the assertions, if present, to
Runtime_DynamicImportCall.

Isolate::RunHostImportModuleDynamicallyCallback extracts the assertions
from the options bag, filters out the assertions not present in the
list specified by the host in HostGetSupportedImportAssertions, and
sorts them by code point order of the keys per
https://tc39.es/proposal-import-assertions/#sec-import-call-runtime-semantics-evaluation.
The resulting array is passed to the host in the callback.

Bug: v8:10958
Change-Id: I931df00f954a9f9c65bff5bcf461ba1c8f11e94e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2620578
Commit-Queue: Dan Clark <daniec@microsoft.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72307}
2021-01-26 04:15:15 +00:00
Shu-yu Guo
81e7e2f437 [regexp] Implement the /d flag for RegExp indices
This CL implements the upcoming spec change:
https://github.com/tc39/proposal-regexp-match-indices/pull/49

A new JSRegExpResultWithIndices subclass is introduced with a separate map and
an extra slot for storing the indices. If /d is passed, exec() constructs a
JSRegExpResultWithIndices and eagerly builds indices.

The existing re-execution logic is removed.

Bug: v8:9548
Change-Id: Ic11853e7521017af5e8bd583c7b82bb672821132
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2616873
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72306}
2021-01-26 04:14:10 +00:00
Zhi An Ng
9dccd91c37 Revert "[wasm-simd] Merge all any_true to v128.any_true"
This reverts commit 9c09c227b0.

Reason for revert: gc stress failures https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20gc%20stress/20563/overview

Original change's description:
> [wasm-simd] Merge all any_true to v128.any_true
>
> In https://github.com/WebAssembly/simd/pull/423, all any_true
> instructions were removed, and replaced with a single v128.any_true.
>
> This patch removes all but v8x16.any_true, and renames it to
> v128.any_true.
>
> Bug: v8:11331
> Change-Id: Ie394ec841a1a1c4030c4f589eac2cee8a6a2a1f9
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639033
> Reviewed-by: Georg Neis <neis@chromium.org>
> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#72304}

TBR=neis@chromium.org,gdeepti@chromium.org,neis@google.com,zhin@chromium.org

Change-Id: I52dbf8de679059dd7b17908c1fe3ada0eb54ff84
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:11331
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649240
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72305}
2021-01-26 04:04:41 +00:00
Ng Zhi An
9c09c227b0 [wasm-simd] Merge all any_true to v128.any_true
In https://github.com/WebAssembly/simd/pull/423, all any_true
instructions were removed, and replaced with a single v128.any_true.

This patch removes all but v8x16.any_true, and renames it to
v128.any_true.

Bug: v8:11331
Change-Id: Ie394ec841a1a1c4030c4f589eac2cee8a6a2a1f9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639033
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72304}
2021-01-25 23:26:10 +00:00
Frank Tang
c2795bd790 [intl] Implement ECMA402 PR500 Use OrdinaryHasInstance
Implement https://github.com/tc39/ecma402/pull/500

For the legacy [optional]  Unwrap*Format steps, use OrdinaryHasInstance
instead of InstanceofOperator.

ECMA402 agree w/ PR500 on 2021-1-14

Bug: v8:10981
Change-Id: Ic697aa245b11fecaf998127c009e59a821aaa01e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2444092
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72303}
2021-01-25 22:33:04 +00:00
Zhi An Ng
89ea6caf56 Revert "[wasm-simd][x64] Prototype i32x4.widen_i8x16_{s,u}"
This reverts commit 5a0938e593.

Reason for revert: Broke build https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket.appspot.com/8857098178780038608/+/steps/Check/0/logs/RunWasm_I32x4WidenI8x16S_liftoff/0

Original change's description:
> [wasm-simd][x64] Prototype i32x4.widen_i8x16_{s,u}
>
> This prototypes i32x4.widen_i8x16_s and i32x4.widen_i8x16_u for x64. It
> uses some masks and pshufb for the widening.  These masks (3 for each
> instruction) are stored as external references.
>
> Bug: v8:11297
> Change-Id: I6c8f55426bbb44b16ed552f393762c34c2524b55
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2617389
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#72301}

TBR=neis@chromium.org,gdeepti@chromium.org,neis@google.com,ahaas@chromium.org,zhin@chromium.org

Change-Id: I83aa2e86854e39ac6afd250fdc0dfac7cdd99e6d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:11297
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2648194
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72302}
2021-01-25 22:01:15 +00:00
Ng Zhi An
5a0938e593 [wasm-simd][x64] Prototype i32x4.widen_i8x16_{s,u}
This prototypes i32x4.widen_i8x16_s and i32x4.widen_i8x16_u for x64. It
uses some masks and pshufb for the widening.  These masks (3 for each
instruction) are stored as external references.

Bug: v8:11297
Change-Id: I6c8f55426bbb44b16ed552f393762c34c2524b55
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2617389
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72301}
2021-01-25 21:01:54 +00:00
Ng Zhi An
22e06c7b85 [wasm-simd][x64][liftoff] Implement store lane
Factor out the code sequence into macro-assembler functions to be reused
by Liftoff.

Bug: v8:10975
Change-Id: I82e253c94e09bf62197e7de87359d0e3956d2dcc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643662
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72300}
2021-01-25 20:57:34 +00:00
Daniel Clark
53cb6654ea [modules][api] Stop filtering import assertions based on list provided by the host
The change https://chromium-review.googlesource.com/c/v8/v8/+/2572173
implemented HostGetSupportedImportAssertions [1] in a fairly literal
sense, where the host supplies a list of supported import assertions
and V8 filters the import assertions in a ModuleRequest and exposes
only supported assertions via its API surface.

However, we've decided that the interop guarantees provided
by doing the filtering in V8 are probably not worth the added
complexity. Thus, this change removes the filtering. Going forward,
hosts will be expected to ignore unknown asserions received from V8.

This is mostly a revert of
https://chromium-review.googlesource.com/c/v8/v8/+/2572173, with
v8::Isolate::CreateParams::supported_import_assertions being kept
for now (since we first have to delete the Blink code that sets it),
and a new comment in v8.h instructing hosts to ignore unknown
assertions.

[1] https://tc39.es/proposal-import-assertions/#sec-hostgetsupportedimportassertions

Bug: v8:10958
Change-Id: I7e8e2a7fbfe2d5bf891805cff6c3160d0e6825cd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643563
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Dan Clark <daniec@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#72299}
2021-01-25 19:30:13 +00:00
Ng Zhi An
3b302d5cfe [arm64] Push the full q register before lazy compile
If a lazy compilation happens in between 2 Wasm calls, we need to save
the full Q register, since we can have live v128 values.

Bug: chromium:1161555
Change-Id: I7393d6fbf5133f635a8fd62cd394323d7018f090
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2645694
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72298}
2021-01-25 19:07:24 +00:00
Ng Zhi An
3097bf785d [wasm-simd][x64] Prototype double precision conversion
Prototype these 6 instructions on x64:

- f64x2.convert_low_i32x4_s
- f64x2.convert_low_i32x4_u
- i32x4.trunc_sat_f64x2_s_zero
- i32x4.trunc_sat_f64x2_u_zero
- f32x4.demote_f64x2_zero
- f64x2.promote_low_f32x4

Some of these code sequences make use of special masks, we keep them in
external references.

Code sequence based on suggestions at:
https://github.com/WebAssembly/simd/pull/383

Bug: v8:11265
Change-Id: Ied67d7b5b6beaaccac7c179ec13504482cb9c915
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643562
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72297}
2021-01-25 19:04:14 +00:00
Clemens Backes
2777148271 [build] Introduce gn arg to disable WebAssembly
For now, that flag only avoid the installation of the 'WebAssembly'
global. Follow-up CLs will remove unneeded code from the binary if the gn
arg is not set to true.

R=ecmziegler@chromium.org, machenbach@chromium.org

Bug: v8:11238, v8:11344
Change-Id: Ie95b608ed12b0476470cb552138e369f863d249b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2646833
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72296}
2021-01-25 16:59:53 +00:00
Nico Hartmann
5d1a7c6440 [TurboFan] Optional FunctionTemplateInfo with heap access
This CL makes direct heap access consistent with the serialized mode by
correctly skipping optimizations if we encounter a FunctionTemplateInfo
that is unknown to the broker, because we haven't seen it during
serialization.

Bug: chromium:1158322
Change-Id: I10ad6f307bbd5a17f27890390179bd9e2d35418c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639958
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Auto-Submit: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72295}
2021-01-25 16:36:53 +00:00
Junliang Yan
21c74f4f96 [fastcall] Store full size pointer to template data
This fixes an issue on 64-bit big endian architectures as discussed in
https://chromium-review.googlesource.com/c/v8/v8/+/2603925, where stack
slots always have the system pointer size, even with pointer compression
enabled.

Bug: chromium:1052746
Change-Id: I84030ba8bcde71cb1768bd7286314cf09c4dc640
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2645721
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#72294}
2021-01-25 15:49:23 +00:00
Gus Caplan
b6ba105467 [Py3] fix py3 issue in tools
Bug: v8:9871
Change-Id: I4084771cfc4d34f8e1b9d5265e115f9eac1098d8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2646165
Reviewed-by: Dan Elphick <delphick@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Gus Caplan <snek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72293}
2021-01-25 15:33:53 +00:00
Ng Zhi An
b2860adf94 Fix broken link to infra-side specifications
Change-Id: Ie4b673d7f56a62528c288c4684f8cc9822277587
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2461065
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Tamer Tas <tmrts@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72292}
2021-01-25 15:21:23 +00:00
Clemens Backes
7aca4135fc [wasm][serialization] Avoid heap allocations
There is no reason to allocate the vectors on the heap. Their
content will be heap-allocated anyway, and they are cheap to move
around.

Drive-by: Remove an unused counter.

R=thibaudm@chromium.org

Bug: v8:11164
Change-Id: I5660ecf5db7e8915a27255bae0215d5368c7d10e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2644937
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72291}
2021-01-25 14:47:23 +00:00
Santiago Aboy Solanes
5acef05006 [compiler] Move GetPropertyDetails to DescriptorArrayRef
Also access the DescriptorArray through GetPropertyDetails concurrently
if the FLAG_turbo_direct_heap_access is on.

Bug: v8:7790
Change-Id: I13d12786399443ca1590dd87da7f371720acaa18
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2640421
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72290}
2021-01-25 13:51:56 +00:00
Dan Elphick
29006bb3c7 Revert "Reland "[build] Enable external flag header by default""
This reverts commit df5854c914.

Reason for revert: The v8-gn.h header file seems to be inconsistently rebuilt sometimes causing build failures: https://bugs.chromium.org/p/v8/issues/detail?id=11341

Original change's description:
> Reland "[build] Enable external flag header by default"
>
> This is a reland of d1da9694d4
>
> Relanding now that fixes for perfetto and cppgc are in:
> https://chromium-review.googlesource.com/c/v8/v8/+/2640458
> https://chromium-review.googlesource.com/c/v8/v8/+/2640480
>
> Original change's description:
> > [build] Enable external flag header by default
> >
> > Turns on v8_generate_external_defines_header.
> >
> > Bug: v8:11292
> > Change-Id: I4b1d9b47390b560b7cbf677948310694d8b03367
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2610966
> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> > Commit-Queue: Dan Elphick <delphick@chromium.org>
> > Auto-Submit: Dan Elphick <delphick@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#72201}
>
> Bug: v8:11292
> Change-Id: Ia47eeb6c45f4cc3db72c10782d677b69506fa3d6
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642249
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Commit-Queue: Dan Elphick <delphick@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#72226}

TBR=rmcilroy@chromium.org,delphick@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: v8:11292, v8:11341
Change-Id: I00719689e7a184e74699d074a01c10b4f462e553
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2647259
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72289}
2021-01-25 13:49:37 +00:00
Clemens Backes
902e181d37 [wasm][serialization] Use Jobs to avoid blocking
We did spawn exactly one task for each of copy&reloc and publishing.
Those tasks did block until work is available. This can block background
threads which could otherwise execute other component's work.
Switching to the Job API allows us to easily avoid that blocking, and
just respawning a task when more work is available.
Is always avoid code duplication for participating in the work in the
main thread. Instead we just {Join()} the existing job, which makes the
current thread participate in work.

For now, both Jobs set a maximum concurrency of one, so the main thread
will only do work if no background thread is currently running. This can
be lifted in a follow-up CL to see the performance impact of both
changes independently.

R=thibaudm@chromium.org

Bug: v8:11164
Change-Id: I032153eb933648a750b113f5d766feb85b87070a
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643393
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72288}
2021-01-25 13:12:36 +00:00
Manos Koukoutos
7ae8c713b8 [wasm-gc] Remove excess immediate from ref.cast/test
According to the latest wasm-gc spec, the type immediate for the
argument's heap type is no longer required. This CL also adds a missing
check that the rtt immediate is a subtype of the argument's type.

Bug: v8:7742
Change-Id: I627002d1c4bdb4ca3f2181d2f4b659ce3e95cb2d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642246
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72287}
2021-01-25 12:42:36 +00:00
Igor Sheludko
c44d7ffb3f Reland "[classes] Make sure parent classes are never turned to setup mode"
This is a reland of 0ce0d9348d

This is a clean reland. The test failure on GC stress bot seems to be
related to GC timing and --stress-flush-bytecode.

Original change's description:
> [classes] Make sure parent classes are never turned to setup mode
>
> It doesn't make sense in general and moreover an attempt to do so might
> cause hard stack overflow.
>
> Bug: v8:11317
> Change-Id: I2a6bbadba1ebc5c1496660c734df76a13600edac
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643389
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#72275}

Tbr: verwaest@chromium.org
Bug: v8:11317
Change-Id: Ic73efff7d9690c0edf7fa07b8b90691e9775a748
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642461
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72286}
2021-01-25 12:39:36 +00:00
Michael Lippautz
8cc2a64d95 cppgc: MakeGarbageCollected: Move static asserts to implementation
This allows embedders to specialize MakeGarbageCollectedTrait and
still get the static_asserts applied automatically, which avoids
bypassing the type constraints.

Bug: chromium:1056170
Change-Id: Ib24f8c6f5d8fb5ef1af4ca1af798f955fa253ba0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2647257
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@{#72285}
2021-01-25 12:17:46 +00:00
Clemens Backes
4002d142a6 [wasm] Snapshotting should add code refs
Since snapshotting returns a vector of code pointers, we should add them
so the surrounding {WasmCodeRefScope}, to make sure that they are not
being garbage-collected while the serializer reads them.
This is unlikely to happen, since serialization is only triggered once
top-tier compilation is finished, and we usually do not garbage-collect
top-tier code, but in rare circumstances (e.g. in debugging), it could
theoretically happen.

R=ahaas@chromium.org

Change-Id: Ie1a9654a8a1467c12e42181776cec1dad7366036
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2644944
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72284}
2021-01-25 12:08:26 +00:00
Michael Lippautz
9515942d2c api: Fix constexpr construction of compaction space index
Bug: chromium:1056170
Change-Id: If639b12e1cceec2d27355bb4cbf8c1fefa8b5038
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642462
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@{#72283}
2021-01-25 12:03:26 +00:00
Camillo Bruni
b7b8c8aad6 [codegen] Use smaller instructions for smi loading on x64
- Use movl which clears the upper 32bits on x64
- Use xorl + movb for Smi.ptr values <= 0xFF, saving one byte over movl

Change-Id: Iacdacfbe397670667e71d1d12ef427a01994481d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642250
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72282}
2021-01-25 11:54:56 +00:00
Mythri A
502419a803 [turboprop] Delay optimizing functions that get hot slower
Functions that get hot quickly are more likely to stay hot and stable,
so optimize these functions earlier than the function that become
hot slower. To measure how "soon" the function gets hot this cl
introduces a global tick that is incremented whenever a function
registers a tick. We use the difference in the global tick between the
current tick and the last tick on that function to measure how soon
the function is becoming hot. We use the last tick to account for
functions that aren't used so much at the start but become hot
in a later phase. Currently we use this heuristic only for Turboprop
tierups. It is possible to extend this to extend this to Turbofan in
future.

Bug: v8:9684
Change-Id: I8ef265c03520274c68d56a9d35429531a3ba3d1d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2627850
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72281}
2021-01-25 10:26:05 +00:00
Igor Sheludko
27485b3535 Revert "[classes] Make sure parent classes are never turned to setup mode"
This reverts commit 0ce0d9348d.

Reason for revert: Causes failures on GC stress bots.

Original change's description:
> [classes] Make sure parent classes are never turned to setup mode
>
> It doesn't make sense in general and moreover an attempt to do so might
> cause hard stack overflow.
>
> Bug: v8:11317
> Change-Id: I2a6bbadba1ebc5c1496660c734df76a13600edac
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643389
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#72275}

TBR=ishell@chromium.org,verwaest@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

No-Tree-Checks: true
Bug: v8:11317
Change-Id: I524ce6dfee219180f36302edc94b8935c91f21dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642458
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72280}
2021-01-25 08:09:44 +00:00
Shu-yu Guo
13005c319d Revert "Ship the relative indexing method .at"
This reverts commit 46628795f1.

Reason for revert: Compat breakage

Bug: chromium:1170196

Original change's description:
> Ship the relative indexing method `.at`
>
> I2S with LGTMs:
> https://groups.google.com/a/chromium.org/g/blink-dev/c/I8S78w7aFmE/m/qLHAcjhRCQAJ
>
> v8: 10961
> Change-Id: If0440c0595823c61352f144c1fc29c54a1175623
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2574716
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Commit-Queue: Shu-yu Guo <syg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71619}

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

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I2384af84100dcf8cb27f10c5d055d7f864ebcbb9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2646139
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72279}
2021-01-25 07:47:39 +00:00
Jakob Gruber
957d872bf5 [deoptimizer] Refactor translation opcodes and array builder
The final CL of this chain, this extracts translation opcodes into the
TranslationOpcode class, and merges logic for TranslationArray
creation into TranslationArrayBuilder.

Drive-by: Pull TranslationArray printing logic into
translation-state.cc.

Bug: v8:11332
Change-Id: Ia4bbb6cdd15ea3318dfb9b7edb6eb881530dda54
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642254
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72278}
2021-01-25 07:46:35 +00:00
Jakob Gruber
107629d1c7 [compiler] Silence NaNs in Float64Mod and Float64Atan2
Looks like these may have been missed; all other related operators
silence NaNs.

Bug: v8:7519
Change-Id: If6ee8d6e02d304ccbb4821c21386f93eab225434
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637853
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72277}
2021-01-25 07:45:30 +00:00
v8-ci-autoroll-builder
4777f17053 Update V8 DEPS.
Rolling v8/build: c6a6de1..710b42c

Rolling v8/third_party/aemu-linux-x64: 3BZ2tnIBSRNhCGGy-kjxHmfx7sU6OP0zvO9x3gtnnY8C..DUWCHyibCTWCe-ijlAKpinTlXaJQW2jg8hs7uRUfK0gC

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

Change-Id: I0b8ab37f65b85d3c6df60e1da426774cca96222c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2646138
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@{#72276}
2021-01-25 07:44:25 +00:00
Igor Sheludko
0ce0d9348d [classes] Make sure parent classes are never turned to setup mode
It doesn't make sense in general and moreover an attempt to do so might
cause hard stack overflow.

Bug: v8:11317
Change-Id: I2a6bbadba1ebc5c1496660c734df76a13600edac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643389
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72275}
2021-01-23 12:03:12 +00:00
v8-ci-autoroll-builder
7792dfd6f7 Update V8 DEPS.
Rolling v8/build: 61eac11..c6a6de1

Rolling v8/third_party/aemu-linux-x64: xAHa1IXmKteChkPvba9ezjSnKL7IyDePQRzWVUEAx9UC..3BZ2tnIBSRNhCGGy-kjxHmfx7sU6OP0zvO9x3gtnnY8C

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/beb8370..957dfea

Rolling v8/third_party/depot_tools: 361ccce..07bd252

Rolling v8/tools/clang: 786cae1..94a96af

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

Change-Id: Ie8f52da5e468fd92309253f2e1a5a335bcd9b3f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2645703
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@{#72274}
2021-01-23 03:54:20 +00:00
Maya Lekova
fd4813bb9d Refactor JavaScript execution scopes to not allocate
This CL introduces a new internal class PerIsolateAssertSwitch which
gives a static Allow/Disallow interface to be used from within classes
such as DisallowJavascriptExecutionScope without the need for slow heap
allocations.

Bug: chromium:1155348
Change-Id: I66cd8377b5d9c43510165cd7b9a7f5ccdaf45c18
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2617086
Auto-Submit: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72273}
2021-01-22 23:30:20 +00:00