Commit Graph

79565 Commits

Author SHA1 Message Date
v8-ci-autoroll-builder
a788519ab7 Update V8 DEPS (trusted)
Rolling v8/build: 4e33131..c171e77

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/2786327..816a551

Rolling v8/third_party/depot_tools: 0b96058..03af44a

Rolling v8/third_party/fuchsia-sdk/sdk: version:11.20221226.2.1..version:11.20221227.3.1

Change-Id: I3f81156fa98c1f989319c43760060fcda87e390e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4126756
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@{#85023}
2022-12-28 03:58:53 +00:00
Jakob Linke
2b976c1c3f [maglev] Fix an outdated fallthrough in AttemptOnStackReplacement
.. that should now be a jump to `no_code_for_osr` since
AttemptOnStackReplacement is now emitted in deferred code and may thus
no longer fall through.

Fixed: chromium:1403135
Bug: v8:7700
Change-Id: I3dcd7696dc5a19a0cd955b2eef1538c07b2d6e00
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4124200
Auto-Submit: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85022}
2022-12-27 11:51:24 +00:00
Toon Verwaest
a91587d380 [maglev] Fix Int32ModulusWithOverflow
Mark rhs as clobbered since we may negate it. Negate the lhs in rax.

Bug: v8:7700, chromium:1403470
Change-Id: I9a26de78fcd8d1db90c1d26617001c0c699c350e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4110814
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85021}
2022-12-27 07:42:31 +00:00
v8-ci-autoroll-builder
cdcb3caf2d Update V8 DEPS (trusted)
Rolling v8/build: e3bb433..4e33131

Rolling v8/third_party/fuchsia-sdk/sdk: version:11.20221225.2.1..version:11.20221226.2.1

Change-Id: I8ff17f992af9cf8a883f6ccec6d067f0fbef07a7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4124570
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@{#85020}
2022-12-27 03:45:45 +00:00
v8-ci-autoroll-builder
8e063b8066 Update V8 DEPS (trusted)
Rolling v8/build: 6a408e0..e3bb433

Rolling v8/third_party/fuchsia-sdk/sdk: version:11.20221224.3.1..version:11.20221225.2.1

Change-Id: Idbe82931e04d3b8c296dadc9d2d08c0324e6b066
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4124567
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@{#85019}
2022-12-26 04:05:10 +00:00
v8-ci-autoroll-builder
eef61dadf4 Update V8 DEPS (trusted)
Rolling v8/build: 6025acd..6a408e0

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/1665385..2786327

Rolling v8/third_party/fuchsia-sdk/sdk: version:11.20221223.1.1..version:11.20221224.3.1

Change-Id: I49f6c8b0773adbbd7f2b6b3a0aeb25349dfff55b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4124556
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@{#85018}
2022-12-25 03:48:54 +00:00
v8-ci-autoroll-builder
6925036195 Update V8 DEPS (trusted)
Rolling v8/build: ff6be8b..6025acd

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/ebbb83f..1665385

Rolling v8/third_party/fuchsia-sdk/sdk: version:11.20221222.1.1..version:11.20221223.1.1

Change-Id: I14ec522778eed23878e2a921893bc6ef263f083d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4120769
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@{#85017}
2022-12-24 04:03:48 +00:00
Milad Fa
3386dda5d5 PPC[liftoff]: Implement simd FP trunc saturate
Change-Id: I71a0d5e630bf886282989cb314ce2adb967ebaee
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4110813
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Reviewed-by: Vasili Skurydzin <vasili.skurydzin@ibm.com>
Cr-Commit-Position: refs/heads/main@{#85016}
2022-12-23 20:04:41 +00:00
Toon Verwaest
109c8efc55 [maglev] Fix NaN handling after Ucomisd
As a drive-by this also fixes property load from smi. We still need to check that we actually have a smi...

Bug: v8:7700, chromium:1403280, chromium:1403323
Change-Id: I3c4f050b94550b8d7e4e65f733f9c1dad47941d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4120575
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85015}
2022-12-23 15:46:12 +00:00
Victor Gomes
1531fec7e6 [maglev] Fix reuse of property load for unstable maps
Even if we have a constant load, if the map is not stable, we cannot
guarantee that the load is preserved across side-effecting calls.

Fixed: chromium:1403324
Bug: v8:7700
Change-Id: Ib900cf7574711115439e6521ed8cfaa866525e78
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4123532
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85014}
2022-12-23 15:14:57 +00:00
Toon Verwaest
b42d19ed11 [maglev] Also drop existing merges in a liveness hole
It's possible that various branches merged already with a value that's
in a liveness hole, but we only figure out later. If so, drop the merge
as well.

Bug: v8:7700, chromium:1403399

Change-Id: Ifd97e0c1959ffe51017e400fb028041047885a9c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4111932
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85013}
2022-12-23 14:33:18 +00:00
Olivier Flückiger
0c7da9f0ee [static-roots] Branchless access to the SoleReadOnlyHeap
Many locations use the generic GetReadOnlyRoots() function to get access
to read only roots. Prominently this happens in Object::IsUndefined and
friends. The function is quite inefficient on shared read only root
build configurations as it always has to check if the shared read only
heap is already initialized or not. However, the heap is only
uninitialized during bootstrapping.

This CL replaces the branch by a CHECK and deals with the fallout
twofold. First, the SoleReadOnlyHeap is initialized earlier, right
after all heap objects have been created. Second, any location that
calls GetReadOnlyRoots() during initialization is fixed to access
the isolate-local read only roots table instead of the shared one.


Bug: v8:13466
Change-Id: I03e3e68eeefc8651818700629f69ff6163ceb6ac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4116776
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85012}
2022-12-23 13:15:32 +00:00
pthier
0d9bacb958 [maglev][arm64] Port Construct and ConstructWithSpread
Bug: v8:7700
Change-Id: Icc26c0081cab1f468829d464a36c2b524be8e251
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4120033
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85011}
2022-12-23 12:39:28 +00:00
Michael Achenbach
6b2c271cfb [foozzie] Temporarily lower the amount of --future tests
Drop --future from 25% to 5% for a few days until all currently open
correctness cases associated with --future are fixed.

No-Try: true
Bug: v8:7700
Change-Id: I161a0adbc767c5cec46409443fe58c634531487c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4114292
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85010}
2022-12-23 12:11:10 +00:00
pthier
6f4a3e0c2f [maglev][arm64] Fix calls to TF builtins partly consuming stack args
Some TF builtins (*_WithFeedback variants) consume some of the stack
arguments and pass the rest through to ASM builtins.
We need to seperately align the stack arguments consumed by the TF
builtin and the arguments passed to the ASM builtins via TailCall.

Bug: v8:7700
Change-Id: I26de558fd961cb35b5c642430f9e2c8523ecf096
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4118741
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85009}
2022-12-23 11:38:31 +00:00
pthier
3fddd2e9a6 [maglev][arm64] Fix Int32DecrementWithOverflow
Source register has to be 32-bit.

Bug: v8:7700
Change-Id: Ica2a51de100d81bc36447988f6508800f87379ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4118740
Auto-Submit: Patrick Thier <pthier@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85008}
2022-12-23 11:16:40 +00:00
pthier
53314cdc78 Re-enable mjsunit/md5 for future/maglev
The issue causing this test to fail on the usban bot was fixed with
https://crrev.com/fcda478d890caea6bf04a50e6106682b64cf8d5a

Bug: v8:13611, v8:13612
Change-Id: I1d0a713160cdddf8623e767d43277a988509bce0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4110955
Auto-Submit: Patrick Thier <pthier@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85007}
2022-12-23 09:04:58 +00:00
v8-ci-autoroll-builder
b74fc57493 Update V8 DEPS (trusted)
Rolling v8/build: 92221be..ff6be8b

Rolling v8/buildtools/third_party/libc++abi/trunk: df3cc8e..dc82f30

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/1651224..ebbb83f

Rolling v8/third_party/depot_tools: cf31045..0b96058

Rolling v8/third_party/fuchsia-sdk/sdk: version:11.20221221.3.1..version:11.20221222.1.1

Change-Id: I4d28f339541d7ff5a4f717f92f8a83b511303980
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4121537
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@{#85006}
2022-12-23 03:44:35 +00:00
Hao Xu
8a795a593e [csa] Avoid calling to Builtin::StringEqual if possible
Check strings length before calling to Builtin::StringEqual. If length
is not equal, the strings must also be not equal.

Change-Id: I4f8c2e72720d0919b3fd57013d06dcc8d83f2ab4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4090410
Commit-Queue: Hao A Xu <hao.a.xu@intel.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85005}
2022-12-23 03:11:00 +00:00
Choongwoo Han
3175117293 [wasm] Recycling locals array when building a graph.
Wasm graph builder duplicates a vector of local variables for each block or branch, but it never frees them. So, if a single function has a lot of local variables allocated, the graph builder bloats the memory.

This CL actively frees the locals vector and reuses them within the zone. It's easy to reuse them since the locals vector always have the same size. This saves 95% of memory for the reported wasm binary.

Bug: v8:13543
Change-Id: Ibf5e846b405adc24101ed79dd34d08160ceda2fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4112638
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Choongwoo Han <choongwoo.han@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#85004}
2022-12-22 19:28:27 +00:00
Shu-yu Guo
b69c3770b2 [ShadowRealm] Make CallSite#getFunction/getThis throw for ShadowRealm frames
This CL plugs the hole in the outside<-ShadowRealm direction (i.e.
getting a reference to an object inside of the ShadowRealm from outside
the ShadowRealm).

This is a follow-on CL to
https://chromium-review.googlesource.com/c/v8/v8/+/4108810, which
plugged the getFunction hole in the ShadowRealm<-outside direction (i.e.
getting a reference to an object outside of the ShadowRealm from inside
the ShadowRealm).

Bug: v8:1198
Change-Id: Ic06533ba8b1cc6477ef9d55a23cb8b0b6584d4a6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4115657
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85003}
2022-12-22 19:06:57 +00:00
Shu-yu Guo
5c7fca4a61 [string-iswellformed] Implement String#{is,to}WellFormed
Bug: v8:13557
Change-Id: I6fa772c70d8307eca047fd839058279ce244f0e0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4118066
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85002}
2022-12-22 18:04:40 +00:00
Shu-yu Guo
c74a6cd257 Revert "Reland "[static-roots] Enable static roots on supported configurations""
This reverts commit b247270178.

Reason for revert: Breaking Fuchsia build and blocking roll:
https://ci.chromium.org/ui/p/chromium/builders/try/fuchsia-binary-size/186323/overview

Original change's description:
> Reland "[static-roots] Enable static roots on supported configurations"
>
> This is a reland of commit c04ca9cc63
>
> Original change's description:
> > [static-roots] Enable static roots on supported configurations
> >
> > The static root values are not actually used yet.
> >
> > Bug: v8:13466
> > Change-Id: I85fc99277c31e0dd4350a305040ab25456051046
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4101880
> > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> > Commit-Queue: Olivier Flückiger <olivf@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#84850}
>
> Bug: v8:13466
> Change-Id: Id65bb5b19df999dfe930a78993e4bf3343d9f996
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4111641
> Auto-Submit: Olivier Flückiger <olivf@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Toon Verwaest <verwaest@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#84991}

Bug: v8:13466
Change-Id: I9a930649d5c5531f2b8d8472300f6efe3f75ae28
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4122795
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Owners-Override: Shu-yu Guo <syg@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#85001}
2022-12-22 17:45:08 +00:00
Toon Verwaest
fcda478d89 [maglev] Always initialize old_type in EnsureType
Bug: v8:7700, v8:13611, v8:13612
Change-Id: Ieaf510750f15dc2c96d8c3adba7ceaee7937c1f8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4120070
Reviewed-by: Patrick Thier <pthier@chromium.org>
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85000}
2022-12-22 17:37:50 +00:00
Milad Fa
a8f6a56e9a PPC/s390: [wasm] Fix printing of wasm-to-js frames
Port e17eee4894

Original Commit Message:

    After https://crrev.com/c/3859787 those frames would be printed like
    standard Wasm frames, but in the place of the WasmInstanceObject, they
    have a WasmApiFunctionRef object instead.
    So special-case the {WasmToJsFrame::instance()} to load the instance
    properly. Also special-case the {position()} accessor for imported
    functions.

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

Change-Id: I370bc4f4f84e1262c4542879b9058f6cf1d9f84e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4122830
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84999}
2022-12-22 16:40:41 +00:00
pthier
2f2e8c4024 [maglev] Fix negate 0 with smi feedback
With smi feedback, we use int32 operations for arithmetics.
When negating 0, we have to fallback to float as we can't represent -0
in int32. We can simply deopt in that case without causing a deopt loop, as a non-smi result will change the feedback to kSignedSmallInputs (from kSignedSmall).

Bug: chromium:1403102
Change-Id: Ic27c267349a1de6904639e91b1cade2c4f7d1fe2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4122829
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Auto-Submit: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84998}
2022-12-22 16:36:23 +00:00
Victor Gomes
20183a7916 [maglev][arm64] Fix ToBoolean
We should compare only 32 bits for smi when pointer compression
is enabled.

Bug: v8:7700
Change-Id: I6cbc22e57e873cb8ab3c26a4b655a393e258e697
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4122831
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84997}
2022-12-22 16:28:21 +00:00
Victor Gomes
8d49029b64 [maglev][arm64] Add CheckMaps
Bug: v8:7700
Change-Id: I7d4a194be5c488ab90e3684db2e63f42a0a9738a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4115759
Reviewed-by: Patrick Thier <pthier@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84996}
2022-12-22 15:07:40 +00:00
Qifan Pan
6c90e3a9b3 [turbofan] Support the rest of the BigInt comparisons
This CL introduced four more operators in TurboFan: BigIntLessThan,
BigIntLessThanOrEqual, and the corresponding speculative operators so
that all the BigInt comparisons are supported.

This CL also implemented fast paths for small BigInt inputs.

Bug: v8:9407
Change-Id: Iaa2d4dbebf68656d775a7feb65b97fb5c598ec23
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4111951
Commit-Queue: Qifan Pan <panq@google.com>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84995}
2022-12-22 15:00:10 +00:00
Qifan Pan
7396b09771 [turbofan] Collect BigInt64 feedback for tagged equality
Collect BigInt64 feedback when lhs and rhs reference the same value.

Bug: v8:9407
Change-Id: I1045d839da28b432fc343cbf9c98915509b7ed71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4111602
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Qifan Pan <panq@google.com>
Cr-Commit-Position: refs/heads/main@{#84994}
2022-12-22 14:48:34 +00:00
Clemens Backes
e17eee4894 [wasm] Fix printing of wasm-to-js frames
After https://crrev.com/c/3859787 those frames would be printed like
standard Wasm frames, but in the place of the WasmInstanceObject, they
have a WasmApiFunctionRef object instead.
So special-case the {WasmToJsFrame::instance()} to load the instance
properly. Also special-case the {position()} accessor for imported
functions.

R=victorgomes@chromium.org

Bug: chromium:1402270
Change-Id: I39805805a50e7a73d7d8075c63c46bdf5a373a33
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4116778
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84993}
2022-12-22 13:56:23 +00:00
Manos Koukoutos
bd1562caa2 [wasm] Pass module to wrapper compilation
Pass the {WasmModule} in the {CompilationEnv} argument in
{CompileWasmImportCallWrapper} to {BuildWasmToJSWrapper}, which in
turn passes it to {FromJS}.

Bug: chromium:1401934
Change-Id: I8d689d881e4d8013cd4dcb6cfb54d663d1c4ec38
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4120443
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84992}
2022-12-22 13:47:35 +00:00
Olivier Flückiger
b247270178 Reland "[static-roots] Enable static roots on supported configurations"
This is a reland of commit c04ca9cc63

Original change's description:
> [static-roots] Enable static roots on supported configurations
>
> The static root values are not actually used yet.
>
> Bug: v8:13466
> Change-Id: I85fc99277c31e0dd4350a305040ab25456051046
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4101880
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Olivier Flückiger <olivf@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#84850}

Bug: v8:13466
Change-Id: Id65bb5b19df999dfe930a78993e4bf3343d9f996
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4111641
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84991}
2022-12-22 13:06:38 +00:00
Olivier Flückiger
b97130344d [static-roots] Avoid accessing uninitialized read only roots
In the future we want to be able to return statically known pointers of
read only roots. To be able to do so we must ensure that heap
initialization code does not rely on the fact that the root is not
initialized yet and the accessor returns null. Instead we must
explicitly test if the root is initialized.

Bug: v8:13466
Change-Id: Id2b93388f499a58ff26ca5fb566b4538e00916e3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4106452
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84990}
2022-12-22 11:37:40 +00:00
Victor Gomes
b844614174 [maglev][arm64] Add TestUndetectable and TestTypeOf
Bug: v8:7700
Change-Id: I8212e14570481d76b26782afbd721f1884fae009
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4115753
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84989}
2022-12-22 10:30:47 +00:00
Victor Gomes
004fbc0196 [maglev] Share LogicalNot implementation
Bug: v8:7700
Change-Id: I67bc1ab26ec1065a6ede1ba2ada059d800adb93b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4110807
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84988}
2022-12-22 09:36:49 +00:00
Matthias Liedtke
2c36e2213f [wasm.gc] WebAssembly.Table: Allow 'i31ref' type specifier
Bug: v8:7748
Change-Id: Iec34e16219a76e83cfadf7724fda5a6cfa80f69c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4115748
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Auto-Submit: Matthias Liedtke <mliedtke@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84987}
2022-12-22 09:02:39 +00:00
Liu Yu
ac65192ce2 [loong64][mips64][centry] Remove the unused SaveFPRegsMode parameter
Port 605e46479a

Bug: v8:13606
Change-Id: I8dc8ba9c8ec57d01e290f1817d3fa1f8aa17263a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4117943
Auto-Submit: Liu Yu <liuyu@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#84986}
2022-12-22 08:11:52 +00:00
v8-ci-autoroll-builder
c3302c902a Update V8 DEPS (trusted)
Rolling v8/build: 8b3f134..92221be

Rolling v8/buildtools: 600a615..134af4c

Rolling v8/buildtools/third_party/libc++/trunk: 7b20455..7c5e4b4

Rolling v8/buildtools/third_party/libc++abi/trunk: 123239c..df3cc8e

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/1e43416..1651224

Rolling v8/third_party/depot_tools: 5decb17..cf31045

Rolling v8/third_party/fuchsia-sdk/sdk: version:11.20221219.3.1..version:11.20221221.3.1

Rolling v8/tools/clang: cab032b..3b54a13

Change-Id: Iac0610e49ec38efc0cebb8c1d09ba07941596561
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4121196
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@{#84985}
2022-12-22 04:10:28 +00:00
Kunihiko Sakamoto
90eeb55fc7 Clear compilation cache in Isolate::ClearCachesForTesting()
This prevents blink leak detection from complaining when there is a
reference from SharedFunctionInfo to a blink object that is a target of
leak detection.

Bug: chromium:1393246
Change-Id: I9381f5e27e90c77e4ed721fcc3d257b5f6edd212
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4114056
Commit-Queue: Kunihiko Sakamoto <ksakamoto@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84984}
2022-12-22 01:39:38 +00:00
Milad Fa
dcba0f0201 PPC[liftoff]: Implement FP promote and demote
Change-Id: I9e2c79d9b1b679c2780135fe02c14f526bdf93f0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4120355
Reviewed-by: Vasili Skurydzin <vasili.skurydzin@ibm.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#84983}
2022-12-21 19:34:11 +00:00
Adam Klein
477116fb5a Skip mjsunit/md5 under --future due to maglev
It's failing regularly on the ubsan bot, closing the tree.

This CL also adds a 'variant == future' section in the mjsunit.status
file to enable easy disabling of maglev-specific failures.

No-Tree-Checks: true
Bug: v8:13612
Change-Id: I3c0f7725e1fb36577e97c662cd3830c64ba298e0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4120554
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84982}
2022-12-21 19:02:26 +00:00
Andrew Grieve
fd81728f2e Depend direclty on run_mksnapshot_default rather v8 for v8_external_startup_data_assets
This will prevent building v8 arm code when all we want is the snapshot
file.

Bug: chromium:1402705
Change-Id: If8137e8ef79ff1943c24d5bd71d8374e59bdf561
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4117695
Commit-Queue: Adam Klein <adamk@chromium.org>
Auto-Submit: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84981}
2022-12-21 18:40:14 +00:00
Olivier Flückiger
bbe24f16c6 [static-roots] Clear string padding faster
Clearing the exact amount of padding bytes apparently measurably
regresses some string operations. For freshly allocated strings we can
write into the payload area too, since that one is being written later.
This allows us to clear a statically known amount of padding bytes which
greatly speeds up the initialization.

Bug: chromium:1402898
Bug: v8:13466
Change-Id: Ib5fd4877a88c88fbf5247ed0e2c4b2de1775623d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4118772
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84980}
2022-12-21 17:31:57 +00:00
Victor Gomes
dc950c32bd [maglev][arm64] Add Switch and Generator IRs
Bug: v8:7700
Change-Id: I63012676d85a97a06b2869666d17b9410e7ff71d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4118773
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84979}
2022-12-21 17:10:42 +00:00
Victor Gomes
da4fa98a7d [maglev][arm64] Add ThrowIf*** IRs
Bug: v8:7700
Change-Id: I7229a10e5b7d0236a90a4d0a3456e1730fe35095
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4120066
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84978}
2022-12-21 14:43:56 +00:00
Manos Koukoutos
3a232e7ab8 Revert "[maglev] Destroy jobs on BG thread"
This reverts commit 8623fd473b.

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

Original change's description:
> [maglev] Destroy jobs on BG thread
>
> Maglev job destruction is suprisingly expensive, taking up roughly a
> third of total finalization time. Rather than destroying jobs as part of
> finalization, re-post them to the concurrent dispatcher to be destroyed
> in the background
>
> Bug: v8:7700
> Change-Id: I450d8a7b49737504c2aaebbfa7754e0ae15e7f05
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4111238
> Reviewed-by: Victor Gomes <victorgomes@chromium.org>
> Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#84970}

Bug: v8:7700
Change-Id: I797a34529652c814b11cd13309b2d3a5ff68266e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4115747
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Manos Koukoutos <manoskouk@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84977}
2022-12-21 14:20:51 +00:00
Victor Gomes
9869766097 [maglev][arm64] Add BranchIfReceiver + BranchIfUndefOrNull
Bug: v8:7700
Change-Id: I5b80062b463b07a9354909638415d834e128ec55
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4111529
Commit-Queue: Patrick Thier <pthier@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84976}
2022-12-21 13:44:50 +00:00
pthier
0e0057a7d8 [maglev][arm64] Port CallBuiltin
Drive-by: remove restriction to builtins without VarArgs.

Bug: v8:7700
Change-Id: I7a18626bc94460a53f7f25aedf1e30e79b3162ee
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4118867
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84975}
2022-12-21 13:21:33 +00:00
Olivier Flückiger
f6d85958e0 [static-roots] Use operator== in HeapObject::Is##Type
Replace SafeEquals with normal equals operator in `IsUndefined` and
friends. This will allow us to have more efficient checks with static
roots, since pointers do not need to be decompressed.

After this change calling Is##Type on CodeObjects is no longer possible.
This is ensured by dchecks in operator==. The change might reveal more
callers that need to be fixed.

Bug: v8:13466
Change-Id: I3353d10aebb7a192a77281c44e4159f0da336297
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4106849
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84974}
2022-12-21 12:33:34 +00:00