Commit Graph

68190 Commits

Author SHA1 Message Date
v8-ci-autoroll-builder
f88739b9c7 Update V8 DEPS.
Rolling v8/build: 5ecd95d..c835251

Rolling v8/buildtools: 4401ea9..99a2527

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

Change-Id: Ib82b5138717778827b86736ad8c3213cf94a2792
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2790503
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@{#73698}
2021-03-29 03:45:32 +00:00
v8-ci-autoroll-builder
bab0737b17 Update V8 DEPS.
Rolling v8/build: 1c68d75..5ecd95d

Rolling v8/buildtools/linux64: git_revision:64b3b9401c1c3ed5f3c43c1cac00b91f83597ab8..git_revision:b2e3d8622c1ce1bd853c7a11f62a739946669cdd

Rolling v8/third_party/aemu-linux-x64: Q7BOLoBEKjKHVG4WYSf3qNuhySZ9nyW9T5qODWXbwLEC..PQ5BA4WJfsqBSdlGRVmglasbA61vdJ1sHFa_R-euwHQC

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

Change-Id: Iecb19d78ecbf09929bfb1751afe78743333eae22
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2789654
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@{#73697}
2021-03-28 03:49:41 +00:00
v8-ci-autoroll-builder
697d3751f3 Update V8 DEPS.
Rolling v8/build: 5b847b7..1c68d75

Rolling v8/buildtools: 69cc9b8..4401ea9

Rolling v8/buildtools/third_party/libc++abi/trunk: 9bb0768..cbf9455

Rolling v8/third_party/aemu-linux-x64: T_v8z36hVtClZdI--UREcqogtXsjdf62oj2ae3H0JjMC..Q7BOLoBEKjKHVG4WYSf3qNuhySZ9nyW9T5qODWXbwLEC

Rolling v8/third_party/depot_tools: 392c407..e0de6a8

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

Change-Id: Ie34b9c2219b8a126577e4a0c2505be40391a5961
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2789036
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@{#73696}
2021-03-27 03:45:10 +00:00
Milad Fa
c183ab165f PPC [simd]: fix NaN propagation on vector fp min/mix simulator
Change-Id: Ia60893e627d61cd8ec2663dea47c5463e3606c78
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2787190
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73695}
2021-03-26 15:24:30 +00:00
v8-ci-autoroll-builder
6eb8c81f4a Update V8 DEPS.
Rolling v8/build: 7b935eb..5b847b7

Rolling v8/buildtools/third_party/libc++abi/trunk: f50df92..9bb0768

Rolling v8/third_party/aemu-linux-x64: wvBTICmOxqrOyqTGFXVMcKyHB3KmKkB4Xo6VVahwXs8C..T_v8z36hVtClZdI--UREcqogtXsjdf62oj2ae3H0JjMC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/4f773bc..36e4502

Rolling v8/tools/clang: 84682eb..fc39a84

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

Change-Id: I678dc956815be477f8842cfb62b0591cb0a5841b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2787909
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@{#73694}
2021-03-26 03:55:00 +00:00
Liu Yu
6360533951 [mips][sparkplug][deoptimizer] Deoptimize to baseline.
Port: e438ae2df3

Bug:

Change-Id: Ie79b3b347304ce6a5048c6ad44b5e08f382ee1a0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784057
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@{#73693}
2021-03-26 03:21:10 +00:00
Ng Zhi An
9edfb35ad9 [wasm-simd] Move i64x2 abs gts ges into SharedTurboAssembler
Also clean up some comments in liftoff-assembler-x64.h.

Bug: v8:11589
Change-Id: I47fe5c2c794c863be1afde86d289ea197219a4f8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2787591
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73692}
2021-03-26 00:04:50 +00:00
Igor Sheludko
bda0849019 [sparkplug] Enable short builtin calls by default (#3)
... when they are enabled via the GN flag.

Known issues are already fixed in a separate CL:
  https://chromium-review.googlesource.com/c/v8/v8/+/2786855

Sheriffs: This CL adds ~1.2-1.4Mb of memory overhead per Isolate on
certain configurations and that's expected. This is a temporary fix
until the full solution is implemented.
See the design doc linked to the issue for details.

Bug: v8:11527
Change-Id: Ia472352926494f59481e8ddc54e15c75f5730730
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786840
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73691}
2021-03-25 23:43:29 +00:00
Frank Emrich
8d62d4be7f [dict-proto] Rollout of SwissNameDictionary in CSA
This CL evokes that when v8_dict_mode_prototypes is enabled,
SwissNameDictionary is used in CSA as the dictionary backing store
for all objects (instead of NameDictionary).

Bug: v8:11330
Change-Id: I2bda0ec60040981f07e0e51aaf772ac1bb8bbc06
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786856
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73690}
2021-03-25 22:58:19 +00:00
Junliang Yan
e292db5dfc Reland "Reland "s390x: [liftoff] implement CallRuntimeStub""
This is a reland of 0655aa0573

Original change's description:
> Reland "s390x: [liftoff] implement CallRuntimeStub"
>
> This is a reland of 88c1ae95b6
>
> Original change's description:
> > s390x: [liftoff] implement CallRuntimeStub
> >
> > Change-Id: I505ea67af31006f3f233eef390f234cfc0188d6c
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2774479
> > Reviewed-by: Milad Fa <mfarazma@redhat.com>
> > Commit-Queue: Junliang Yan <junyan@redhat.com>
> > Cr-Commit-Position: refs/heads/master@{#73525}
>
> Change-Id: Id5d0ece78533439870fdc6b000026fe04e576448
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2774561
> Reviewed-by: Milad Fa <mfarazma@redhat.com>
> Commit-Queue: Junliang Yan <junyan@redhat.com>
> Cr-Commit-Position: refs/heads/master@{#73549}

Change-Id: I287a833a3c12869377b83bd66a1bf096f514e034
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2787194
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73689}
2021-03-25 22:03:13 +00:00
Ng Zhi An
6acd0e4ab0 [wasm-simd] Move extmul into SharedTurboAssembler
Left i16x8.extmul_low in the arch-specific macro-assemblers because
they rely on other functions defined in the same file. We can come back
and move it afterwards.

Bug: v8:11589
Change-Id: I2ea81c50ed52cc3e59e001b5e80aaf6b93a6572c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786280
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73688}
2021-03-25 21:40:34 +00:00
Ross McIlroy
950b281ffe [compiler] Inline 64bit immediates and RPO numbers in InstructionOperand
AddImmediate ends up pushing repeated immediates very often
unecessarily. Add support for Int64 immediates being inlined into
InstructionOperand if they fit into the payload (which is almost always
the case). Also add a seperate rpo_immediate vector for RPO numbers to
avoid having to add them to the immediates_ vector multiple times.
Ideally the RPO values would also be inlined, however JumpThreading
needs to patch RPO targets throughout the instruction stream, so we
need an indirection.

Change-Id: I75b1cdb05917f85d4f740a34c3720dd9cf0ee29c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2782282
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73687}
2021-03-25 21:39:18 +00:00
Junliang Yan
8f4298695e s390: fix random failures due to parameter popped in wrong order
Change-Id: I56b00f00f7b08dee881f473ecedd9596151dee4c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786858
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73686}
2021-03-25 21:38:14 +00:00
Frank Emrich
5d27e6476f [dict-proto] CSA/Torque implementation of SwissNameDictionary, pt. 6
This CL enables proper testing for the CSA/Torque implementation of
SwissNameDictionary. This is done by changing the implementation of
test_swiss_hash_table::CSATestRunner.

This is the last CL of this series and concludes the CSA/Torque
implementation of SwissNameDictionary.

Bug: v8:11330
Change-Id: Ib46ef3a2c9ec9746591c2af94346be7d0382122b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786843
Commit-Queue: Frank Emrich <emrich@google.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73685}
2021-03-25 21:37:09 +00:00
Milad Fa
c71fe282a6 PPC [simd]: Add fp rounding and multiply-sum halfword to Sim
Change-Id: I9a1a236185614e41d6dba25331a0731666aed093
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2787187
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73684}
2021-03-25 21:36:04 +00:00
Zhi An Ng
157f3e8918 Revert "[wasm-simd] Move test helpers into wasm-simd-utils"
This reverts commit 9a6567b482.

Reason for revert: MSVC compile failures https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win64%20-%20msvc/b8851762212188482624/steps?succeeded=true&debug=true

Original change's description:
> [wasm-simd] Move test helpers into wasm-simd-utils
>
> Move many test helpers into wasm-simd-utils. These helper functions can
> potentially be useful for relaxed-simd test in the future. I left behind
> simd specific test helpers, like load extend helpers, because those are
> for simd instructions.
>
> Bug: v8:11583,v8:11384
> Change-Id: Id9ed452b06eaf5c97a5dda174b53a37aede2a937
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783295
> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73675}

Bug: v8:11583
Bug: v8:11384
Change-Id: I88bcefecd62c9b453d0f51ad9b9a912339b110eb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2787239
Auto-Submit: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#73683}
2021-03-25 19:43:06 +00:00
Ng Zhi An
d048799863 [wasm-simd] Remove scalar lowering tests
We already skip all tests on no-simd-sse builds, in effect not testing
scalar lowering. So, remove explicit tests for scalar lowering for all
other build configurations.

Cq-Include-Trybots: luci.v8.try:v8_linux_optional_rel_ng
Change-Id: I0aedad255236fa029e911bb9dc2dccab419791a4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2728249
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73682}
2021-03-25 19:28:38 +00:00
Frank Emrich
025af802d1 [dict-proto] CSA/Torque implementation of SwissNameDictionary, pt. 5
This CL adapts some existing dictionary-related operations in CSA to
support SwissNameDictionary, too. This is needed to make the CSA
version of the SwissNameDictionary test suite working.

Bug: v8:11330
Change-Id: Ieb315a0806d8910e50f3643abb9a68200485e4fd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784689
Commit-Queue: Frank Emrich <emrich@google.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73681}
2021-03-25 19:27:33 +00:00
Deepti Gandluri
b9c521d0ea Revert "[sparkplug] OSR Ignition -> Sparkplug"
This reverts commit 52393b900b.

Reason for revert: Reverting for TSAN fails - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20no-concurrent-marking/3061

Original change's description:
> [sparkplug] OSR Ignition -> Sparkplug
>
> Add support for OSR to baseline code.
> We compile baseline and perform OSR immediately when the bytecode budget
> interrupt hits.
>
> Drive-by: Clean-up deoptimizer special handling of JumpLoop by using
> the newly introduced GetBaselinePCForNextExecutedBytecode instead of
> GetBaselineEndPCForBytecodeOffset.
>
> Bug: v8:11420
> Change-Id: Ifbea264d4a83a127dd2a11e28626bf2a5e8aca59
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784687
> Commit-Queue: Patrick Thier <pthier@chromium.org>
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73677}

Bug: v8:11420
Change-Id: I335640216dbbf9a854fc276f3df95bf5a1f9956a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2787192
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73680}
2021-03-25 19:26:16 +00:00
Leszek Swirski
b02dd5b36b [sparkplug] Allow sparkplug compilation to gracefully OOM
This also makes OOMing on --always-sparkplug not crash

Bug: v8:11420
Change-Id: Ibaa5eb8a268a7d47ec30210f5cf5af51e514f039
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786846
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73679}
2021-03-25 18:36:13 +00:00
Ng Zhi An
d51e27b6bf Move ia32 x64 shared macro assembler into directory
Bug: v8:11589
Change-Id: I3f1c6d1ece6c634915358f30537c9bbabc0cd3b0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2785818
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73678}
2021-03-25 18:09:43 +00:00
Patrick Thier
52393b900b [sparkplug] OSR Ignition -> Sparkplug
Add support for OSR to baseline code.
We compile baseline and perform OSR immediately when the bytecode budget
interrupt hits.

Drive-by: Clean-up deoptimizer special handling of JumpLoop by using
the newly introduced GetBaselinePCForNextExecutedBytecode instead of
GetBaselineEndPCForBytecodeOffset.

Bug: v8:11420
Change-Id: Ifbea264d4a83a127dd2a11e28626bf2a5e8aca59
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784687
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73677}
2021-03-25 18:05:43 +00:00
Ng Zhi An
904489691a [wasm-simd] Move int conversions into SharedTurboAssembler
The x64 and ia32 implementations are the same, modulo function
signature. x64 has a kScratchDoubleReg available, ia32 takes it as a
argument. We standardize on the ia32 function signature and have callers
on x64 pass in the scratch register.

Bug: v8:11589
Change-Id: I2f75705ed9c618d6e7a7e34ac96b78b772c4944d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786094
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73676}
2021-03-25 18:04:24 +00:00
Ng Zhi An
9a6567b482 [wasm-simd] Move test helpers into wasm-simd-utils
Move many test helpers into wasm-simd-utils. These helper functions can
potentially be useful for relaxed-simd test in the future. I left behind
simd specific test helpers, like load extend helpers, because those are
for simd instructions.

Bug: v8:11583,v8:11384
Change-Id: Id9ed452b06eaf5c97a5dda174b53a37aede2a937
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783295
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73675}
2021-03-25 17:55:23 +00:00
Frank Emrich
44eb526e88 [dict-proto] CSA/Torque implementation of SwissNameDictionary, pt. 4
This CL adds:

a) FindEntry, Add, and Delete operations on SwissNameDictionary in
   Torque

b) Helpers needed for that on both the CSA and Torque side

Bug: v8:11330
Change-Id: I549b9039108217a34ec1e95af84eb28af7dfc9d3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2778175
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Frank Emrich <emrich@google.com>
Cr-Commit-Position: refs/heads/master@{#73674}
2021-03-25 17:51:06 +00:00
Zhi An Ng
71f1f0d489 Revert "[fastcall] Add fast API testing facilities to d8"
This reverts commit 9eba2d85f4.

Reason for revert: TSAN failures https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20isolates/14265/overview

Original change's description:
> [fastcall] Add fast API testing facilities to d8
>
> This CL provides the minimum necessary functionality to expose fast API
> for testing in mjsunit, exposing the fast path for fuzzing. It exposes
> a d8.test.fast_c_api with an `add_all` method, which exercises primitive
> types. On x64, all integer and floating point types are supported. On
> other platforms currently only 32-bit integers are included in the test.
>
> Design doc:
> https://docs.google.com/document/d/1KUKPfXkSRZTA2gMwaWbpQKlYfw0C-T6AE3XzC4viHbo/
>
> Bug: chromium:1052746
> Change-Id: Icc824199a26dd2abd2b869f5483a39d38e4dce3e
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749154
> Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
> Commit-Queue: Maya Lekova <mslekova@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73670}

Bug: chromium:1052746
Change-Id: Iaf5083540ddfe882a747eaa9d1d2a2a8b4ba0ec0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2787081
Auto-Submit: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#73673}
2021-03-25 17:29:05 +00:00
Igor Sheludko
ac2560c819 [sparkplug] Fix short builtin calls
... and don't enable them for CFI builds.

Bug: v8:11527
Change-Id: I651473833c1e74d942bd75dc7574dbca45b34b64
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786855
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73672}
2021-03-25 17:20:05 +00:00
Andreas Haas
070159f3b9 [wasm] Install the exception constructor in InstallConditionalFeatures
When copying the setup of the WebAssembly.Exception constructor to
InstallConditionalFeatures, I forgot to copy some parts.

R=thibaudm@chromium.org

Bug: chromium:1191853
Change-Id: Iacba30b3356fc42b7d97f8c105ef91b776b95eb4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786853
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73671}
2021-03-25 16:28:53 +00:00
Maya Lekova
9eba2d85f4 [fastcall] Add fast API testing facilities to d8
This CL provides the minimum necessary functionality to expose fast API
for testing in mjsunit, exposing the fast path for fuzzing. It exposes
a d8.test.fast_c_api with an `add_all` method, which exercises primitive
types. On x64, all integer and floating point types are supported. On
other platforms currently only 32-bit integers are included in the test.

Design doc:
https://docs.google.com/document/d/1KUKPfXkSRZTA2gMwaWbpQKlYfw0C-T6AE3XzC4viHbo/

Bug: chromium:1052746
Change-Id: Icc824199a26dd2abd2b869f5483a39d38e4dce3e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749154
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73670}
2021-03-25 15:56:53 +00:00
Z Nguyen-Huu
cbbf6cc1fe [v8windbg] Fix dx @$curisolate()
Change-Id: Iea2fa346bb4d6cd34a1e3f892b9787e75f26237d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786681
Reviewed-by: Seth Brenith <seth.brenith@microsoft.com>
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#73669}
2021-03-25 15:52:23 +00:00
Leszek Swirski
dba445c007 [sparkplug] Fix --always-sparkplug in tests
Disable or support --always-sparkplug in various tests that until now
were always expecting only bytecode.

Bug: v8:11420
Change-Id: Ida45041739fb55851aa493c51f1ed796aa1c0606
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786852
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73668}
2021-03-25 15:37:23 +00:00
Leszek Swirski
a1bb0eb197 [sparkplug] Allow baseline code in the profile listener
Fix a broken DCHECK when logging existing baseline code.

Bug: v8:11420
Change-Id: I66cf1b1b806aef74bcc9c1a0061bec1834b719f6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786850
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73667}
2021-03-25 15:29:23 +00:00
Leszek Swirski
9e939c0976 [sparkplug] Pass flags to CreateShallowArrayLiteral
CreateShallowArrayLiteral can fail and bail out to the runtime. We
therefore have to pass the literal flags to the builtin, so that the
runtime e.g. initialises the AllocationSite correctly.

Bug: v8:11420
Change-Id: I57dfbbc202aa2c3b0e7ac01f65ee84f6e3763180
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786848
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73666}
2021-03-25 15:09:53 +00:00
Leszek Swirski
af08fdbfb3 [sparkplug] Flush baseline code in context serializer
JSFunctions can store a pointer to baseline code, which would trigger
that code to be serialized in the context serializer. Since we don't
support baseline code serialization, we have to flush these baseline
code pointers.

This is similar to the existing optimized code flushing.

Bug: v8:11420
Change-Id: Idabd0caea24aed484d5cf39ad0dad8c2c8180b91
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786849
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73665}
2021-03-25 14:50:43 +00:00
Leszek Swirski
8f5f5c6828 [sparkplug] Add missing SaveAccumulatorScopes
Some baseline implementations of non-accumulator-writing bytecodes
would call builtins without saving the accumulator. This clobbers the
accumulator. This was particularly observable with IncBlockCounter.

Bug: v8:11420
Change-Id: I1e8a06526ea6ed018da0d6213775cce130c72aee
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786847
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73664}
2021-03-25 14:18:53 +00:00
Leszek Swirski
bb3794c711 [profiler] Fix reachability in eager logging test
Use a local context and compilation cache clearing to trigger code
deletion in ClearUnusedWithEagerLogging, rather than relying on bytecode
flushing. This allows the test to succeed with non-flushable
native-context-independent code, like Sparkplug baseline code.

Bug: v8:11420
Change-Id: Id6e3626b6245b4308d95aa3995a8fb2ee53684f7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786851
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73663}
2021-03-25 14:13:43 +00:00
Milad Fa
12c47bb0f3 PPC [simd]: fix ExtAddPairwise on PPC
We will need to use both the vector multiply even
and odd instructions.

Change-Id: I1af3517dc3359d395682e3d661068b429edba8f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2785427
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73662}
2021-03-25 14:04:03 +00:00
Milad Fa
20a44ed447 Reland "PPC/s390: [sparkplug][deoptimizer] Deoptimize to baseline."
This reverts commit d8c6b2ec39.

Reason for revert: original cl has relanded

Original change's description:
> Revert "PPC/s390: [sparkplug][deoptimizer] Deoptimize to baseline."
>
> This reverts commit 94272ea54a.
>
> Reason for revert: original port was reverted
>
> Original change's description:
> > PPC/s390: [sparkplug][deoptimizer] Deoptimize to baseline.
> >
> > Port bdcd7d79d3
> >
> > Original Commit Message:
> >
> >     If we have baseline code, deoptimize to baseline instead of the
> >     interpreter. The process is similar to deopting to the interpreter.
> >     We just use different builtins
> >     (BaselineEnterAtBytecode/BaselineEnterAtNextBytecode) instead of
> >     InterpreterEnterBytecodeDispatch/InterpreterEnterBytecodeAdvance, that
> >     patch an interpreter frame to a baseline frame and continue execution in
> >     baseline code (based on the deopt type, at the current or next
> >     bytecode).
> >
> > R=​pthier@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
> > BUG=
> > LOG=N
> >
> > Change-Id: I3230f3f3c6506230b2751a3389f10b022dec61a3
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783022
> > Reviewed-by: Junliang Yan <junyan@redhat.com>
> > Commit-Queue: Milad Fa <mfarazma@redhat.com>
> > Cr-Commit-Position: refs/heads/master@{#73618}
>
> Change-Id: I903ad90099c4dc5f153d28aea9246933ac69972b
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784002
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Milad Fa <mfarazma@redhat.com>
> Cr-Commit-Position: refs/heads/master@{#73630}

Change-Id: I7746f42472ae63e49770f491ae6b8ef7b596cfce
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2785380
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73661}
2021-03-25 13:13:53 +00:00
Nico Hartmann
697b9fb050 [Torque] Implement Flatten() and EmitCCValue without std::tuple_cat
The implementation of Flatten() Torque generates for CSA struct types
and the current implementation of EmitCCValue make heavy use of
std::make_tuple and std::tuple_cat, which had a noticeable impact on
build times of generated files including these outputs.
This CL eliminates all uses of std::tuple_cat and most uses of
std::make_tuple.

Bug: v8:9861
Change-Id: Ib950b2c87983171b8c32c388fc115d2407087717
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784563
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#73660}
2021-03-25 12:33:33 +00:00
Michael Achenbach
5e39dac724 Revert "[api] Assign serial numbers when template infos are added to cache"
This reverts commit db16dce263.

Reason for revert:
https://ci.chromium.org/p/v8/builders/ci/V8%20Blink%20Linux%20Debug/8771

Original change's description:
> [api] Assign serial numbers when template infos are added to cache
>
> Instead of assigning serial numbers when the template infos are
> created, this patch creates serial numbers only when they are added to
> cache.
>
> This way only the ones that are first instantiated are allocated the
> fast template cache. Previously, various accessors and methods that
> would almost never get instantiated got assigned to the fast template
> cache.
>
> Bug: v8:11284
> Change-Id: I6b633e56e59cbfc3fa5d4ee2db53ca2849eecdd7
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2621081
> Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73655}

Bug: v8:11284
Change-Id: I382915b2c1be1d87d7a7a961d13e1dd5e3951a4f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786844
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#73659}
2021-03-25 12:15:07 +00:00
Andreas Haas
326164d465 [wasm] Enter Context::Scope to install conditional features
The installation of conditional features in WebAssembly needs
the context to be set in the isolate to fix
https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/b8851955177753045904/overview.
The context cannot be passed explicitly to all uses of the
context, because Isolate::object_function() accesses
the native_context through the isolate.

Change-Id: I20334fd6779326e64825a15ba2aca3ae06a5c0d7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784684
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73658}
2021-03-25 11:54:33 +00:00
Sam Parker
783b0e856e [wasm][compiler][arm64] Support floating point selects
Add Float32Select and Float64Select as OptionalOperators and insert
these, if supported, when handling a Select expression in the wasm
graph builder. FlagsContinuation have been modified to support the
select operation and code generation support has been added for arm64.

This improves the 'Bullet' physics benchmark by ~2-3%.

Change-Id: I928c3085c9136ad8baeeb34c71c47c1c8338844c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2763871
Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73657}
2021-03-25 11:12:23 +00:00
Patrick Thier
e438ae2df3 Reland "Reland "[sparkplug][deoptimizer] Deoptimize to baseline.""
This is a reland of e3ccb53877

No changes for the reland.
This CL was speculatively reverted, but was not the cause of the problem.

TBR=jgruber@chromium.org

Original change's description:
> Reland "[sparkplug][deoptimizer] Deoptimize to baseline."
>
> This is a reland of bdcd7d79d3
>
> Handle lazy deopts when the current bytecode is JumpLoop.
> Instead of advancing to the next bytecode, re-execute the JumpLoop.
>
> TBR=jgruber@chromium.org, neis@chromium.org
>
> Original change's description:
> > [sparkplug][deoptimizer] Deoptimize to baseline.
> >
> > If we have baseline code, deoptimize to baseline instead of the
> > interpreter. The process is similar to deopting to the interpreter.
> > We just use different builtins
> > (BaselineEnterAtBytecode/BaselineEnterAtNextBytecode) instead of
> > InterpreterEnterBytecodeDispatch/InterpreterEnterBytecodeAdvance, that
> > patch an interpreter frame to a baseline frame and continue execution in
> > baseline code (based on the deopt type, at the current or next
> > bytecode).
> >
> > Bug: v8:11420
> > Change-Id: Iabaefb36c05155a435c7b380906a86d9b9d549fa
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2695591
> > Commit-Queue: Patrick Thier <pthier@chromium.org>
> > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> > Reviewed-by: Georg Neis <neis@chromium.org>
> > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#73609}
>
> Bug: v8:11420
> Change-Id: Ib8cac028121188ddc23ff29377760ed684eb7392
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783035
> Reviewed-by: Patrick Thier <pthier@chromium.org>
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Patrick Thier <pthier@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73636}

Bug: v8:11420
Change-Id: I7fbbb73a4fdaeab8b294862ee6ae952928c57994
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784695
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73656}
2021-03-25 09:48:43 +00:00
Sathya Gunasekaran
db16dce263 [api] Assign serial numbers when template infos are added to cache
Instead of assigning serial numbers when the template infos are
created, this patch creates serial numbers only when they are added to
cache.

This way only the ones that are first instantiated are allocated the
fast template cache. Previously, various accessors and methods that
would almost never get instantiated got assigned to the fast template
cache.

Bug: v8:11284
Change-Id: I6b633e56e59cbfc3fa5d4ee2db53ca2849eecdd7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2621081
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73655}
2021-03-25 09:29:22 +00:00
Sathya Gunasekaran
433cace3a1 Revert "[sparkplug] Enable short builtin calls by default"
This reverts commit c10aa432b8.

Reason for revert: https://ci.chromium.org/ui/p/chromium/builders/try/mac-rel/b8851806981073807856/overview

Original change's description:
> [sparkplug] Enable short builtin calls by default
>
> ... when they are enabled via the GN flag.
>
> Also disable this optimizaion for CFI builds for now.
>
> Sheriffs: This CL adds ~1.2-1.4Mb of memory overhead per Isolate on
> certain configurations and that's expected. This is a temporary fix
> until the full solution is implemented.
> See the design doc linked to the issue for details.
>
> Bug: v8:11527
> Change-Id: I7444c6878ea58d67ef580cf50cb550b3820c85c4
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784690
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73650}

Bug: v8:11527
Change-Id: I96ff92e3f5c1a1a7ebe68d7f9d2981b5cf9c0094
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784697
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73654}
2021-03-25 09:27:17 +00:00
v8-ci-autoroll-builder
b3477c3dad Update V8 DEPS.
Rolling v8/build: f628144..7b935eb

Rolling v8/buildtools/third_party/libc++abi/trunk: 731dd85..f50df92

Rolling v8/third_party/aemu-linux-x64: oZxl99tyPs7o9Eq0hlPel1m4iyPu1Z92wj2Llb6HWwEC..wvBTICmOxqrOyqTGFXVMcKyHB3KmKkB4Xo6VVahwXs8C

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/dbc2c42..4f773bc

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

Change-Id: I11a315567cd12d4010a191f4b6e5fad8f9735c82
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2785805
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@{#73653}
2021-03-25 04:36:31 +00:00
Ng Zhi An
ec0094b478 [ia32][x64] Create SharedTurboAssembler
SharedTurboAssembler is shared between ia32 and x64. It contains shared
functionality between these two backends. It derives from
TurboAssemblerBase, and the backend-specific TurboAssembler derives from
SharedTurboAssembler. That way, LiftoffAssembler does not need to
change.

As an example, we move a single member function I64x2SConvertI32x4High
into SharedTurboAssembler. This function has the exact same
implementation on ia32 and x64, and is now defined in a single place.

Bug: v8:11589
Change-Id: I1c4a0628d61960e7398d458fb813561751e0614f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773609
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73652}
2021-03-24 22:44:01 +00:00
Frank Emrich
d1e751e233 [dict-proto] CSA/Torque implementation of SwissNameDictionary, pt. 3
This CL adds:

a) Allocation and Copy operations on the CSA side

b) Helpers needed for that on both the CSA and Torque side

Bug: v8:11330
Change-Id: I322c84e1762d2d3503a0d4809c6e1c0bc9d442e1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2775563
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73651}
2021-03-24 21:58:01 +00:00
Igor Sheludko
c10aa432b8 [sparkplug] Enable short builtin calls by default
... when they are enabled via the GN flag.

Also disable this optimizaion for CFI builds for now.

Sheriffs: This CL adds ~1.2-1.4Mb of memory overhead per Isolate on
certain configurations and that's expected. This is a temporary fix
until the full solution is implemented.
See the design doc linked to the issue for details.

Bug: v8:11527
Change-Id: I7444c6878ea58d67ef580cf50cb550b3820c85c4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784690
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73650}
2021-03-24 21:18:10 +00:00
Igor Sheludko
59cc8e7a33 Disable more slow test-swiss-name-dictionary*/ tests
In particular Copy and EnumerationOrder.

Tbr: emrich@google.com
Change-Id: Iff3e67b1c51fc070672e1b041dea43339518b6c3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784694
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73649}
2021-03-24 21:13:00 +00:00