Commit Graph

74482 Commits

Author SHA1 Message Date
Camillo Bruni
3608b831e9 [log] CodeEventDispatcher refactoring
- Rename CodeEventDispatcher to LogEventDispatcher
- Use std::vector instead of std::unordered_set, dispatching speed is
  more important than addition/removal of listeners
- Changing the LogEventDispatcher code to be more code-search friendly
- Use a raw pointer for the LogEventDispatcher instance on the isolate
  it's a single-owned entity

Bug: v8:12795
Change-Id: I139f05431519c18cba33d1506467be918f52658c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582125
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79990}
2022-04-14 13:11:51 +00:00
Clemens Backes
206dde8c69 [x64] Make Operand constexpr
This allows to turn two field in the LiftoffAssembler into constants.

R=thibaudm@chromium.org

Bug: v8:12425
Change-Id: Ie39ca73d6bb704b42bd449eed984f426e69deeb5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585956
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79989}
2022-04-14 12:55:20 +00:00
Michael Achenbach
8de92b4b60 [CQ] Experiment to speed up the asan builder
No-Try: true
Bug: v8:11428
Change-Id: Ia06f5a99f851325103ad1860bf44a7313ea541f7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3581723
Reviewed-by: Almothana Athamneh <almuthanna@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79988}
2022-04-14 12:21:40 +00:00
Leszek Swirski
4f0f2d1d05 [maglev] Make MaglevCompiler all static
We don't actually ever need the MaglevCompiler instance.

Bug: v8:7700
Change-Id: I876353310cf34971b72b08d2113d87caaa255e13
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585957
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79987}
2022-04-14 11:20:00 +00:00
V8 Autoroll
01af3a6529 Version 10.3.0.1
Change-Id: Idb40d6a544cebbdd127eb3c8d71f11adf6ac6a97
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3586227
Reviewed-by: Lutz Vahl <vahl@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Lutz Vahl <vahl@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79986}
2022-04-14 10:28:26 +00:00
Tobias Tebbi
52fd8054be [test] skip all Torque unittests on Mac Arm64
Change-Id: I0dbb0e800908d02a783393c3e329d306316b03c7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585949
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79985}
2022-04-14 08:49:11 +00:00
Tobias Tebbi
b32605ee8d [compiler] mark receiver and function as escaping, expanded to continuation frames
Bug: chromium:1315901
Change-Id: I99ed1562356676f54e69a832c8e862c1cf74fb07
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585948
Reviewed-by: Samuel Groß <saelo@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79984}
2022-04-14 08:44:24 +00:00
Jakob Gruber
b686224255 [osr] Move --concurrent-osr to --future
Bug: v8:12161
Change-Id: Idb393836d787f348462c263c7f61e1a8b02b6729
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582390
Auto-Submit: Jakob Linke <jgruber@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79983}
2022-04-14 08:43:21 +00:00
jameslahm
bb46aab5a9 [parser] Use cached ThisExpression in this.x
..., this.x(), this.?x and this?.x(). For common
case like these, it's not necessary to store the
source position for the ThisExpression. And we
could use the cached kNoSourcePosition ThisExpression
for these.

Bug: v8:10914
Change-Id: I02e2bc1633f6da036535d7a76bdabeac0d22f4d9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585490
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: 王澳 <wangao.james@bytedance.com>
Cr-Commit-Position: refs/heads/main@{#79982}
2022-04-14 08:30:50 +00:00
Jakob Gruber
ee6f81cbdd [osr] For early OSR, install through the install target
.. instead of through urgency. Whenever we target a specific JumpLoop,
the install target should be used instead of the generic urgency
mechanism.

Bug: v8:12161
Change-Id: I2e5cb604ce237bcc788dfc4288150881510bf6af
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578800
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Auto-Submit: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79981}
2022-04-14 08:24:30 +00:00
Jakob Gruber
f8fddd6b13 Reland "[osr] Extract extended OSR checks to BaselineOnStackReplacement builtin"
This is a reland of commit a4216b7b11

Original change's description:
> [osr] Extract extended OSR checks to BaselineOnStackReplacement builtin
>
> .. to reduce Sparkplug code size.
>
> Bug: v8:12161
> Change-Id: I4029a75dfa37f716c285ce27153c077a0a82a341
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576119
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Jakob Linke <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79962}

Bug: v8:12161
Change-Id: I69afd0832d7ca447b5481651ef47ebaa8d023ded
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585943
Auto-Submit: Jakob Linke <jgruber@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79980}
2022-04-14 08:19:41 +00:00
Lu Yahan
720329fc5a [riscv64] Fix emit_u32_to_uintptr to be zero-extended
Change-Id: I95a5768af19174275e2828136ce3ff772886e84f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585499
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#79979}
2022-04-14 07:48:37 +00:00
Lu Yahan
70caf337c3 [riscv64] Fix the StaticStackFrameSize
Update the size to kTierupBudgetOffset.

Change-Id: Ibe241211ef67148fae3a4a9eed271f9293ca4801
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585492
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#79978}
2022-04-14 07:48:11 +00:00
v8-ci-autoroll-builder
45927106d8 Update V8 DEPS.
Rolling v8/build: b37c340..67d9897

Rolling v8/buildtools/linux64: git_revision:ae110f8b525009255ba1f9ae96982176d3bfad3d..git_revision:0cbe341c1a28037ee32d21b589030a7df0b9fdab

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

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/3a1ae18..90316ac

Rolling v8/third_party/depot_tools: 3b97fa8..3c6f0eb

Rolling v8/tools/clang: b5e2f7c..9199dc2

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

Change-Id: I0b4e855b5c28652f425db99a109bfcc26ad9dca3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3586225
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@{#79977}
2022-04-14 03:59:22 +00:00
Milad Fa
f0c353f631 PPC: Check R bit is not set with prefixed instructions
CL also adds TODO items to implement this functionality on
disassembler and the simulator.

The R bit which enables PC-relative capabilities when set is
not being used during codegen at the moment.

Change-Id: I0927d9be37a50beecf9b6a052e378dca7604513b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3584535
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79976}
2022-04-13 21:25:29 +00:00
Corentin Pescheloche
ac2275b81b [profiler] prevent duplicate id
With the switch to primitive ids make sure no profiler can be returned
with the same id.

Bug: chromium:1297283
Change-Id: I9cf944e9a472ea45679feb0f30137dba95a32ca6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582786
Auto-Submit: Corentin Pescheloche <cpescheloche@fb.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79975}
2022-04-13 21:19:29 +00:00
Anton Bikineev
8893946c21 cppgc: young-gen: Join concurrent marking for young GC cycles
Bug: chromium:1029379
Change-Id: I34e988c0e14441afe821a35505c4ce3f1eee8fc4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3584118
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79974}
2022-04-13 20:37:59 +00:00
Camillo Bruni
f4d4821006 [runtime] Move CacheInitialArrayMaps to the bootstrapper
CacheInitialJSArrayMaps was called in the middle of
JSFunction::SetPrototype even though this only happens during
bootstrapping given that Array.prototype os non-configurable and
non-writable.

Changes:
- Rename CacheInitialArrayMaps to InitializeJSArrayMaps
- Add more explicit checks in InitializeJSArrayMaps to link back
  to the Context indices for better code searching


Change-Id: Iad6d20e3d67d715bfd6429037c75ac35ab7f399f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3571889
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79973}
2022-04-13 20:23:50 +00:00
Junliang Yan
7830edd7af s390x: [baseline] Add code comments
Change-Id: I205f055af95bd92a84f0a2bc5bbe4d2633e4a8cc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3584530
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79972}
2022-04-13 19:18:59 +00:00
Shu-yu Guo
4a3997198d Reland "[heap] Skip weak heap objects when sharedness doesn't match"
This is a reland of commit 387674761f

Changes since revert: None, original failure was caused by another CL

Original change's description:
> [heap] Skip weak heap objects when sharedness doesn't match
>
> During marking, shared objects should not be marked when not
> marking the shared heap (i.e. when not doing a shared GC).
> Doing so is unsafe, as marking can race with sweeper threads
> sweeping the shared heap. This CL adds the missing check on
> weak object marking.
>
> Bug: v8:12687
> Change-Id: I1e0b8ba6b09bbcf665e5ff0f6242ed88f543c1fa
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3583610
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Commit-Queue: Shu-yu Guo <syg@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79964}

Bug: v8:12687
Change-Id: Ia24ff5daa4d37daf73391c0e577b086611c5e496
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3584600
Owners-Override: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79971}
2022-04-13 19:13:09 +00:00
Milad Fa
9b79b2d740 PPC: Introduce Power10 prefixed load instructions
This CL adds prefixed load scalar and floating point
instructions to the assembler and uses it during code generation
if the processor supports it. They have also been added to the disassembler and the simulator.

Drive-by: emit_prefix is now making sure a trampoline doesn't
get emitted in between prefix and suffix. Assembler needs to
block it using BlockTrampolinePoolScope.
Drive-by: more CHECKs are added to the assembler to make sure
immediate values have the correct length.

Change-Id: Ic5e38926c65364bc97aba0b7638dde5f365ec706
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582479
Reviewed-by: Junliang Yan <junyan@redhat.com>
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79970}
2022-04-13 18:56:29 +00:00
Junliang Yan
7cb9c47b7d ppc64: [baseline] add StoreTagged functions
drive-by: Add code comment macros
Change-Id: I1bded0f0e49f9e590cb7a8a5d86e26e8d9d5eea6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585530
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79969}
2022-04-13 18:12:59 +00:00
Tobias Tebbi
8081a5ffa7 [compiler] mark receiver and function as escaping
Bug: chromium:1315901
Change-Id: Ic44bfcae32aba202ba25c5f59fe579214a444584
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3584117
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79968}
2022-04-13 17:30:19 +00:00
Junliang Yan
7a5f4f55aa ppc64: [baseline] port LoadTagged functions
Change-Id: Ic65f0cccaba6cea2d441540b57689e2c68af3125
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585526
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79967}
2022-04-13 17:16:39 +00:00
Tobias Tebbi
af1fa2869b Revert "[osr] Extract extended OSR checks to BaselineOnStackReplacement builtin"
This reverts commit a4216b7b11.

Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/43174/overview

Original change's description:
> [osr] Extract extended OSR checks to BaselineOnStackReplacement builtin
>
> .. to reduce Sparkplug code size.
>
> Bug: v8:12161
> Change-Id: I4029a75dfa37f716c285ce27153c077a0a82a341
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576119
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Jakob Linke <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79962}

Bug: v8:12161
Change-Id: I382609d0b8cd951a3df5c9c834fe7071eb90faa5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3584121
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Owners-Override: Tobias Tebbi <tebbi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#79966}
2022-04-13 16:43:09 +00:00
Tobias Tebbi
f47899537c Revert "[heap] Skip weak heap objects when sharedness doesn't match"
This reverts commit 387674761f.

Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/43174/overview

Original change's description:
> [heap] Skip weak heap objects when sharedness doesn't match
>
> During marking, shared objects should not be marked when not
> marking the shared heap (i.e. when not doing a shared GC).
> Doing so is unsafe, as marking can race with sweeper threads
> sweeping the shared heap. This CL adds the missing check on
> weak object marking.
>
> Bug: v8:12687
> Change-Id: I1e0b8ba6b09bbcf665e5ff0f6242ed88f543c1fa
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3583610
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Commit-Queue: Shu-yu Guo <syg@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79964}

Bug: v8:12687
Change-Id: If068d31f23a5280667dea1085b3076bb2107d07a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3584119
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Tobias Tebbi <tebbi@google.com>
Owners-Override: Tobias Tebbi <tebbi@google.com>
Cr-Commit-Position: refs/heads/main@{#79965}
2022-04-13 16:07:29 +00:00
Shu-yu Guo
387674761f [heap] Skip weak heap objects when sharedness doesn't match
During marking, shared objects should not be marked when not
marking the shared heap (i.e. when not doing a shared GC).
Doing so is unsafe, as marking can race with sweeper threads
sweeping the shared heap. This CL adds the missing check on
weak object marking.

Bug: v8:12687
Change-Id: I1e0b8ba6b09bbcf665e5ff0f6242ed88f543c1fa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3583610
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79964}
2022-04-13 15:25:59 +00:00
Junliang Yan
e9f92f21c8 ppc64: [baseline] port Generate_BaselineOutOfLinePrologue
Change-Id: I8bae34db4d1aa02516dcf4610f77d6e8edaa5775
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3581490
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79963}
2022-04-13 15:16:09 +00:00
Jakob Gruber
a4216b7b11 [osr] Extract extended OSR checks to BaselineOnStackReplacement builtin
.. to reduce Sparkplug code size.

Bug: v8:12161
Change-Id: I4029a75dfa37f716c285ce27153c077a0a82a341
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3576119
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79962}
2022-04-13 15:03:29 +00:00
Shu-yu Guo
9fc1a57c4d [rab/gsab] Move length computation for RAB/GSAB-backed TAs OOL
Computing the length for variable-length TAs is a lot of code and was
regressing microbenchmarks.

Bug: v8:11111
Change-Id: Ia7c3c92bfb43938068aaf539b290f6a30b049c18
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3583898
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79961}
2022-04-13 15:01:22 +00:00
Anton Bikineev
0d57754cbf cppgc: young-gen: Pack AgeTable knowing allocation granularity
This reduces card granularity from 4096 to 512 bytes with the goal to
improve write barrier filtering.

Bug: chromium:1029379
Change-Id: I22e2a9c61ef4c36c3db65404370213d0a8048e08
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582393
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79960}
2022-04-13 14:58:17 +00:00
Marja Hölttä
682ba0efd3 [valueserializer] Implement a compatibility mode for deserializing broken data
For a while, we shipped a version which writes version 13 data with
JSArrayBufferView flags, and then fixed version 13 to not include the
flags.

This CL adds a compatibility mode for parsing the the version 13
data which includes the flags, since it still occurs in the wild.

Bug: chromium:1314833,chromium:1284506
Change-Id: I96cc432c8574a40b11ec0037394feb1853515760
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3583982
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79959}
2022-04-13 13:58:49 +00:00
Michael Lippautz
431da4644a [heap] Convert test-lab.cc -> lab-unittest.cc
Bug: v8:12781
Change-Id: I4cf23035a7679efdb4830335b75d8616abfbbe08
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582385
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79958}
2022-04-13 13:30:59 +00:00
Nikolaos Papaspyrou
ae0480a01b heap: Inline GCTracer::Scope constructor and destructor
Tracer scopes are used in numerous places in src/heap to track time
spent during various phases of the garbage collection. Usually, they
are introduced with the TRACE_GC* family of macros, taking the scope
identifier as a parameter. At most call sites, the scope identifier is
known at compile time.

This CL inlines the constructor and destructor of GCTracer::Scope, in
order to enable the C++ compiler to properly optimize the introduction
of such scopes when the scope identifier is known at compile time,
using constant propagation. This is expected to have a performance
impact for short-lived and frequently used scopes, e.g., in incremental
marking and sweeping steps.

Change-Id: I6f1a2954a437de1fa6dab5e464c20c952d84ffd4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3581774
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79957}
2022-04-13 13:17:39 +00:00
Jakob Kummerow
f473f10ef3 [wasm] Refine installation of the WebAssembly.Tag constructor
This makes the installation sequence of WebAssembly.Tag slightly
shorter, slightly faster, slightly cleaner in corner-case semantics,
and slightly better documented.

To allow testing this code, Isolate::InstallConditionalFeatures is
exposed as d8.test.installConditionalFeatures().

Fixed: chromium:1314616
Change-Id: I44285e398b8797e0e7d2d8c782cecec3ba68a503
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582382
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79956}
2022-04-13 12:20:49 +00:00
Omer Katz
39f419f045 [heap] Move allocation logic to SpaceWithLinearArea
NewSpace and PagedSpace both inherit from SpaceWithLinearArena and
implement allocation logic on top of it. The parts of the allocation
path that deal specifically with the linear allocation area are
equivalent (only minor syntactic differences between them).

This CL refactors the allocation from a linear allocation area out of
NewSpace and PagedSpace and moves it to SpaceWithLinearArea. This
eliminates code duplication and keeps everything generally still working
the same.

This is done as part of an effort to create a stable NewSpace interface
to allow introducing an alternative paged new space.

Bug: v8:12612
Change-Id: Ie24345a2d51f6e67ebe8a1d67e586038f7aec8de
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578547
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79955}
2022-04-13 10:48:00 +00:00
Dominik Inführ
7415740dea [heap] Remove redundant #ifdef scope
Change-Id: I11ffc3197e78a15e38978724da07e10b62857b3b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582392
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@{#79954}
2022-04-13 10:27:30 +00:00
Jakob Gruber
094eddd219 [turbofan] Unconditionally unpark the thread during the AssembleCodePhase
The code generator accesses the heap even without --code-comments set:
remove the related condition from the UnparkedScopeIfNeeded.

Fixed: v8:12794
Change-Id: I0099f22a9382373c4f75538615fbf431c4d71283
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582389
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Auto-Submit: Jakob Linke <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@{#79953}
2022-04-13 10:15:49 +00:00
Leszek Swirski
58a7761bae [maglev] Skip to the end of bytecode blocks on eager deopt
Unconditional eager deopts from lack of feedback (née soft deopts) mean
that the remainder of the basic block is dead. Avoid emitting this code
by fast forwarding the iterator until the next merge.

The EagerDeopt node becomes a Deopt control node which terminates its
own block (this is to avoid spurious control flow after the EagerDeopt,
or weirdness with liveness). A concept of "merging dead blocks" has to
be introduced so that the successors of the killed block still have the
right number of predecessors.

Bug: v8:7700
Change-Id: Id9c442c3b18d3f394dc2411604d0c8503d6aaae2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578647
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79952}
2022-04-13 10:13:29 +00:00
Hao Xu
ecae28fe5a [compiler] Run BranchConditionDuplicationPhase in Builtin codegen
Bug: v8:12484
Change-Id: I2b104926fa9d240fceb2bcfb1ec6d13cf07235b7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3584457
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Hao A Xu <hao.a.xu@intel.com>
Cr-Commit-Position: refs/heads/main@{#79951}
2022-04-13 09:34:59 +00:00
Leszek Swirski
213194f7bc [maglev] Allow deopts from registers and untagged values
Remove the "bad idea" of spilling whenever there's a deopt, and instead
use the deoptimizer's register support.

In addition, allow untagged int32 inputs into deopts -- if tagging these
overflows, then the deoptimizer will automagically create a HeapNumber
for us. Hooray for code reuse!

Drive-bys:
    1. Print input locations for deopt checkpoints.
    2. Fix ordering of UpdateUse(input)/UpdateUse(deopt) to match the
       use marker.

Bug: v8:7700
Change-Id: I8069f5bc1bdcd7746a516c7a5cc7e26a15d4e5cb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578805
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79950}
2022-04-13 08:49:29 +00:00
henrika
f5012c1a5f Refactors JitLogger initialization for ETW and GDB.
Goal is to ensure that the JitLogger for ETW (on Windows) is more inline
with other CodeEventLoggers such as PerfJitLogger.

The new design ensures that initial Builtin and BytecodHandler events
are emitted to and received by the ETWJITInterface::EventHandler.

Bug: v8:11043
Change-Id: I5741053c387b9ac63a42de61c99f4ea4ae4bdb96
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3581769
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Henrik Andreasson <henrika@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79949}
2022-04-13 08:22:59 +00:00
v8-ci-autoroll-builder
2e5eb1386a Update V8 DEPS.
Rolling v8/build: 75f73c9..b37c340

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/117c61c..3a1ae18

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

Change-Id: Ia8be6b3193d1591c8e2c19176bebd5de4b6b10a8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3580883
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@{#79948}
2022-04-13 03:54:18 +00:00
Lu Yahan
8fc8a3e2c2 [riscv64][osr] Add an install-by-offset mechanism
Port commit b8473c52f1

Bug: v8:12161

Change-Id: Iacdfb65c6d60d729fbfc73526f68bc2916b13ede
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3581535
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#79947}
2022-04-13 03:26:58 +00:00
Michael Lippautz
2d394acac4 [heap] Use explicit marking bitmap for TracedNode
Concurrrent marking for v8::TracedReference requires a single bit in
global handles to be written concurrently. While no other bits require
concurrent access, initialization still needs to properly publish the
bits.

Avoid this problem by just referring to a persistent marking bitmap
that's always present and accessed concurrently, similar to V8's
regular marking bitmap.

Bug: chromium:1315498, v8:12600
Change-Id: I49ba1af0f5a0a8c7fd2865c7178a9a956bbd953e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582920
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79946}
2022-04-12 18:42:45 +00:00
Victor Gomes
1b456ebbe8 [maglev] Simple Graph verifier
It currently only checks if the node inputs are expected to be
tagged or untagged.

Bug: v8:7700
Change-Id: Ibf068098dfb08c28b2744cb321fa857572998948
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578804
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@{#79945}
2022-04-12 17:08:26 +00:00
Clemens Backes
74178a4304 [wasm] Fix misleading comment on supported memory size
The constant was updated in https://crrev.com/c/3328783 without updating
the comment, which brought them out of sync.

R=jkummerow@chromium.org

No-Try: true
Change-Id: I68b30aca878b5ed5a37ba39c36480d571c62f563
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578806
Auto-Submit: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79944}
2022-04-12 15:57:26 +00:00
Michael Lippautz
5c8295beea [heap] Do not assume non-empty TracedReference in marker
Most paths filter out empty reference on cppgc::Visitor or
v8::JSVisitor level. For v8::TracedReference we may end up with empty
reference in case of ephemeron tracing which cannot perfom the null
checks on the outer visitor.

Bug: chromium:1315550, v8:12600
Change-Id: I5ebb466100a6f2cf25a75585fc2267a632497548
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582124
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79943}
2022-04-12 15:10:55 +00:00
Victor Gomes
13407a88ad [maglev] Promote victorgomes as maglev owner
Bug: v8:7700
Change-Id: I5290b6af6158dece0d38b24bc80b887f67c2747b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582921
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@{#79942}
2022-04-12 13:38:20 +00:00
Victor Gomes
24392abcc6 [maglev] Add ValueRepresentation to Node properties
This allows to easily introduce new nodes with untagged represenation.
It also speeds up the is_untagged_value check.

Bug: v8:7700
Change-Id: Ie391d32ae7742dbad481674de262050c0d564ee6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3581773
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@{#79941}
2022-04-12 12:49:37 +00:00