Commit Graph

78565 Commits

Author SHA1 Message Date
Jakob Kummerow
8d7f885ff1 [wasm] Fix disassembler for imported globals
More precisely: when imported globals shift the indices of non-imported
globals, fix OOB accesses when disassembling the latter.

This CL is a refactoring of crrev.com/c/3994346 by andih@google.com.

Fixed: chromium:1380432
Change-Id: Ib9e3b52e03b3004d5b703bf8e3f74815b476ebf4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3998659
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org>
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84023}
2022-11-02 19:14:29 +00:00
Shu-yu Guo
381b8f55e9 [shared-struct] Fix in/out-of-object property storage
In a few places, shared structs currently incorrectly assume all storage
is in-object. This CL fixes those and rename
CSA::StoreJSSharedStructInObjectField to CSA::StoreSharedObjectField to
reflect the genericity.

Bug: v8:12547
Change-Id: I7c155b6bc584fbdcdbd484fda38f9f8a1940953d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3997700
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84022}
2022-11-02 18:50:49 +00:00
Anton Kirilov
103c34991b [wasm-simd][arm64] Improve the v128.any_true lowering
Use instructions that have lower latency and/or higher throughput.

Change-Id: Ibadb82a1470327105ba349f1e40175ea7044f2db
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3968478
Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84021}
2022-11-02 18:32:39 +00:00
Milad Fa
067ede0ad4 PPC [simd]: correct the lane order of ext mul result
Change-Id: I5718bac0374a25600eb4d791af792eb6ab01a035
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3997699
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#84020}
2022-11-02 18:18:29 +00:00
Michael Achenbach
bcf8d26426 Revert "[handles] Return node blocks for traced handles"
This reverts commit 7caf58b5fd.

Reason for revert: crashy gpu and blink tests:
https://ci.chromium.org/ui/p/v8/builders/ci/Linux%20V8%20FYI%20Release%20(NVIDIA)/21849/overview
https://ci.chromium.org/ui/p/v8/builders/ci/Mac%20V8%20FYI%20Release%20(Intel)/19094/overview
https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Blink%20Linux/20919/overview

Original change's description:
> [handles] Return node blocks for traced handles
>
> Return empty node blocks back to the OS. Keep one block around to
> support local allocation/deallocation patterns for up to 256 nodes.
>
> Bug: v8:13372
> Change-Id: Ib9e3a1b9a70fa4ad2b52e8479cc46e3c7316cd18
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3973270
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#84011}

Bug: v8:13372
Change-Id: Ib1c765649b63ae5ae5924d9c3c711aae7af7719b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3999549
Owners-Override: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84019}
2022-11-02 18:07:09 +00:00
Daniel Lehmann
28f63891a8 [wasm] add partial disassembler test for Wasm MVP
The output of the disassembler is compared against a WebAssembly text
file that is also used to generate the module bytes given as input to
the disassembler.

This will be extended to cover all instructions/constructs of Wasm MVP
in the future. Also more tests are to be added, e.g., for the Wasm SIMD
and GC extensions.

Change-Id: I44648b295accfe91bbd0780170a2705f8a38b766
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3985913
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Daniel Lehmann <dlehmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84018}
2022-11-02 17:22:50 +00:00
Leszek Swirski
be5c44aff0 [maglev] Fix LogicalNot fast-path
We forgot to negate the boolean.

Bug: v8:7700
Change-Id: Ieac12c8102385714342af83cf3f44f4fe23000d1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3999286
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84017}
2022-11-02 16:46:49 +00:00
Leszek Swirski
334c5e71b0 [maglev] Use the lookup_start_object for constant load
Make sure to look up whether the lookup_start_object is a Constant when
calculating access infos, rather than the receiver, as it's the
lookup_start_object that we actually want to start the lookup on.

Bug: v8:7700
Change-Id: I7ec5b547d343ef04659fd5df56fceb5b8e05f928
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4000320
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@{#84016}
2022-11-02 16:43:18 +00:00
Leszek Swirski
e2bfe48702 [maglev] Fix inlining id for source positions
Bug: v8:7700
Change-Id: I121b6445a877d7c21932a293d5e7f3bad21200d6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3999285
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84015}
2022-11-02 16:37:19 +00:00
Victor Gomes
9dd724080d [maglev] Add support to clobbered input to reg alloc
We use USED_AT_START to encode when a register needs to be clobbered.
As an example, we simplify StringAt.

Bug: v8:7700
Change-Id: I05fe852415c696b76e23950949772dc5cdd2ecca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3999731
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@{#84014}
2022-11-02 16:33:18 +00:00
Olivier Flückiger
5a2eb4a2aa [ycm] Fix YouCompleteMe config
The .ycm_extra_conf.py is out of date with the current build settings
and ycm versions. In particular, ycm expects a `Settings` function,
a couple of more flags need to be passed and some includes are marked
-isystem now. Also, we can use the C++ standard from the ninja files
instead of hard-coding it.

Change-Id: Ibaed29eb341346a86b6b736f95c97b41957f62de
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3980257
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Olivier Flückiger <olivf@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84013}
2022-11-02 15:59:48 +00:00
Leszek Swirski
cecd01ac18 [maglev] Fast path instanceof
Copy the instanceof fast path from TurboFan, which emits an
'OrdinaryHasInstance' when there is no @@hasInstance symbol (which can
eventually become a constant true/false if we can look through the
prototype chain), and a direct call of @@hasInstance otherwise.

In particular, the call to @@hasInstance requires a continuation builtin
(to call ToBoolean), so add support for these too.

Bug: v8:7700
Change-Id: I14aee4346e98cd650f190b811cc7a733e33addae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990844
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84012}
2022-11-02 14:37:48 +00:00
Michael Lippautz
7caf58b5fd [handles] Return node blocks for traced handles
Return empty node blocks back to the OS. Keep one block around to
support local allocation/deallocation patterns for up to 256 nodes.

Bug: v8:13372
Change-Id: Ib9e3a1b9a70fa4ad2b52e8479cc46e3c7316cd18
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3973270
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84011}
2022-11-02 14:02:00 +00:00
Michael Lippautz
c0dba826d8 [handles] Improve node bounds allocation
Reserve node bounds upfront instead of growing the vector.

Bug: v8:13372, chromium:1379837
Change-Id: Ibf2e9b984c476358f9f5cc7f11feeac620ae40ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3998817
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84010}
2022-11-02 13:45:19 +00:00
Anton Bikineev
2792a669e4 cppgc: young-gen: Support young generation with stack
Before this CL Oilpan young generation didn't support running with
stack. The problem was in initializing stores that don't have the write
barrier. If a GC happens during object initialization, the following
pointer stores can be missed:

struct GCed: GarbageCollected<GCed> {
  GCed():
    m1(MakeGarbageCollected<>()),  // calls GC
    m2(MakeGarbageCollected<>())   // old-to-young ref missing barrier
  {}
  ...
};

The CL solves it by recording in-construction objects in a dedicated
remembered-set, which is retraced on next GCs.

Bug: chromium:1029379
Change-Id: I17975e2e2253b2792f71fb64a639e5bdb2ef4935
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990829
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84009}
2022-11-02 13:03:18 +00:00
Victor Gomes
07864a633e [maglev] Fix calling a js class constructor
When skipping the Call stub, we should make sure that
the target is a callable different than a JS class constructor.

If it is a class constructor, then we need to thrown
an exception, see:
https://source.chromium.org/chromium/chromium/src/+/main:v8/src/builtins/x64/builtins-x64.cc;drc=a02c56694fd5e0c64072293040e51837204c7955;l=2462

Bug: v8:7700, chromium:1379570
Change-Id: I5b78866b4fa3ec4620fad23aa504d7cbf1088c3d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3999132
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84008}
2022-11-02 11:58:15 +00:00
Leszek Swirski
16ed725c09 [maglev] Fix ToName/ToObject node re-use
The maglev graph builder assumes that values stored on registers were
created while visiting that bytecode, so that it can install the
appropriate lazy deopt information. For value re-use, moving between
registers, we therefore have to use the MoveNodeBetweenRegisters method,
otherwise we get DCHECK failures (and might install incorrect lazy deopt
info).

Fixed: v8:13444
Change-Id: I3b85ca20550f3224811c8505a727c32a500ac5c6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3999280
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84007}
2022-11-02 11:22:39 +00:00
Pan, Tao
ef2cc0d66d [lookup] Fix condition of concurrent read ThinStrings
The CL (crrev.com/c/2905608) make ThinStrings concurrently readable, but
the condition was set incorrectly.

Change-Id: I1cc2c824f75fde7ec6a2343b8650cdfeb475427c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3973071
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Tao Pan <tao.pan@intel.com>
Cr-Commit-Position: refs/heads/main@{#84006}
2022-11-02 10:26:30 +00:00
Leszek Swirski
88511bb101 Revert "[tiering] Reset profiler ticks after OSR compilation"
This reverts commit 35c0931420.

Reason for revert: Looks like this is regressing our benchmarks (see https://crbug.com/1379440)

Original change's description:
> [tiering] Reset profiler ticks after OSR compilation
>
> After concurrent OSR was enabled, JS execution may stop not at OSR entry
> when concurrent OSR compilation finish. If no more feedback change,
> without reset profiler ticks, OSR urgency is increased from 0 by 1 per
> profiler tick after concurrent OSR compilation finish, it makes new
> OSR compilation can be quickly triggered, reset profiler ticks after OSR
> compilation for triggering the later OSR compilation under the same
> condition with the first OSR compilation. For example:
> for (;;) {
>   for (;;) {
>   } // OSR entry
>   for (;;) {
>     <- Executing JS code here when the OSR compilation finish
>   }
> }
> 1. We start executing the nesting loop.
> 2. We reset profiler ticks once feedback change.
> 3. If the first inner loop happens to be executing after accumulating
> enough no feedback change profiler ticks, we start concurrent OSR whose
> entry belongs to the first inner loop.
> 4. We continue executing the nesting loop, if no new feedback change,
> increasing profiler ticks again.
> 5. Concurrent OSR whose entry belongs to the first inner loop completes.
> 6. If the second inner loop happens to be executing, without reset
> profiler ticks, we immediately start concurrent OSR whose entry belongs
> to the second inner loop.
> The second OSR code is almost same quality with the first OSR code.
> This CL can reduce OSR compilation amount by ~3.9% (2311 -> 2224) when
> running JetStream2.1.
>
> Change-Id: I4d64cd8963fd2b99d88a3c218841fe5d7c4dc34f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3819421
> Commit-Queue: Tao Pan <tao.pan@intel.com>
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#83944}

Fixed: chromium:1379440
Change-Id: Icc578316aa259b5e8e4a470cae2106c85594e4ed
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3998651
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#84005}
2022-11-02 10:05:48 +00:00
Marja Hölttä
1e463aca7c [rab/gsab] Fix %TypedArray%.from
Bug: v8:11111, chromium:1378900
Change-Id: I01548502e9aa101e9e60bae01d9b24f8aa417bca
Fixed: chromium:1378900
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3991492
Auto-Submit: Marja Hölttä <marja@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84004}
2022-11-02 09:25:20 +00:00
Marja Hölttä
9d0de43f39 Try 2: Land --omit-default-ctors
Bug: v8:13091
Change-Id: Ie7919904852043765c346630d0435458d437962e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3991026
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84003}
2022-11-02 09:21:35 +00:00
Dominik Inführ
6eb8316e7a [execution] Report first old space page as CrashKey
Maps are now in old space, so start to report the first page in old
space now.

Bug: v8:12578
Change-Id: Icf08c9074558a2d47bb9f1f8df72cec9668d2b4e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3986087
Auto-Submit: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84002}
2022-11-02 08:26:30 +00:00
Milad Fa
08c5a39495 PPC[liftoff]: Implement simd integer to fp extension
Change-Id: I64520cd3a93821ad51f846cb2ed5475a49015734
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3996805
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#84001}
2022-11-01 17:17:14 +00:00
Maya Lekova
c2c2ef3775 [test] Proper fix for float overflow in uint64 tests
Bug: chromium:1379467
Change-Id: Ie82162b2a04a1b52edba21765e6d9c68a6fb7313
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3991016
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84000}
2022-11-01 09:39:49 +00:00
Clemens Backes
2f5fbb1381 [liftoff][arm64] Remove frame size padding to 4k
Before https://crrev.com/c/3054114 we needed to pad the frame size to 4k
so that it fits into a 'sub' instruction as an immediate.
Since frame sizes larger than 4k use special OOL code now, this is not
required any more.
We thus remove the padding to save stack space.

R=ahaas@chromium.org

Bug: chromium:1379364
Change-Id: I155628141d2c0438415ccff36a4de8f7d1ad4fd3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3991050
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83999}
2022-10-31 16:44:29 +00:00
Victor Gomes
01a368bb49 [cleanup][x64] Remove unused label from InvokePrologue
Change-Id: I2b11ec593e59d631bc4ad6fad75651d4f9db593a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3991014
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83998}
2022-10-31 14:56:49 +00:00
Andreas Haas
055d2d877e [wasm] Unify builtins for AtomicWait for 32-bit and 64-bit
The timeout parameter of WebAssembly's Atomic.Wait is of type I64. There
existed two sets of builtins to pass this I64 parameter from generated
code to a runtime function: one set for 64-bit platforms where the
parameter was passed directly, and one set for 32-bit platforms where
the parameter was passed as two I32 values.

With this CL we first convert the timeout parameter to a BigInt in the
generated code and then pass the BigInt to a unified builtin. Thereby
the builtin can be written completely in Torque instead of CSA.

For I64AtomicWait also the expected parameter is of type I64, so the
same handling is added for the expected parameter.

R=clemensb@chromium.org
CC=​​manoskouk@chromium.org

Bug: v8:13427
Change-Id: Ia2bb77081cf0db3615d965dbe0e5b97b806a8d1b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990690
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83997}
2022-10-31 14:34:55 +00:00
Pan, Tao
b571605b00 [tiering] Don't mark optimization for big function
Compilation job for big function is aborted in compilation pipeline
currently, compilation job for big funciton can be avoided by not
marking optimization. Furthermore, set big interrupt budget for decrease
times of interrupt budget underflow.

Change-Id: I2940f0d5529a665abbfef165b93568e210217082
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3973639
Commit-Queue: Tao Pan <tao.pan@intel.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83996}
2022-10-31 14:33:50 +00:00
Clemens Backes
763393fe77 [wasm] Clean up atomic opcode decoding
Instead of storing the return type in a local variable separately, just
get it from the signature when needed.

R=ahaas@chromium.org

Change-Id: If4c47fb77508b94ed65a2c27abc660e62235d18d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3991015
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83995}
2022-10-31 14:32:48 +00:00
Hao Xu
7112fe658d [turbofan][turboshaft] Improve the reduction of UintNLessThanOrEqual
Add "x <= 0 => x == 0" reduction when "x" is uint. This allows x64 to select shorter instructions:

Before:
  REX.W cmpq r9,0x0
  jna addr

After:
  REX.W testq r9,r9
  jz addr

This optimization is also ported to turboshaft.

Bug: v8:12783
Change-Id: I87dfd5879c047bb57d30e7a51a309106e3a519ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3967480
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Hao A Xu <hao.a.xu@intel.com>
Cr-Commit-Position: refs/heads/main@{#83994}
2022-10-31 14:31:45 +00:00
Victor Gomes
fbd4541fe7 [maglev] Tag Int32Constant in Phi boundaries
An Int32Constant might need to be tagged in Phi boundaries.
This exposes the Graph's smi constants to frames state
merger logic.

Bug: v8:7700, chromium:1378814, chromium:1379571
Change-Id: Ib373b44a76324eeb23cf9fef4483f70160cd54b4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3993220
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83993}
2022-10-31 14:30:41 +00:00
Maya Lekova
822959599a Revert "Update V8 DEPS (trusted)"
This reverts commit e47af00448.

Reason for revert: Clang roll closed the tree - https://bugs.chromium.org/p/v8/issues/detail?id=13438

Original change's description:
> Update V8 DEPS (trusted)
>
> Rolling v8/third_party/fuchsia-sdk/sdk: version:10.20221028.1.1..version:10.20221029.1.1
>
> Rolling v8/tools/clang: 38497db..df74e29
>
> Change-Id: Ib9b3a18e4f5cfc855adc929ffeed051b94992677
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3988973
> 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@{#83991}

No-Tree-Checks: true
Change-Id: I4b5f918f5721e901e09aaf73568f3cdfcf19c88f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3991017
Owners-Override: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83992}
2022-10-31 14:10:59 +00:00
v8-ci-autoroll-builder
e47af00448 Update V8 DEPS (trusted)
Rolling v8/third_party/fuchsia-sdk/sdk: version:10.20221028.1.1..version:10.20221029.1.1

Rolling v8/tools/clang: 38497db..df74e29

Change-Id: Ib9b3a18e4f5cfc855adc929ffeed051b94992677
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3988973
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@{#83991}
2022-10-30 03:54:37 +00:00
Thibaud Michaud
4902d55fd6 [disasm] Fix FMA disassembly
R=gdeepti@chromium.org

Bug: v8:13431
Change-Id: I26e5e1097913f03bc8f46a2fdb31da6864eb87b3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990785
Auto-Submit: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83990}
2022-10-29 10:00:44 +00:00
Tobias Tebbi
b231572f8f [turboshaft] fix gcc build for SnapshotTable
https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20gcc%20-%20builder/1452/overview

Change-Id: Ifa02b725a6e01976f2eb5b54d427acf137e6c2f8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990830
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
Auto-Submit: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83989}
2022-10-29 07:10:04 +00:00
v8-ci-autoroll-builder
68511f137e Update V8 DEPS (trusted)
Rolling v8/build: 9ce69a9..dad0f9c

Rolling v8/buildtools: c50c0de..74edfb8

Rolling v8/buildtools/linux64: git_revision:11dc0b1f438bd26380774e9d50fd4c63f346d41a..git_revision:a4d67be044b42963de801001e7146f9657c7fad4

Rolling v8/buildtools/third_party/libc++/trunk: 47b3117..37a5b4f

Rolling v8/buildtools/third_party/libc++abi/trunk: c7b6fcf..8dd4051

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/d2c6581..3ffa6b2

Rolling v8/third_party/fuchsia-sdk/sdk: version:10.20221027.2.1..version:10.20221028.1.1

Rolling v8/third_party/instrumented_libraries: 03ce9f0..7410f80

Rolling v8/third_party/jinja2: ee69aa0..4633bf4

Rolling v8/third_party/markupsafe: 1b882ef..13f4e8c

Change-Id: I5f96c730fd4222fb1ad5c64152f3d612aa4ac1e5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3988968
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@{#83988}
2022-10-29 03:53:34 +00:00
Shu-yu Guo
8b35091b2d Reland "[Promise.any] Fix errors allocation"
This is a reland of commit e08fa94bbc

Changes since revert:

Use max(remainingElements - 1, index + 1) instead of index + 1 as
newCapacity computation to avoid excessive allocations causing the
timeout.

Original change's description:
> [Promise.any] Fix errors allocation
>
> Bug: chromium:1379054
> Change-Id: Ibfcdd4ddc3c9a26471094074c8e7810d93abc898
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3988924
> Commit-Queue: Marja Hölttä <marja@chromium.org>
> Auto-Submit: Shu-yu Guo <syg@chromium.org>
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#83968}

Bug: chromium:1379054
Change-Id: Ic788b8d0b42f4e24eaf8b2f2d05b24390fda247b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990627
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83987}
2022-10-28 18:00:59 +00:00
Milad Fa
4d5e5a0940 PPC[liftoff]: Implement simd128 bitwise ops
Change-Id: I6ffa0e5827cdc30d933ef888405c633d5a47545f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3989144
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#83986}
2022-10-28 16:38:39 +00:00
Milad Fa
708d75cd4c Introduce CONSTEXPR_UNREACHABLE
g++ versions <= 8 cannot use UNREACHABLE() in a
constexpr function. As a workaround a new macro is defined to
instead use `abort` if this feature is not properly handled by the
compiler.

Change-Id: Id6daf02b86c38daa12b7e6f42629091c9833f6fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3988005
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#83985}
2022-10-28 16:33:49 +00:00
Thibaud Michaud
45427e4d77 [wasm][debug] Generate stack debug info on throw
R=clemensb@chromium.org

Bug: chromium:1378272
Change-Id: I79a22864914483e4f68f6d666dd2d8039d76b876
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990845
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83984}
2022-10-28 16:02:49 +00:00
Victor Gomes
d36d2561cb Reland "[maglev] Skip CallFunction stub when we know the target"
This is a reland of commit 5d2cb9bdd2
Fix this by not embedding the pointer directly

Original change's description:
> [maglev] Skip CallFunction stub when we know the target
>
> Bug: v8:7700
> Change-Id: Ie896f8dc40892c16995947b90b612a8091569929
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3986726
> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> Commit-Queue: Victor Gomes <victorgomes@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Auto-Submit: Victor Gomes <victorgomes@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#83973}

Bug: v8:7700
Fixed: chromium:1378814
Change-Id: I3eb1b95314d1f31d0d590e0a4643d58f4c161a83
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3991027
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83983}
2022-10-28 15:16:49 +00:00
Igor Sheludko
91869ce45e [ext-code-space][cleanup] Remove V8_REMOVE_BUILTINS_CODE_OBJECTS
... which is now an alias for V8_EXTERNAL_CODE_SPACE_BOOL.

Bug: v8:11880
Change-Id: I6fe3ee1ab7de7820671dc1543b233dbe18bd88d1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990752
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83982}
2022-10-28 14:06:59 +00:00
Leszek Swirski
e3d019e12e [maglev] Extract out DeoptFrame from DeoptInfo
Extract out a concept of a DeoptFrame from DeoptInfo, which separates
the frame state (like bytecode offset and registers) from deopt
information (like reason and PC).

The DeoptFrame is additionally subclassed to a separate
InterpretedDeoptFrame (with some tagged union magic rather than 'proper'
subclassing so that in the future all DeoptFrames are the same size and
aren't truncated by casting). This way we can add different frames in
the future, in particular builtin continuation frames.

Also this cleans up parent walks, since we no longer walk the caller
state and compilation unit separately.

Bug: v8:7700
Change-Id: I1cecb3ae805c55235b6d74ec114d72de98d3751e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3985914
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@{#83981}
2022-10-28 13:51:41 +00:00
Toon Verwaest
b391b42ac6 [maglev] Use unsafe smi untag where possible
Bug: v8:7700
Change-Id: Ib99c3641ebcf5d43cc0268271b5791e757ff13c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990750
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83980}
2022-10-28 13:28:08 +00:00
Toon Verwaest
6cf7acb027 [maglev] Support non-growing transitioning stores
As a drive-by-fix this disables non-transitioning stores to constant
fields.

Bug: v8:7700
Change-Id: I8e8b8b126c2b1099af7953cb65827405bb583106
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990685
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83979}
2022-10-28 13:27:05 +00:00
Matthias Liedtke
9e2b7c683f Revert "[maglev] Skip CallFunction stub when we know the target"
This reverts commit 5d2cb9bdd2.

Reason for revert: Test failure for mjsunit/regress/regress-crbug-762472 in maglev variant.
https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20debug/43512/overview

Original change's description:
> [maglev] Skip CallFunction stub when we know the target
>
> Bug: v8:7700
> Change-Id: Ie896f8dc40892c16995947b90b612a8091569929
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3986726
> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> Commit-Queue: Victor Gomes <victorgomes@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Auto-Submit: Victor Gomes <victorgomes@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#83973}

Bug: v8:7700
Change-Id: I20f7a76df4721fc9e26b36984003921f2b47646e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990751
Owners-Override: Matthias Liedtke <mliedtke@chromium.org>
Auto-Submit: Matthias Liedtke <mliedtke@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#83978}
2022-10-28 12:35:59 +00:00
Marja Hölttä
1e199f11a6 [compiler] Fix the type of FindNonDefaultConstructorOrConstruct
Object doesn't mean an Object, but JSObject.

Bug: v8:13091,chromium:1374995
Change-Id: I7a9eef3de195c1aa7f2afd5ac3dbcac59b8b0781
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990786
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Auto-Submit: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83977}
2022-10-28 12:33:29 +00:00
Tobias Tebbi
6ab695c908 [turboshaft] avoid assertion violation caused by unreachable code
Fixed: chromium:1376861

Change-Id: Iec3101ab506b43c0dc4bead3742132c479301e26
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990783
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Auto-Submit: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83976}
2022-10-28 12:00:10 +00:00
Toon Verwaest
ba091da0b0 [maglev] Unsafely untag known smis
Bug: v8:7700
Change-Id: I60800b2a1ba9226289ca679ecf71766199b95850
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3987863
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83975}
2022-10-28 10:29:19 +00:00
Matthias Liedtke
6127ada1be Revert "[Promise.any] Fix errors allocation"
This reverts commit e08fa94bbc.

Reason for revert: Failing promise-overflow-2 test in CI: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20debug/43509/overview

Original change's description:
> [Promise.any] Fix errors allocation
>
> Bug: chromium:1379054
> Change-Id: Ibfcdd4ddc3c9a26471094074c8e7810d93abc898
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3988924
> Commit-Queue: Marja Hölttä <marja@chromium.org>
> Auto-Submit: Shu-yu Guo <syg@chromium.org>
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#83968}

Bug: chromium:1379054
Change-Id: Ia3b90cc50adef5a27727b280b9499a9a902d9d60
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3990784
Owners-Override: Matthias Liedtke <mliedtke@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83974}
2022-10-28 10:08:40 +00:00