Commit Graph

73320 Commits

Author SHA1 Message Date
Milad Fa
3694775d08 AIX: fix the implementation of OS::DecommitPages
On AIX, calling mmap on a pre-designated address with
MAP_FIXED will fail and return -1 unless the application
has requested SPEC1170 compliant behaviour with arguments
such as `XPG_SUS_ENV=ON`.

Therefore an AIX specific implementation has been added under
platform-aix.cc.

Change-Id: Ib5b8a19a3a9e6d202aed7e792c00a25ddc547c72
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3403045
Reviewed-by: Samuel Groß <saelo@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#78778}
2022-01-26 15:40:31 +00:00
Marja Hölttä
353211a54e [web snap] Perf fix: streamline setting properties in the global object
Bug: v8:11525
Change-Id: I765923f6d15959a7fc6ceddd9a6d60338316300a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3416246
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78777}
2022-01-26 15:32:20 +00:00
Michael Achenbach
aefa66da28 Revert "[ext-code-space] Enable external code space on x64 and desktop arm64"
This reverts commit fd608d18b5.

Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan%20-%20builder/838/overview

Original change's description:
> [ext-code-space] Enable external code space on x64 and desktop arm64
>
> Perf Sheriffs: this CL might regress some benchmarks while improving
> the others.
>
> Bug: v8:11880
> Change-Id: I857526d0971fc858b56126cbc276d9bd4157d71f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3416244
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#78774}

Bug: v8:11880
Change-Id: Ie1009824936a65790e743cbc01ca2e5bec5dec90
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3417432
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/main@{#78776}
2022-01-26 15:26:24 +00:00
Thibaud Michaud
7478662d78 [wasm] Visit inactive stacks for wasm code GC
R=ahaas@chromium.org
CC=​fgm@chromium.org

Bug: v8:12191, v8:12344
Change-Id: Ibbc1077afa8de89f9acb39675451a61f3ceea413
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412090
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78775}
2022-01-26 13:41:12 +00:00
Igor Sheludko
fd608d18b5 [ext-code-space] Enable external code space on x64 and desktop arm64
Perf Sheriffs: this CL might regress some benchmarks while improving
the others.

Bug: v8:11880
Change-Id: I857526d0971fc858b56126cbc276d9bd4157d71f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3416244
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78774}
2022-01-26 13:31:41 +00:00
Nico Hartmann
75b16ea7f1 Update V8 DEPS.
Rolling v8/build: 841e388..1c8bf90

Rolling v8/buildtools/linux64: git_revision:80a40b07305373617eba2d5878d353532af77da3..git_revision:0725d7827575b239594fbc8fd5192873a1d62f44

Rolling v8/buildtools/third_party/libc++abi/trunk: 7d79126..e4cc353

Rolling v8/buildtools/third_party/libunwind/trunk: efb2cbd..c8a5d43

Rolling v8/third_party/android_platform: 5023a5c..f0d4a3b

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/8bc3659..d90eeee

Rolling v8/third_party/depot_tools: a657331..d05a2e0

Rolling v8/third_party/googletest/src: 100f6fb..f45d586

Rolling v8/tools/clang: df50898..5518918

Rolling v8/tools/luci-go: git_revision:5b02a4aaeb5fd78d6fe41d6d54d1cb58da17f192..git_revision:09f8b3edbbf18dc63d0d5aa7722ae7acc20b11b4

Rolling v8/tools/luci-go: git_revision:5b02a4aaeb5fd78d6fe41d6d54d1cb58da17f192..git_revision:09f8b3edbbf18dc63d0d5aa7722ae7acc20b11b4

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

Change-Id: Ia9d43ad1b668bfa8e7172d2265d10204a43d895d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412230
Owners-Override: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78773}
2022-01-26 12:51:01 +00:00
Igor Sheludko
695afbff17 [ext-code-space] Fix CodeRange allocation logic
1) when generating short builtin calls/jumps assemblers should use the
   offset from the CodeRange base rather than the start of the code
   range reservation because otherwise it's not guaranteed that the
   PC-relative offset will fit into architecture's constraints.
   The code range reservation start could be different from the code
   range base in the following cases:
     * when the "base bias size" is non-zero (on Windows 64),
     * when we ended up over-reserving the address space for the code
       range, which happens as a last resort to fulfil the CodeRange
       alignment requirements.
   See the VirtualMemoryCage description for details.

Drive-by fixes:
2) in case of over-reserving address space for external code range,
   the pre-calculated hint for where the remapped embedded builtins
   should be copied to was outside of the allocatable CodeRange region
   and thus useless. The fix is to use the allocatable region instead
   of the reservation region when calculating the hint.
3) when allocating CodeRange with zero base bias size we can create
   the VirtualMemory reservation from the first attempt simply by
   passing the required base alignment to the VirtualMemory
   constructor.

Bug: v8:11880, chromium:1290591
Change-Id: If341418947e2170d967e22b38bcc371594939c1c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412089
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78772}
2022-01-26 12:26:17 +00:00
Marja Hölttä
708cd79f98 [web snapshots] Fix the perf fix: pre-reserve the right amount of space in the global object
Bug: v8:11525
Change-Id: I4df5144a7d0ed2b68cf15c7bfd72ce4a17ad4e41
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3416237
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78771}
2022-01-26 12:23:47 +00:00
Jochen Eisinger
4c6331ba7e Document debug interface macros and reassign remaining TODOs
Change-Id: Ib4fd3bc66f5451ac2c50d550515992bdfbe41fcc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3414772
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78770}
2022-01-26 12:15:58 +00:00
Camillo Bruni
9b2b6140f3 [web snapshot] Faster DescriptorArray setup
Use DescriptorArray::Set instead of Append to avoid resorting the
descriptors for every newly added property

Bug: v8:11525
Change-Id: Id6d113f6218e095125256a8c7c8cfb28c8b41ae5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3415391
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78769}
2022-01-26 11:14:08 +00:00
Dominik Inführ
f49f6bb571 [objects] Avoid dependance on non-compactible map space in Map::Hash
Map::Hash relies on the fact that the map space is never compacted.
However this might change in the future, so instead of using the
address of the prototype's map, we use the prototype's identity hash
instead.

Bug: v8:12578
Change-Id: Ia4961ed55119681c0033aa187789f6710ff2d22c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412085
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78768}
2022-01-26 10:29:27 +00:00
Marja Hölttä
12c79495d7 [web snapshot] Perf fix: pre-reserve the space in the global object
Exports are properties in the global object. Pre-reserve the space,
since we know the count upfront.

Bug: v8:11525
Change-Id: Ia8ea992234ed8cf71a1060254766b0ba31562436
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3416231
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78767}
2022-01-26 09:44:28 +00:00
Manos Koukoutos
3f9f569cd6 [wasm-gc] Implement array.init_from_data
Bug: v8:7748
Change-Id: Iee5afc3ce21f3a09fdb810beb6a73123bf21afdf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3401594
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78766}
2022-01-26 09:16:27 +00:00
v8-ci-autoroll-builder
1a4239f5da Update google_benchmark
Rolling v8/third_party/google_benchmark/src: 57b2bfa..d0fbf8a

Cache PerfCounters instance in PerfCountersMeasurement (#1308) (Liqiang TAO)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/d0fbf8a

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

Change-Id: I982279bd209fedfaf72a8ce674818906eb60147d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3416710
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@{#78765}
2022-01-26 09:15:25 +00:00
Hao Xu
c587ec5464 [CSA] Fast path Smi operands in BitwiseSmi bytecodes
In current BitwiseSmi bytecodes the code to do Smi operation is inside a
loop. This CL fast path the Smi operation by peeling the first Smi check
out of the loop, and avoid Smi->Int->Smi conversion where possible.

Drive-by fix: Add CSA_DCHECK in Smi shift to avoid unexpected use.

Bug: v8:12442
Change-Id: I1adce560fb22a4409337e2958779eccf9197e4ff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3328784
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Hao A Xu <hao.a.xu@intel.com>
Cr-Commit-Position: refs/heads/main@{#78764}
2022-01-26 09:14:23 +00:00
Camillo Bruni
8acdeeb40f [web snapshot] Optimisations
- Use raw pointer when setting the SFI in CreateJSFunction
- Use some more factory->xxx_value() handle accessor to avoid handle
  creation

Bug: v8:11525
Change-Id: I5ed62f56cf2e53cc765566c0c129c7851b704813
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3401591
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78763}
2022-01-26 09:13:20 +00:00
Nico Hartmann
199f1c2a92 Revert "Reland "[string] Support shared strings in Value{Serializer,Deserializer}""
This reverts commit 5320fe8d58.

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

Original change's description:
> Reland "[string] Support shared strings in Value{Serializer,Deserializer}"
>
> This is a reland of 3cb4039cd1
>
> Changes since revert:
> - Fix FLAG_stress_scavenge interaction with shared Isolate
> - Use the shared Isolate's global handles to keep shared values
>   alive in transit during a postMessage
>
> Original change's description:
> > [string] Support shared strings in Value{Serializer,Deserializer}
> >
> > When FLAG_shared_string_table is true, postMessaging strings will share
> > instead of copy.
> >
> > Note that not all operations on shared strings are supported, and shared
> > strings may be slower than non-shared strings for some operations.
> >
> > Bug: v8:12007
> > Change-Id: I3462128e15410d2568868143571571b3025722c1
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3277250
> > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> > Commit-Queue: Shu-yu Guo <syg@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#78614}
>
> Bug: v8:12007
> Change-Id: I5d9b99b2dac6f26d5ef046d7aec94f1a1d219419
> Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3389533
> Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Shu-yu Guo <syg@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#78761}

Bug: v8:12007
Change-Id: Ie8e54b30055324e6592562450b51d5a11e11c9d0
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3416232
Auto-Submit: Nico Hartmann <nicohartmann@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Owners-Override: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78762}
2022-01-26 09:12:18 +00:00
Shu-yu Guo
5320fe8d58 Reland "[string] Support shared strings in Value{Serializer,Deserializer}"
This is a reland of 3cb4039cd1

Changes since revert:
- Fix FLAG_stress_scavenge interaction with shared Isolate
- Use the shared Isolate's global handles to keep shared values
  alive in transit during a postMessage

Original change's description:
> [string] Support shared strings in Value{Serializer,Deserializer}
>
> When FLAG_shared_string_table is true, postMessaging strings will share
> instead of copy.
>
> Note that not all operations on shared strings are supported, and shared
> strings may be slower than non-shared strings for some operations.
>
> Bug: v8:12007
> Change-Id: I3462128e15410d2568868143571571b3025722c1
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3277250
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Shu-yu Guo <syg@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#78614}

Bug: v8:12007
Change-Id: I5d9b99b2dac6f26d5ef046d7aec94f1a1d219419
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3389533
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78761}
2022-01-26 01:00:36 +00:00
Milad Fa
83ad3be6fc S390 [liftoff]: Implement simd bitmask
Implementations are added to macro-assembler to be shared between
liftoff and code generator.

Change-Id: I6bde65dc50f1e52b8fbca150854e0b0863dff301
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3416190
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#78760}
2022-01-25 23:53:06 +00:00
Igor Sheludko
019be504c7 [ext-code-space] Support V8 sandbox mode
Drive-by: fix multi-arch build.

Bug: v8:11880
Change-Id: I4e56370598117fec2a0131e5638d4bac3d84c52f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412083
Reviewed-by: Samuel Groß <saelo@chromium.org>
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78759}
2022-01-25 23:12:18 +00:00
Adam Klein
9ccdfe131b [bazel] Fix build by removing deleted file after inspector roll
Change-Id: Idce43801ef5f2f3e194a63cea3522eb6710b681e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3413192
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78758}
2022-01-25 19:58:46 +00:00
legendecas
10a777ee7e [ShadowRealm] Part 1 - Skeleton
1. Expose all the functions to empty builtins.
2. Wire up the basic structure of ShadowRealm and internal slots.

Bug: v8:11989
Change-Id: If7545fe18a74b2bd4b70a1a25776e41f03aaff89
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3195532
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Chengzhong Wu <legendecas@gmail.com>
Cr-Commit-Position: refs/heads/main@{#78757}
2022-01-25 18:10:57 +00:00
Michael Lippautz
c1d39129f9 cppgc: Fix hello world
The hello world sample needs to initialize V8's default platform in case
it is not built as stand-alone example.

Bug: v8:12427
Change-Id: I78b68fbed2c2a25b0ff03675beb94dfc5b9b4135
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412088
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78756}
2022-01-25 16:34:14 +00:00
Manos Koukoutos
c0c9129505 [wasm] Update unrolling link in comment
Change-Id: I1289fcab6c4812868258b14492d85bad20ae7e9f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406536
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78755}
2022-01-25 12:46:48 +00:00
Samuel Groß
df3ebe5dcc [sandbox] Shrink ExternalPointer_t to 32 bits
When sandboxed external pointers are enabled, external pointers now only
require 32 bits of storage space in a HeapObject. This CL does not shrink
the size of EmbedderDataSlots, which will happen in a follow-up CL.

Bug: v8:10391
Change-Id: I3cf8b68c3b985cf806a45183717f50462a88c281
Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3359629
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78754}
2022-01-25 12:03:28 +00:00
Anton Bikineev
b3aa217dee LSC: Apply clang-tidy's modernize-use-bool-literals to V8
The check finds implicit conversions of integer literals to bools:
 bool b1 = 1;
 bool b2 = static_cast<bool>(1);
and transforms them to:
 bool b1 = true;
 bool b2 = true;

Bug: chromium:1290142
Change-Id: I1fec7d7a6f25af23e9b9aac687f5896e79f17b51
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406533
Auto-Submit: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78753}
2022-01-25 10:30:05 +00:00
Lu Yahan
abe18ec7d9 [riscv64] Fix temp register error that using unallocated register
Bug: v8:12576

Change-Id: I4d63f85d6528f2ad5e6502fffbc5fc7d797818ed
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412562
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Commit-Queue: ji qiu <qiuji@iscas.ac.cn>
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#78752}
2022-01-25 08:54:11 +00:00
v8-ci-autoroll-builder
74be61cc36 Update google_benchmark
Rolling v8/third_party/google_benchmark/src: acd7562..57b2bfa

Fix some errors in Custom Statistics demo code. (#1332) (YuanYingdong)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/57b2bfa

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

Change-Id: I6682b979c23ce45e6a365371b5d5818b4b3fc3f4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3413460
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@{#78751}
2022-01-25 07:01:35 +00:00
Junliang Yan
9226834841 s390x: [baseline] implement AddToInterruptBudgetAndJumpIfNotExceeded
Change-Id: I505026e562cda584aad7e56d1dd02f26b42ddf17
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412808
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#78750}
2022-01-24 21:48:27 +00:00
Junliang Yan
eb62fd0f5a s390x: [baseline] implement Switch
Change-Id: I9a4ba92f9da9cc964056d5c563b0534d9d172fcb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412809
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#78749}
2022-01-24 21:47:14 +00:00
Milad Fa
d4385a99a2 S390 [liftoff]: Implement simd fp pmin/pmax
Implementations are added to macro-assembler to be shared between
liftoff and code generator.

Change-Id: I3fac2b82686836106cefa9a78f5feda6105679d4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412359
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#78748}
2022-01-24 20:57:05 +00:00
Marja Hölttä
c3a1539d33 [rab/gsab] RAB/GSAB support for TA.p.reverse
Bug: v8:11111
Change-Id: I83778377f1343a6157bf01f13b99ffcb41e4c6d6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3404778
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78747}
2022-01-24 18:35:06 +00:00
Milad Fa
61588f7320 S390 [liftoff]: Implement simd128 bitwise ops
Implementations are added to macro-assembler to be shared between
liftoff and code generator.

Change-Id: Ia26b82de3f0af076ace3d53e285917029d2d5ac4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3407794
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#78746}
2022-01-24 16:42:45 +00:00
Joyee Cheung
0e07eb5341 Reland "[class] implement reparsing of class instance member initializers"
This is a reland of 91f08378bc

When the class scope does not need a context, the deserialized
outer scope of the initializer scope would not be the class scope,
and we should not and do not need to use it to fix up the allocation
information of the context-allocated variables. The original patch
did not consider this case and resulted in a regression when we
tried to reparse the initializer function to look for destructuring
assignment errors. This fixes the regression by not deserializing
the class scope that's going to be reparsed, and using the positions
of the scopes to tell whether the scope info matches the reparsed
scope and can be used to fix up the allocation info.

Original change's description:
> [class] implement reparsing of class instance member initializers
>
> Previously, since the source code for the synthetic class instance
> member initializer function was recorded as the span from the first
> initializer to the last initializer, there was no way to reparse the
> class and recompile the initializer function. It was working for
> most use cases because the code for the initializer function was
> generated eagarly and it was usually alive as long as the class was
> alive, so the initializer wouldn't normally be lazily parsed. This
> didn't work, however, when the class was snapshotted with
> v8::SnapshotCreator::FunctionCodeHandling::kClear,
> becuase then we needed to recompile the initializer when the class
> was instantiated. This patch implements the reparsing so that
> these classes can work with FunctionCodeHandling::kClear.
>
> This patch refactors ParserBase::ParseClassLiteral() so that we can
> reuse it for both parsing the class body normally and reparsing it
> to collect initializers. When reparsing the synthetic initializer
> function, we rewind the scanner to the beginning of the class, and
> parse the class body to collect the initializers. During the
> reparsing, field initializers are parsed with the full parser while
> methods of the class are pre-parsed.
>
> A few notable changes:
>
> - Extended the source range of the initializer function to cover the
>   entire class so that we can rewind the scanner to parse the class
>   body to collect initializers (previously, it starts from the first
>   field initializer and ends at the last initializer). This resulted
>   some expectation changes in the debugger tests, though the
>   initializers remain debuggable.
> - A temporary ClassScope is created during reparsing. After the class
>   is reparsed, we use the information from the ScopeInfo to update
>   the allocated indices of the variables in the ClassScope.
>
> Bug: v8:10704
> Change-Id: Ifb6431a1447d8844f2a548283d59158742fe9027
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2988830
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Joyee Cheung <joyee@igalia.com>
> Cr-Commit-Position: refs/heads/main@{#78299}

Bug: chromium:1278086, chromium:1278085, v8:10704
Change-Id: Iea4f1f6dc398846cbe322adc16f6fffd6d2dfdf3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3325912
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/main@{#78745}
2022-01-24 16:24:35 +00:00
Nico Hartmann
776126acfd Revert "[ext-code-space] Enable external code space on x64 and desktop arm64"
This reverts commit 7fc4868e47.

Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Clusterfuzz%20Linux64%20-%20release%20builder/26331/overview

Original change's description:
> [ext-code-space] Enable external code space on x64 and desktop arm64
>
> Perf Sheriffs: this CL might regress some benchmarks while improving
> the others.
>
> Bug: v8:11880
> Change-Id: Iddaba0512100eedf61d8b106da0be0a08d273b67
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412072
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#78743}

Bug: v8:11880
Change-Id: I238bb143b3781fc0b865edf4e7cb0ae52cbad0c7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412078
Auto-Submit: Nico Hartmann <nicohartmann@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78744}
2022-01-24 16:05:35 +00:00
Igor Sheludko
7fc4868e47 [ext-code-space] Enable external code space on x64 and desktop arm64
Perf Sheriffs: this CL might regress some benchmarks while improving
the others.

Bug: v8:11880
Change-Id: Iddaba0512100eedf61d8b106da0be0a08d273b67
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412072
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78743}
2022-01-24 15:55:05 +00:00
Clemens Backes
9d0222424e [compiler] Only spill SIMD reg if valid
The allocatable registers have holes, so not all FP registers are one
half of a valid SIMD register. Thus check if {GetAliases} returned an
allocatable SIMD register before looking up if that register is being
used. Otherwise we run into a DCHECK because {simd_reg} is invalid.

The bug was only introduced recently: https://crrev.com/c/3404780

R=thibaudm@chromium.org

Bug: chromium:1290079, v8:12330
Change-Id: I99df1645cfeec375daec82dbf41c110b5474339c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412075
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78742}
2022-01-24 15:12:34 +00:00
Clemens Backes
c8cda40b6e [compiler] Turn CHECKs into DCHECKs
This turns some CHECKs in the mid-tier register allocator into DCHECKs.
The ones inside {CheckConsistency} should be DCHECKs anyway, even if
they are inside an "#ifdef DEBUG" block. This will make ClusterFuzz
correctly detect them as "checks that only happen in debug mode".
Others were just unnecessarily always included, instead of only in debug
builds.

R=thibaudm@chromium.org

Bug: chromium:1271369
Change-Id: I51acde3c951c7a2af9dee36e25b196364ddf8f5c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406760
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78741}
2022-01-24 14:10:54 +00:00
xieyun
3224cd8aac [loong64] Fix an undefined behavior
negation of 'INT64_MIN' cannot be represented in type 'int64_t'.


Change-Id: Ieddb0fc9bae4d3c85485bb94e76c05c72529a978
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3402665
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#78740}
2022-01-24 13:38:35 +00:00
Igor Sheludko
7308d3a7ac [ext-code-space] Fix Factory::NewWasmExportedFunctionData()
... which failed write barrier skipping check.

Bug: v8:11880
Change-Id: Id404914b78f8d722da7129a5f6183596698a150f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412073
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78739}
2022-01-24 12:46:54 +00:00
Clemens Backes
78b5ff5be5 [compiler] Speed up mid-tier regalloc checks
This minor change in how we iterate the virtual registers speeds up the
consistency checks by a factor of more than four.

R=thibaudm@chromium.org

Bug: chromium:1271369
Change-Id: Ieb9640d52c84fabacbbcf0fea56825fb594cfc21
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406759
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78738}
2022-01-24 12:14:25 +00:00
Marja Hölttä
94c17edbb7 [rab/gsab] Add missing TA.p.map tests
Bug: v8:11111
Change-Id: Id9ea2e4f3e07be509c8e7a29d93ed80036787df1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3404777
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78737}
2022-01-24 11:37:19 +00:00
Clemens Backes
8628ec4d83 [liftoff] Fix SIMD stack moves
Moves between stack slots are rare; they mostly happen for tail calls
or for multi-return blocks. The bug exists since a long time, but was
only uncovered by the fuzzer now.

R=ahaas@chromium.org

Bug: chromium:1289678
Change-Id: Ibb0917717c6b7a468f5fcbb01be34267ba06a449
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406749
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78736}
2022-01-24 11:27:35 +00:00
Jakob Gruber
8cefcc4c57 Fix fallout from 'Remove the turboprop implementation'
.. caused by accidentally removing the continuation case of a
V8_FALLTHROUGH.

Fixed: v8:12561
Bug: v8:12552
Change-Id: I720a531155751b5409339344e96957a2e325a82f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406538
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78735}
2022-01-24 10:44:34 +00:00
Manos Koukoutos
0b4bc0a81a [wasm] Load imported functions with LoadImmutableFromObject
This is the only change in crrev.com/c/3398111 that may have impacted
performance.

Bug: chromium:1289597
Change-Id: I375535aa5c8382073565f1270dc5cc9c5598af4e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406534
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78734}
2022-01-24 10:20:25 +00:00
Clemens Backes
57c7f7b93a [wasm] Clean up WasmInstanceNativeAllocations
This removes a dead method, makes constant fields constant, and avoids a
confusing macro (which just prevented me from finding the call to
{set_imported_mutable_globals}).

R=manoskouk@chromium.org

Bug: v8:12425
Change-Id: I76de744c273ed9e2e429647a2d26dc163e1f4525
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406758
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78733}
2022-01-24 10:08:24 +00:00
Clemens Backes
402b903999 [wasm] Skip metrics tests on ODROID
The tests fail on ODROID (native arm), needs investigation.

R=ecmziegler@chromium.org

Bug: v8:11634
Change-Id: I6d5c19a6d10d7a346ff30838a6548bda0c87bde4
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406535
Auto-Submit: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78732}
2022-01-24 09:58:34 +00:00
Clemens Backes
ed1cd8f105 [compiler] Use mid-tier reg alloc for huge functions
This enables the --turbo-use-mid-tier-regalloc-for-huge-functions flag
by default. This configuration has been run through fuzzers for several
weeks, and all found issues have been fixed (see
https://crbug.com/v8/12330).

R=thibaudm@chromium.org

Bug: chromium:1287331, chromium:1285389, v8:12320, v8:12287
Change-Id: I82cec61a143a78bf705019b2b2bc2c6342f577fc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3404096
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78731}
2022-01-24 09:49:44 +00:00
Manos Koukoutos
3f17f96f22 [wasm-gc] Preliminary changes for array.init_from_data
Changes:
- Rename kWasmTrapDataSegmentDropped to the more accurate ~OutOfBounds.
- Drop unused argument from {WasmCompiler::ArrayInit}.
- Rename {Factory::NewWasmArray} -> NewWasmArrayFromElements.
- Add error handling to {InitExprInterface}.
- Allow the data count section to appear anywhere in the module under
  --experimental-wasm-gc. Add the same capability in
  wasm-module-builder.js.
- Add {WasmArray::MaxLength(uint32_t element_size_log2)}.
- Add kTrapArrayTooLarge in wasm-module-builder.js.
- Small test improvements in gc-nominal.js.

Bug: v8:7748
Change-Id: I68ca0e8b08f906503f0d82e5866395018d216382
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3401593
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78730}
2022-01-24 09:42:12 +00:00
Andrey Kosyakov
21e5104388 Roll inspector_protocol to 5221cbfa7f940d56ae8b79bf34c446a56781dd56
Change-Id: I4da78ec0f309c72007ee30336d77a77205f3e3fd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406597
Auto-Submit: Andrey Kosyakov <caseq@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78729}
2022-01-24 09:16:35 +00:00