Commit Graph

66383 Commits

Author SHA1 Message Date
Benedikt Meurer
2a81352588 [debug] Remove dead %GetHeapUsage() runtime function.
Bug: chromium:116229
Change-Id: I16e185c2156dd7ba812f7d484c2e281febfa3635
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2606048
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71891}
2020-12-29 10:31:53 +00:00
Benedikt Meurer
6f6a540456 [wasm][debug] Compile source only once for Debug-Evaluate.
We accidentally compiled the source for Debug-Evaluate on Wasm frames
twice, and used the first script result as outer function info for the
second, actual compile (which goes via the `eval` machinery).

Also unify DebugEvaluate::Local and DebugEvaluate::WebAssembly, since
they are essentially very similar, except for the context.

Bug: chromium:1127914
Change-Id: I8eb85c128c05ab1d4fcb73061de89b0942d1e5c8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2605198
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71890}
2020-12-29 09:42:53 +00:00
LiuYu
cbed76b711 [mips][liftoff]Fix some instructions
This fix the following instructions:
kExprI32SConvertF64 in mips32, RecordSpillsInSafepoint in mips32 and mips64.

Change-Id: I762fe4a7afa06fa8470fb0de932756a145d66099
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2605905
Auto-Submit: Liu yu <liuyu@loongson.cn>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71889}
2020-12-29 07:56:23 +00:00
Zhi An Ng
d5662577fe [wasm-simd][x64] Prototype i64x2 widen i32x4
Prototype these 4 instructions:

- i64x2.widen_low_i32x4_s
- i64x2.widen_high_i32x4_s
- i64x2.widen_low_i32x4_u
- i64x2.widen_high_i32x4_u

Bug: v8:10972
Change-Id: I3defd0a2431252bc3f5bb45e022e62b37beb34ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2601012
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71888}
2020-12-29 03:47:13 +00:00
v8-ci-autoroll-builder
de3bd8dd25 Update V8 DEPS.
Rolling v8/build: ffd4756..7c34525

Rolling v8/third_party/depot_tools: 46ef281..3b39cef

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

Change-Id: I3881d27d5aec152fbb1059e8db3a2e85337a6b77
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2605670
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@{#71887}
2020-12-29 03:27:13 +00:00
Zhi An Ng
e193557497 [wasm-simd][x64] Prototype saturating rounding multiply high
Bug: v8:10971
Change-Id: I60186a445f3a5ad366cba4e6bcb16519098aa6ad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2601009
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71886}
2020-12-29 02:31:53 +00:00
Zhi An Ng
7ddcd92ea9 [wasm-simd][x64] Convert ext mul macros into macro-assembler functions
This will make these functions usable from Liftoff when we later
implement extended multiply instructions in Liftoff.

Bug: v8:11262
Change-Id: I5fb105bc0184675eb60cd8ae63cc13955b0f767d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2601876
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71885}
2020-12-29 01:38:53 +00:00
Zhi An Ng
506c09797c [x64] Sort out move instructions in codegen
In AVX, it is better to use the appropriate integer or floating point
moves depending on which instructions produce/consume these moves, since
there can be a delay moving from integer to floating point domain. On
SSE systems, it is less important, and we can move movaps/movups which
is 1 byte shorter than movdqa/movdqu.

This patch cleans up a couple of places, and defines macro-assembler
functions Movdqa, Movdqu, Movapd, to call into movaps/movups when AVX is
not supported.

Change-Id: Iba6c54e218875f1a70f61792978d7b3f69edfb4b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599843
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71884}
2020-12-29 01:27:23 +00:00
Milad Fa
ddd9b349c1 PPC: [inspector] mark test as slow when running on simulator
Change-Id: Idae6adfd81889da96e7f9dad8781c9a285bea72a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2601343
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71883}
2020-12-28 16:32:22 +00:00
Benedikt Meurer
39645430e2 [inspector][wasm] Remove obsolete Debugger.executeWasmEvaluator().
With https://crrev.com/c/2087396 we introduced a new CDP method
`Debugger.executeWasmEvaluator()`, which we originally intended
to use as the foundation for Debug-Evaluate on Wasm frames.

However in the process of prototyping we learned that it is too
costly and too inefficient to use WebAssembly modules here, and
we switched to regular Debug-Evaluate with JavaScript instead
(with a special debug proxy exposed that allows JavaScript to
peak into the Wasm frame), since JavaScript is better suited
for short-lived / short-running snippets and we don't need
clang and wasm-ld then to generate these snippets.

The JavaScript exposed debug proxy (as described in [1]) not
only enables more powerful and flexible Debug-Evaluate for the
DWARF C/C++ extension, but also serves as the basis for various
aspects of the Basic Wasm Developer Experience.

In order to pay down technical debt and to keep the maintenance
overhead low, we should remove the initial prototype now, also
to ensure that we don't accidentally attract other users of CDP
to rely on this unsupported API (despite it being marked as
"experimental").

[1]: https://docs.google.com/document/d/1VZOJrU2VsqOZe3IUzbwQWQQSZwgGySsm5119Ust1gUA

Fixed: chromium:1162062
Bug: chromium:1020120, chromium:1068571, chromium:1127914
Change-Id: I6dba8c906a8675ce6c29a52e3c32bb6626a27247
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2605186
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71882}
2020-12-28 16:00:42 +00:00
v8-ci-autoroll-builder
76d6f06abb Update V8 DEPS.
Rolling v8/build: 3d38a62..ffd4756

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

Change-Id: I2692889cddf15d7d9adfbe9594bd94fa41aea87c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2604592
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@{#71881}
2020-12-28 03:44:22 +00:00
v8-ci-autoroll-builder
29968330b2 Update V8 DEPS.
Rolling v8/build: c5cfdff..3d38a62

Rolling v8/buildtools: ea9f1f7..2277272

Rolling v8/buildtools/linux64: git_revision:53d92014bf94c3893886470a1c7c1289f8818db0..git_revision:0d67e272bdb8145f87d238bc0b2cb8bf80ccec90

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

Change-Id: Ic602dc2aafdb1224b64b1407de0415acc1453ae2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2604148
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@{#71880}
2020-12-27 03:46:32 +00:00
v8-ci-autoroll-builder
396289228c Update V8 DEPS.
Rolling v8/build: ff0b5c1..c5cfdff

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

Change-Id: If817e8ac8400c0b4c5a0b16f5901ac71f0136891
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2603920
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@{#71879}
2020-12-26 03:48:51 +00:00
v8-ci-autoroll-builder
e8e4a8ebe3 Update V8 DEPS.
Rolling v8/build: 2d94fa5..ff0b5c1

Rolling v8/third_party/depot_tools: 67e1228..46ef281

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

Change-Id: I7fd43af962a4b7da6e1641e6990776aedb46fb84
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2603522
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@{#71878}
2020-12-25 03:46:56 +00:00
Milad Fa
50e7dbacea PPC: [wasm-simd] refactor I16x8Mul and I8x16Mul on PPC
Change-Id: If9bb55c0fa3297b5e0453cc9bc89bb906a905bf8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2601342
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71877}
2020-12-24 17:21:16 +00:00
Yang Guo
32c29e8f01 [inspector] do not interrupt with pause when running regexp
If we attempt to pause, we'd check whether frames are framework code
which we pattern match with a regexp. That could cause re-entering
regexp, which is not allowed.

Fixed: chromium:1125934
Change-Id: I3b52b202a5570f7929def39176cfe5e52be3dfd5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2602948
Commit-Queue: Yang Guo <yangguo@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71876}
2020-12-24 11:06:35 +00:00
Benedikt Meurer
f4d408fdc4 [wasm][debug] Make Scope order consistent.
JavaScript scopes are reported from inner-most to outer-most, while
previously we would report WebAssembly frames from outer-most to
inner-most. This is quite confusing for developers, and also doesn't
really make sense, so this CL fixes this inconsistency.

Bug: chromium:1071432
Change-Id: I6a4742f13b9a0df33e50c6fcd40992873996aaf5
Fixed: chromium:1159309
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2602947
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71875}
2020-12-24 10:26:35 +00:00
LiuYu
7a7027f8ed [mips][macro-assembler] Avoid using the isolate in
CallRecordWriteStub

Port: 6b3994e850

Bug: chromium:1146813

Change-Id: I552f49193188d91d64a1d75307cd3390138c9e7a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599426
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#71874}
2020-12-24 03:47:09 +00:00
v8-ci-autoroll-builder
685358f288 Update V8 DEPS.
Rolling v8/build: d4fcf57..2d94fa5

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/2752abe..3f5c581

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

Change-Id: Ic1879d10e5d79bbc8bafa07603679cde9be6c327
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2600522
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@{#71873}
2020-12-24 03:44:39 +00:00
Milad Fa
31b7d4f519 PPC: Add VX_OPCODE_C_FORM instructions to the disassembler
Instructions include:
vupkhsw
vupklsh
vupkhsh
vupklsb
vupkhsb

Change-Id: Ie11961dbf1f4838e96efe6704c8d938a62213b93
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2601660
Reviewed-by: Junliang Yan <junyan@redhat.com>
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71872}
2020-12-23 23:00:39 +00:00
LiuYu
0d8d133261 [mips][wasm-gc] Initial Liftoff support
Port: bee5992a6d

Bug: v8:7748

Change-Id: I5985eaf9cfaf3786e19ac6d1678630828e4c77be
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599397
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@{#71871}
2020-12-23 08:54:55 +00:00
LiuYu
7c243e546d [mips][wasm-simd][liftoff] Implement extended multiply
Port: 1215f2a83b

Bug: v8:11262

Change-Id: I307619aaea7adda16d52155255830e6d4cefcd1f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2600836
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@{#71870}
2020-12-23 07:46:47 +00:00
Andrey Kosyakov
f656eab592 DevTools: add support for system-unique execution context ids
This adds ExecutionContextDescription.uniqueId for a system-unique
way to identify an execution context and supports it in Runtime.evaluate.
This allows a client to avoid accidentally executing an expression
in a context different from that originally intended if a navigation
occurs while Runtime.evaluate is in flight.

Design doc: https://docs.google.com/document/d/1vGVWvKP9FTTX6kimcUJR_PAfVgDeIzXXITFpl0SyghQ

Bug: v8:11268, chromium:1101897
Change-Id: I4c6bec562ffc85312559316f639d641780144039
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2594538
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71869}
2020-12-23 05:15:47 +00:00
Zhi An Ng
e51dcc5225 [wasm-simd][arm][liftoff] Implement extended multiply
Bug: v8:11262
Change-Id: I746e1bf819d69a010efee2ec907a49dbc05dda64
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599845
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71868}
2020-12-23 03:53:35 +00:00
v8-ci-autoroll-builder
e066141587 Update V8 DEPS.
Rolling v8/build: 3e20802..d4fcf57

Rolling v8/third_party/aemu-linux-x64: GI8QGXYA44_uicQ1AX9ecXBzIK4dImUA90X-kMlohyIC..eNKL3iFnDydKoCyqA9rVhylE7ud5a_9wRt0b0HFtLvIC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/8d43e58..2752abe

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

Change-Id: I6a54d437519d43d8a874bfaadb43cb955d38440f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2601509
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@{#71867}
2020-12-23 03:32:55 +00:00
Zhi An Ng
c9560d1dbf [wasm-simd][x64][avx2] Improve codegen for load{8,16}_splat
Detect AVX2 support and use vpbroadcastb or vpbroadcastw.

No new assembler helpers required because we are only emitting the
VEX-128 versions of these instructions.

Bug: v8:11258
Change-Id: Ic50178daa6fc8fe767dfc788e61e67538066bdea
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2596582
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71866}
2020-12-23 01:56:42 +00:00
Milad Fa
fccbf1b876 PPC: Adding more vector opcodes to the dissembler
Change-Id: I4e70f176fa08c9a6b6f40683248d4c32c8e16f59
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2598588
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71865}
2020-12-22 21:08:50 +00:00
Andrey Kosyakov
6e9f33f99c Delegate unique id generation to embedder
This lets embedder to produce an id with sufficient entropy to
facilitate an id appropriate for a multi-process system and
immune to regular RNG seed being overriden, while maintaining
deterministic id allocation for tests.

Design doc: https://docs.google.com/document/d/1vGVWvKP9FTTX6kimcUJR_PAfVgDeIzXXITFpl0SyghQ
Related blink-side change: https://chromium-review.googlesource.com/c/chromium/src/+/2600273

Bug: v8:11268
Change-Id: I1a4d12463cf56d4378859dfa3ee4d717e176d468
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2600442
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71864}
2020-12-22 18:40:10 +00:00
Milad Fa
72a7676110 PPC/s390: [wasm-simd][arm64][liftoff] Implement extended multiply
Port 1215f2a83b

Original Commit Message:

    The codegen is the same as on TurboFan, using Smull, Umull, Smull2, and
    Umull2. The rest of the changes are adding skeleton functions to the
    different archs, which bailout for now. Actual codegen will come in
    future patches.

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

Change-Id: I58bc84ede44a9c90e315d6dc3346ea09b31deaf7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2600731
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71863}
2020-12-22 15:08:40 +00:00
Zhi An Ng
5cc4246d8d [x64] Small cleanup of disassembly of cmp instructions
Change-Id: I6ae8699032efc4e55f3e6f808620591c4ad8fc3e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599841
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71862}
2020-12-22 06:03:19 +00:00
v8-ci-autoroll-builder
77f9811295 Update V8 DEPS.
Rolling v8/build: 34da458..3e20802

Rolling v8/third_party/aemu-linux-x64: qMq36BPvKEIxjpVFBefO08HoyM51jARe3EuX0vcgzWsC..GI8QGXYA44_uicQ1AX9ecXBzIK4dImUA90X-kMlohyIC

Rolling v8/tools/clang: d324a17..1283870

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

Change-Id: Ief40dcfffd3dee29abd267149af5a9e57907675f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2600368
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@{#71861}
2020-12-22 03:55:59 +00:00
Zhi An Ng
3bb0f51aa5 [wasm-simd][x64] Pattern match on shufps-style shuffles
When a 8x16 shuffle matches a 32x4 shuffle (every group of 4 indices are
consecutive), and the first 2 indices are in the range [0-3], and the
other 2 indices are in the range [4-7], then we can match it to a
shufps. E.g. [0,2,4,6], [1,3,5,7]. These shuffles are commonly used to
extract odd/even floats.

Change-Id: I031fe44f71a13bbc72115c22b02a5eaaf29d3794
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2596579
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71860}
2020-12-22 03:15:29 +00:00
Zhi An Ng
1215f2a83b [wasm-simd][arm64][liftoff] Implement extended multiply
The codegen is the same as on TurboFan, using Smull, Umull, Smull2, and
Umull2. The rest of the changes are adding skeleton functions to the
different archs, which bailout for now. Actual codegen will come in
future patches.

Bug: v8:11262
Change-Id: I06f0b018b85b5cca29382ab730510959e1a81ab6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2589064
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71859}
2020-12-22 02:40:14 +00:00
Andrew Comminos
20feaf9a00 [cpu-profiler] Implement basic refcounting of CodeEntry strings
As a first step towards freeing CodeEntry objects that are neither still
referenced by JS or stored in a profile, enable freeing of refcounted
strings by CodeEntry instances. For now, this leaves behaviour unchanged
until we receive CodeEntry destruction events.

Bug: v8:11054
Change-Id: Iabd05aa730343cd1a879ff5b04326f23e68aa948
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2590604
Commit-Queue: Andrew Comminos <acomminos@fb.com>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71858}
2020-12-22 02:39:09 +00:00
Zhi An Ng
a66bb00024 [wasm-simd][x64] Optimize blend and palignr shuffles for AVX
For pblendw and palignr, if AVX is supported, we can use the 3-operand
AVX instruction, this can save us a move.

Bug: v8:11270
Change-Id: Ifd837e29c76886a3008bc63c17d4a68bc6aae364
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2596578
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71857}
2020-12-22 02:29:09 +00:00
Zhi An Ng
b145152db2 [wasm-simd][x64] Optimize some integer widen_high ops
Optimize:
- i32x4.widen_high_i16x8_s
- i32x4.widen_high_i16x8_u
- i16x8.widen_high_i8x16_s
- i16x8.widen_high_i8x16_u

These optimizations were suggested in http://b/175364869.

The main change is to move away from palignr, which has a dependency on
dst, and also the AVX version is 2 bytes longer than the punpckhqdq.

For the signed and unsigned variants, we have slightly different
optimizations. Unsigned variants can use an punpckh* instruction with a
zero-ed scratch register, that effectively zero-extends. Signed variants
use the movhlps instruction to move high half to low half of dst, then
use packed signed extension instructions.

The common fallback for these instructions is to use pshufd, which does
not have a dependency on dst, but is 1 byte longer than the punpckh*
instructions.

FIXED=b/175364869

Change-Id: If28da2aaa8f6e39a58e63b01cc9a81bbbb294606
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2591853
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71856}
2020-12-22 02:04:09 +00:00
Deepti Gandluri
8c48059844 [wasm-simd] Add a flag to allow SSSE3 SIMD codegen
Bug: v8:11154
Change-Id: Idc1ae98c2f4c0b2924f34c76b56f230cb091c16e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2600360
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71855}
2020-12-22 01:59:29 +00:00
Junliang Yan
7f35fe4786 s390x: rename LoadP operation
Change-Id: I036bad7eba4bcf0ba80f7cec6f3d58a674e22b12
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599937
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71854}
2020-12-21 18:52:39 +00:00
Sami Kyostila
4dfaf7c4b1 tracing: Add the new v8.wasm.turbofan category to the list of builtin categories
We also change pipeline-statistics.cc to use a combination of turbofan-
related categories since that more accurately reflects the emitted events.

TBR=bmeurer@chromium.org

Bug: chromium:1084929
Change-Id: I85dcd89ab3e4cd95df3ae9791d158b4ab6c00829
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599749
Commit-Queue: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Auto-Submit: Sami Kyöstilä <skyostil@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71853}
2020-12-21 17:13:08 +00:00
Sathya Gunasekaran
1af49b8508 [runtime] Remove unnecessary instance types
LAST_FUNCTION_TYPE, FIRST_FUNCTION_TYPE are no longer necessary.

TBR: tebbi@chromium.org
Bug: v8:11256
Change-Id: I37b1396eca8f89a287e04f2ef6b642dad248ae67
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599745
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71852}
2020-12-21 14:50:58 +00:00
Junliang Yan
20703d7f99 s390x: rename Cmp operations
Change-Id: Idb8948c3ff9209a6a41d0793cd2f5c1557b417df
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2598697
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71851}
2020-12-21 14:06:53 +00:00
Camillo Bruni
94bf7d9f79 [d8] Throw in d8.log.getAndStop() if log file does not exist
This prevents CF from crashing and assuming it's a security issue
for flaky bots.

Bug: chromium:1152525
Change-Id: Ie782e55705e3bdbf2742ccd711f6544a71235b33
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599748
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71850}
2020-12-21 14:05:48 +00:00
Camillo Bruni
c84213ef0f [tools] System-analyzer improvements
- Fix landing page
- Introduce and use SelectRelatedEvent for centralising the logic of
  finding and showing related LogEntries. It also clears the selection
  of all list panels if there are no related entries.
- Add "select related" button to the script-panel to show events only
  from the currently selected script
- Add selection type tabs for the map-panel
- Fix transition colors for map-transitions view
- Introduce separate map-transition view for the currently selected Map

Bug: v8:10644
Change-Id: I4199a8332bab2518d98078712ed5ce9a8f1dc19e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599555
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71849}
2020-12-21 13:26:08 +00:00
Junliang Yan
d5651560e7 s390x: fix mul operation
Change-Id: I8cdf2d79d0b0340c924360bf25e3ce0167ed8ee4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595724
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71848}
2020-12-21 13:24:38 +00:00
LiuYu
a90b1ce537 [wasm-simd][mips] Prototype extended multiply
Port: 4ad68f1c83

Bug: v8:11008

Change-Id: I0aa384612b529babf9e526fca83c8c69f58b6f3b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2592828
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Auto-Submit: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#71847}
2020-12-21 10:07:18 +00:00
v8-ci-autoroll-builder
050f6a8d43 Update V8 DEPS.
Rolling v8/build: d6efe53..34da458

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

Change-Id: Ie358cbfd3f3a9204427cdf4f7f030d3a49113259
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599325
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@{#71846}
2020-12-21 03:34:57 +00:00
Zhi An Ng
8e9ad4f861 [x64][ia32][wasm-simd] Optimize v128.bitselect
Couple of optimizations for v128.bitselect on both ia32 and x64.

1. Remove an extra movaps when AVX is supported, since we have 3-operand
instructions
2. Tweak the algorithm from:
     xor(and(xor(src1, src2), mask) src2)

   To:
     or(and(src1, mask), andnot(src2, mask))
   It is easier to read and understand, and also eliminate a dependency
   chain (on kScratchDoubleReg) in the older algorithm.
3. Use integer forms of the logical ops. Older processors have higher
throughput on these, compared to the floating point ops. However, the
integer forms are 1 byte longer, so on SSE, we stick to the floating
point ops.

For AVX, this reduces instruction count from 9948 to 9868.

Change-Id: Idd5d26b99a76255dbfa63e2c304e6af3760c4ec6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2591859
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71845}
2020-12-21 02:17:27 +00:00
v8-ci-autoroll-builder
3e6f5fe1da Update V8 DEPS.
Rolling v8/build: 6ae4be1..d6efe53

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

Change-Id: I70dfc2899b0e47318254ada04b398e6212aebdcf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599105
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@{#71844}
2020-12-20 03:42:37 +00:00
LiuYu
39abe9f608 [mips][Turboprop] Move dynamic check maps immediate args to deopt exit.
Port: 7bdb0fbb81

Bug: v8:10582

Change-Id: I2a2227ddc45b86f7ad496b524514db96f423b185
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2598463
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@{#71843}
2020-12-19 10:21:56 +00:00
v8-ci-autoroll-builder
391941911d Update V8 DEPS.
Rolling v8/build: 68fec68..6ae4be1

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

Change-Id: Iedfb1d8a959bfa8a52939d7b3617bafdf4043051
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2598675
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@{#71842}
2020-12-19 03:37:36 +00:00