Commit Graph

74001 Commits

Author SHA1 Message Date
Samuel Groß
5a968b08b3 Refactor ExternalObjects
Instead of implementing ExternalObjects as plain JSObjects with a single
EmbedderDataSlot pointing to a Foreign containing the actual raw
pointer, this CL now creates a new JSExternalObject type that directly
contains the external pointer.

As a side-effect of this refactoring, nullptr values are now no longer
valid for ExternalObjects.

Change-Id: Ic8ff334681c966e823ca70f34dd1efaaa21a0789
Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513234
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79459}
2022-03-14 10:50:58 +00:00
Marja Hölttä
bed5bc495f [web snapshots] Fix empty map handling
Bug: v8:11525
Change-Id: I582f17d6ecfa47394bc29692f788c5119aac5ce9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516745
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79458}
2022-03-14 10:04:28 +00:00
v8-ci-autoroll-builder
5c7b790407 Update V8 DEPS.
Rolling v8/build: 43a4f0e..5d2dc59

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/271796d..b326cac

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

Change-Id: I1c8b08d850885bbadbd471a770211f1e98f8ba21
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3517971
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@{#79457}
2022-03-14 03:53:08 +00:00
JianxiaoLuIntel
ade314aeed [ic] Ensure state of bitwise binary operation always progresses
This CL fixes a deopt loop that might happen in case of mixing
Number with BigInt in bitwise binary operations.

Bug: v8:12693
Change-Id: Ib6a08d0c74a954ade3719bd6bd49ca2988d88e69
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3505542
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Jianxiao Lu <jianxiao.lu@intel.com>
Cr-Commit-Position: refs/heads/main@{#79456}
2022-03-14 02:27:13 +00:00
v8-ci-autoroll-builder
1f5e222a79 Update google_benchmark
Rolling v8/third_party/google_benchmark/src: 705202d..4f77cf9

Fix float comparaison and add float comparison warning (#1368) (Bensuperpc)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/4f77cf9

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

Change-Id: Ibe4d4953920ea1415fadaca1a636750f9590c881
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3520366
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@{#79455}
2022-03-13 05:46:57 +00:00
v8-ci-autoroll-builder
250e4d28b2 Update V8 DEPS.
Rolling v8/build: 6bce1d6..43a4f0e

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

Change-Id: I03b8c3002da073209e092ba1204646ad7f856aeb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3520362
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@{#79454}
2022-03-13 03:48:27 +00:00
v8-ci-autoroll-builder
fb39eec368 Update V8 DEPS.
Rolling v8/build: 797674d..6bce1d6

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

Change-Id: I9f375f81935d563070e636468cf483b9fff66f46
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3517461
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@{#79453}
2022-03-12 03:53:56 +00:00
Liu Yu
49c95bd95b [liftoff][loong64][mips64] Implement Atomic ops and ConvertSat ops
Change-Id: I4378e4f99c6b034f7b29782218896d5485178109
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3514656
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@{#79452}
2022-03-11 10:51:46 +00:00
Lu Yahan
a2ea2cd0b1 [riscv64] Keep the type consistent in in_range
Change-Id: I23b76ec7bdf0f1997815f4928d903a9807413129
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516829
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#79451}
2022-03-11 09:21:55 +00:00
v8-ci-autoroll-builder
7284aab7a2 Update google_benchmark
Rolling v8/third_party/google_benchmark/src: a25f3cd..705202d

Add PyPI upload job to wheel building workflow (#1359) (Nicholas Junge)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/705202d

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

Change-Id: Ib5833d20ced99bd3b949e2df848a300511087df1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3517453
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@{#79450}
2022-03-11 06:49:46 +00:00
Lu Yahan
818d73ca18 [riscv64][register-alloc] Implement vector register independently allocating
vector register has different register file from float register in Risc64 rvv extension.
So this cl add third FPalising kind INDEPENDENT to allocate independently simd register.

Bug: v8:11976

doc: https://docs.google.com/document/d/1UwmUwOI3eeIMYzZFRmeXmfyNXRFHNZAQ4BcN0ODdMmo/edit?usp=sharing

Change-Id: I0fb8901294b4bc44b0bee55e630b60460e42bef2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3383513
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#79449}
2022-03-11 05:07:45 +00:00
v8-ci-autoroll-builder
30974f9257 Update V8 DEPS.
Rolling v8/build: ea42de6..797674d

Rolling v8/buildtools/linux64: git_revision:46f94b5a7f5527b5d7ef57271d3e9447a65e22ac..git_revision:f27bae882b2178ccc3c24f314c88db9a34118992

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/5b79b29..271796d

Rolling v8/third_party/depot_tools: 37db69d..c848a4e

Rolling v8/tools/clang: 548c235..85f3c90

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

Change-Id: I296568003a80edfc45f05bd7af9ccf1715df1103
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3517449
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@{#79448}
2022-03-11 04:13:05 +00:00
jameslahm
65ffd616b0 [interpreter] create array literal boilerplates for spread calls
when BuildCreateArrayLiteral

In spread calls, create array literal boilerplates for
BuildCreateArrayLiteral rather than emit array literals
without any boilerplates

Bug: v8:11582
Change-Id: Ia0538bd043eab040c3059440e982c7f0037d1a3f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3507126
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79447}
2022-03-10 16:29:05 +00:00
Dominik Inführ
09090299e2 [heap] Fix GCC build because of undefined CHAR_BIT
Explicitly #include climits header for CHAR_BIT.

Bug: v8:12691
Change-Id: I9d7a28543883a5387e006c4b6ee4491243a06207
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516925
Auto-Submit: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79446}
2022-03-10 14:48:45 +00:00
Jakob Gruber
6f082e305b [heap] Update CodePageCollectionMemoryModificationScope docs
The scope can be (and is) used by compiler threads, i.e. not just by the
main thread; update the comment.

Change-Id: Ifbeb414761cee4ab12dd953f0cd544f35c92fc8a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516037
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79445}
2022-03-10 14:14:05 +00:00
Dominik Inführ
ba4326fe19 [heap] Store total committed physical memory in SemiSpace
Store the total committed physical memory in
SemiSpace::committed_physical_memory_ and keep it up-to-date when
adding/removing pages from it, similar to the PagedSpace.
So far we were iterating all pages in the SemiSpace to calculate this
value.

Bug: v8:12691
Change-Id: Iaf3c5eadd60db561a6ddb06014f82703b0df6873
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513836
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79444}
2022-03-10 14:00:05 +00:00
Darius M
dca3b16e90 Reland [compiler] Improve code generated for patterns like "x >> 1 == 0"
This is a reland of 2dc4037049

Original change's description:
> [compiler] Improve code generated for patterns like "x >> 1 == 0"
>
> Change-Id: I79575ba61a3bdea93468f48d66a3cb3edd0e1442
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3506504
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79419}

Change-Id: Iad111f8d4bb40a295903dd67f66c8ecd9c4eadd9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3514072
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79443}
2022-03-10 12:55:25 +00:00
Michael Lippautz
cf25b3bc53 cppgc: Rework prefinalizers
Move the check for whether an object is live or dead out of the
prefinalizer trampoline. Moving it into the backend allows for
inlining the check which avoids a call to the trampoline for live
objects.

On catapult benchmarks (e.g. cnn:2021, nytimes:2020), there's often
~2k finalizers registered. In order to avoid memory overhead in the
range of a few KB, we store the fact whether the object points to the
base object payload in the LSB of the pointer. For caged builds this
is replaced with just storing the index into the cage for both object
and base object payload.

Locally saves around ~10% of atomic sweeping processing time which is
in the order of .05ms.

Bug: v8:12698
Change-Id: I198205a6b1d57fc2df821ee4e73e53dc6f825ff5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497764
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79442}
2022-03-10 12:53:32 +00:00
Marja Hölttä
4f3dd3db80 [web snapshots] Support elements in objects
Bug: v8:11525
Change-Id: I0580787252ab235222e9b9fb2d677015794207eb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3506485
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79441}
2022-03-10 12:52:28 +00:00
Anton Bikineev
14331ec537 cppgc: young-gen: Schedule Minor GCs
The CL runs Oilpan minor GCs after each Scavenger cycle.

Bug: chromium:1029379
Change-Id: Ic67cf4dc9158759207f0209640f1720bf188cc1d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3472500
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79440}
2022-03-10 12:28:05 +00:00
Jakob Gruber
b2425ff8ad [compiler] Replace unneeded GetIsolate calls
When the Isolate is already available, there is no need to fetch it
through GetIsolate.

Change-Id: I3ddc3d46924b401f154360564b203406a9b9e8e5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3510389
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79439}
2022-03-10 11:33:55 +00:00
Camillo Bruni
d876064c79 [runtime] Add Arguments::positive_smi_value_at(int index) helper
Drive-by-fix:
- Use explicit casts to HeapNumber in NumberToXXX methods

Bug: v8:11263
Change-Id: If99af3ccee33a299d9f42cd39b87b6935a555f83
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512618
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79438}
2022-03-10 10:50:55 +00:00
Igor Sheludko
5912d63ad9 [platform] Speculatively fix fast TLS implementation
... for 32-bit Windows.

When the TLS value is not set the TlsExpansionSlots field of the TEB
struct might be NULL in which case the InternalGetExistingThreadLocal
should return NULL too.

Bug: v8:12653
Change-Id: Ic6c6d8e51e2447551c372720fad0967e9201f3dc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513835
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79437}
2022-03-10 09:52:15 +00:00
Dmitrii Tsykunov
e897511155 Explicit calling convention for d-linked function
When compiled with `target_cpu = "x86"` several
VirtualAddressSpaceTest's crashed with segmentation fault when calling
VirtualAlloc2. Explicitly specifying calling convention fixed the issue.

Change-Id: Ie505006be0d44525c935c89b84caa2c373cea566
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3501836
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Dmitrii Tsykunov <dtsykunov1@yandex-team.ru>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79436}
2022-03-10 09:10:15 +00:00
Jakob Gruber
87f806717c Revert "[compiler] Don't remove OSR code cache if deoptimizing at out of loop"
This reverts commit 190b5d959b.

Reason for revert: We should understand & fix regressions, see crbug.com/1304870#c9.

Original change's description:
> [compiler] Don't remove OSR code cache if deoptimizing at out of loop
>
> The main purpose of OSR compilation is fasten inner loop execution, the
> OSR code cache is still correct for loop if optimizing at out of loop,
> keep OSR code cache can reduce unnecessary slow bytecode execution with
> feedback collection and avoid re-OSR compilation.
> This CL can improve JetStream2 case navier-stokes by ~6%.
>
> Change-Id: I9518317fb922071b131cab5b56998a0fc198804a
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3494981
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Tao Pan <tao.pan@intel.com>
> Cr-Commit-Position: refs/heads/main@{#79413}

Bug: chromium:1304870
Change-Id: I8791edc34b66ef9dd0b477d3e340e85b0617ef59
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3515732
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79435}
2022-03-10 09:06:45 +00:00
Leszek Swirski
0504331b78 [maglev] Use free list for iterating used registers
Don't rely on register_values[index] == nullptr for checking if a
register is free, but instead re-use the free register list, and iterate
the allocatable_register & ~free_register list when iterating used
registers.

This also changes the indexing of register_values to be by register
code, not allocatable register index. The register state stored on the
InterpreterFrameState, however, stays compact (allocatable register
count). A new wrapper class + iterator keeps iteration over it and the
register_values array in sync.

Bug: v8:7700
Change-Id: I7815aa2d4a1f7b7ebafaaafe0727219adcc4dcfe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512792
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@{#79434}
2022-03-10 08:48:45 +00:00
v8-ci-autoroll-builder
0f5f6024ff Update google_benchmark
Rolling v8/third_party/google_benchmark/src: 7cb2914..a25f3cd

Appended additional BSD 3-Clause to LICENSE (#1363) (Vy Nguyen)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/a25f3cd

Add SetBenchmarkFilter() to set --benchmark_filter flag value in user code (#1362) (Vy Nguyen)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/eacce0b

Add long description and content type for proper PyPI presentation (#1361) (Nicholas Junge)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/df7749c

Allow setting the default time unit globally (#1337) (Bátor Tallér)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/d08e7b6

restore BENCHMARK_MAIN() (#1357) (Sergiu Deitsch)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/e33986a

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

Change-Id: I6e4614ebf74b16768ee6e6534e7693022e9bac9f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3514720
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@{#79433}
2022-03-10 05:52:54 +00:00
v8-ci-autoroll-builder
408803bdc5 Update V8 DEPS.
Rolling v8/build: 69dab41..ea42de6

Rolling v8/buildtools/linux64: git_revision:d7c2209cebcfe37f46dba7be4e1a7000ffc342fb..git_revision:46f94b5a7f5527b5d7ef57271d3e9447a65e22ac

Rolling v8/buildtools/third_party/libc++abi/trunk: 738dc10..289d52c

Rolling v8/third_party/depot_tools: 8edc960..37db69d

Rolling v8/third_party/zlib: aa6909a..85bdd64

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

Change-Id: I1381459f8667d61f8e5b049c8822560606ccd852
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3514717
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@{#79432}
2022-03-10 03:52:35 +00:00
Shu-yu Guo
16457b0ca0 [shared-struct] Support shared structs in Atomics.{load,store}
Atomics.load and Atomics.store now accept string field names as the
2nd argument when the 1st argument is a shared struct.

Currently these are implemented in C++ and not yet in CSA.

Bug: v8:12547
Change-Id: Ideeafc13fb6a925540edf3dc17428c8e50bcee79
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3510837
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79431}
2022-03-10 02:23:44 +00:00
v8-ci-autoroll-builder
8231c651d5 [tools] Update gcmole
R=clemensb@chromium.org

Change-Id: I1d3513a75c32a505cb5cdb1a123f2d586f55ee02
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513416
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79430}
2022-03-09 20:16:54 +00:00
Michael Lippautz
4224c85f70 Manually update google_benchmark
- Roll forward to Update google_benchmark
- Add export header that is usually generated by the build system of
  google benchmark. We can ignore the export macro as we always just use
  the library in a source set.

Bug: v8:12666
Change-Id: Ifec570745c0258aa541b7aea41ba557a7e0fe563
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512575
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79429}
2022-03-09 19:49:16 +00:00
Dominik Inführ
25981026dc [heap] Improve accounting of PagedSpace::CommittedPhysicalMemory()
Instead of using the high water mark for determining this metric, we use
a bitset for all active/used system pages on a V8 heap page. Each time
when allocating a LAB on a page, we add the pages of that memory range
to that bitset. During sweeping we rebuild that bitset from scratch and
replace it with the old one in case free pages are discarded by the GC.
We DCHECK here that the sweeper only ever removes pages. This has the
nice benefit of ensuring that we don't miss any allocations (like we
do now for concurrent allocations).

CommittedPhysicalMemory for a page is then calculated by counting the
set bits in the bitset and multiplying it with the system page size.
This should be simpler to verify and track the "real" effective size
more precisely.

One case where we are partially less precise than the current
implementation is for LABs. In order to reduce complexity we now treat
all pages of a LAB allocation as active immediately. In the current
implementation we tried to only account the actual used part of the LAB
when changing the LAB later. This is more complex to track correctly
but also doesn't account the currently used LAB in effective size.

Change-Id: Ia83df9ad5fbb852f0717c4c396b5074604bd21e9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497363
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79428}
2022-03-09 18:28:21 +00:00
Junliang Yan
35703d9cad ppc64: [baseline] create condition mappings
Change-Id: I0bf578e877eaee280b7825ff3c1407815d57e7f9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513615
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79427}
2022-03-09 17:12:54 +00:00
legendecas
bbd800c6e3 [heap] Fix incorrect from space committed size
NewSpace page operations like RemovePage, PrependPage, and
EnsureCurrentCapacity should account for committed page size.

This may happen when a page was promoted from the new space to
old space on mark-compact.

Also, add DCHECKs on Commit and Uncommit to ensure the final
committed page size is the same as the current state.

Bug: v8:12657
Change-Id: I7aebc1fd3f51f177ae2ef6420f757f0c573e126b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3504766
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Chengzhong Wu <legendecas@gmail.com>
Cr-Commit-Position: refs/heads/main@{#79426}
2022-03-09 16:58:27 +00:00
legendecas
b953542909 [extensions] Fix dcheck failures in getV8Statistics
HeapObjectIterator creates a SafepointScope which requires the heap to
allow garbage collection. This collides with the outer
DisallowGarbageCollection scope. HeapObjectIterator already ensures
there is no allocation during its lifetime, so there is no need to
create an outer DisallowGarbageCollection scope.

Code::source_position_table requires their kind not equals to
CodeKind::BASELINE.

This also exposes the statistics extension through flag
--expose-statistics.

Bug: v8:12657
Change-Id: I1bf11cf499285a742dd99ec8c228ebc36152b597
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3496552
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Chengzhong Wu <legendecas@gmail.com>
Cr-Commit-Position: refs/heads/main@{#79425}
2022-03-09 15:47:36 +00:00
Clemens Backes
9b810b9fb1 Reland "[asm] Reject import calls with too many parameters"
This is a reland of commit a664aef0ca.
The test is made ~25x faster by using integer parameters instead of
floating point.

Original change's description:
> [asm] Reject import calls with too many parameters
>
> The asm parser was missing a check for too many parameters for calls to
> imported functions. For regular functions this check implicitly existed
> because the limit was checked at the function declaration, and the call
> site needs to match the declared parameter count.
>
> R=mslekova@chromium.org
>
> Bug: chromium:1302596
> Change-Id: I0d35e70a66d682ee8fdecf5c8ea4d2b1419ce684
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509393
> Reviewed-by: Maya Lekova <mslekova@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79415}

Bug: chromium:1302596
Change-Id: I138561742b38939a1c2c9a69a6fa508d4f3a028d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513613
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79424}
2022-03-09 15:46:32 +00:00
Victor Gomes
60ac45f0fb [maglev] Add UNSUPPORTED macro for codegen
Allows incremental test, while some codegen paths are not available.

Bug: v8:7700
Change-Id: Icc24cf8e85464587f9eee6175107093a25b76da9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512794
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79423}
2022-03-09 15:41:56 +00:00
Leszek Swirski
4927d9b54f Revert "[compiler] Improve code generated for patterns like "x >> 1 == 0""
This reverts commit 2dc4037049.

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

Original change's description:
> [compiler] Improve code generated for patterns like "x >> 1 == 0"
>
> Change-Id: I79575ba61a3bdea93468f48d66a3cb3edd0e1442
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3506504
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79419}

Change-Id: I489440d7cbd46763d496c6d22190240c5676e486
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513893
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Owners-Override: 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@{#79422}
2022-03-09 14:50:14 +00:00
Leszek Swirski
79dfd0eb4f [codegen] Ensure that all register types fit in an int
Registers were supposed to fit in an int, but some register subclasses
added extra fields which made them too big. This fiddles around with
field sizes so that all the Register subclasses still fit inside of an
int (by making the Register code field 8-bit etc).

Change-Id: I31ffbc8f98b6a5e1f638fc59147009e5f81dff41
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513612
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@{#79421}
2022-03-09 14:37:44 +00:00
Michael Lippautz
7ef1fc1565 testing: OverrideEmbedderStackStateScope should only affect implicit GCs
The only user of OverrideEmbedderStackStateScope is Blink where it is
used to override stack state of top-level tasks. Adjust the behavior
here to allow using this scope broadly while still supporting explicit
garbage collection calls.

Bug: chromium:1300492
Change-Id: I78c418c5f08991bf6857147cd4a537246bfcc556
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497744
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79420}
2022-03-09 14:29:34 +00:00
Darius M
2dc4037049 [compiler] Improve code generated for patterns like "x >> 1 == 0"
Change-Id: I79575ba61a3bdea93468f48d66a3cb3edd0e1442
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3506504
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79419}
2022-03-09 14:13:05 +00:00
Camillo Bruni
cead657371 [runtime] Clean up runtime function Arguments accesses
Replace all CONVERT_XXX_ARG_XXX() macros from runtime-util.h with direct
calls to Arguments or the fully expanded equivalent.

- This replaces many of the hard CHECKs with DCHECK (as is common
  practice in most V8 code)
- Instead of relying on verbose comments we now have readable code
- Rename Arguments.::xxx_at with Arguments::xxx_value_at since these
  methods don't return the Object but rather their double/int value

- Add Oddball::ToBool helper
- Add and use v8::internal::PropertyAttributesFromInt helper
- Add stronger DCHECK for PropertyAttributes returned in
  GetPropertyAttributesWithInterceptorInternal



Bug: v8:11263
Change-Id: I8d531857e05d19f3198753b05af28d993a391854
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497768
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79418}
2022-03-09 13:03:15 +00:00
Clemens Backes
9d96ebbb47 Revert "[asm] Reject import calls with too many parameters"
This reverts commit a664aef0ca.

Reason for revert: Times out on CFI: https://cr-buildbucket.appspot.com/build/8820170241901030897

Original change's description:
> [asm] Reject import calls with too many parameters
>
> The asm parser was missing a check for too many parameters for calls to
> imported functions. For regular functions this check implicitly existed
> because the limit was checked at the function declaration, and the call
> site needs to match the declared parameter count.
>
> R=​mslekova@chromium.org
>
> Bug: chromium:1302596
> Change-Id: I0d35e70a66d682ee8fdecf5c8ea4d2b1419ce684
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509393
> Reviewed-by: Maya Lekova <mslekova@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79415}

Bug: chromium:1302596
Change-Id: I743647f739e0cc93b2e99145086dbbb7d2660c79
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512853
Auto-Submit: Clemens Backes <clemensb@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@{#79417}
2022-03-09 12:54:15 +00:00
Victor Gomes
19357096fe [maglev] Allow closure register to be loaded
Context:
https://chromium-review.googlesource.com/c/v8/v8/+/3506444

Bug: v8:7700
Change-Id: Ie877f7f18759f286597f07412ceb1ba25eb4787a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512793
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79416}
2022-03-09 11:47:04 +00:00
Clemens Backes
a664aef0ca [asm] Reject import calls with too many parameters
The asm parser was missing a check for too many parameters for calls to
imported functions. For regular functions this check implicitly existed
because the limit was checked at the function declaration, and the call
site needs to match the declared parameter count.

R=mslekova@chromium.org

Bug: chromium:1302596
Change-Id: I0d35e70a66d682ee8fdecf5c8ea4d2b1419ce684
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509393
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79415}
2022-03-09 11:13:06 +00:00
Darius Mercadier
51ea5508fa Revert "[compiler] Simplify "==0" branches in MachineOperatorReducer"
This reverts commit 48b443f692.

Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=1303902

Original change's description:
> [compiler] Simplify "==0" branches in MachineOperatorReducer
>
> Bug: v8:12484
> Change-Id: I0667c7464c0dd71338bc199a24a69248a7a0a525
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497303
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Owners-Override: Tobias Tebbi <tebbi@chromium.org>
> Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79379}

Bug: v8:12484
Change-Id: I5114b2871a14444a84f6230aa1bd2113d32a2a83
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3510390
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79414}
2022-03-09 10:42:47 +00:00
Pan, Tao
190b5d959b [compiler] Don't remove OSR code cache if deoptimizing at out of loop
The main purpose of OSR compilation is fasten inner loop execution, the
OSR code cache is still correct for loop if optimizing at out of loop,
keep OSR code cache can reduce unnecessary slow bytecode execution with
feedback collection and avoid re-OSR compilation.
This CL can improve JetStream2 case navier-stokes by ~6%.

Change-Id: I9518317fb922071b131cab5b56998a0fc198804a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3494981
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Tao Pan <tao.pan@intel.com>
Cr-Commit-Position: refs/heads/main@{#79413}
2022-03-09 07:21:34 +00:00
v8-ci-autoroll-builder
4e9ab3a0f5 Update V8 DEPS.
Rolling v8/build: eaff38e..69dab41

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/34063a8..5b79b29

Rolling v8/third_party/depot_tools: 9ce8be3..8edc960

Rolling v8/third_party/googletest/src: c9461a9..ae1b7ad

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

Change-Id: I5f1314f6a81905ae48dace343548ee01d467cc66
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509971
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@{#79412}
2022-03-09 04:01:34 +00:00
gaosheng08
26ef9a85b8 [code-style] Fix some comments of promise
When I was looking at the v8 Promise source, I noticed that some of the links that needed to point to ECMA262 were broken, some were deprecated, some were not legitimate, so I tried to fix them.

Bug: no
Change-Id: I26deeb635d8c293245e7cdb62089f60557547846
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3462029
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79411}
2022-03-08 22:30:23 +00:00
Deepti Gandluri
e9caa2d034 [wasm-relaxed-simd] Enable relaxed conversions on ARM
Codegen details detailed in the relevant github issue.
https://github.com/WebAssembly/relaxed-simd/issues/21

Bug: v8:12284
Change-Id: I06c8859035abae775269bdf949ff0f1c2e262859
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3508560
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79410}
2022-03-08 18:59:33 +00:00