Commit Graph

66165 Commits

Author SHA1 Message Date
v8-ci-autoroll-builder
888a80c2aa Update V8 DEPS.
Rolling v8/build: 115823d..68a1580

Rolling v8/buildtools: 6302c11..86a7f72

Rolling v8/third_party/aemu-linux-x64: SdFzWCen9aCYiL4t1JtDSA-58NHJJaXuKuTxYN5wLfgC..FZmiNfUmb6lJR28DxZkS03xoY4oJh4177LjCbVwbpCMC

Rolling v8/third_party/depot_tools: 3b055d3..99b0e4a

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

Change-Id: Id938d3b2e20644da2ed03e1824cefd66eea89ffe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2581070
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@{#71673}
2020-12-09 03:50:17 +00:00
Zhi An Ng
acf702b205 [ia32] Consolidate f32x4.sqrt instruction codes
Bug: v8:11217
Change-Id: I82719eb2c4b35cc54fc1b4b6f01eca6a48afb152
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2576884
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71672}
2020-12-09 03:06:37 +00:00
Zhi An Ng
cc682a6698 [wasm-simd][arm] Prototype extended pairwise addition
Add new instruction vpaddl for signed and unsigned integers, adding
assembler, disassembler, simulator support, and also tests.

The signed and unsigned opcodes for vpaddl are separate enums, because
the helper EncodeNeonUnaryOp only takes a NeonSize (not NeonDataType). I
considered changing the signature, but none of the other instructions
use a NeonDataType, so it seems unnecessary.

Bug: v8:11086
Change-Id: I5e6694ae407779c1fd3604c5a40ca0a1b6ce061b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2578233
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71671}
2020-12-09 02:51:57 +00:00
Zhi An Ng
be7d3ebcbf [arm] Add formatting helpers for disassembly
Add a new option to disassembler NEON size encoded in instructions with
two registers, 'size2. Rename the current only to 'size3.

Clean up existing operations to use this new formatting option.

Bug: v8:11074
Change-Id: Ie309d93d24602439c3293c8bbfd6c2ecbc9fdfb7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575786
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71670}
2020-12-09 02:42:07 +00:00
Paolo Severini
135b15a6bd [wasm] [debugging] Fix --wasm-gdb-remote
The GDB-stub for Wasm debugging (which builds with the flag
v8_enable_wasm_gdb_remote_debugging) doesn't build anymore after a few changes
in the interface of wasm::DebugInfo.
This CL fixes the build, and also adds a few small changes to the protocol.

Change-Id: I250a8c86fd83048434e68cbdc5cb8ae243577393
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2571341
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Philip Pfaffe <pfaffe@chromium.org>
Commit-Queue: Paolo Severini <paolosev@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#71669}
2020-12-08 19:37:25 +00:00
Milad Fa
ce17509acf S390: enable forced long branches as an option
As an example, kEagerWithResumeDeoptExitSize is always expected to
emit a 6 byte instruction "brcl", however, if the branch offset
is small enough, brc (a 4 byte instruction) might get emitted.

We need a way to force the emission of brcl at times like above.

Change-Id: Ic42c1ad80098067df6a0049bdde20e90f12ef1b0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2578061
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71668}
2020-12-08 19:10:55 +00:00
Andrew Comminos
678afa3c04 [cpu-profiler] Fix string length calculation for GetConsName
Currently, GetConsName incorrectly includes the null terminator as part
of the length used in the string's hash. Exclude this to be consistent
with GetCopy, GetName, etc. and permit coalescing.

Bug: v8:0
Change-Id: I1e8a4eb7055637f3ed178014725b44e84d7788b6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2578192
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Andrew Comminos <acomminos@fb.com>
Cr-Commit-Position: refs/heads/master@{#71667}
2020-12-08 18:15:30 +00:00
Z Nguyen-Huu
0b7769e393 [builtins] Refactor StringTrim
This is follow-up of 289d25c1ac
Improve loop using Subslice, improve common-case check.

Bug: v8:8996
Change-Id: I59ba14b87e1b034fd2d41c92a506e142550363ce
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2527608
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71666}
2020-12-08 18:14:25 +00:00
Milad Fa
c73f5c215b [wasm-simd] Prototype load lane and store lane on BE machines
Prototype v128.{load,store}{8,16,32,64}_lane on Big Endian machines.

Lood/Stores need to be reversed manually on BE machines and as such
LoadLane and StoreLane opcodes cannot be done in a single instruction.
Therefore we divide them into separate "Load/Store" and "operation"
nodes.

Bug: v8:10975
Change-Id: If21c9663de41b872fe035d15526830f244605c48
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2577820
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71665}
2020-12-08 18:02:45 +00:00
Seth Brenith
6b5f420828 [torque] Make runtime macros inlinable
Currently, all runtime C++ code generated for Torque macros all goes
into a single .cc file and corresponding header. This is simple, but
limits how we can use that generated code. For example, field accessors
are generally expected to be inlinable at compilation time (not relying
on LTO).

This change updates the Torque compiler to output runtime C++ code into
the same *-tq-inl.inc files that contain implementations of member
functions for generated classes. All Torque macros transitively called
from the top-level macros are included in the same file, to avoid any
need for these generated files to #include each other. These macros are
emitted within per-file namespaces to avoid multiple-definition build
failures.

Bug: v8:7793
Change-Id: Ic9ac3748c5020a05304773a66d7249efdc56b080
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565067
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71664}
2020-12-08 15:58:35 +00:00
Clemens Backes
a58a5e594e Reland "[wasm] Pass the script ID to code logging"
This is a reland of ab4d9717f2.
The original CL did a std::move before the final use of the NativeModule.
PS2 removes that.

TBR=petermarshall@chromium.org, thibaudm@chromium.org

Original change's description:
> [wasm] Pass the script ID to code logging
>
> We didn't pass a script ID with the code creation events for profiling.
> This made DevTools lose the connection to the wasm script, hence
> jumping from the profiler entry to the source did not work.
>
> This CL changes the timing of code logging a bit such that the script is
> always allocated before logging. In the queue of code to be logged we
> then also store the script ID, and finally set it on the {CodeEntry}
> object.
>
> R=thibaudm@chromium.org
>
> Bug: chromium:1125986
> Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71654}

Bug: chromium:1125986
Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng
Change-Id: I2a7c5fe04fff726836b1279e3d05b1702a4efb76
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2578980
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71663}
2020-12-08 15:51:15 +00:00
Etienne Pierre-doray
fc1d6f35ef Reland "Reland "[wasm]: Use CancelAndDetach and barrier on BackgroundCompileJob.""
This is a reland of 064ee3c835

Issue 1: WasmEngine UAF when CompilationState is destroyed
asynchronously
Fix: Include https://chromium-review.googlesource.com/c/v8/v8/+/2565508
in this CL. Use OperationBarrier to keep WasmEngine alive.

Issue 2: In gin, JobTask lifetime is not extended beyond
JobHandle, thus making CancelAndDetach unusable.
This is fixed in chromium here:
https://chromium-review.googlesource.com/c/chromium/src/+/2566724

Original change's description:
> Reland "[wasm]: Use CancelAndDetach and barrier on BackgroundCompileJob."
>
> Reason for revert: Data race:
> https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/34121
>
> It was assume that MockPlatform runs everything on 1 thread. However,
> MockPlatform::PostJob previously would schedule the job through
> TestPlatform, which eventually posts concurrent tasks, thus causing
> data race.
> Fix: Manually calling NewDefaultJobHandle and passing the MockPlatform
> ensures the jobs also run sequentially.
>
> Additional change:
> - CancelAndDetach is now called in ~CompilationStateImpl() to make sure
> it's called in sequence with ScheduleCompileJobForNewUnits
>
> Original CL description:
> To avoid keeping around a list of job handles, CancelAndDetach() is
> used in CancelCompilation. Dependency on WasmEngine is handled by a
> barrier that waits on all jobs to finish.
>
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2498659
> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Cr-Original-Commit-Position: refs/heads/master@{#71074}
> Change-Id: Ie9556f7f96f6fb9a61ada0e5cbd58d4fb4a0f571
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2559137
> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71459}

TBR=ulan@chromium.org

Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
Change-Id: I6175092c97fea0d5f63a97af232e2d54cccea535
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2569360
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71662}
2020-12-08 15:42:15 +00:00
Manos Koukoutos
1e3d41867c [wasm] Tail calls should not invalidate memory cache
In AnalyzeLoopAssignment, tail calls were marked as invalidating the
memory cache, which in turn caused its reloading in generated code.
This is not correct since return calls end the current control branch.

Change-Id: Id3b5e60a810915ace6d9b0b13160177251adaa5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2578981
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71661}
2020-12-08 15:30:35 +00:00
Clemens Backes
8d013ea166 Revert "[wasm] Pass the script ID to code logging"
This reverts commit ab4d9717f2.

Reason for revert: UBSan issues: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/14184/overview

Original change's description:
> [wasm] Pass the script ID to code logging
>
> We didn't pass a script ID with the code creation events for profiling.
> This made DevTools lose the connection to the wasm script, hence
> jumping from the profiler entry to the source did not work.
>
> This CL changes the timing of code logging a bit such that the script is
> always allocated before logging. In the queue of code to be logged we
> then also store the script ID, and finally set it on the {CodeEntry}
> object.
>
> R=​thibaudm@chromium.org
>
> Bug: chromium:1125986
> Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71654}

TBR=petermarshall@chromium.org,clemensb@chromium.org,thibaudm@chromium.org

Change-Id: I03c90c77b55e770797a6d66b1d778992a047e07a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1125986
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575070
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71660}
2020-12-08 14:06:06 +00:00
Georg Neis
c065be127d Remove duplicate AUTHORS entry
Change-Id: Ief09e3ab31b8a49bc5e77d0235c20083615b32eb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2573479
Auto-Submit: Georg Neis <neis@chromium.org>
Reviewed-by: Lutz Vahl <vahl@chromium.org>
Commit-Queue: Lutz Vahl <vahl@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71659}
2020-12-08 13:49:34 +00:00
Ross McIlroy
239bfc96fa [Turboprop] Support migration of deprecated maps in dynamic check maps
Adds support for generating code to migrate instances if a map
is a migration target, to dynamic check maps.

BUG=v8:10582

Change-Id: Id26d95491869fc68a5633398d230237eb88648d9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575058
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71658}
2020-12-08 13:27:00 +00:00
Clemens Backes
371d7dbcc3 Revert "[intl] Clean up intl_segmenter flag"
This reverts commit c9c3ec4c14.

Reason for revert: Speculative revert for https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/34616/overview (looks unrelated, but fails consistently since this CL)

Original change's description:
> [intl] Clean up intl_segmenter flag
>
> Intl.Segmenter shipped in m87 and launched.
>
> Bug: v8:11225
> Change-Id: I4213e261e1aea717c1281f19785a8c29ff1bbd8b
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2570461
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Reviewed-by: Shu-yu Guo <syg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71653}

TBR=jkummerow@chromium.org,ftang@chromium.org,syg@chromium.org

Change-Id: Ic1d1b02abb9ae7faa41307eee694bb7e40d0fae2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:11225
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2578979
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71657}
2020-12-08 13:25:56 +00:00
Andreas Haas
45fd31f808 [wasm] Use graph assembler to fix effect chain
There is a verification phase in the graph verifier that is currently
disabled for WebAssembly. This CL is a first step to enable this
verification phase for WebAssembly.

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

Bug: v8:11236
Change-Id: I925153511f8f93e6d32d05008ddce800e61d5488
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575062
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71656}
2020-12-08 12:46:34 +00:00
Camillo Bruni
88f7740636 [tools] Add system-analyzer list view
Bug: v8:10644
Change-Id: I83801396fe683173349d14a7590828ec86587eac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575122
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71655}
2020-12-08 12:26:24 +00:00
Clemens Backes
ab4d9717f2 [wasm] Pass the script ID to code logging
We didn't pass a script ID with the code creation events for profiling.
This made DevTools lose the connection to the wasm script, hence
jumping from the profiler entry to the source did not work.

This CL changes the timing of code logging a bit such that the script is
always allocated before logging. In the queue of code to be logged we
then also store the script ID, and finally set it on the {CodeEntry}
object.

R=thibaudm@chromium.org

Bug: chromium:1125986
Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71654}
2020-12-08 12:14:54 +00:00
Frank Tang
c9c3ec4c14 [intl] Clean up intl_segmenter flag
Intl.Segmenter shipped in m87 and launched.

Bug: v8:11225
Change-Id: I4213e261e1aea717c1281f19785a8c29ff1bbd8b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2570461
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71653}
2020-12-08 10:01:23 +00:00
v8-ci-autoroll-builder
ed4914d3d9 Update V8 DEPS.
Rolling v8/build: b7fc8c9..115823d

Rolling v8/third_party/aemu-linux-x64: ZgEt2vZQcebeMBnTVKemE7gxtLtigVkD5iHfrp1QkDsC..SdFzWCen9aCYiL4t1JtDSA-58NHJJaXuKuTxYN5wLfgC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/88efddc..4565794

Rolling v8/third_party/depot_tools: e602c60..3b055d3

Rolling v8/third_party/instrumented_libraries: 6ba978c..4d38670

Rolling v8/third_party/jinja2: a82a494..11b6b3e

Rolling v8/third_party/zlib: c29ee8c..2c183c9

Rolling v8/tools/clang: 9ec0bb3..36810de

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

Change-Id: I3ae1851058c5fe420394dcf68db2e5a74e0d5955
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2578206
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@{#71652}
2020-12-08 03:49:03 +00:00
Zhi An Ng
15957c7061 [wasm-simd][arm64] Prototype sign select
Bug: v8:10983
Change-Id: Id4b3a5909305c34cda0732b63716a2bf0324eac1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2576219
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71651}
2020-12-08 01:32:29 +00:00
Zhi An Ng
5188caf045 [wasm-simd][ia32] AVX I16x8SConvertI32x4 can have non-register input
In instruction selector for this opcode, when AVX is supported, we don't
require the second operand to be a register, so it can be an operand.

Bug: v8:1155497,v8:9198
Change-Id: I609deb69b826e686dddc237dcf2ab6129424e761
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575787
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71650}
2020-12-07 22:51:54 +00:00
Daniel Clark
a8f6c06108 Allow casting to Primitive types from Data
Although every Primitive is a Data, the Cast operations for the
subclasses of Primitive do not allow casting directly from Data to the
subclasses without first going through Value.  Because of this,
Primitives extracted from a V8::FixedArray require two casts to get to
the "real" type.

Thus, as a convenience to embedders, this change makes it possible to
cast directly from Data to all the subtypes of Primitive.

Also, this change makes the parameter names in the declarations match
those in the definitions, though there does not seem to be a universally
followed convention regarding these.

Bug: v8:10958
Change-Id: I18dc3fbb9a9bccb2cb3b75efd829af64d46d8eb9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2573816
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Dan Clark <daniec@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#71649}
2020-12-07 19:41:09 +00:00
Dominik Inführ
a4283771e1 [compiler] Allow heap access from JSIntrinsicLowering
ReduceToString performs heap access on the background thread.

Change-Id: Ic93ee21d6eeb96fe1dbd2b98043e6ccff0eefa64
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2577458
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71648}
2020-12-07 18:26:49 +00:00
Milad Fa
13314a207e PPC: [build] disable fp multiply and accumulate instructions
Some wasm interpreter tests are failing since instructions generated
by gcc such as *multiply and and* (fmadds) create intermediate
results bigger than 8 bytes which doesn't match other architectures,
hence the resulting output differs.

Change-Id: I9c745c6be1b2b7a22085a230cc3f66ff756e0b62
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2577460
Reviewed-by: Junliang Yan <junyan@redhat.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71647}
2020-12-07 16:44:29 +00:00
cjihrig
fbb28902e0 Update V8 postmortem metadata script
This commit updates the gen-postmortem-metadata.py script to
incorporate changes in V8 8.4. This removes the need to float a
patch to the script in Node.js.

Change-Id: I69da40e792f22748b0eee2952b9009b2f03d13f3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565275
Reviewed-by: Joyee Cheung <joyee@igalia.com>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/master@{#71646}
2020-12-07 15:17:09 +00:00
Clemens Backes
a22e8a7003 [wasm] Fix code logging of wrappers
Import wrappers were only logged if logging was enabled during
compilation. If the profiler is enabled later, and regular wasm code is
logged via {NativeModule::LogWasmCodes}, the import wrappers were
missing.
This CL fixes the long-standing TODO, and adds tests which triggered
that code path. Those tests were hanging before because the expected
functions did never appear in the profile.

Drive-by: If {WasmEngine::LogOutstandingCodesForIsolate} detects that
code logging is disabled by now, it should still clear the {code_to_log}
vector.

R=thibaudm@chromium.org

Bug: chromium:1125986, chromium:1141787
Change-Id: I2566ef369bb61a09488f2d932b6c10d92e4cb12f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2574696
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71645}
2020-12-07 15:06:23 +00:00
Bill Budge
cddaf66c37 [compiler][wasm] Align Frame slots to value size
- Adds an AlignedSlotAllocator class and tests, to unify slot
  allocation. This attempts to use alignment holes for smaller
  values.
- Reworks Frame to use the new allocator for stack slots.
- Reworks LinkageAllocator to use the new allocator for stack
  slots and for ARMv7 FP register aliasing.
- Fixes the RegisterAllocator to align spill slots.
- Fixes InstructionSelector to align spill slots.

Bug: v8:9198

Change-Id: Ida148db428be89ef95de748ec5fc0e7b0358f523
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2512840
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71644}
2020-12-07 13:49:48 +00:00
Michael Achenbach
c3174b0905 [MB][test] Add builders for RISC-V
No-Try: true
Bug: v8:11233
Change-Id: I391bbd22b4415e9a669795b62b4933fb4b3e9eef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575124
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71643}
2020-12-07 13:14:55 +00:00
Clemens Backes
dd20e39215 [logging] Avoid redundant heap walks
For logging existing functions, currently walk the heap four times:
1) For getting the number of JS Code objects,
2) for getting the actual JS Code objects,
3) for getting the number of wasm code objects,
4) for getting the actual wasm code objects.

This CL refactors this to do only two heap walks (one for JS, one for
wasm). It also avoids the use of the brittle {ScopedVector} and uses a
{std::vector} instead.

R=thibaudm@chromium.org

Bug: chromium:1125986
Change-Id: I47e3c41ed65f4011ad8826f5e115db6459680807
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2571121
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71642}
2020-12-07 12:40:45 +00:00
Benedikt Meurer
058299a881 [wasm] Use WebAssembly.Memory objects in the scope chain.
Previously V8 would wrap the WebAssembly.Memory backing stores into
Uint8Arrays and report that as memories, but that's confusing to the
developer, since that's not what's really being used. The way that
DevTools presents the backing stores of memories, it's still perfectly
possible to get hold of an Uint8Array if that's what the developer is
looking for.

To make it possible to easily identify the WebAssembly.Memory objects
in the DevTools front-end (in particular for the memory inspector) we
add a 'webassemblymemory' subtype to the Chrome DevTools Protocol. We
also improve the description for the memories to include the number
of active pages.

Fixed: chromium:1155566
Screenshot: https://imgur.com/8enx57u.png
Change-Id: I63dbabe0e372e9ad6dcc8e6642cdb743147a620c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2574699
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71641}
2020-12-07 11:45:45 +00:00
Zhi An Ng
a69b442bc6 [cleanup] Remove DISALLOW_COPY_AND_ASSIGN macro
Bug: v8:11074
Change-Id: Ic8514d33938a60ff5513463d4754fb7fc5f85491
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2569564
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71640}
2020-12-07 11:28:45 +00:00
Mythri A
00968fe450 [turbofan] Print dependent code deopts with --trace-deopt
Dependent code deopts were only printed with --trace-deopt-verbose
earlier. These just print one line and are helpful with --trace-deopt.
If we don't print these with --trace-deopt, it appears as if
we are optimizing without any deopts in between which is a bit
confusing.

Change-Id: I29b0f2ebbaac2a1ffc498e93c8433c986e429ef3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2573485
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71639}
2020-12-07 10:20:35 +00:00
Mythri A
aac25548c2 [tools,turboprop] Extend profview to show turboprop information
This cl extends profview to
1. Show Turboprop ticks in a different color in timeline panel
2. In summary panel, show Turboprop optimizations and TurboFan
optimizations as two different entries
3. Fix deopts in summary panel after the rename to deopts
4. Also show information about bailouts (happen only with Turboprop)

Bug: v8:9684
Change-Id: I028b12a55741c789ecc1d212d1517a57496379dc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2573477
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71638}
2020-12-07 10:17:25 +00:00
Ross McIlroy
51401b4be7 [TurboProp] Fix dynamic check maps register saving on x64
BUG=chromium:1155499,chromium:1154961

Change-Id: I29948a63e477ef28b7599eb53db17b127662a641
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2574697
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Auto-Submit: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71637}
2020-12-07 10:03:25 +00:00
Mythri A
abc448881a [tools] Update profview landing page with instructions for Android
Change-Id: I4afb695505d145221feca3ff365e0f96b097a6ef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2573483
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71636}
2020-12-07 09:59:05 +00:00
Zhi An Ng
90d260e0f4 [cleanup][ast] Remove uses of DISALLOW_COPY_AND_ASSIGN
Bug: v8:11074
Change-Id: I82d84f03a8a9361cc1299a28cd9e4ba757930dd6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2569560
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71635}
2020-12-07 09:38:09 +00:00
Yahan Lu
59a6636a60 [Build]Fix build error on g++ 10.0.1
About https://chromium-review.googlesource.com/c/v8/v8/+/2557988
   On https://chromium-review.googlesource.com/c/v8/v8/+/2557988/7/src/objects/string.h#476
   It add a template, but not define it on https://chromium-review.googlesource.com/c/v8/v8/+/2557988/7/src/objects/string.h#576
   It lead to build failed on g++ 10.0.1.
   https://bugs.chromium.org/p/v8/issues/detail?id=11228

Bug: v8:11228
Change-Id: I81103143a995cc5225a990672094adaa7a3a934d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2573643
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71634}
2020-12-07 09:04:45 +00:00
Liu Yu
924b07783c [mips][wasm][liftoff] Allow loads from negative indices
Port commit 4765c70fa6

Change-Id: I1149eb3317613627e2cef4e6c9ad38f044e96fe0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2576444
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#71633}
2020-12-07 08:21:55 +00:00
Zhi An Ng
e119b85840 [ia32] Consolidate f32x4.splat and f64x2.splat instruction codes
Bug: v8:11217
Change-Id: I4a02af1b9b07470134ea893d532c545da63b26d3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2568922
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71632}
2020-12-07 04:50:34 +00:00
v8-ci-autoroll-builder
475ee37bf4 Update V8 DEPS.
Rolling v8/build: 83e2334..b7fc8c9

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

Change-Id: I9cde52ff7a44cc90f129fc393fa3f24bd7277d1f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2576617
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@{#71631}
2020-12-07 03:49:03 +00:00
Zhi An Ng
9debac6dfd [arm][cleanup] Refactor decoding to follow guide
Stick more closely to the decoding guide laid out in the manual, and
also take the chance to remove some duplicate code.

Drive-by fix a clang-tidy warning for bool literal.

Bug: v8:11074
Change-Id: I91aa8db7cd3db30b250e8bfc9bb146c8bb56dcd1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567530
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71630}
2020-12-07 03:45:33 +00:00
Zhi An Ng
5ce5f42990 [wasm-simd][arm] Prototype extended multiply
Bug: v8:11008
Change-Id: Ic7be8370e3e820d225558995a9ad2295811e98a4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567531
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71629}
2020-12-07 03:39:44 +00:00
Zhi An Ng
996aadbd17 [wasm-simd][arm] Prototype load lane and store lane
Prototype v128.{load,store}{8,16,32,64}_lane on arm.

Bug: v8:10975
Change-Id: I649f567f39f8a5ba6992a86b761f93f62619c139
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565079
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71628}
2020-12-07 02:21:23 +00:00
Zhi An Ng
7e67c9a8e1 Reland "[wasm-simd][ia32] Prototype sign select"
This is a reland of 716dae3ae0

Original change's description:
> [wasm-simd][ia32] Prototype sign select
>
> The implementation is the same as on x64.
>
> Bug: v8:10983
> Change-Id: I2654ce4a627ca5cc6c759051ab9034c528d9f25a
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567194
> Reviewed-by: Bill Budge <bbudge@chromium.org>
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71606}

Bug: v8:10983
Change-Id: I05af92ec2d3531dd2e0d27353cc665967fb5c387
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2574001
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71627}
2020-12-07 02:11:43 +00:00
v8-ci-autoroll-builder
d5a2c24444 Update V8 DEPS.
Rolling v8/build: 7ac6aae..83e2334

Rolling v8/third_party/aemu-linux-x64: FMtthcz6qGrAgLXdxXJ6pP0iueMVqTXO6-6_LOrvTZUC..ZgEt2vZQcebeMBnTVKemE7gxtLtigVkD5iHfrp1QkDsC

Rolling v8/third_party/depot_tools: e6a6233..e602c60

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

Change-Id: Ie61fff611a4f3817f9e34f874d7e1fc10e56d648
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2576441
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@{#71626}
2020-12-06 03:57:03 +00:00
Junliang Yan
1cb5974e56 s390x: cleanup Pair Ops
Pair Ops are for 31-bit support.
We had drop 31-bit support long time ago so don't need them anymore.

Change-Id: Iff1f8df19433fd1431316888d0c5276b9710b1fc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2576003
Commit-Queue: Junliang Yan <junyan@redhat.com>
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71625}
2020-12-05 13:04:33 +00:00
Camillo Bruni
1d7aa2f8d0 [tools] Add api events timeline-track to system-analyzer
- Clean up entry selection code
- Add source positions for code and deopt events
- Fix log entry selection from script
- Improve log parsing speed

Bug: v8:10644
Change-Id: Ie466679132b8ce24506ecf75223118b32275f931
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2569756
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71624}
2020-12-05 10:49:42 +00:00