Commit Graph

70431 Commits

Author SHA1 Message Date
Al Muthanna Athamina
149f1693cb Update V8 DEPS manually
Include changes from https://crrev.com/ff4b382aca5ad5077883bec9e4ac3dc64776902a

Bug: chromium:1233409
Change-Id: I571feec6e3d56ade7ad167f2e0b7bebb5c9ddf8b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055300
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75939}
2021-07-27 13:57:33 +00:00
Clemens Backes
593fbb69c4 [liftoff] Push the instance as part of frame construction
Currently we first construct the frame (via
{TurboAssembler::EnterFrame}), then we spill the instance to the
respective slot (via {LiftoffAssembler::SpillInstance}). Instead, we
should already spill the instance as part of frame construction. That
allows for a more compact instruction to be used ("push" instead of
"mov" on Intel), and on arm64 even allows to merge pushing into an
existing instruction (where we currently push the zero register x31
instead).

This makes the prologue more similar to what TurboFan generates in
{TurboAssembler::AssembleConstructFrame} (which does not use
{TurboAssembler::EnterFrame}).

R=ahaas@chromium.org

Bug: v8:12017
Change-Id: Ibb4a38d2049cff66fec9450db4f7f375d006beac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055302
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75938}
2021-07-27 13:37:53 +00:00
Thibaud Michaud
b86db1396a [wasm][eh] Encode values in WebAssembly.Exception
R=jkummerow@chromium.org

Bug: v8:11992
Change-Id: If62f2cdc080364dec796a836321110bf571769ef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049075
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75937}
2021-07-27 13:23:07 +00:00
Santiago Aboy Solanes
d938c10891 [compiler] Remove part of DescriptorArrayData serialization
Some of the fields come from MapRef calls and we have to still serialize
them while Map is bg-serialized. An alternative would be to move them to
MapData but that comes with a cost since different maps with the same
descriptor array wouldn't share said data.

Bug: v8:7790
Change-Id: I25d8eaf7b0a8bf7de0f21272cc6f86cc172b8b08
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3008640
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75936}
2021-07-27 11:27:17 +00:00
Michael Achenbach
fb0a2ea25e Revert "Reland "[build] Add V8-specific dcheck_always_on""
This reverts commit 67960ba110.

Reason for revert:
This has been properly fixed by https://crrev.com/c/3053740.
Now dcheck_always_on already defaults to false for subprojects
like V8 and no other switch is required. The switch didn't fully
work anyways due to https://crbug.com/1231890.

Original change's description:
> Reland "[build] Add V8-specific dcheck_always_on"
>
> This is a reland of cecc666f4d
>
> Depends on:
> https://crrev.com/c/3043611
>
> Original change's description:
> > [build] Add V8-specific dcheck_always_on
> >
> > This makes the V8 dcheck control independent of Chromium's and
> > prepares switching Chromium's default behavior without affecting V8
> > developers or builders.
> >
> > Preparation for: https://crrev.com/c/2893204
> >
> > Bug: chromium:1225701
> > Change-Id: I520b96019b04196f4420716ff3500ebd6c21666f
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3038528
> > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#75827}
>
> Bug: chromium:1225701
> Change-Id: I56568b78592addba01793d2d14f768c9ee10103d
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041670
> Reviewed-by: Liviu Rau <liviurau@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75839}

Bug: chromium:1225701, chromium:1231890
Change-Id: I7e27f5774d8e162977f30f685da4b15dadcc1084
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055294
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75935}
2021-07-27 11:14:57 +00:00
Jakob Gruber
7e97b2cffb [regexp] Remove experimental mode modifiers feature
The implementation came in with
https://chromium-review.googlesource.com/758999.

This feature was never enabled by default, is not used anywhere, and
is not on any standardization path.

Bug: v8:10953
Change-Id: Ia2b0a556c1fb504a4cd05bdfa9f0a9c5be608d26
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053589
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75934}
2021-07-27 08:43:03 +00:00
Santiago Aboy Solanes
5a352b395b [compiler] Mark FeedbackVector as NeverEverSerialized
Bug: v8:7790
Change-Id: I0d875d4a350d4e101534d82129cd7ef90f342738
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3008639
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75933}
2021-07-27 08:32:23 +00:00
Georg Neis
b63a596195 [deoptimizer] Finish concurrent sweeping before overwriting ByteArrays
Bug: chromium:1228036
Change-Id: I5abe7009920d2c8f81f024c9ae7bb6b13607da1a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054119
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75932}
2021-07-27 07:34:33 +00:00
Ng Zhi An
ec7171608b [codegen] Remove PrepareForTailCall
This is no longer used, tail calls are dealt with inside of
VisiTailCall.

Bug: v8:11879
Change-Id: I3e5b74c61c959a6697bc3fd05c8f9aa60cce9fa7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049570
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75931}
2021-07-26 21:53:53 +00:00
Junliang Yan
64d1947200 ppc: Add CNTTZW/CNTTZD instructions
Change-Id: I99448ed94e8ef0cb2ea9fdf6e629757bda595d54
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054472
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75930}
2021-07-26 20:52:07 +00:00
Peter Kasting
28661339c7 Fix an instance of -Wunused-but-set-variable.
Bug: chromium:1203071
Change-Id: I09724552731594ddf18358d29cdc243cb696652d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053617
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75929}
2021-07-26 20:52:03 +00:00
Zhi An Ng
1fc4ad83f3 Revert "Reland^2 "[sparkplug] Enable sparkplug by default on desktop""
This reverts commit 1494106756.

Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20gc%20stress/34588/overview

Original change's description:
> Reland^2 "[sparkplug] Enable sparkplug by default on desktop"
>
> This is a reland of 0f79565bb7
> which is a reland of 85e6c4b643
> GC-stress issue was still flushing, now fixed for real with
> https://crrev.com/c/3054117.
>
> Relanding without changes.
>
> TBR=verwaest@chromium.org
>
> Original change's description:
> > Reland "[sparkplug] Enable sparkplug by default on desktop"
> >
> > This is a reland of 85e6c4b643
> > GC-stress issue was flushing, fixed with https://crrev.com/c/3048172.
> > Relanding without changes.
> >
> > TBR=verwaest@chromium.org
> >
> > Original change's description:
> > > [sparkplug] Enable sparkplug by default on desktop
> > >
> > > Bug: v8:11420
> > > Change-Id: I07ac7f30b5ffffe40170ac15d5df0d3bf8a53523
> > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041418
> > > Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> > > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> > > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> > > Cr-Commit-Position: refs/heads/master@{#75868}
> >
> > Bug: v8:11420
> > Change-Id: I44ac0e4a5df07db79fa50db3134cdae3af41c88c
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053588
> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#75916}
>
> Bug: v8:11420
> Change-Id: I24c7aea81ca58c339fc3bcc904663bdefb93106b
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054118
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Cr-Commit-Position: refs/heads/master@{#75926}

Bug: v8:11420
Change-Id: Id7ad213f9bf463d9d167c8420c85038043d9523c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054436
Auto-Submit: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#75928}
2021-07-26 20:17:19 +00:00
Jakob Kummerow
a8ef7683f2 [bigint] Fix length of '0' sequences in fast .toString()
Bug: v8:11515
Change-Id: I1353726c9e81c3601258202fe56c05ffd16a4a25
Fixed: chromium:1232733
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054112
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75927}
2021-07-26 16:46:13 +00:00
Leszek Swirski
1494106756 Reland^2 "[sparkplug] Enable sparkplug by default on desktop"
This is a reland of 0f79565bb7
which is a reland of 85e6c4b643
GC-stress issue was still flushing, now fixed for real with
https://crrev.com/c/3054117.

Relanding without changes.

TBR=verwaest@chromium.org

Original change's description:
> Reland "[sparkplug] Enable sparkplug by default on desktop"
>
> This is a reland of 85e6c4b643
> GC-stress issue was flushing, fixed with https://crrev.com/c/3048172.
> Relanding without changes.
>
> TBR=verwaest@chromium.org
>
> Original change's description:
> > [sparkplug] Enable sparkplug by default on desktop
> >
> > Bug: v8:11420
> > Change-Id: I07ac7f30b5ffffe40170ac15d5df0d3bf8a53523
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041418
> > Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#75868}
>
> Bug: v8:11420
> Change-Id: I44ac0e4a5df07db79fa50db3134cdae3af41c88c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053588
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75916}

Bug: v8:11420
Change-Id: I24c7aea81ca58c339fc3bcc904663bdefb93106b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054118
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#75926}
2021-07-26 16:19:15 +00:00
Clemens Backes
9670cff385 [liftoff][arm64] Add explicit stack check for large frames
Handle large frames by doing an explicit check to see if there is enough
remaining stack space before the stack limit.
The bailout which can be removed then is being triggered on more than 1
percent of all functions, so this is expected to improve compile time by
several percent, because we avoid the costly TurboFan compilation for
those >1%.

The code follows the same pattern as on arm, see
https://crrev.com/c/3046180.

R=ahaas@chromium.org

Bug: v8:11235
Change-Id: I0d359ae5fe0126da7ade860f596cfc108e7fd1d0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054114
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75925}
2021-07-26 15:55:23 +00:00
Leszek Swirski
4440d7a5be [sparkplug] Fix IsCompiledScope
IsCompiledScope should check for BaselineData before BytecodeArray,
since the former implies the latter.

Bug: v8:11420
Change-Id: I6c659a5f97180b478fb3401f55a095b6d307b80f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054117
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75924}
2021-07-26 15:29:59 +00:00
Milad Fa
5f8cd123f0 PPC: refactor setting cpu features
PPC features on V8 are currently only enabled by checking the cpu
type (i.e if >= powerX then set a feature as available).
This CL bypasses the feature list and simply checks if the cpu
type is >= a specific type required by certain instructions.

Specific feature checks (such as FPU) can always be added back to the
list if needed.

Change-Id: Ic7d1f1375c28da507f96f93f879859ef3dbfe512
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3048971
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75923}
2021-07-26 15:01:24 +00:00
Milad Fa
b973e23589 S390 [liftoff]: add to Simd binary operations
Adds Integer and FP Sub and Mull.

Change-Id: Ide2cfdbdc308d18011ba5cc6a61cd326c13c09b2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3048789
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75922}
2021-07-26 14:33:59 +00:00
Leszek Swirski
9999ac7526 Revert "Reland "[sparkplug] Enable sparkplug by default on desktop""
This reverts commit 0f79565bb7.

Reason for revert: Still breaking gc-stress...
https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20gc%20stress/34581/overview

Original change's description:
> Reland "[sparkplug] Enable sparkplug by default on desktop"
>
> This is a reland of 85e6c4b643
> GC-stress issue was flushing, fixed with https://crrev.com/c/3048172.
> Relanding without changes.
>
> TBR=verwaest@chromium.org
>
> Original change's description:
> > [sparkplug] Enable sparkplug by default on desktop
> >
> > Bug: v8:11420
> > Change-Id: I07ac7f30b5ffffe40170ac15d5df0d3bf8a53523
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041418
> > Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#75868}
>
> Bug: v8:11420
> Change-Id: I44ac0e4a5df07db79fa50db3134cdae3af41c88c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053588
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75916}

Bug: v8:11420
Change-Id: I5f96a76392c4ea0d1c9192e697d954de086aa4f4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054113
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#75921}
2021-07-26 14:06:17 +00:00
Andreas Haas
bbeff193df [fuzzer] Disallow atomic.wait in fuzzers
It is very unlikely that atomic.wait does anything useful in the fuzzer,
and will most likely just timeout the fuzzer. That's why it's better to
just disallow atomic.wait on the fuzzer.

R=thibaudm@chromium.org

Bug: chromium:1229074
Change-Id: I57aaff013964fa4c0e6ab411789e53a9013cabd2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053584
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75920}
2021-07-26 13:47:45 +00:00
Lu Yahan
d47a930d71 [riscv64] Fix cross build failed for riscv64.
When buid with "is_component_build=true" will failed.
  Add lib atomic into lib in v8_libplatform.
  Move func body into cc file

Bug: v8:11975
Change-Id: Ifb844a82360310aba444504f7012fa0c543a49e9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3046980
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Brice Dobry <brice.dobry@futurewei.com>
Reviewed-by: Ji Qiu <qiuji@iscas.ac.cn>
Commit-Queue: Brice Dobry <brice.dobry@futurewei.com>
Cr-Commit-Position: refs/heads/master@{#75919}
2021-07-26 13:28:55 +00:00
Leszek Swirski
6f898234b1 Reland "[offthread] Template deserializer on Isolate"
This is a reland of e24fa91327
It fixes the heap verification errors by going back to using MakeThin
instead of manually creating a filler (that then makes the verifier
think that this was array left-trimming).

Original change's description:
> [offthread] Template deserializer on Isolate
>
> Make the deserializer class templated on Isolate/LocalIsolate. This
> allows the ObjectSerializer to be split into a main-thread and offthread
> variant, with the latter taking a LocalIsolate.
>
> Eventually, we probably want to anyway split off the code-cache de/serializer
> to a separate implementation (for various reasons), and this the only one that
> wants off-thread finalization, and at this point the deserializer can revert
> back to being un-templated, used only for bootstrapping. However, this is the
> simplest way, for now, to enable off-thread deserialization.
>
> Bug: chromium:1075999
> Change-Id: I49c0d2c5409f0aa58183673785296756c3714f22
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562254
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75834}

Bug: chromium:1075999
Change-Id: I1d81fad2550a2a9f04dd0f9d8e66422d28faf378
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3043960
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75918}
2021-07-26 13:25:46 +00:00
Georg Neis
bf83100b9d Reland "[compiler] Enable --turbo-optimize-apply by default"
This is a reland of 04ae49049f,
after the discovered bug has been fixed in a separate CL.

Original change's description:
> [compiler] Enable --turbo-optimize-apply by default
>
> Bug: v8:9974
> Change-Id: I801f55687808bb5bd0c1ad19f37cd97264889962
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3035087
> Reviewed-by: Michael Stanton <mvstanton@chromium.org>
> Commit-Queue: Georg Neis <neis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75792}

Tbr: mvstanton@chromium.org
Bug: v8:9974
Change-Id: I2130a648008f9424983762447fbd204bdd767d93
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054110
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75917}
2021-07-26 13:23:56 +00:00
Leszek Swirski
0f79565bb7 Reland "[sparkplug] Enable sparkplug by default on desktop"
This is a reland of 85e6c4b643
GC-stress issue was flushing, fixed with https://crrev.com/c/3048172.
Relanding without changes.

TBR=verwaest@chromium.org

Original change's description:
> [sparkplug] Enable sparkplug by default on desktop
>
> Bug: v8:11420
> Change-Id: I07ac7f30b5ffffe40170ac15d5df0d3bf8a53523
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041418
> Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75868}

Bug: v8:11420
Change-Id: I44ac0e4a5df07db79fa50db3134cdae3af41c88c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053588
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75916}
2021-07-26 13:16:35 +00:00
Marja Hölttä
0cf6ca2674 [rab/gsab] Add fast path for 'has property'
(No new tests since this is covered by existing tests.)

Bug: v8:11111
Change-Id: I274c54faec24d414e7c99199b32a1a3b88d63aa2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053587
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75915}
2021-07-26 12:57:35 +00:00
Marja Hölttä
c1f438f8d4 [rab/gsab] Fix length-tracking TAs with offsets
Bug: v8:11111
Change-Id: I7ff82d1699701dfa38af1da447f0b40a2a2c97b5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053586
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75914}
2021-07-26 12:54:36 +00:00
Mythri A
43ad23f6be [turboprop] Fix inlined-call-polymorphic to work with turboprop
In inlined-call-polymorphic we need value numbering phase to
deduce that TurbofanStaticAssert is always true. Turboprop doesn't
enable this phase. So use %OptimizeFunctionTopTier so this function
always tiers up to TurboFan.

Bug: v8:12013
Change-Id: I803bddaca8cb0ba0ad56cbd9874d90b118698e3f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053579
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75913}
2021-07-26 12:24:16 +00:00
Thibaud Michaud
20ac07eae6 [wasm][eh] Add Exception constructor
The WebAssembly.Exception constructor creates a WasmExceptionPackage,
which represents an exception thrown from wasm. The first argument is a
WebAssembly.Tag, and the rest are the values to encode in the exception.

R=jkummerow@chromium.org

Bug: v8:11992
Change-Id: I1327b2e4545159397ffe73a061aa577608167b74
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049074
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75912}
2021-07-26 11:53:37 +00:00
Georg Neis
2db446079a [compiler] Make FeedbackCellRef never-ever-serialized
Bug: v8:7790
Change-Id: I066e24482b94d7747c5bdc46a43db98e6bddf097
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3035094
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75911}
2021-07-26 11:49:36 +00:00
Georg Neis
2e3ffed525 [compiler] Make AllocationSiteRef never-ever-serialized
Bug: v8:7790
Change-Id: I7633711033c66964549cdf03255ac667569e3aee
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3035092
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75910}
2021-07-26 11:39:28 +00:00
Georg Neis
d6ab356027 [compiler] AllocationBuilder: CHECK that allocation size is positive
R=jgruber@chromium.org

Bug: v8:12010
Change-Id: Idb64bd673dd28dd3ef9103efea902413b4de7f67
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3051611
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75909}
2021-07-26 11:32:56 +00:00
Andreas Haas
621686c14d [gm] Add 'dcheck_always_on = false' to release builds
Chrome started to enable dcheck by default in release builds that are
not official builds. Add 'dcheck_always_on = false' to release builds
in V8 to allow reasonable performance measurements.

NOTRY=true

R=jkummerow@chromium.org

Bug: v8:11879
Change-Id: I05f192fdcd5ebe5b1a82eb6f2d1648eaf6d4b527
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3048186
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75908}
2021-07-26 10:24:35 +00:00
Jakob Gruber
f2697a50a6 [compiler] Fix invalid cast to FrameState
FindFrameStateBefore can return a FrameState or Dead.

Bug: chromium:1232668
Change-Id: I2a21a1cd4dce9053250c1940177834ce6d2cb55b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053582
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75907}
2021-07-26 10:19:55 +00:00
Jakob Gruber
651e1e50e4 [compiler] Take stability dependency on primitive wrapper map
The stability dependency should be taken on the primitive wrapper map,
not the primitive map (which is guaranteed to remain stable).

Note that the primitive wrapper map itself *also* stays stable; but
changing the position of the call here avoids having to think deeply
about this at all in the future.

Bug: v8:7790
Change-Id: I9b79b9df0d8d49f0c6249c6cd906142bda1ff5cd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053578
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75906}
2021-07-26 09:30:57 +00:00
Jakob Gruber
40522a480b [compiler] Only perform ToObject on the receiver
The implicit ToObject operation should only be done on the receiver.
The remaining prototype chain is already guaranteed to not contain
primitives (besides null).

Bug: v8:7790
Change-Id: I6706c7648e201e8f99a1f27f98989db96a359c4e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041672
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75905}
2021-07-26 09:17:07 +00:00
Victor Gomes
b1e3a97607 [bazel] Add missing header files
No-Try: true
Change-Id: I4cfc54bb6934d7a1b93479b399ed94d9d2007bda
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053571
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75904}
2021-07-26 09:14:15 +00:00
Mythri A
934e8d3af6 [sparkplug] Retain baseline data in IsCompiledScope
With baseline code flushing we also need to hold baseline
data in IsCompiledScope. IsCompiledScope is used in places where we
don't want bytecode / baseline code to be flushed.

Change-Id: I692cdc5fc433dedeabcfc412d9f96d76148ddbe3
BUG: v8:12009
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3048172
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75903}
2021-07-26 08:01:57 +00:00
Michael Achenbach
8b385ee8e9 [release] Remove obsolete account from CC lists
No-Try: true
Bug: v8:12020
Change-Id: I1b6659c7017b2843a513d81331e6ac67666ef04d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053572
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Lutz Vahl <vahl@chromium.org>
Reviewed-by: Lutz Vahl <vahl@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75902}
2021-07-26 07:48:47 +00:00
Clemens Backes
5e90a612f5 Reland "[liftoff][arm64] Zero-extend offsets also for SIMD"
This is a reland of b99fe75c6d.
The test is now skipped on non-SIMD hardware.

Original change's description:
> [liftoff][arm64] Zero-extend offsets also for SIMD
>
> This extends https://crrev.com/c/2917612 also for SIMD, which
> (sometimes) uses the special {GetMemOpWithImmOffsetZero} method.
> As part of this CL, that method is renamed to {GetEffectiveAddress}
> which IMO is a better name. Also, it just returns a register to make the
> semantic of that function obvious in the signature.
>
> Drive-by: When sign extending to 32 bit, only write to the W portion of
>           the register. This is a bit cleaner, and I first thought that
>           this would be the bug.
>
> R=jkummerow@chromium.org
> CC=​thibaudm@chromium.org
>
> Bug: chromium:1231950, v8:12018
> Change-Id: Ifaefe1f18e3a00534a30c99e3c37ed09d9508f6e
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049073
> Reviewed-by: Zhi An Ng <zhin@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75898}

TBR=zhin@chromium.org
CC=jkummerow@chromium.org, thibaudm@chromium.org

Bug: chromium:1231950, v8:12018
Change-Id: I662b62fafe99389be7a6c23b970fdf3768f866cf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3051610
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75901}
2021-07-24 07:43:41 +00:00
Michael Achenbach
7b455bf2b9 Revert "[liftoff][arm64] Zero-extend offsets also for SIMD"
This reverts commit b99fe75c6d.

Reason for revert:
https://ci.chromium.org/p/v8/builders/ci/V8%20Linux/43105

Original change's description:
> [liftoff][arm64] Zero-extend offsets also for SIMD
>
> This extends https://crrev.com/c/2917612 also for SIMD, which
> (sometimes) uses the special {GetMemOpWithImmOffsetZero} method.
> As part of this CL, that method is renamed to {GetEffectiveAddress}
> which IMO is a better name. Also, it just returns a register to make the
> semantic of that function obvious in the signature.
>
> Drive-by: When sign extending to 32 bit, only write to the W portion of
>           the register. This is a bit cleaner, and I first thought that
>           this would be the bug.
>
> R=​jkummerow@chromium.org
> CC=​​thibaudm@chromium.org
>
> Bug: chromium:1231950, v8:12018
> Change-Id: Ifaefe1f18e3a00534a30c99e3c37ed09d9508f6e
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049073
> Reviewed-by: Zhi An Ng <zhin@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75898}

Bug: chromium:1231950, v8:12018
Change-Id: I4e7a9d6fa6809b7c4d9be919cd5698737d784849
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049085
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#75900}
2021-07-23 20:23:21 +00:00
Junliang Yan
694b0334f1 ppc: [liftoff] implement f32/f64 add/sub/mul/div
Change-Id: I8d3b2e1bc5d3e5f437bc8f1bc50299459fbc7ad9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049084
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75899}
2021-07-23 19:23:40 +00:00
Clemens Backes
b99fe75c6d [liftoff][arm64] Zero-extend offsets also for SIMD
This extends https://crrev.com/c/2917612 also for SIMD, which
(sometimes) uses the special {GetMemOpWithImmOffsetZero} method.
As part of this CL, that method is renamed to {GetEffectiveAddress}
which IMO is a better name. Also, it just returns a register to make the
semantic of that function obvious in the signature.

Drive-by: When sign extending to 32 bit, only write to the W portion of
          the register. This is a bit cleaner, and I first thought that
          this would be the bug.

R=jkummerow@chromium.org
CC=​thibaudm@chromium.org

Bug: chromium:1231950, v8:12018
Change-Id: Ifaefe1f18e3a00534a30c99e3c37ed09d9508f6e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049073
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75898}
2021-07-23 19:17:31 +00:00
Clemens Backes
edc349dbf5 [liftoff][arm] Add explicit stack check for large frames
Handle large frames by doing an explicit check to see if there is enough
remaining stack space before the stack limit.
The bailout which can be removed then is being triggered on more than 1
percent of all functions, so this is expected to improve compile time by
several percent, because we avoid the costly TurboFan compilation for
those >1%.

R=ahaas@chromium.org

Bug: v8:11235
Change-Id: I935998f7676647572598b52c989f7d41cc5239a8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3046180
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75897}
2021-07-23 18:54:14 +00:00
Michael Achenbach
4edf968589 [test] Run also non-d8 tests on mac-arm64
No-Try: true
Bug: v8:11587
Change-Id: Ie7daf2f8c6ed91daa1af5e984b7a8ff500d2d156
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3038532
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75896}
2021-07-23 18:08:16 +00:00
Michael Achenbach
e02d39446f [test] Remove a test skip that's fixed
No-Try: true
Bug: chromium:1231890
Change-Id: I01ad587070b9318cdf6d5ea1032adfefb30e42c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3048189
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75895}
2021-07-23 17:51:45 +00:00
Michael Lippautz
b125c943af Reland "Reland "heap: Fix initial GC configuration for C++-only heaps""
This is a reland of 1f0b0ed0e4

No actual code has changed in the relands.

The change was reverted due to triggering flaky failures in
WebMediaPlayerImplTest which was not set up properly. The test setup
has been fixed in https://crrev.com/c/3025796.

Original change's description:
> Reland "heap: Fix initial GC configuration for C++-only heaps"
>
> This is a reland of 7ef67b2e9e
>
> Manually checked that the CL was not the culprit breaking
>   media_blink_unittests --gtest_filter=WebMediaPlayerImplTest.MemDumpReporting
>
> Original change's description:
> > heap: Fix initial GC configuration for C++-only heaps
> >
> > Heaps in V8 start with a large limit that is shrunk upon young
> > generation GCs, based on some liveness estimate. This provides best
> > throughput during startup while at the same time finding a reasonable
> > first limit.
> >
> > For C++ (embedder memory) there is no estimate which is why it was
> > piggy-backing on V8. This breaks in scenarios where no JS memory is
> > allocated.
> >
> > In this fix we start a memory reducer after embedder memory has hit
> > the activation threshold if no GC happened so far. As soon as a single
> > Scavenger has happened, we leave it up to the JS estimate to figure
> > out a limit. Memory reducing GCs will then find a regular limit based
> > on the initial live size.
> >
> > Drive-by: Give embedders the same activiation threshold of 8MB as JS.
> >
> > Bug: chromium:1217076
> > Change-Id: I8469696002ac2af8d75d6b47def062d2608387a1
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2944935
> > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#75012}
>
> Bug: chromium:1217076
> Change-Id: I482d8525379e33095834d5b41be8bb49bdd8a5d4
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2949094
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
> Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75048}

Bug: chromium:1217076
Change-Id: If920d6b2c54a0c9d67e55e276421e4694eb1414e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2960218
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75894}
2021-07-23 17:40:53 +00:00
Vicky Kontoura
8439314db5 [web snapshot] Support classes
This CL adds support for classes with methods.

More specifically:
- A new ValueSerializer is added and classes are serialized separetely
from functions, although the common parts are handled in the same way
and abstracted away.
- The function prototype is serialized as an object and any missing
information is set up again during deserialization.
- FunctionFlagsToFunctionKinds() is updated to allow for more function
kinds.
- Context serialization is updated to support serializing BlockContexts
and creating ScopeInfos of type CLASS_SCOPE.
- Map serialization is updated to support properties with custom
attributes.

Bug: v8:11525, v8:11706
Change-Id: I16ca7cbc17b1811721081cda05124ce36073f9be
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3006416
Commit-Queue: Vicky Kontoura <vkont@google.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75893}
2021-07-23 17:30:24 +00:00
Junliang Yan
1708ee634a ppc: [liftoff] implement multipication on liftoff
Change-Id: Ibc2756484717804f67658156b750d9bbd18266fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049352
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75892}
2021-07-23 16:22:29 +00:00
Leszek Swirski
ef17601fa7 [ignition/sparkplug] Fix folded interrupt check
Change the folded interrupt check to be on JumpLoop only, to avoid
calling it from Return. The call from Return could cause spurious stack
overflows, which interacted poorly with async functions that had already
resolved their promise.

Now the bytecode budget interrupt function is split into two functions,
one which does the stack check and one which doesn't. The former is
still called from JumpLoop, the latter is called from Return.

Bug: chromium:1231952, chromium:1232105
Change-Id: I8c4e2937f64b5f8fdbd6c1fcb2a76ec5f090ae3c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049076
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75891}
2021-07-23 14:56:03 +00:00
Milad Fa
1f79309aaa S390 [liftoff]: initiate simd binary operations
Starting with Simd Add ops which are ported to liftoff.

Change-Id: I2128303accf9bc47812560f5aa38b5ccfc2e3e78
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049070
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75890}
2021-07-23 14:22:03 +00:00