Commit Graph

74401 Commits

Author SHA1 Message Date
Nico Hartmann
3864c9610a [turbofan] Print an additional Turbolizer phase for SLVerifier
To make the existing mechanism for printing JSON for turbolizer able to
print types other than the ones stored in the nodes (so the verifier can
print its own types here), this CL restructures the printing mechanism
into a single non-private class that can be inherited to override
certain parts of the printing. In this CL only GetType is made virtual
to allow verifier to override it, but additional parts can be made
overridable whenever necessary.

Bug: v8:12619
Change-Id: Idf31f8cdb49eb6c3204c6abfbb74fc981330d6d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3571818
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79909}
2022-04-11 09:46:04 +00:00
Leszek Swirski
818fa541f1 [maglev] Clean-up SetAccumulator
Bring back raw SetAccumulator, instead of the separate
SetAccumulatorToNew/ExistingNode. SetAccumulator (and StoreRegister) are
now expected to only ever be called on new Nodes, with some DCHECKs
tracking which nodes are new guaranteeing this.

Bug: v8:7700
Change-Id: I5657fa85dc05445bc3d6956ebcd5541ec1cedfad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579362
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79908}
2022-04-11 09:13:24 +00:00
Dominik Inführ
53bdb1fb0a [execution] Check whether map space exists before reporting crash key
Map space can get disabled with --no-use-map-space.

Bug: v8:12578, chromium:1314307
Change-Id: I0f25e4e10c0baa0e9785d80c189dfe86c2bc6aec
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579302
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79907}
2022-04-11 08:37:34 +00:00
Lu Yahan
e834ebcec5 [riscv64] Fix atomic timeout
port 49c95bd95b

Change-Id: I69baf80d85e172014f4037fd4d345f0f0a634684
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578101
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Commit-Queue: ji qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#79906}
2022-04-11 07:47:54 +00:00
v8-ci-autoroll-builder
5d8d18460c Update V8 DEPS.
Rolling v8/build: 53a9bbc..2c3758a

Rolling v8/buildtools/third_party/libc++abi/trunk: ed21e7f..e025ba5

Rolling v8/buildtools/third_party/libunwind/trunk: cb96c63..c39fea8

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/5af479b..4326c47

Rolling v8/third_party/depot_tools: e121d14..e222245

Rolling v8/tools/clang: bbc5794..3eacd6c

R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: I26e6feb9ae9efefabdd941d2138b5abada80a2c4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579950
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#79905}
2022-04-11 07:31:14 +00:00
Camillo Bruni
1b8d4e3adb [api] Remove FLAG_log_api
API logging has not been used in a while and we have valid alternatives:
- Runtime call stats
- Profiling
- Timer events

Together they make --log-api superfluous and we can remove it and reduce
the number of branches when calling into the V8 API.

Change-Id: Ie10f70b61ebdb82166270e7630ebcf20a27c4902
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3574549
Reviewed-by: Marja Hölttä <marja@chromium.org>
Auto-Submit: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79904}
2022-04-11 06:24:44 +00:00
Alexander Schulze
e94b84a893 [infra] Update dsymutil source from chromium/src
Instead of using cipd for dsymutil (which is updated via the autoroller),
chromium/src downloads the dependency directly from a storage bucket
(https://crrev.com/c/3564507).

This rolls the approach into v8's DEPS. Additionally, it manually rolls
the deps changes from https://crrev.com/c/3577241 to validate the fix for
chromium:1314724 in a led run referencing this commit in
https://chromium-swarm.appspot.com/task?id=5a235a3429884411.

Bug: chromium:1314724
Change-Id: I6eb0e954bd17a390cbc79d929f82793e877db7b7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579304
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Alexander Schulze <alexschulze@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79903}
2022-04-11 06:18:45 +00:00
Liu Yu
9786ac29a5 [loong64][mips32] Fix implementation of fcopysign in simulator on loong64
FPUCanonalizeOperation will output standard qNaN when the lvalue is nan
in simulator, and this implementation is inconsistent with physical
machine.

Besides, fix a wrong register request in i64_add on mips32.

Change-Id: Icddb1fc6d0e03a51d4fb4ba13ecb39f11a645af0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3580103
Auto-Submit: Yu Liu <liuyu@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#79902}
2022-04-09 10:17:03 +00:00
Liu Yu
1b88676f06 [loong64][mips][wasm] Count direct calls
Port commit 9ca0bfef37

Bug: v8:12166
Change-Id: I39708d61f823b4ef12ab5aac6b030eff89517b16
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579870
Auto-Submit: Yu Liu <liuyu@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#79901}
2022-04-09 07:20:13 +00:00
v8-ci-autoroll-builder
bb557a0a32 Update google_benchmark
Rolling v8/third_party/google_benchmark/src: 74ae567..6f75bb5

Shut down Bazel gracefully and revert wheel build strategy to job matrix (#1383) (Nicholas Junge)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/6f75bb5

R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com,mlippautz@chromium.org

Change-Id: I68f28e3c67b897641717d4d97809bf2ccaaed494
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579467
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#79900}
2022-04-09 05:58:05 +00:00
v8-ci-autoroll-builder
00d368d97f Update ICU
Rolling v8/third_party/icu: 5fb4338..1fd0dbe

Add a flag for selecting the ICU data source on Fuchsia (Filip Filmar)
https://chromium.googlesource.com/chromium/deps/icu/+/1fd0dbe

Add Welsh to CrOS ICU (mlcui)
https://chromium.googlesource.com/chromium/deps/icu/+/97d9bad

R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com,ftang@chromium.org

Change-Id: I3dbb2de75266fc2d48d80708e0338fffe5a389d7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579466
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#79899}
2022-04-09 05:57:02 +00:00
jameslahm
14718889ee [error] Improve error message for static methods
This CL changes frame message from `Function.${staticMethodName}`
to `${className}.${staticMethodName}` for stack trace in class
static methods.

Bug: v8:12778
Change-Id: Ie2b9471066a6ba38265412f4af471789bd375c98
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3575759
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: 王澳 <wangao.james@bytedance.com>
Cr-Commit-Position: refs/heads/main@{#79898}
2022-04-09 01:56:02 +00:00
Camillo Bruni
6078cb5283 [tools][system-analyzer] Various improvements
- Parse the condensed source position info support for jitted code
- Add progress bar/circle to loader
- Use temporary Array instead of concatenated strings in escapeField to
  reduce gc pressure
- Use bound functions as event handlers in more places
- Various timeline legend fixes:
  - Fix columns alignment when duration is present
  - Use fixed width to avoid breaking the UI
  - Correctly show total/percents for 'All' and 'Selection' entries
  - Improve usability of filtering buttons: added tooltips and fixed
    redrawing on filtering

Bug: v8:10644
Change-Id: I1275b31b7b13a05d9d6283d3067c1032d2d4819c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3574544
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79897}
2022-04-08 19:46:22 +00:00
Clemens Backes
8072d31ab6 [liftoff] Fix illegal state updates in conditional tierup check
The tier up check in br_if is only executed conditionally, so it is
not allowed to update any cache state. Later code would work with that
updated state, even though the corresponding code would not have
executed.
There was a partial implementation for this by passing in a scratch
register for {TierupCheck}, but {TierupCheckOnExit} has the same
problem, and needs up to three scratch registers.

Until we come up with a better solution, just snapshot the cache state
before doing the tier up check, and restore it later. This has some
performance cost, but it's an effective fix.

R=jkummerow@chromium.org

Bug: chromium:1314184
Change-Id: I1272010cc247b755e2f4d40615284a03ff8dadb6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579363
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79896}
2022-04-08 16:13:02 +00:00
André Kempe
ed8e8b949a Reland "Enable PAC and BTI for runtime generated code."
This is a reland of commit c482a66bd7

Original change's description:
> Enable PAC and BTI for runtime generated code.
>
> This patch enables PAC and BTI for runtime generated code when PAC
> is enabled. Additional BTI landing pads will resolve to NOOP when
> running on non BTI device and will not cause functional problems.
>
> Change-Id: I3993481df2c3c47e3e81bfb76a8c355f642cd572
> Bug: chromium:919548, v8:10026
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3548457
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Andre Kempe <andre.kempe@arm.com>
> Cr-Commit-Position: refs/heads/main@{#79630}

Bug: chromium:919548, chromium:1310642, v8:10026
Change-Id: I5f76705a222b5f4fbc07cf472c02e9b58b5171fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579164
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Andre Kempe <andre.kempe@arm.com>
Cr-Commit-Position: refs/heads/main@{#79895}
2022-04-08 15:34:22 +00:00
Jakob Kummerow
9154e8a823 [wasm] When inlining with specialized signature fails, retry
Opportunistically specializing the inlined function's signature
based on statically available type information in the caller is
currently important for performance, but can make inlining fail
if parts of the inlinee relied on the more generic types.
This patch addresses that problem by retrying with the original
signature in such cases.
Long-term, check elimination should be based on typed IR nodes
instead.

Bug: v8:12166
Change-Id: I4b68d0b056daec25844f6386da11b933cc343d8e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579144
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79894}
2022-04-08 15:03:25 +00:00
Michael Lippautz
00967a615a cppgc: Reoder decls in MarkerBase
Change-Id: Ifb69e0d12359b7781665729d3abf91db4c1505bb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579361
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79893}
2022-04-08 14:59:45 +00:00
Manos Koukoutos
d2b954320f [wasm] Inlining should not enable experimental feature
Bug: chromium:1314496
Change-Id: I2f1579715910900dff9e157a6a6a9af2fbcbbb42
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578853
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79892}
2022-04-08 14:49:15 +00:00
Anton Bikineev
8b1fb3abda cppgc: young-gen: Enable concurrent sweeping for minor GCs
Similar to full GCs, the GC defers metric reporting until sweeping is
finished.

Bug: chromium:1029379
Change-Id: Ib06adb3be691c1ad2bd530eb77fc01cc22537338
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576130
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Nikolaos Papaspyrou <nikolaos@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79891}
2022-04-08 14:40:15 +00:00
Leszek Swirski
fef7720fd3 Revert "[osr] Enable concurrent OSR"
This reverts commit 6879c515d0.

Reason for revert: Speculative revert for roll failures
https://ci.chromium.org/ui/p/chromium/builders/try/win_optional_gpu_tests_rel/80674/overview

Original change's description:
> [osr] Enable concurrent OSR
>
> Fixed: v8:12161
> Change-Id: Ie6e83dd4f261fff2d1fa8613116e83ef6b61561f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576116
> Auto-Submit: Jakob Linke <jgruber@chromium.org>
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79857}

Change-Id: I05bd9594e8ce3db71acb31cf4c626c066158ceaa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579163
Owners-Override: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@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/main@{#79890}
2022-04-08 14:33:06 +00:00
Leszek Swirski
8a491cf7e6 Revert "Update V8 DEPS."
This reverts commit 2b6a3f3c24.

Reason for revert: Closed the tree (https://cr-buildbucket.appspot.com/build/8817446249181470449)

Original change's description:
> Update V8 DEPS.
>
> Rolling v8/build: 38ea770..53a9bbc
>
> Rolling v8/buildtools/linux64: git_revision:ab9104586734cb45aa77c70ca5042edbcc9f6aa5..git_revision:ae110f8b525009255ba1f9ae96982176d3bfad3d
>
> Rolling v8/buildtools/third_party/libc++abi/trunk: ac492da..ed21e7f
>
> Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/5ff11ff..5af479b
>
> Rolling v8/third_party/depot_tools: ba94bbe..e121d14
>
> Rolling v8/tools/clang: 3436376..bbc5794
>
> Rolling v8/tools/clang/dsymutil: M56jPzDv1620Rnm__jTMYS62Zi8rxHVq7yw0qeBFEgkC..pEbTLlGCfrxK3iYSRElN2XcFrzEUg0_Wo3mQsE6AbtIC
>
> R=​v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com
>
> Change-Id: Iefe6463005318beb32d0f3752771420a8a228df0
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3577241
> Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
> Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
> Cr-Commit-Position: refs/heads/main@{#79888}

Change-Id: I89aac6dc90a01b2c41edb6c4fe5450cebed1d420
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579146
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79889}
2022-04-08 13:48:35 +00:00
v8-ci-autoroll-builder
2b6a3f3c24 Update V8 DEPS.
Rolling v8/build: 38ea770..53a9bbc

Rolling v8/buildtools/linux64: git_revision:ab9104586734cb45aa77c70ca5042edbcc9f6aa5..git_revision:ae110f8b525009255ba1f9ae96982176d3bfad3d

Rolling v8/buildtools/third_party/libc++abi/trunk: ac492da..ed21e7f

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/5ff11ff..5af479b

Rolling v8/third_party/depot_tools: ba94bbe..e121d14

Rolling v8/tools/clang: 3436376..bbc5794

Rolling v8/tools/clang/dsymutil: M56jPzDv1620Rnm__jTMYS62Zi8rxHVq7yw0qeBFEgkC..pEbTLlGCfrxK3iYSRElN2XcFrzEUg0_Wo3mQsE6AbtIC

R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: Iefe6463005318beb32d0f3752771420a8a228df0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3577241
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#79888}
2022-04-08 13:33:39 +00:00
Leszek Swirski
5b58098ead [maglev] Allow LoadField to load out-of-object properties
Bug: v8:7700
Change-Id: I32e1160dd71193857e6760dd0a3b826e3ec0f044
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579141
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79887}
2022-04-08 13:32:36 +00:00
Leszek Swirski
91c5b18658 [maglev] Log Maglev compilations
This allows us to inject maglev compilations into perf profiles.

Bug: v8:7700
Change-Id: Ic1f2671835ca231cd954124db325a5ab8480bee0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579101
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79886}
2022-04-08 13:11:18 +00:00
Michael Lippautz
cce601bae6 [heap] Split off changes for concurrently processing TracedReference
Trivial changes from https://crrev.com/c/3571887.

Bug: v8:12600
Change-Id: I0a6f36d32f72a6c3817a4390645ccf5a690c5580
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579161
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79885}
2022-04-08 13:08:05 +00:00
Thibaud Michaud
04b8124b34 [wasm] Clean up type size computation
Rename element_size_bytes() to value_kind_size(), and add
the uncompressed version: value_kind_full_size().

R=clemensb@chromium.org

Change-Id: I956142937fd1134ecbdaaa617c402ed8fff2cf17
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568477
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79884}
2022-04-08 12:46:45 +00:00
Michael Lippautz
ec09a8236c heap: Convert embedder tracing tests to unittests
test-embedder-tracing.cc -> embedder-tracing-unittest.cc

In addition
- Add heap helpers
- CHECK -> EXPECT macros

Bug: v8:12781
Change-Id: Ibd17a4e6d527c963170af54c57f6abc51cb08808
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576127
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79883}
2022-04-08 12:43:55 +00:00
Manos Koukoutos
5fbea96a92 [wasm-gc] Reserve space before decoding types
We need this because read_heap_type uses the type vector capacity as
out-of-bounds limit.

Bug: chromium:1314496, v8:7748
Change-Id: Id76c8a143c32b20b24356f361d554cb212576c09
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578654
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79882}
2022-04-08 12:38:37 +00:00
Leszek Swirski
b46a3acc9a [maglev] Add basic implementations of more bytecodes
Simple implementations of:

    * Load[Immutable]CurrentContextSlot
    * Arithmetic with Smi immediate (AddSmi etc.)
    * TestEqual[Strict]

Bug: v8:7700
Change-Id: I895b60631b6a99296709bdf24709b7325a0e76e4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578854
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79881}
2022-04-08 12:35:58 +00:00
Leszek Swirski
c2cfcfcfa2 [maglev] Add a reason for unsupported codegen
Bug: v8:7700
Change-Id: I4d8f6496e796de30894c5b8229610a49ddee8bb5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579142
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/main@{#79880}
2022-04-08 12:34:55 +00:00
Leszek Swirski
363bc5c5b0 [maglev] Mark SFIs when failing maglev compilation
Prevent thrashing tier up attempts when maglev fails to compile.

Bug: v8:7700
Change-Id: I31f6bd331d1c5aefa0384fcdcb055203b9055f8c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579143
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79879}
2022-04-08 12:14:55 +00:00
Lu Yahan
73d76e015c [riscv64][wasm] Count direct calls
Port 9ca0bfef37

Original Commit Message:

    This adds feedback collection to count the number of executions of
    call_direct instructions in Liftoff code. The purpose is better
    inlining decisions in Turbofan, which are enabled by having call
    count information for all kinds of calls.
    The new feature is gated on --wasm-speculative-inlining. While
    direct calls don't need to speculate about their target, the whole
    feedback collection infrastructure depends on that flag.

Change-Id: I91e34d765e5a08c382d678acdb0fca57d5d3fb7e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578235
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Commit-Queue: ji qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#79878}
2022-04-08 12:07:48 +00:00
Clemens Backes
f096405a0e [base] Remove ITERATE_PACK
Replace by a unary right fold using the comma operator. This also
evaluates from left to right, so has the same semantics but uses
standard C++17 syntax.

R=tebbi@chromium.org

Bug: v8:12425
Change-Id: I680800ba07b048ee85d9da4ae32c12825df14e54
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576131
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79877}
2022-04-08 12:06:45 +00:00
Leszek Swirski
1deba1a29b [maglev] Allow LoadNamedGeneric to collect feedback
Use the LoadIC builtin instead of LoadICNoFeedback.

Bug: v8:7700
Change-Id: Ia7833d7f0a7165dbbf1bbdbae55f44ce213c65ab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579104
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79876}
2022-04-08 11:59:15 +00:00
Leszek Swirski
7b3ef3bcba [maglev] Drop non-empty block DCHECK
It might be wrong for bytecode blocks that only juggle registers.

Bug: v8:7700
Change-Id: Idf495112d278e1899a1bbd1f92128fcc2edf6074
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579103
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79875}
2022-04-08 11:51:55 +00:00
Dominik Inführ
55f6a97366 [heap] Cleanup OLD_TO_SHARED slots in sweeper
Sweeper needs to clean up slots in the OLD_TO_SHARED remembered set
as well in the future. Unlike OLD_TO_NEW or OLD_TO_OLD this remembered
set will not be reset after a full GC. So we will have to remove from it
both during and after a full GC when sweeping.

However in the current implementation we still reset this remembered set
in a shared GC. This only works because we scan all client heaps
during a shared GC anyways to rebuild the remembered set. We will get
rid of that when all required write barriers are implemented.

Bug: v8:11708
Change-Id: Ib891a882fdf70671a483c8662408cf64e72134c6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3574546
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79874}
2022-04-08 11:50:15 +00:00
Leszek Swirski
e0b8ce19f3 [maglev] Allow the optimizer with --maglev --no-opt
This will need re-work but it allows us to test for now.

Bug: v8:7700
Change-Id: I4eabb7f9f8e8a4c0d23c6bab22c7f0127c7820dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579102
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79873}
2022-04-08 11:48:26 +00:00
Benedikt Meurer
088de5d391 [inspector] Speed up inspection of large BigInts.
For large BigInts, computing the decimal representation can take a
very long time, so send them as hexadecimal strings instead. Also
make sure to abbreviate the RemoteObject description for bigints
appropriately always.

Also-By: jarin@chromium.org
Fixed: chromium:1068663
Change-Id: I2f7e4e1cbd2f66ce45be307fb787e101d9a8e2a7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578653
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79872}
2022-04-08 09:30:55 +00:00
Camillo Bruni
989c664158 [d8] Migrate AsyncHooksWrap to i::Managed
Bug: chromium:1297451
Change-Id: I3c33eea5ef457f1c82c6a7681fb64c9a10572dee
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576128
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79871}
2022-04-08 09:01:58 +00:00
Manos Koukoutos
b09d550605 [wasm-gc] Enable runtime subtyping checks for functions
Bug: v8:7748
Change-Id: Ic65c09726994fddf73979b5f25b98f7ce4c5d6ef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3574556
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79870}
2022-04-08 08:19:16 +00:00
Marja Hölttä
022657040b [rab/gsab] Clean up the remaining uses of HasTypedArrayElements
Bug: v8:11111
Change-Id: I94f992f78a12a86c89924261bd64c73f935051b5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576118
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79869}
2022-04-08 07:59:16 +00:00
Marja Hölttä
e921842f3b [rab/gsab] Add more checks to elements.cc
Bug: v8:11111
Change-Id: I0c2c8c28f96723b3d586f1469ed4fdd0468c5c3e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576120
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79868}
2022-04-08 07:36:55 +00:00
v8-ci-autoroll-builder
e8bd32ccf9 Update google_benchmark
Rolling v8/third_party/google_benchmark/src: 60b16f1..74ae567

Small optimization to counter map management (#1382) (Dominic Hamon)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/74ae567

getting sysinfo in line with Google style (#1381) (Dominic Hamon)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/3eac3b6

R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com,mlippautz@chromium.org

Change-Id: Ib4510c2c1d98faf9d8f7a4684b93768d1ecc34e1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3577235
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#79867}
2022-04-08 05:45:55 +00:00
Milad Fa
35c763dc1e PPC[liftoff]: Don't cast Double to FP after copysign
Executing a frsp after copysign changes any SNaN inputs
to QNaN which causes test failures.

Change-Id: Ieab5d24fd09344e0a3108565f478fda3b5889556
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576793
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79866}
2022-04-08 02:58:32 +00:00
Manos Koukoutos
d165584174 [wasm] Do not fall back to Turbofan if --liftoff-only
If --liftoff-only is on, we should not execute Turbofan compilation, no
matter what the result of Liftoff compilation was. Right now, decoding
errors are considered bailouts, which make us fall back to Turbofan and
trigger a DCHECK.

Change-Id: Ic12591da256d92fb79578603d4778a3d2aa460ac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3574555
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79865}
2022-04-07 22:36:44 +00:00
Milad Fa
4dc894b982 S390[simd]: avoid using r0 as scratch during vector load/store
Passing `ip/r1` as scratch to LoadV128 anf StoreV128.

Change-Id: Ie86d3bd241065de985f98025e7bb60aba4cd42d3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576132
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79864}
2022-04-07 22:12:04 +00:00
Dominik Inführ
72a11f202c [heap] Drop old-to-old slots at once after iteration
Removing slots in the Iterate() method performs an atomic CAS operation
on a cell. This is not necessary, we can simply keep slots and drop
the whole SlotSet with all buckets after iteration.

Bug: v8:12760
Change-Id: I6aeb656d21e5fea6f7e15238d4105013c84ffb2a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3574558
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79863}
2022-04-07 16:38:18 +00:00
Milad Fa
aacd41629b PPC/s390: [wasm] Count direct calls
Port 9ca0bfef37

Original Commit Message:

    This adds feedback collection to count the number of executions of
    call_direct instructions in Liftoff code. The purpose is better
    inlining decisions in Turbofan, which are enabled by having call
    count information for all kinds of calls.
    The new feature is gated on --wasm-speculative-inlining. While
    direct calls don't need to speculate about their target, the whole
    feedback collection infrastructure depends on that flag.

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

Change-Id: Id94a8a00e00877213b017d1ccf06ae0ea988539b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576126
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79862}
2022-04-07 16:10:14 +00:00
Jakob Kummerow
2fbb686ec5 [wasm] Tune inlining heuristics
The key idea is that we can now use call count feedback into
account consistently for all kinds of calls that support inlining.

Bug: v8:12166
Change-Id: I764b8686b6c825a9b24f0032e81f7d1217ef1371
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3574554
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79861}
2022-04-07 16:04:44 +00:00
Bryant Chandler
e6e4da2ff3 Revert "[fuchsia] Use SDK provided gn templates for d8"
This reverts commit 3111db91f8.

Reason for revert: This has runtime failures because including
cmx fragments isn't working ocrrectly. Still investigating why
this wasn't discovered by CQ.

Original change's description:
> [fuchsia] Use SDK provided gn templates for d8
>
> cr_fuchsia_package is deprecated in favor of using the Fuchsia
> SDK provided rules directly.
>
> This CL adds a cmx file specifically for v8_unittests. CMX
> files define fuchsia components, see
> https://chromium-review.googlesource.com/c/chromium/src/+/3529652
> for more info.
>
> Bug: chromium:1092804
> Change-Id: Ibf1d866ec6b94a0e1a7a7c7c443a6ee80e3b1042
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3537885
> Reviewed-by: Victor Gomes <victorgomes@chromium.org>
> Reviewed-by: Wez <wez@chromium.org>
> Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> Commit-Queue: Bryant Chandler <bryantchandler@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79760}

Bug: chromium:1092804
Change-Id: Ib9a4d4f8e04c6cd7f3bd289e7c956b6115a77a25
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3572004
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Wez <wez@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Bryant Chandler <bryantchandler@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79860}
2022-04-07 15:57:54 +00:00