Commit Graph

78976 Commits

Author SHA1 Message Date
Michael Lippautz
a39f9f6d28 [handles] Fix diagnosing CHECK
Bug: chromium:1380114, v8:13372
Change-Id: I9fb91ac175b6985efb47da11c8f03f4eb6bacb0b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4053552
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84484}
2022-11-25 12:01:05 +00:00
Toon Verwaest
46d2105337 [maglev] Spill values across throw->catch
If a value is used after a try-block finishes, we need to make sure that
the catch-block can restore its value. Otherwise we'd accidentally drop
the value on register merge thinking we're in a liveness hole on the
merge after the catch (since the catch cleared all the registers). This
then breaks JumpLoops that need to restore the value in a specific
register.

Bug: v8:7700, chromium:1392061
Change-Id: I7255ccf9b36bf36583ad612882137b251c48caed
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055111
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84483}
2022-11-25 11:56:05 +00:00
Victor Gomes
029e8a2f19 [maglev] Add Float64Exp + inline Math.pow
Bug: v8:7700
Change-Id: I681503d062e88609131979a6eea0fdee08b93ef1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055941
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84482}
2022-11-25 11:53:45 +00:00
pthier
0fec70aeb1 [regexp] Support properties of strings in unicode sets mode
Add support for properties of strings in unicode sets mode (/v).

Bug: v8:11935
Change-Id: Iae2f0182b1c42bb900c524ca406784b7b1b52842
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051247
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84481}
2022-11-25 10:29:16 +00:00
pthier
5d7782f694 [regexp] Support string disjunctions in unicode set mode
Add support for string disjunctions within regular expression character
classes in unicode sets mode (/v).

Bug: v8:11935
Change-Id: Ida607123ced11c4dc3dfc687996f6abffeb6eeff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051243
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84480}
2022-11-25 09:56:29 +00:00
Michael Achenbach
1211605a39 [build] Remove dead ENABLE_DEBUGGER_SUPPORT define
Bug: v8:9287
Change-Id: Ia031aa653b78bae1817e05c75ea508a7e2df8a83
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055628
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84479}
2022-11-25 09:54:03 +00:00
Michael Achenbach
becc278d14 [foozzie] Ignore --harmony-struct until it's suitable for differential fuzzing
The flag --harmony-struct changes the global object which is
observable when doing differential fuzzing. The flag will now be
ignored to close ongoing false positives. It could be enabled in
the future if the global object stays equal in all compared
configurations, which could be faked behind the flag:
--correctness-fuzzer-suppressions.

No-Try: true
Bug: chromium:1393020
Change-Id: Ib5f3325a742dd32cac34febca58bf99e0184ac97
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055627
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84478}
2022-11-25 09:18:23 +00:00
Michael Achenbach
96959b9ae9 [gcmole] Introduce gcmole arch-variants in configs
This uses arch-specific config keys for gcmole prepared by:
https://crrev.com/c/4055685

In a follow up, we can move the runs to bots with the respective
architecture.

Bug: v8:9287
Change-Id: Iedbb44490195b49d560658451263a1abdc2d3258
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055320
Reviewed-by: Alexander Schulze <alexschulze@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84477}
2022-11-25 09:17:21 +00:00
Marja Hölttä
9bd85f5fb3 [rab/gsab] Put AB.p.transfer behind a separate flag
This enables launching RAB / GSAB and transfer separately.

See: https://github.com/tc39/proposal-resizablearraybuffer/issues/113

Bug: v8:11111
Change-Id: Id167adfbdcc2e92caf254b3b9b58a7336763ca4a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055322
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84476}
2022-11-25 09:10:29 +00:00
Omer Katz
e96a2a174e [heap] Fix unittest for shrinking new space
HeapTest.GrowAndShrinkNewSpace emulates a GC cycle for shrinking new
space. Starting a new MinorMC cycle should first finalize sweeping from
the previous GC cycle.

Bug: v8:12612
Change-Id: Iea35b54ba0f7be3b7870c557c92042a8d9896045
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055625
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84475}
2022-11-25 08:53:09 +00:00
v8-ci-autoroll-builder
dc684ca778 Update V8 DEPS (trusted)
Rolling v8/build: 9c7229e..f57e5d4

Rolling v8/buildtools/third_party/libc++abi/trunk: 1a32724..83cce21

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/9da1075..0748984

Change-Id: I06d40961839d3f754f0a9f09f7f6c405f03dac10
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4056417
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@{#84474}
2022-11-25 03:42:14 +00:00
Anton Bikineev
f613df8b07 unified-young-gen: Soft bail out from wrapper tracing
There are still tests that use EmbedderHeapTracer, which would crash
with --minor-gc enabled. Bail out from PerformWrapperTracing() if
there is no cpp marking worklist to MarkingWorklists (i.e. Publish()
returns false).

Bug: v8:13475
Change-Id: I04708ffe8ebaf18f94f1a3fc60d9f6afeef13e03
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055505
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84473}
2022-11-24 21:55:00 +00:00
Dominik Inführ
27dd6db546 [heap] Remove broken DCHECK in CheckOldToNewSlotForSharedTyped
This DCHECK doesn't hold anymore since we are comparing the old
and the new target objects.

Bug: v8:13267
Change-Id: I7fe1ec58f165555eab003bf021b856a5095e8daf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4056256
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84472}
2022-11-24 21:23:20 +00:00
Darius M
af6f1c4736 [turboshaft] Fix wrong reconstruction of FrameStates
Fixed: v8:13520
Bug: v8:12783
Change-Id: Ifea57ac5fda9a20be1fe6aa4c8e05ff13bfe9f5a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051206
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84471}
2022-11-24 19:49:10 +00:00
Dominik Inführ
be40ab1b6a [heap] Improve verification of outgoing pointers in shared space
Objects in shared space cannot have pointers to objects outside
the shared heap (apart from read only space). Improve heap
verification to also handle this invariant.

Bug: v8:13267
Change-Id: I28c5987bd6f74658eb75329be7c2d011f9569913
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055683
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84470}
2022-11-24 17:25:20 +00:00
Vasili Skurydzin
0b6fca7364 Aix: Skip processor.mjs test for component build
Bug: v8:13440
Change-Id: I5bc18a7c9d3bed75ef84d61e0f6100f5c9e6424d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4048420
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Vasili Skurydzin <vasili.skurydzin@ibm.com>
Cr-Commit-Position: refs/heads/main@{#84469}
2022-11-24 17:20:01 +00:00
Tobias Tebbi
747896380a [torque] align unreachable error message with C++
Bug: chromium:1384477
Change-Id: I39d22fc1e1472675c2dfbe9e22d8ef88551056a7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4046222
Auto-Submit: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84468}
2022-11-24 16:23:00 +00:00
Tobias Tebbi
0d04ebd575 [turboshaft] fix signed div with power of 2
Bug: chromium:1392953
Change-Id: I392d5e0b12d840e08cd4f97b092a74208b30ac9b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055862
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Auto-Submit: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84467}
2022-11-24 16:18:14 +00:00
Nikolaos Papaspyrou
9acc6f96d8 [heap] Remove excessive heap verification for shared GC
During a shared garbage collection, the heap was verified both in
Heap::PerformGarbageCollection and Heap::PerformSharedGarbageCollection
and concurrent marking was paused/resumed twice. This CL removes what
is not necessary and fixes the order: pause, verify, GC, verify, resume.

Change-Id: I0f687a37785cbb99691fc83c0c80c8ca4a30bb71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4042242
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84466}
2022-11-24 15:41:10 +00:00
Clemens Backes
7798a1f6f3 [wasm] Speed up the JS WasmModuleBuilder
The WasmModuleBuilder is used in tests for creating Wasm modules. It can
be pretty slow for huge modules, in particular in simulator builds or in
slow variants like gc-stress.

This CL adds a fast path to the code section creation, for functions
without locals. This makes the wasm-max-functions test 1.45x faster in
the arm64 simulator (generation of the code section alone gets 2.2x
faster).

R=ahaas@chromium.org

Change-Id: I993542448fb4f0b5fdadca13c59691d86844e2a6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051606
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84465}
2022-11-24 15:17:50 +00:00
Dominik Inführ
68b5b766a4 [heap] Allow maps in shared space during verification
Maps might be allocated in the shared space as well when using
--shared-space.

Bug: v8:13267
Change-Id: I8e5e0742d0dc519d676d1adb3f2fffc8a17ca3c7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055503
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84464}
2022-11-24 14:57:17 +00:00
Leszek Swirski
b7508114c0 [maglev] Avoid allocation for BuildCheckMaps
Pass the map list into BuildCheckMaps as a base::Vector (a non-owning
span type) rather than ZoneVector, so that it can accept either an
existing ZoneVector, or an on-stack array.

Bug: v8:7700
Change-Id: Iaef0986433bc7984ee28883c6f1e9fb32f538ecb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4004959
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@{#84463}
2022-11-24 14:55:30 +00:00
Leszek Swirski
26bc8bb401 [ext-code-space] Make process-wide code range leaky
Make the process-wide code range a once-initialised leaky object, rather
than having a global weak_ptr + per-heap shared pointers and allowing it
to be collected when all Isolates die.

These weak pointers add locking overhead when accessing the code range,
which shows up in GC and deoptimization traces when attempting to
calculate Code objects from PCs. The process-wide pointer compression
cage is already leaky, so it makes sense for the code range to be
similar.

Bug: v8:11460

Change-Id: Ibebd468ebad9eafe8aec49f575cdbf604e4b6cc0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051201
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84462}
2022-11-24 14:50:20 +00:00
Dominik Inführ
8aa7720c83 [roots, heap] Move invalid_prototype_validity_cell into RO space
This validity cell is already invalidated from its creation, which
means this object is actually immutable. Move it into RO space to make
use of this property.

There was one store to that object which simply overwrote that
invalid marker with the same value. This CL changes this into a
conditional store.

Bug: v8:13267
Change-Id: I12ab5a41bd9fc0a62523a4ac35607c4b38b2acee
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055895
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84461}
2022-11-24 14:38:00 +00:00
Dominik Inführ
32fd715ec3 [heap] Verify no OLD_TO_SHARED slots recorded in shared heap
We do not record OLD_TO_SHARED slots in the shared heap itself. This
invariant can be checked in the heap verifier.

Bug: v8:13267
Change-Id: Ie2f3fb0923c597c962a1139d2986258a65998648
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055663
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84460}
2022-11-24 14:29:01 +00:00
Victor Gomes
bb9e2b1ecf [maglev] Add Float64 increment and decrement
Bug: v8:7700
Change-Id: Ief7ba11d40fdc1e0c66eb3e630c54adac6623736
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4047741
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84459}
2022-11-24 14:03:11 +00:00
Victor Gomes
070e1c6be5 Reland "[maglev] Add Float64Negate"
This is a reland of commit e1f926b982

Original change's description:
> [maglev] Add Float64Negate
>
> Drive-by: Delete DEF_FLOAT64_BINARY_NODE for compare nodes,
> we have another macro already defining them.
>
> Bug: v8:7700
> Change-Id: I0ef2039cf83053c5d2e5ccd4899093652f1a29c3
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4047485
> 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@{#84452}

Bug: v8:7700
Change-Id: I37a6602f7acbb391881de7785aee52f76c938a6a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055501
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@{#84458}
2022-11-24 14:01:20 +00:00
Dominik Inführ
560cac0490 [heap] Fix shared promotion of typed old-to-new slots
When using UpdateTypedSlotHelper::UpdateTypedSlot the slot argument
passed to the callback is a temporary slot and not the "actual" slot
in the code object.

Therefore CheckAndScavengeObject doesn't update the code object itself
but just that temporary slot. The slot in the code object is only
updated after the callback returns. This means
UpdateTypedSlotHelper::GetTargetObject can't be used in
CheckOldToNewSlotForSharedTyped since that would read the old target
object from the code object and not the new target of that temporary
slot. In such cases this method would not see the that the object got
promoted into shared heap and not record an old-to-shared slot.

Bug: v8:13267, chromium:1392865
Change-Id: I30ef5ed1bc441cc5700b921dc880b9b3fcbb78d7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051125
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84457}
2022-11-24 13:41:00 +00:00
Leszek Swirski
4994cd8aea [maglev] Fix OOB in StringFromCharCode
StringFromCharCode expects an int32 value, but maglev isn't careful
about keeping the top 32 bits of the register valid (to avoid needing to
sign extend after every 32-bit operation). This means the top bits of
an int32 register might be invalid when it is used -- in particular,
complex addressing uses its inputs as 64-bit values, including the
index.

Long story short, we need to zero the top bits of the int32 char_code
used as the index into the single character table.

Bug: v8:7700
Change-Id: I3540230c865a1d07c105f35d024d598cc8e15180
Fixed: chromium:1392585
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055502
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84456}
2022-11-24 13:31:57 +00:00
Victor Gomes
b18d3e8c06 Revert "[maglev] Spill nodes that we'd otherwise fail to merge"
This reverts commit a63f9912b7.

Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64/50370/overview

Original change's description:
> [maglev] Spill nodes that we'd otherwise fail to merge
>
> This makes sure that catch-blocks don't accidentally drop values that
> are only in registers, which can happen if we throw in deferred throwing
> code (e.g., in ThrowReferenceErrorIfHole). At the latest we'll discover
> such values when trying to merge after the catch block, noticing we
> can't find the value through the catch-block. Unfortunately it's not
> trivial to figure out where that merge happens, so we just
> unconditionally spill the value.
>
> For liveness holes (as the comment previously mentioned) the value
> should already be dead and dropped on the merge. Running --maglev-stress
> etc shows that no code currently hits this path, except for the added
> test that shows the issue with catch blocks.
>
> Bug: chromium:1392061
> Change-Id: Ied0b1d4b430c9af2e7ae3dfc004ecb45037c5735
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051605
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Toon Verwaest <verwaest@chromium.org>
> Auto-Submit: Toon Verwaest <verwaest@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#84448}

Bug: chromium:1392061
Change-Id: Iddbd7b19bc73e352dbd6867db990238f80adbdda
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055504
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84455}
2022-11-24 12:32:30 +00:00
Manos Koukoutos
1b8a23b246 Revert "[maglev] Add Float64Negate"
This reverts commit e1f926b982.

Reason for revert: Compilation errors, e.g.: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20shared%20-%20builder/6351/overview

Original change's description:
> [maglev] Add Float64Negate
>
> Drive-by: Delete DEF_FLOAT64_BINARY_NODE for compare nodes,
> we have another macro already defining them.
>
> Bug: v8:7700
> Change-Id: I0ef2039cf83053c5d2e5ccd4899093652f1a29c3
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4047485
> 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@{#84452}

Bug: v8:7700
Change-Id: Id7b2632ee7570b72f148bd900935b035343b12a8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055681
Owners-Override: Manos Koukoutos <manoskouk@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84454}
2022-11-24 11:27:30 +00:00
Manos Koukoutos
5d9ba98653 [wasm-gc] Handle null types in table.set/get
Bug: v8:7748, chromium:1392934
Change-Id: Ie6516ed7f19f3f3a30618373140460e8dda3a497
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055321
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Auto-Submit: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84453}
2022-11-24 11:21:40 +00:00
Victor Gomes
e1f926b982 [maglev] Add Float64Negate
Drive-by: Delete DEF_FLOAT64_BINARY_NODE for compare nodes,
we have another macro already defining them.

Bug: v8:7700
Change-Id: I0ef2039cf83053c5d2e5ccd4899093652f1a29c3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4047485
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@{#84452}
2022-11-24 11:17:54 +00:00
Leszek Swirski
9a1bbbce95 [maglev] Don't lower Function#call when there's no receiver
Function#call needs a function to call, so don't try to lower it to a
builtin call when there's no function.

Bug: v8:7700
Change-Id: I6705e2900731b2be2830231f8ab0dbfcdca5f594
Fixed: chromium:1392936
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4055680
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84451}
2022-11-24 11:16:50 +00:00
Victor Gomes
7771bbd464 [maglev] Add truncating Int32BitwiseNot
Bug: v8:7700
Change-Id: Id0af353721c0b5f22533fb97ee51df7f9b87fee9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051604
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@{#84450}
2022-11-24 11:03:10 +00:00
Victor Gomes
f1d9387c41 [maglev] Add Int32BitwiseNot
Bug: v8:7700
Change-Id: I2343778222eef88864f5863e146bababbc4463e0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051246
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84449}
2022-11-24 10:56:20 +00:00
Toon Verwaest
a63f9912b7 [maglev] Spill nodes that we'd otherwise fail to merge
This makes sure that catch-blocks don't accidentally drop values that
are only in registers, which can happen if we throw in deferred throwing
code (e.g., in ThrowReferenceErrorIfHole). At the latest we'll discover
such values when trying to merge after the catch block, noticing we
can't find the value through the catch-block. Unfortunately it's not
trivial to figure out where that merge happens, so we just
unconditionally spill the value.

For liveness holes (as the comment previously mentioned) the value
should already be dead and dropped on the merge. Running --maglev-stress
etc shows that no code currently hits this path, except for the added
test that shows the issue with catch blocks.

Bug: chromium:1392061
Change-Id: Ied0b1d4b430c9af2e7ae3dfc004ecb45037c5735
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051605
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84448}
2022-11-24 10:52:31 +00:00
Victor Gomes
e9c83ffe3a [maglev] Fix Float64 compare operation
... and map operations for fast path.

Bug: v8:7700
Change-Id: I48832f65ebe8feb634744ed08130edf67a7dd8ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4047483
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@{#84447}
2022-11-24 10:34:30 +00:00
Victor Gomes
9476523b59 [maglev] Add Int32 Negate, Increment and Decrement
Drive-by: delete repeated DEF_OPERATION_NODE macro.

Bug: v8:7700
Change-Id: Ie98e7166c9dafe802049b10c57831fae3e652e40
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051244
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@{#84446}
2022-11-24 09:54:10 +00:00
Dominik Inführ
b8f0d2d351 [heap] Handle case when other thread wins evacuation race
When promoting an object into the shared heap atomically updating the
map word to a forwarding pointer might fail when another thread is
faster. In such cases we need to replace the unused copy of that
object with a filler. We could also "undo" the last allocation in the
future but since this should be rare and hard to test don't do this
for now.

Bug: v8:13267
Change-Id: Ic608942e0c4fe8bd53d25b688875098474a34021
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051126
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84445}
2022-11-24 09:26:30 +00:00
Dominik Inführ
11e0cd2656 [heap] Properly handle shared objects in client weak global handles
A shared GC needs to reset weak global handles that store pointers
to shared objects which die during the shared GC.

Bug: v8:13267
Change-Id: I3800bf1173f42dd9ab96be4add462547b2a8f4a0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051602
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84444}
2022-11-24 08:12:52 +00:00
sunhao
482fc8c97f [loong64][mips64][foozzie] Disable loong64/mips64-sim debugger during differential fuzzing
Port commit b57bb851e0

Bug: chromium:1385995
Change-Id: I814febc7334e7fb7807cf547ed3acec7b97637f8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4049244
Reviewed-by: Liu Yu <liuyu@loongson.cn>
Commit-Queue: Liu Yu <liuyu@loongson.cn>
Auto-Submit: 孙昊 <sunhao01@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#84443}
2022-11-24 06:46:13 +00:00
v8-ci-autoroll-builder
481cba923b Update V8 DEPS (trusted)
Rolling v8/build: 7df66e5..9c7229e

Rolling v8/buildtools: 3c8fef0..9ca2fd2

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/cce68bc..9da1075

Rolling v8/third_party/depot_tools: 2fc7e1f..73a2624

Rolling v8/third_party/fuchsia-sdk/sdk: version:10.20221122.0.1..version:10.20221123.1.1

Change-Id: I3992f7ed004ab65cee7ee02867b633838c8926a4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4053361
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@{#84442}
2022-11-24 03:58:19 +00:00
Lu Yahan
af3678d122 [riscv] Add tracepoint instructions to help simulator debug
Change-Id: I92f2c8600ab6ff2be3c0566f8dd5602cb47252cb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4050059
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Commit-Queue: ji qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#84441}
2022-11-24 03:26:22 +00:00
Paolo Severini
7aea8bef76 [profiler][etw] Reduce initial jank when starting ETW tracing session
When a ETW tracing sessions starts V8 emits events for all already
jitted functions. In very large apps this can cause a noticeable UI
jank. Most of this time is spent re-parsing all already jitted
functions to ensure that the source positions data for these functions
is available. But for ETW events we only need the initial location of
a function, not its full source position data, therefore we should be
able to omit the reparsing.

Bug: v8:11043
Change-Id: I9f1866464fdb8295ca2118de3ab1a72ce6e0f5b7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4049920
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Paolo Severini <paolosev@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#84440}
2022-11-23 18:28:47 +00:00
Dominik Inführ
0afe3f5198 [heap] Fix GlobalSafepointScope from shared isolate
In some situations we might want to start a global safepoint from a
shared isolate. However, Isolate::shared_heap_isolate() can't be used
on a shared isolate. This CL avoids this invocation for shared
isolates.

This CL also stops logging for the WasmEngine for shared isolates. A
shared isolate isn't added to the WasmEngine.

Bug: v8:13267, v8:13524
Change-Id: I58f6d81e61ce7dba619a4902afb50a6582161a66
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4048481
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84439}
2022-11-23 15:57:17 +00:00
Omer Katz
39783f3a3d [heap] Fix complete sweep accounting
Complete sweeping time was accounted based on the GC that will be
started, not the GC that will be finished.

Bug: v8:12612
Change-Id: I2b914abf01be8eecfe7b4ec011d8893407867aef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051204
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84438}
2022-11-23 15:27:07 +00:00
Michael Lippautz
022c132638 [handles] Even more CHECKs
Bug: chromium:1380114, v8:13372
Change-Id: I9041d89259ca0b11d797551fbccabc82706f17b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051480
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84437}
2022-11-23 15:14:17 +00:00
Michael Achenbach
72bb01ae19 Revert "[heap] Enable shared heap flags on more fuzzers"
This reverts commit 5e07bb70e5.

Reason for revert: --struct-harmony caused an initial flood of
bugs on the correctness fuzzer. Let's reland this once we've
sorted out those.

Original change's description:
> [heap] Enable shared heap flags on more fuzzers
>
> Enable --shared-string-table and --struct-harmony on more fuzzers.
>
> Bug: v8:13267
> Change-Id: Iedea33f5c06563aac4d0f0d0eb880f7ee6208d9f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4043902
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#84412}

Bug: v8:13267
Change-Id: Id7973fa312cdddff6c49b672d0496c33fc8828e4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051202
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#84436}
2022-11-23 14:28:27 +00:00
Al Muthanna Athamina
707cfc7052 Disable harmony-struct flag on fuzzer until bug is fixed
Bug: v8:13528,v8:13524
No-Try: true
Change-Id: I32c1b1ebab705f1811ef08bb5df7493eb290d424
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051400
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84435}
2022-11-23 14:20:56 +00:00