Commit Graph

80201 Commits

Author SHA1 Message Date
Alexander Schulze
d367ee2ac6 [roll] Remove monitoring state
Bug: chromium:1411311
Change-Id: Ib810119f8b78992971c804af06ed6bd7d8c7d9cd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224678
Commit-Queue: Alexander Schulze <alexschulze@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85709}
2023-02-07 15:14:02 +00:00
Michael Achenbach
babc4b1d6b [test] Upgrade Windows ia32 testing to Win10
Bug: chromium:1413661
Cq-Include-Trybots: luci.v8.try:v8_win_rel
Change-Id: I08d7e8c699454a2b389cd977c21988b2050dfa63
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224677
Reviewed-by: Liviu Rau <liviurau@google.com>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85708}
2023-02-07 13:52:04 +00:00
Michael Lippautz
0af103a4fa [heap] MinorMC: Rework MinorMC::Prepare
Move code from Prepare() to the corresponding marking start methods of
MinorMC. This simplifies marking start logic and creates a unified path
for starting marking.

Bug: v8:12612
Change-Id: I2fe9a3aad4f68fca6e8186dcc717d64403fafac5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224475
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85707}
2023-02-07 11:55:31 +00:00
Olivier Flückiger
f6d4329be7 [static-roots] Enable instance type to static map mapping
The conversion was accidentially disabled by a trailing backslash.

Bug: v8:13466
Change-Id: I0e1d162afff3bb9d22ac17a98b0b4ffde51a5ca2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224465
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85706}
2023-02-07 11:21:32 +00:00
Manos Koukoutos
455d38ff8d Reland "[wasm-gc] Introduce wasm null object"
This is a reland of commit 2e357c4814

Difference compared to original: Initialize wasm-null object's
payload.

Original change's description:
> [wasm-gc] Introduce wasm null object
>
> We introduce a wasm null object, separate from JS null. Its purpose is
> to support trapping null accesses for wasm objects.
> This will be achieved by allocating a large payload for it (larger than
> any wasm struct) and memory-protecting it (see linked CL). The two null
> objects get mapped to each other at the wasm-JS boundary.
> Since externref objects live on the JS side of the boundary,
> null-related instructions in wasm now need an additional type argument
> to handle the correct null object.
>
> Bug: v8:7748
> Change-Id: I06da00fcd279cc5376e69ab7858e3782f5b5081e
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4200639
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#85648}

Bug: v8:7748
Change-Id: I46413d05f0213229f1d19277ae98dbb8df5afdf9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224011
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85705}
2023-02-07 11:19:47 +00:00
Huáng Jùnliàng
1bae10b2cd [runtime]: Merge *_Simple into DefineKeyedOwnPropertyInLiteral
- Merged DefineKeyedOwnPropertyInLiteral_Simple into
DefineKeyedOwnPropertyInLiteral.

- Removed DefineKeyedOwnPropertyInLiteralFlag::kDontEnum. The flag is
not used.

Change-Id: Ia92d631f0b49810e8e01d5c485dc381b639dcc1f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4193068
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85704}
2023-02-07 10:44:34 +00:00
Maya Lekova
086c43455f [turboshaft] Make --turboshaft experimental flag
Bug: v8:12783
Change-Id: Ic64c2f35b6a84e441892438496ee70df774bfbad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224397
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Auto-Submit: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85703}
2023-02-07 10:18:01 +00:00
Camillo Bruni
3e0b027757 [api] Fix is_on_release_branch in chrome
TRACE_EVENT_CALL_STATS_SCOPED was missing if V8_RUNTIME_CALL_STATS
was not set but V8_USE_PERFETTO was enabled.

Change-Id: Ie762627eaecb258324264b8e78b7ffd4ffd71698
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4221700
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85702}
2023-02-07 10:12:30 +00:00
v8-ci-autoroll-builder
19119fc3e7 Update V8 DEPS (trusted)
Rolling v8/build: d0fad16..a88dbf7

Rolling v8/buildtools: 5408fe0..8b4b823

Rolling v8/buildtools/third_party/libc++/trunk: 549781a..31cf778

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/d0d703e..e8a7a25

Rolling v8/third_party/depot_tools: ef2d011..2c90793

Rolling v8/tools/clang: 44e5e39..6e5ae68

Change-Id: I9d0f2b32e740513b82fb4fc079f0627b050660b0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4226059
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#85701}
2023-02-07 08:41:03 +00:00
Tiago Vignatti
b445f6b13b Build Mac conversion shared memory identifiers in iOS
Bug: chromium:1411704
Change-Id: I2f8abe46ee915e3d03cc66dd46bb8905f0e8cf49
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4225996
Auto-Submit: Tiago Vignatti <tvignatti@igalia.com>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Tiago Vignatti <tvignatti@igalia.com>
Cr-Commit-Position: refs/heads/main@{#85700}
2023-02-07 08:39:59 +00:00
Leszek Swirski
cdb12d8703 Revert "Create a MicrotasksScope for async GC"
This reverts commit 46a5dd0256.

Reason for revert: Closed the waterfall, seems to be causing timeouts: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Mac64/49979/overview

Original change's description:
> Create a MicrotasksScope for async GC
>
> When running the async version of window.gc()
> (e.g. window.gc({type: 'major', execution: 'async'})),
> the promise is resolved without a MicrotasksScope, causing us to hit a
> DCHECK.
>
> Change-Id: I10f72c96605263afacc01afbfcc56d1134d84b43
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4220146
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Commit-Queue: Kevin McNee <mcnee@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#85698}

Change-Id: I34edd72d28a126d93e6ba68ed64b3a9f965f62e3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224395
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@{#85699}
2023-02-07 08:38:22 +00:00
Kevin McNee
46a5dd0256 Create a MicrotasksScope for async GC
When running the async version of window.gc()
(e.g. window.gc({type: 'major', execution: 'async'})),
the promise is resolved without a MicrotasksScope, causing us to hit a
DCHECK.

Change-Id: I10f72c96605263afacc01afbfcc56d1134d84b43
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4220146
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85698}
2023-02-06 22:05:10 +00:00
Ilya Rezvov
fa73edeb1e Revert "[gc][static-roots] Fix one remaining access to r/o markbits"
This reverts commit 229f91a339.

Reason for revert: Initial CL(https://chromium-review.googlesource.com/c/v8/v8/+/4212397) with InReadOnlySpace() was reverted.

Original change's description:
> [gc][static-roots] Fix one remaining access to r/o markbits
>
> Yet another access to the markbits on the r/o pages that was overlooked
> in https://chromium-review.googlesource.com/c/v8/v8/+/4212397.
>
> No-Tree-Checks: true
> No-Try: true
> Bug: v8:13717
> Change-Id: I682a2604512dfda00b3f69d0e1f60edd66391687
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4221702
> Commit-Queue: Olivier Flückiger <olivf@chromium.org>
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Auto-Submit: Olivier Flückiger <olivf@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#85672}

Bug: v8:13717
Change-Id: I72a629d335c1ec90d080dbc4a3e79ab54da7a8b0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4226003
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Ilya Rezvov <irezvov@chromium.org>
Owners-Override: Ilya Rezvov <irezvov@chromium.org>
Commit-Queue: Ilya Rezvov <irezvov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85697}
2023-02-06 21:27:01 +00:00
Ilya Rezvov
e6353fe071 Revert "[gc][static-roots] Fix more accesses to r/o markbits"
This reverts commit c5ff664bc8.

Reason for revert: Initial CL(https://chromium-review.googlesource.com/c/v8/v8/+/4212397) with InReadOnlySpace() was reverted.

Original change's description:
> [gc][static-roots] Fix more accesses to r/o markbits
>
> Two overlooked ones in marking barrier and cppgc.
>
> Fixes blink tests.
>
> Bug: v8:13717
> Change-Id: I2c8beb0db1bcc38ae37a058f02da448dae9c7207
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224152
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Auto-Submit: Olivier Flückiger <olivf@chromium.org>
> Commit-Queue: Olivier Flückiger <olivf@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#85692}

Bug: v8:13717
Change-Id: I2e6c45251c28d5de2580833a0cdcfe8630046803
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4226004
Commit-Queue: Ilya Rezvov <irezvov@chromium.org>
Owners-Override: Ilya Rezvov <irezvov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Ilya Rezvov <irezvov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85696}
2023-02-06 21:25:56 +00:00
Ilya Rezvov
a37302d8f7 Revert "[gc][static-roots] Don't access markbits on R/O pages"
This reverts commit a2f63f1886.

Reason for revert: It breaks chromium integration tests https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Blink%20Linux/22574/overview

Original change's description:
> [gc][static-roots] Don't access markbits on R/O pages
>
> Markbits on read only pages are initialized BLACK and never change. For
> any practical purposes they are unused.
>
> This CL prevents any access to the markbits of these pages. This is a
> precursor to removing them entirely from the page to make room for
> static roots.
>
> Bug: v8:13466
> Change-Id: I61d3f6d9bbca750d0f34475859b34ff44f7fec1e
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4212397
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Auto-Submit: Olivier Flückiger <olivf@chromium.org>
> Commit-Queue: Olivier Flückiger <olivf@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#85665}

Bug: v8:13466
Change-Id: Icda4be38da984fdefd40301238c361a86f912141
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4225673
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Ilya Rezvov <irezvov@chromium.org>
Owners-Override: Ilya Rezvov <irezvov@chromium.org>
Commit-Queue: Ilya Rezvov <irezvov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85695}
2023-02-06 18:34:39 +00:00
Michael Lippautz
908fc3c89c [heap] MinorMC: Split up PageMarkingItem further
PageMarkingItem is used to process OLD_TO_NEW regular and typed slots
sets. These slot sets are disjoint and do not share state that needs to
be modified, i.e., can be processed in parallel.

Rework PageMarkingItem to allows for parallel processing of slot sets on
a single page. Remove the lock as it should not be necessary.

The CL does not change the cost function for computing tasks.

Drive-by: Optimize marking a single object on filtering.

Bug: v8:12612
Change-Id: I6595d857d6df23d9d427bcdf5ecb3c9ea1c3c9ad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224451
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85694}
2023-02-06 18:33:35 +00:00
Michael Lippautz
2262ba881c [heap] Refactor invoking of first pass callbacks
Avoid generating a tracing scope when there's no such callbacks.

Drive-by: Avoid a return value in the GC call by using a getter in the
single place that is actually interested in whether external callbacks
have been executed for global handles.

Change-Id: I07082b4a2a68c37ccc90a5aae936d484bacd3717
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224132
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85693}
2023-02-06 18:12:48 +00:00
Olivier Flückiger
c5ff664bc8 [gc][static-roots] Fix more accesses to r/o markbits
Two overlooked ones in marking barrier and cppgc.

Fixes blink tests.

Bug: v8:13717
Change-Id: I2c8beb0db1bcc38ae37a058f02da448dae9c7207
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224152
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85692}
2023-02-06 17:27:46 +00:00
pthier
31da231deb [regexp] Fix gcc link error for RegExpClassSetExpression::Empty
Fix gcc link error by adding missing include.

Change-Id: I95fcd09ad6c89d1b3d38c3f31a2cfad8ff464701
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224459
Commit-Queue: Patrick Thier <pthier@chromium.org>
Auto-Submit: Patrick Thier <pthier@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85691}
2023-02-06 17:11:44 +00:00
Leszek Swirski
32e94af866 [maglev] Use Sub instead of sub
Because the Immediate might not fit in an immediate.

Bug: v8:7700
Change-Id: Ie5efca4af40cc4b10766144a295046f99cb5f25c
Fixed: chromium:1412730
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224462
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85690}
2023-02-06 16:50:07 +00:00
Victor Gomes
11c99c33fe Reland "[maglev] Set --maglev-inlining as experimental"
This is a reland of commit 2be76fca4b

Original change's description:
> [maglev] Set --maglev-inlining as experimental
>
> Bug: v8:7700
> Change-Id: Ida08a24e91149cbc895eb7328774a1154a2e15db
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4218741
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Auto-Submit: Victor Gomes <victorgomes@chromium.org>
> Commit-Queue: Victor Gomes <victorgomes@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#85678}

Bug: v8:7700
Change-Id: Icead7dfd218a66fb963218d31e1e09e202af8e3b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224455
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85689}
2023-02-06 16:39:25 +00:00
Victor Gomes
59c3f11e1d [maglev][arm64] Use consistently macro instructions
We should use consistently macro instructions in arm64
(instruction starting with a capital letter). To avoid
issues like https://crrev.com/c/4224931

Bug: v8:7700
Change-Id: I8f64c1b305ee14332ac85e8be71357a2f99c6442
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224460
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85688}
2023-02-06 16:29:14 +00:00
Nico Hartmann
6d2bd5afdc [turboshaft] Fix typing of NaN ** 0
Bug: v8:12783, chromium:1412629
Change-Id: If00a7467443df50cd2c79b3bb09f9dd92dd0548b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4221773
Auto-Submit: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85687}
2023-02-06 15:59:56 +00:00
Leszek Swirski
8a6b841721 [maglev] Use B instead of b on arm64
`MacroAssembler::B` registers its labels with the veneer pool, while
`Assembler::b` doesn't. This meant that our JumpIf (used in particular
for deopts) could run out of jump distance.

As a drive by, also limit the maximum number of deopts according to the
limit set by the deoptimizer. This turned out to not be the issue, but
we should also do it.

Bug: v8:7700
Change-Id: Ic5a8dd3b69c995375d7caab008f31ae91d9c732d
Fixed: chromium:1410080
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224931
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@{#85686}
2023-02-06 15:49:14 +00:00
Jakob Kummerow
5472313c96 [wasm-gc] Update ref.cast_nop to behave like ref.cast
This updates the (experimental, unsafe, non-standard) ref.cast_nop
to take the same immediate as the new ref.cast.
This is being done in order to align with Binaryen, per discussion
in https://github.com/WebAssembly/binaryen/pull/5473.

Bug: v8:7748
Change-Id: Ifcd2bab95a1601406370939301a5c6dfd854347c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224632
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85685}
2023-02-06 15:22:23 +00:00
Samuel Groß
e0d7681e31 Remove negative flag implication for --experimental
The conflict with --future causes tests that enable experimental
features to fail if the test configuration enables --future, and the
conflict with --fuzzing makes it impossible to reproduce issues in
Clusterfuzz as it always adds --fuzzing to the commandline.

Change-Id: I7d952fc5c09967386e06d992b4dbd6129ea404c0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224454
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85684}
2023-02-06 15:20:06 +00:00
Leszek Swirski
58076e4263 [maglev] Elide hasOwnProperty on fast for-in
WIP

Bug: v8:7700
Change-Id: I48feba3e38967ba38873efdef6827d2218fbc426
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4184202
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85683}
2023-02-06 15:18:50 +00:00
Leszek Swirski
d12417f875 Revert "[maglev] Set --maglev-inlining as experimental"
This reverts commit 2be76fca4b.

Reason for revert: Breaking flag implications: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20no-concurrent-marking/13134/overview

Original change's description:
> [maglev] Set --maglev-inlining as experimental
>
> Bug: v8:7700
> Change-Id: Ida08a24e91149cbc895eb7328774a1154a2e15db
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4218741
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Auto-Submit: Victor Gomes <victorgomes@chromium.org>
> Commit-Queue: Victor Gomes <victorgomes@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#85678}

Bug: v8:7700
Change-Id: I4c88530a76cc73109bc921152d786f3db031790d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224452
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@{#85682}
2023-02-06 14:16:10 +00:00
Dominik Inführ
95b7d03067 [heap] Move ActiveSystemPages out of page header
ActiveSystemPages uses std::bitset internally for convenience. Our
MemoryChunk fields implicitly assume that all fields only require
system pointer alignment.

However MSVC on 32-bit uses uint64_t internally to implement
std::bitset. Because of this ActiveSystemPages needs 8-bytes alignment
on 32-bit architectures. We can solve this by moving
ActiveSystemPages out of the page header and storing it in the
malloc()'ed heap.

Bug: v8:13716
Change-Id: Iecb17372d065c612bbdbca7d854c76d3256bc01d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4223005
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85681}
2023-02-06 14:01:51 +00:00
pthier
ee93bc8035 [regexp] Handle empty nested classes correctly
With the recent introduction of unicode sets (v-flag), nested character
classes are allowed in regular expressions.
We always expect a nested class to be of type
`RegExpClassSetExpression`, but the empty nested class was not handled
correctly.

Bug: v8:11935, chromium:1412942
Change-Id: I3b644c8627d8fc6b320a419216372810e8003983
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224311
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85680}
2023-02-06 13:53:12 +00:00
Al Muthanna Athamina
8c4779241a Add tests directory to watchlist
No-Try: true
Change-Id: I6e8f1130ed0fe89d4f5ca8e9ff01ff68f13cbbdf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4221699
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85679}
2023-02-06 13:41:05 +00:00
Victor Gomes
2be76fca4b [maglev] Set --maglev-inlining as experimental
Bug: v8:7700
Change-Id: Ida08a24e91149cbc895eb7328774a1154a2e15db
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4218741
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85678}
2023-02-06 13:37:28 +00:00
Dominik Inführ
f707a4d8f0 [heap] Do not shortcut strings when shared marking is active
We DCHECK in the scavenger that evacuated objects are not allocated
on evacuation candidates. This DCHECK fails however when
shortcutting ThinStrings to the actual string object when
incremental marking is enabled in the shared heap.

We fix this by disabling shortcutting of strings when shared
incremental marking is enabled. We already do this for incremental
marking in the local isolate.

Bug: v8:13267, chromium:1412643
Change-Id: I2a61028ae5377c7621b917ed332e15d6b25b80ff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4219781
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85677}
2023-02-06 13:35:26 +00:00
Olivier Flückiger
088c2c560a [static-roots] Common owners for static-roots.h
Since this is a generated file everyone should be able to update it.

Bug: v8:13466
Change-Id: Ia769bc82d6d5fdd6638763ef5330fe6aefbaf8c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4221698
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85676}
2023-02-06 13:16:39 +00:00
JianxiaoLuIntel
422090017f [x64][codegen] Remove redundant cmp in BinarySearchSwitch
Before:
1b6  cmpl r15,0xb
1ba  jl 0x7f69801dd7d5  <+0x1d5>
1bc  cmpl r15,0xb
1c0  jz 0x7f69801dd842  B200,201,202,203,204,205 <+0x242>

1b6  cmpl r15,0xb
1ba  jl 0x7fa6a00a8591  <+0x1d1>
1bc  jz 0x7fa6a00a85fa  B200,201,202,203,204,205 <+0x23a>

After: 
Change-Id: I820c9291638f27750cb77a0dcd5f1108c4ab8115
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4219940
Commit-Queue: Jianxiao Lu <jianxiao.lu@intel.com>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85675}
2023-02-06 12:31:23 +00:00
Michael Lippautz
7e43e0bee3 [heap] MinorMC: Rework global handles processing
Global handles processing could not actually restart marking anymore.
Weak handles are either reset or already point to live objects. This is
different from the scavenger that actually needs to update the
forwarding pointer for live objects. Move the phase to clearing of
references instead.

Bug: v8:12612
Change-Id: I21f1ba468f257990d23a129f24d5496c38c4eb04
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224151
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85674}
2023-02-06 12:29:24 +00:00
Michael Lippautz
d032734c12 [heap] MinorMC: marking refactoring
- Move CppHeap code into scopes
- Move class declarations out of inline header
- Add TODO for working global handles processing

Bug: v8:12612
Change-Id: I97737d4f5ded940f0145ba093963f45338d44d57
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4221701
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85673}
2023-02-06 12:09:29 +00:00
Olivier Flückiger
229f91a339 [gc][static-roots] Fix one remaining access to r/o markbits
Yet another access to the markbits on the r/o pages that was overlooked
in https://chromium-review.googlesource.com/c/v8/v8/+/4212397.

No-Tree-Checks: true
No-Try: true
Bug: v8:13717
Change-Id: I682a2604512dfda00b3f69d0e1f60edd66391687
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4221702
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85672}
2023-02-06 11:49:17 +00:00
Matthias Liedtke
65a0aaab04 [wasm] Fix loop unrolling being skipped
As part of https://crrev.com/c/4200642 loop peeling was enabled for
loops containing a getCodeUnit instruction.
As a side effect this also affected loop unrolling now only happening
if getCodeUnit was used in the loop body which is fixed by this
change.

Bug: chromium:1412781
Change-Id: I60e3a524340cfbdb907ae2ee5b46cbb6f514775c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4219103
Auto-Submit: Matthias Liedtke <mliedtke@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85671}
2023-02-06 11:30:52 +00:00
Victor Gomes
81857203e9 [maglev] Get converted receiver if needed in inlined functions
Bug: v8:7700
Change-Id: I8039368d898a9884def7245efefc498af44bcc3a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4218742
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85670}
2023-02-06 10:56:05 +00:00
pthier
8ce9714936 [heap] Sweep shared LO space
Shared Large Object Space was added with the introduction of shared
space, but it was never swept.
Besides leaking memory, this led to issues as mark bits were never
cleared and object bodies not re-visited. If the map of an object changed, we would miss visiting potentially newly introduced pointer fields (e.g. SeqString -> ExternalString), freeing EPT entries that were still in use.

Bug: v8:13267, chromium:1407167
Change-Id: Id7bea2ebfbc5a4d935af4b97b7474d64d609a95d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4221578
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85669}
2023-02-06 10:39:49 +00:00
Nikolaos Papaspyrou
7649ef2220 [heap][test] Disable weakref tests for stress concurrent allocation
These tests are unsuitable for "stress concurrent allocation" mode,
because it triggers GCs that interfere with the execution of
FinalizationRegistry cleanup tasks or with the clearing of WeakRefs.

Bug: v8:13257
Bug: v8:13713
Change-Id: Id43d95b53d3f68f1f70ad6ee9ff8e08e70007d13
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4221575
Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85668}
2023-02-06 10:24:59 +00:00
Olivier Flückiger
2bcd96f3fa [static-roots][x64] Load tagged root as quad word
Experiment to see if this resolves a particular regression.

Bug: chromium:1407581
Bug: v8:13466
Change-Id: I45d68a14fab43775fae65dbe710d24db504f5486
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4218393
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85667}
2023-02-06 10:10:50 +00:00
Samuel Groß
4ae2bea49f [d8] Print --experimental message earlier in d8.cc
Previously, we printed the message in RunShell, which meant that it was
only visible if d8 was running in interactive mode. Now we print it
earlier so that the message is also printed when d8 executes a .js file.

Change-Id: Icdadbe5eee7400aaa843b747e3374bda41e360b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224014
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85666}
2023-02-06 09:49:36 +00:00
Olivier Flückiger
a2f63f1886 [gc][static-roots] Don't access markbits on R/O pages
Markbits on read only pages are initialized BLACK and never change. For
any practical purposes they are unused.

This CL prevents any access to the markbits of these pages. This is a
precursor to removing them entirely from the page to make room for
static roots.

Bug: v8:13466
Change-Id: I61d3f6d9bbca750d0f34475859b34ff44f7fec1e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4212397
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85665}
2023-02-06 09:36:57 +00:00
Samuel Groß
7edcd83d1b [watchlist] Add saelo to flag-definitions.h watchlist
Change-Id: Id3c3feb2ffe4b03cd2a33816fccda0cd50c5f092
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224013
Commit-Queue: Samuel Groß <saelo@chromium.org>
Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85664}
2023-02-06 09:28:58 +00:00
Victor Gomes
21c9163eeb [maglev] Missing ReduceResult::Fail()
Missing nullptr -> ReduceResult::Fail in refactor:
https://chromium-review.googlesource.com/c/v8/v8/+/4218731

Fixed: chromium:1413052
Bug: v8:7700
Change-Id: I93d24916b20d42a650545a11c81a369d53bd5764
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4224031
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85663}
2023-02-06 09:07:19 +00:00
Victor Gomes
64af278b30 [maglev][inline] Refactor inner graph building to BuildInlined
Bug: v8:7700
Change-Id: Ie17aff5cff54f4640dd94f822e95e92bfd373890
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4218732
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85662}
2023-02-06 08:55:24 +00:00
v8-ci-autoroll-builder
1cf95e3e49 Update V8 DEPS (trusted)
Rolling v8/buildtools: a706ef8..5408fe0

Rolling v8/buildtools/third_party/libc++/trunk: c8da880..549781a

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/123a98b..d0d703e

Rolling v8/third_party/fuchsia-sdk/sdk: version:11.20230204.1.1..version:11.20230202.3.1

Change-Id: Iff001e57ead073d8ea4d292ebd8e3b3b41c7297c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4223514
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@{#85661}
2023-02-06 04:01:53 +00:00
v8-ci-autoroll-builder
6c19077e86 Update V8 DEPS (trusted)
Rolling v8/buildtools: cf6f58c..a706ef8

Rolling v8/buildtools/third_party/libc++/trunk: 7a7a3a7..c8da880

Rolling v8/third_party/fuchsia-sdk/sdk: version:11.20230202.3.1..version:11.20230204.1.1

Change-Id: Ib9537912d77169308e0bb64a9e502196ff5f548e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4222419
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@{#85660}
2023-02-05 04:07:43 +00:00