Commit Graph

75105 Commits

Author SHA1 Message Date
Nikolaos Papaspyrou
d75d524c90 [heap][cleanup] Fix tracking two background scope symbols
BACKGROUND_UNPARK and BACKGROUND_SAFEPOINT were introduced in
crrev.com/c/2704075 but the LAST_GENERAL_BACKGROUND_SCOPE was
not updated, so they were not tracked properly by GCTracer.

Bug: v8:12425
Change-Id: Ibbd7f5410088c45454b6e22af4e038e8ef0dd7fa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650598
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80613}
2022-05-18 13:25:15 +00:00
Clemens Backes
7e14a41ca6 [wasm] Use new OOM API for passing details
In particular use the same "location" in any call site to make grouping
OOMs easier. Move the detail information into the new OOMDetails struct.

Since we cannot construct OOMDetails via "{.detail = ...}" yet (C++20),
we add another variants of FatalProcessOutOfMemory which receives the
detail string and internally stores it in an OOMDetails struct.

R=jkummerow@chromium.org
CC=mlippautz@chromium.org

Bug: chromium:1323177
Change-Id: Ie10cde8dd060867515fab4c61c15030f9c3ccff9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3652298
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80612}
2022-05-18 10:40:48 +00:00
Clemens Backes
7eacc4d552 [API] Enforce that ShouldYield == true is respected
There is a DCHECK in the gin platform that {ShouldYield} is not called
again after it already returned {true}.
This CL adds a similar DCHECK to the default platform to catch bugs
earlier (in d8).

R=ahaas@chromium.org, mlippautz@chromium.org

Bug: chromium:1277962
Change-Id: I4dc9d880cf6d36e3e497c5324aaf44889fe7fcee
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644801
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80611}
2022-05-18 10:33:28 +00:00
Almothana Athamneh
c3107f0692 Revert "Change linux_chromium_chromeos_msan_rel_ng to blocking on auto roll"
This reverts commit e412e6435b.

Reason for revert: builder takes too long on CQ

Original change's description:
> Change linux_chromium_chromeos_msan_rel_ng to blocking on auto roll
>
> Bug: v8:12755
> Change-Id: I7c693c07640fd5952047666063f23b4be77692bd
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644954
> Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#80590}

Bug: v8:12755
Change-Id: I371c4ebbfc9dc9a0e806653c6c819b0eb29e5228
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644962
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#80610}
2022-05-18 09:20:08 +00:00
Dominik Inführ
e9af212a11 [heap] Check liveness of invalidated objects in UpdateUntypedPointers
This is a follow-up CL to https://crrev.com/c/3623542.

When updating pointers during a full GC, a page might not be swept
already. In such cases there might be invalid objects in free memory.
Since these objects might be dead, their maps might have been reclaimed
already as well.

The previous CL cached the size of invalid objects in order to avoid
accessing an invalid object's map. However, as soon as a slot is within
an invalid object, we also need to check whether this slot is still a
tagged pointer which would require map access. This CL checks marking
bits on invalid objects to skip that check on such invalid objects.

Bug: v8:12578, chromium:1316289
Change-Id: Ie1d736f897a2994dbed7bfb95ed37732cd3b0882
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596123
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80609}
2022-05-18 07:47:28 +00:00
Marja Hölttä
2cb5a08f43 [web snapshot] Add support for derived constructors
Especially, this requires having the __proto__s of functions serialized.

Drive-by fix (gc stress): Handlify IterateBuiltinObjects.

Bug: v8:11525
Change-Id: I8dc50b9144d17134a7c9b8fdbabe23f5e44f197f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644613
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80608}
2022-05-18 07:42:21 +00:00
Frank Tang
a1d642bed1 [Temporal] Minor tweak for code calling temporal parser
Rewrite CreateTemporalTimeZone to sync with
https://github.com/tc39/proposal-temporal/pull/2008



Bug: v8:11544
Change-Id: I75c75146a5a84fc51d4b5ed182641ebf697e8389
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3630351
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80607}
2022-05-18 07:39:10 +00:00
Frank Tang
972d7e5abf [Temporal] Add TimeZone getOffset(Nanoseconds|String)For
Also add the non-intl version of AO
GetIANATimeZoneOffsetNanoseconds which only implement for UTC.
(intl version implement other tz come later)

Also fix bug in JSTemporalTimeZone::offset_nanoseconds() that
"1000000L * offset_milliseconds()" may overflow int32_t before returning as int64_t by first casting offset_milliseconds() to int64_t in the operation so the whole formula is calculating under 64 bits not 32 bits. This bug fix some  *timezone-string-datetime tests.

Spec Text:
https://tc39.es/proposal-temporal/#sec-temporal.timezone.prototype.getoffsetnanosecondsfor
https://tc39.es/proposal-temporal/#sec-temporal.timezone.prototype.getoffsetstringfor
https://tc39.es/proposal-temporal/#sec-temporal-getianatimezoneoffsetnanoseconds

Bug: v8:11544
Change-Id: I2227dbfc8d6ed3ef83edcef5a9b903b8642b5902
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3534622
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80606}
2022-05-18 07:15:48 +00:00
Andy Wingo
010de10eb8 [stringref] Add support for stringrefs in tables
Bug: v8:12868
Change-Id: I42ef3e15b2a7fd2ef157aa0e657ddf98973e8d79
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644956
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Andy Wingo <wingo@igalia.com>
Cr-Commit-Position: refs/heads/main@{#80605}
2022-05-18 06:11:20 +00:00
v8-ci-autoroll-builder
9137ecb400 Update google_benchmark
Rolling v8/third_party/google_benchmark/src: aecbdbf..37be1e8

Add option to get the verbosity provided by commandline flag -v (#1330) (#1397) (Matthdonau)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/37be1e8

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

Change-Id: I0bb00e8310d4f7bf91fee25e52fdaa8cf1bccafd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3652086
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@{#80604}
2022-05-18 05:50:58 +00:00
Andy Wingo
59b7d6a0c1 [stringref] Add test for wasm-to-js calls
Bug: v8:12868
Change-Id: I8d789457c725708e06f482d362d17c16a802a1f3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644950
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Andy Wingo <wingo@igalia.com>
Cr-Commit-Position: refs/heads/main@{#80603}
2022-05-17 19:14:37 +00:00
Jakob Kummerow
1f215c202f [wasm-gc] Polymorphic inlining for call_ref
When call_ref has seen more than one call target, we now support
inlining all of them (constrained by budget/heuristics).

Bug: v8:7748,v8:12166
Change-Id: Iae16e74da1bad5e7a117f70efb6c61b3f39f832c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650607
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80602}
2022-05-17 18:36:57 +00:00
Leszek Swirski
ea07528c02 [maglev] Allocated fixed registers before aritrary ones
The forced allocation of fixed registers can override the arbitrary
choice of register in a previous allocation. Fix this by first
allocating fixed registers, and only afterward allocating arbitrary
registers.

Also add a DCHECK after input assignment that input locations match
their node's current location.

Bug: v8:7700
Change-Id: I262c2a1f9a3c47d5c23c84b3764569692f18f39d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644958
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80601}
2022-05-17 17:05:07 +00:00
George Wort
1e12c1f7ff [wasm-simd][arm64] Do not emit Bic(x, imm) for AndNot(imm, x)
Fix bug where AndNot(x, imm) and AndNot(imm, x) both become Bic(x, imm).

Bug: chromium:1318092
Change-Id: I0ca2c65a1e5d64da0347c86346e7c4dc04943eff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3613386
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: George Wort <george.wort@arm.com>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80600}
2022-05-17 16:13:27 +00:00
Toon Verwaest
6987c91fe6 [maglev] Fix overzealous DCHECK
Bug: v8:7700
Change-Id: Idf127095758289308010312deb9eb2b234cc453d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3652299
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80599}
2022-05-17 15:50:47 +00:00
Marja Hölttä
e8fd58ee58 [web snap] Support functions from multiple scripts
Bug: v8:11525
Change-Id: I6db629c1ecd082162433787a0f5864acd201a91d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647840
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80598}
2022-05-17 15:41:47 +00:00
Solomon Kinard
87b4acd3d6 v8: Remove extra slashes
Change-Id: Ib5d2e24ee4a83547b9d403d5d8b5d75173b8310b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3648093
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Solomon Kinard <solomonkinard@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80597}
2022-05-17 15:27:27 +00:00
Clemens Backes
4fef561880 [wasm] Clean up SetCompiledModuleBytes
- Pass base::Vector instead of pointer plus size
- Remove always-true return value
- Remove unused SetCompiledModuleBytes in tests
- Drive-by: Use std::move for std::function callback

R=ahaas@chromium.org

Bug: v8:12425
Change-Id: I698abb64e4c8d8229997f09d6a79ef664fe9c933
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644952
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80596}
2022-05-17 14:27:13 +00:00
Al Muthanna Athamina
4578a57b31 [infra] Double the shards for v8_linux64_heap_sandbox_dbg_ng_triggered
Bug: v8:12692
Change-Id: I41cc3b8f059d1c6dc28c6ddd14998c959b4d36ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3652296
Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80595}
2022-05-17 14:07:24 +00:00
Igor Sheludko
911412803a [ext-code-space][x64] Increase max code range size to 512 MB
... when external code space is enabled.

Bug: v8:11880, v8:12689
Change-Id: I0efa09a27d636df3d36d2da13ac26c7f2fedb94c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650744
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80594}
2022-05-17 14:01:57 +00:00
v8-ci-autoroll-builder
36145fff5a Update V8 DEPS.
Rolling v8/build: 1c34f36..5b615fa

Rolling v8/buildtools/third_party/libc++abi/trunk: ecff200..b682786

Rolling v8/buildtools/third_party/libunwind/trunk: 3d54d41..44c86bb

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/d1ddc12..ecd2da3

Rolling v8/third_party/depot_tools: 31bfd51..8fb649c

Rolling v8/third_party/fuchsia-sdk/sdk: version:8.20220510.2.1..version:8.20220516.3.1

Rolling v8/third_party/jsoncpp/source: 9059f5c..42e892d

Rolling v8/third_party/zlib: 9979c19..7085d03

Rolling v8/tools/clang: 9da9510..56af55b

Rolling v8/tools/luci-go: git_revision:2aa3d7e5e8662c5193059a490f07b7d91331933e..git_revision:d3db74920e35147955be43f62b5f4ed0cf84c614

Rolling v8/tools/luci-go: git_revision:2aa3d7e5e8662c5193059a490f07b7d91331933e..git_revision:d3db74920e35147955be43f62b5f4ed0cf84c614

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

Change-Id: I39db0aad04f28cc202fc7fa6bb31c2517b47f407
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3649375
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80593}
2022-05-17 13:46:47 +00:00
Leszek Swirski
1ab43384ca [maglev] Make maglev frames optimized frames
Split off a TurbofanFrame from OptimizedFrame, and make MaglevFrame a
subclass of OptimizedFrame. This allows it to be treated as an optimized
frame by code that is looking at deoptimization data.

Bug: v8:7700
Change-Id: Ia38e0f1c2cd73f054f63be81dff187d9197c1202
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644798
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80592}
2022-05-17 13:43:22 +00:00
Al Muthanna Athamina
d98ae36734 Add git_execute to mergeinfo from the deleted search_related_commits script
Bug: chromium:1306416
Change-Id: Idebb83998a0d2e9e4034bc5d138d9f52a1215dc3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644955
Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80591}
2022-05-17 13:42:19 +00:00
Al Muthanna Athamina
e412e6435b Change linux_chromium_chromeos_msan_rel_ng to blocking on auto roll
Bug: v8:12755
Change-Id: I7c693c07640fd5952047666063f23b4be77692bd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644954
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80590}
2022-05-17 13:11:57 +00:00
Michael Achenbach
3212b90600 [numfuzz] Gracefully ignore contradictory flags
NumFuzz passes various flags to V8 testing randomly, which can lead to
various flag contradictions with existing flags. Up to now the system
ignored the check for contradictions and kept running the test cases,
leading to false positives.

This change adds a new v8 flag --exit-on-contradictory-flags that
exists gracefully when a contradiction is detected. On the numfuzz
side we now filter simple contradictions beforehand.

Measurements showed that ~2% of all numfuzz tests ran into
contradictions. Around half of them are simple contradictions
(repetitions and inversions), which are now filtered beforehand.
The remaining ones (redundant or contradictory implications) are
now ignored.

Bug: v8:11826
Change-Id: I9942e203ba9668a097fabe1343dd1365c9da94c1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650746
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Almothana Athamneh <almuthanna@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80589}
2022-05-17 13:09:07 +00:00
jameslahm
bc5677de91 [test] Move cctest/parsing to unittests/parser
This CL moves cctest/parsing/{test-parse-decision,
test-scanner-streams, test-scanner} to unittests/{
parse-decision-unittest, scanner-streams-unittest,
scanner-unittest}.

Bug: v8:12781
Change-Id: I2adfeaf2ccc796f17d6b7010c77b1f65c6ce593e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3612668
Commit-Queue: 王澳 <wangao.james@bytedance.com>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80588}
2022-05-17 13:07:30 +00:00
Manos Koukoutos
2a606bdb27 [wasm-gc][turbofan] Allow incompatible mutability in CsaLoadElimination
Loading from/storing to the same field with incompatible mutabilities
is possible in unreachable code, specifically when a value is cast to
two different types with incompatible mutability for the same field
offset. Therefore, we allow this pattern in CsaLoadElimination.
When we detect it, we emit an Unreachable node to immediately crash the
program in case this unreachable code is somehow executed.

Bug: v8:7748, v8:12874
Change-Id: Ieb359d3e1b9f7bc4a91c556af2bba0507526d20e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644806
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80587}
2022-05-17 13:06:28 +00:00
Nikolaos Papaspyrou
0cd11cee1b [heap][cleanup] Refactor checking for main thread
This CL removes GCTracer::AssertMainThread and adds the more general
methods Heap::IsMainThread and Heap::IsSharedMainThread, to be used
in DCHECKs and elsewhere. It also introduces some const qualifiers.

Bug: v8:12425
Change-Id: Ibdec39ce77be704598ca0c8b440005dc27bd6997
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650600
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80586}
2022-05-17 12:41:49 +00:00
Liu Yu
3ebf2052a1 [mips64] Remove a useless declaration of Operand.
Change-Id: I5144d8315b5c1aca751d138e4d87240b703dc9e3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650359
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Yu Liu <liuyu@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#80585}
2022-05-17 12:15:07 +00:00
Andy Wingo
1a3edfb7e5 [stringref] Add support for stringref globals, with JS interface
Bug: v8:12868
Change-Id: I955155db468b2ecd86fa6c5a73c616b0e4c66446
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644949
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Andy Wingo <wingo@igalia.com>
Cr-Commit-Position: refs/heads/main@{#80584}
2022-05-17 11:35:47 +00:00
Marja Hölttä
eb56775a69 [rab/gsab]: RAB/GSAB support for Function.p.apply
Bug: v8:11111, chromium:1321013
Change-Id: Iec45b885e844ab02059470dd514f47133b0a6efe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650596
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80583}
2022-05-17 10:50:27 +00:00
Solomon Kinard
b5c95961bd v8: Copyright: Remove extra slashes
Change-Id: I3d3b1f0b86714e0d654ed18c055d394002dbec2c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650832
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80582}
2022-05-17 10:18:24 +00:00
jameslahm
2eeed60520 [test] move cctest/libsampler to unittests/libsampler
This Cl moves cctest/libsampler/{test-sampler, test-signals-and-mutexes}
to unittests/libsampler/{sampler-unittest, signals-and-mutexes-unittest}.

Bug: v8:12781
Change-Id: I106e709a66d00d23df76c6868d0843dd0ac1887e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3612666
Commit-Queue: 王澳 <wangao.james@bytedance.com>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80581}
2022-05-17 09:51:27 +00:00
Andy Wingo
e5af9c4f97 [stringref] Add support for passing stringref values to/from JS
Bug: v8:12868
Change-Id: Ib4540352c7db4b4bdbf88b559da44b08e71dd483
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650603
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Andy Wingo <wingo@igalia.com>
Cr-Commit-Position: refs/heads/main@{#80580}
2022-05-17 09:42:28 +00:00
jameslahm
6faa6d553b [test] Move cctest/test-roots to unittests
... /objects/roots-unittest.

Bug: v8:12781
Change-Id: Id76a0e1ffaea18849866fa0f55c9a056dbdf6e2b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3612670
Commit-Queue: 王澳 <wangao.james@bytedance.com>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80579}
2022-05-17 09:12:17 +00:00
Leszek Swirski
3ac00bffb9 [maglev] Add missing lazy deopt points
Add lazy deopts for generic operations (binops, loads, stores).

Bug: v8:7700
Change-Id: I6f9abba5c57cd3d271552080927199e9dbd92322
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644799
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80578}
2022-05-17 09:05:28 +00:00
jameslahm
552ffd38dc [test] Migrate cctest/test-api-accessors.cc to unittests/
... api/accessor-unittest.cc.

- Add IsInt32, IsString, IsUndefined matcher in
testing/gmock-support.h.

Bug: v8:12781
Change-Id: I764491d7643e35fb8bc1621e857873aa24f64ccd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3593573
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: 王澳 <wangao.james@bytedance.com>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80577}
2022-05-17 08:27:55 +00:00
Marja Hölttä
df73fd6031 Reland "[rab/gsab] Temporarily stage --harmony-rab-gsab to enable fuzzing"
This reverts commit 24286b8e24.

Reason for revert: Re-staging the experimental flag for fuzzing

Original change's description:
> Revert "[rab/gsab] Temporarily stage --harmony-rab-gsab to enable fuzzing"
>
> This reverts commit b8f88be06e.
>
> Reason: disabling an experimental feature in release branch
>
> Bug: v8:11111,v8:12870
> Change-Id: I6fbd6bdb318c0d25e69c04db208a0d5f2b9ebbd7
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647357
> Auto-Submit: Marja Hölttä <marja@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#80520}

Bug: v8:11111,v8:12870
Change-Id: I0a45ed5ce53010196949dda23773d152aa605846
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647836
Commit-Queue: Marja Hölttä <marja@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#80576}
2022-05-17 08:19:38 +00:00
Patrick Thier
98f65ffcdf [heap] Update StringForwardingTable after evacuation in MC
With the flag --always-use-string-forwarding-table (only used for
testing), we can have young generation strings in the
StringForwardingTable.
We need to update references to these strings when they are evacuated
during mark compact (previously this was only done after scavenge).

Bug: v8:12877, v8:12007
Change-Id: Ie108add176f71dcdf296bd94bdffa664cb75ae02
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650719
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80575}
2022-05-17 07:06:47 +00:00
Liu Yu
b6b785815d [loong64][mips][wasm-relaxed-simd] Keep q15_mul emit operations consistent
Port commit d2a8bdec7f

Bug: v8:12284
Change-Id: Ia011008d1e7695601fce78d60018e473079e9d0f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650332
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@{#80574}
2022-05-17 02:26:57 +00:00
Lu Yahan
2bd261c071 [riscv64][wasm-relaxed-simd] Keep q15_mul emit operations consistent
Port commit d2a8bdec7f
Bug: v8:12284

Change-Id: I8ec0c2270d85d8068823e241e1c326aa90caad8c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3651507
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Commit-Queue: ji qiu <qiuji@iscas.ac.cn>
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#80573}
2022-05-17 01:57:47 +00:00
jameslahm
e740932949 [test] Move cctest/{test-bignum-dtoa, test-dtoa
... ,test-fast-dtoa, test-fixed-dtoa} to unittests/base/
{bignum-dtoa-unittest, dtoa-unittest, fast-dtoa-unittest,
fixed-dtoa-unittest}.

This CL also moves cctest/{gay-fixed, gay-precision,
gay-shortest} to unittest/{gay-fixed, gay-precision,
gay-shortest}.

Bug: v8:12781
Change-Id: Id6072f92908ad3abfe683c69dac041227de2553f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3607114
Commit-Queue: 王澳 <wangao.james@bytedance.com>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80572}
2022-05-17 01:38:57 +00:00
Anton Bikineev
5c416ad2c3 cppgc: Avoid compression/decompression in Member operators/ctors
1) In copy/move ctors and operator=() we can just copy raw compressed
   value;
2) For null check we don't need to decompress the value;
3) Same for operator==().
4) Hashing can also be optimized in a followup.

Bug: chromium:1325007
Change-Id: Ic1bf2c5049802c078b3e0121dcbe62d9ecea83b3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647359
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80571}
2022-05-16 22:17:47 +00:00
Milad Fa
93446e3c12 PPC/s390: [wasm-relaxed-simd] Keep q15_mul emit operations consistent
Port d2a8bdec7f

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

Change-Id: I5fceb4b75529e2f24762630b4091332c56461e07
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650606
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80570}
2022-05-16 19:55:17 +00:00
Solomon Kinard
f54408434b v8: Copyright: Remove extra slashes
Change-Id: Ib8ca0c771b50b712e5fd6acb470213235f69a99b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650833
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Solomon Kinard <solomonkinard@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80569}
2022-05-16 18:19:06 +00:00
Deepti Gandluri
d2a8bdec7f [wasm-relaxed-simd] Keep q15_mul emit operations consistent
Bug: v8:12284
Change-Id: I75d550e0cec4a4cf68296f3634329a7d97ae99fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3646076
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80568}
2022-05-16 17:57:56 +00:00
Issack John
718f743750 JSON.parse errors made user-friendly
Part of the improve error messages initiative.

Based on a resource of JSON.parse() errors found at
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/JSON_bad_parse

Previously JSON.parse(NaN) would output:
SyntaxError: Unexpected token N in JSON at position 0
Now the output is:
SyntaxError: "NaN" is not valid JSON

Previously JSON.parse("{a:1}") would output:
SyntaxError: Unexpected token a in JSON at position 1
Now the output is:
SyntaxError: Expected property name or '}' in JSON at position 1

Bug: v8:6551
Change-Id: Ic9fad1fdbd295e1302805b81e6603fc526121960
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513684
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Issack John <issackjohn@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#80567}
2022-05-16 17:02:37 +00:00
Michael Lippautz
b9420be7a2 [heap] Remove to aggressive CHECK from inner marking function
The check whether worklists are empty sits after marking the
transitive closure, when it is guaranteed that no concurrent marker is
running anymore.

Bug: chromium:1325628
Change-Id: Ibfa7278df2181a0aa6c7e0f1d53d51e8afaa3352
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647830
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80566}
2022-05-16 16:58:26 +00:00
Clemens Backes
b33179ae4d [API] Pass OOMDetails to OOMErrorCallback
This adds a new struct "OOMDetails" which is passed to the
OOMErrorCallback. It currently holds the "is_heap_oom" bool that was
also passed before, plus an optional "detail" string.
The struct can later be extended without having to change the signature
of the OOMErrorCallback. Removing fields will have to follow the
standard deprecation rules, but this is also easily possible without the
hassle for this initial change.

We modify the deprecated OOMErrorCallback definition and un-deprecate it,
which can be seen as removing a deprecated API and adding a new one in
one CL.

R=mlippautz@chromium.org, jkummerow@chromium.org

Bug: chromium:1323177
Change-Id: Ic4c2cb5856906ebd664626fe463d8e96cb99b0a5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647827
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80565}
2022-05-16 16:43:07 +00:00
Igor Sheludko
ab7435a244 [runtime] Fix MapUpdater::TryUpdateNoLock()
Return empty optional instead of optional with empty Map on failure.

Bug: v8:7790, chromium:1323119
Change-Id: I1e6e9e2361d12d0f8d106a7929221d3116d0d547
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650715
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80564}
2022-05-16 15:57:56 +00:00