Commit Graph

72418 Commits

Author SHA1 Message Date
Ng Zhi An
9b13ecd57f [cleanup] Make an enum class CodeReference::Kind
Bug: v8:12244,v8:12245
Change-Id: I5b412b18df312eeb46a9af954acfa65fb403929e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3284007
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77926}
2021-11-16 16:05:11 +00:00
Camillo Bruni
afb49bae49 [flags] Improve flag to verify and create snapshot checksums
- Rename --skip-snapshot-checksum to --verify-snapshot-checksum to
  avoid double negations in most of the code
- Conditionally create and verify checksums in SerializedCodeData
- Remove unused Deserializer::GetChecksum

Bug: chromium:1270752
Change-Id: I8360e0dd5f25dac68bf68909155771b302184a4b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3284883
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77925}
2021-11-16 15:06:37 +00:00
Nico Hartmann
6ffcdddbc2 Revert "[runtime] Reset clobbered argument in DefineClass"
This reverts commit 9b5f398554.

Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/39804/overview

Original change's description:
> [runtime] Reset clobbered argument in DefineClass
>
> The caller of DefineClass may not expect its arguments to be mutated, so
> add an arguments mutation scope which resets the argument clobbered by
> DefineClass.
>
> Bug: chromium:1268738
> Change-Id: I03e9cd82535ca1f83353012a92e80f822566e64e
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3283077
> Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#77921}

Bug: chromium:1268738
Change-Id: I878bd78f8ed265c18cd01e3105a69c8a8f876208
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3284886
Owners-Override: Nico Hartmann <nicohartmann@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77924}
2021-11-16 13:58:29 +00:00
Victor Gomes
1c218f406a [bazel] Rename config selects
No-Try: true
Change-Id: I1c7c5a05d89605d62973cadeb3b70e56752a27de
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3281930
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77923}
2021-11-16 13:35:26 +00:00
Leszek Swirski
f5d6ace664 [interpreter] Fix register printing for short Star
Register printing under --trace-ignition used register operands to
decide which register to print. But, for short Star bytecodes (Star1,
Star2, etc) the register is implicit in the bytecode. Add support for
these.

Change-Id: I788ffd729e251f2c8795b5660ac773329502bb5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3283071
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77922}
2021-11-16 13:34:24 +00:00
Leszek Swirski
9b5f398554 [runtime] Reset clobbered argument in DefineClass
The caller of DefineClass may not expect its arguments to be mutated, so
add an arguments mutation scope which resets the argument clobbered by
DefineClass.

Bug: chromium:1268738
Change-Id: I03e9cd82535ca1f83353012a92e80f822566e64e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3283077
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77921}
2021-11-16 13:22:04 +00:00
Michael Lippautz
3eae9d57ef cppgc: Initialize benchmark process only once
Otherwise, DCHECKs complain that the PageAllocator used for the
GlobalGCInfoTable may differ when setting up the platform repeatedly
through benchmarking SetUp().

Change-Id: I7e87e8c9d8c283105e1bd75a4cd176df7f304315
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3283075
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77920}
2021-11-16 13:15:44 +00:00
Igor Sheludko
df5efab1ed [ext-code-space] Fix code range allocation logic
Previously the code range could be allocated close but still outside
of the "short builtins call" region which would enforce copying of
builtins blob into the code range.
This CL ensures that the calculated hint address takes the required
base alignment into account and thus allocates the core range inside
of preferred region (see Isolate::GetShortBuiltinsCallRegion()).

Bug: v8:11880
Change-Id: I3cbd6a81501efd420063b963a8c4b5c328ae0785
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3283065
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77919}
2021-11-16 09:19:24 +00:00
Igor Sheludko
579c3b0ff7 [heap][cleanup] Rename kWordAligned to kTaggedAligned
Also introduce USE_ALLOCATION_ALIGNMENT_BOOL constant which is true
only for those configurations that require aligned allocations and
use it for statically falling back to unaligned allocations on those
configurations that do not require aligned allocations.

This is a prerequisite for introducing the real kWordAligned mode for
kSystemPointerSize aligned allocations.

Bug: v8:8875
Change-Id: I155d12435f344324bc1bf19da88ee823c8f2ca6c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3283064
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77918}
2021-11-16 09:14:24 +00:00
Lu Yahan
55cd86486a [riscv64] Move template into non-namespace scope
Fix node build failed


Change-Id: I3f465bcdaa17b0f1a6c497e9ab5ef9e50cbe5017
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3281721
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Commit-Queue: ji qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#77917}
2021-11-16 08:31:55 +00:00
v8-ci-autoroll-builder
229005253f Update V8 DEPS.
Rolling v8/build: d134d68..cf3347c

Rolling v8/buildtools/linux64: git_revision:90294ccdcf9334ed25a76ac9b67689468e506342..git_revision:185124551408e7a5349c2aa31051b5a629dc3a5e

Rolling v8/third_party/aemu-linux-x64: _9UC-vP_2UFSwkJLesq9YhIVywjThQvItoADZJtdSUcC..BsMGVIB-SMSFb0qDOwUoX0kok6z1XZdfmi4kKMOPrWYC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/a7ad5b5..4dd11e9

Rolling v8/third_party/depot_tools: 3fca89b..067f0e5

Rolling v8/tools/luci-go: git_revision:4cf9fa8105d30e3a6855bbfca50c5d6f88efb6b2..git_revision:2dfe2f218f0395673f336d17b841edf629907ae3

Rolling v8/tools/luci-go: git_revision:4cf9fa8105d30e3a6855bbfca50c5d6f88efb6b2..git_revision:2dfe2f218f0395673f336d17b841edf629907ae3

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

Change-Id: If3b45fc43c38f115d605b0f5e2495949d0cbf292
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3282314
Reviewed-by: 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@{#77916}
2021-11-16 03:51:25 +00:00
Milad Fa
85a85cf092 AIX: workaround the aix FP glibc bug
Due to a bug on AIX, some of the glibc FP functions do not
preserve the sign bit when a negative input is passed by
value and the output is rounded to 0:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97086

This CL continue the fixes previously added here:
https://crrev.com/c/2468618

Change-Id: I2afa1f67ac1d29ec0606de6d6ebcf05be0664b8d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3282308
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#77915}
2021-11-16 03:23:24 +00:00
Ng Zhi An
6c6a602451 [regexp] Fix -Wshadow warnings
Bug: v8:12244,v8:12245
Change-Id: I38c9a767bd17f76bbf269ad79adc6798d94753a2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3273529
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77914}
2021-11-15 22:33:43 +00:00
Ng Zhi An
1033ab21a0 [objects] Fix -Wshadow warnings
Bug: v8:12244,v8:12245
Change-Id: I1cf8425c213b1ba83df53c4b362bf4d3d7f22de8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3276923
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77913}
2021-11-15 22:09:23 +00:00
Ng Zhi An
fb4b1efd1c [heap] Fix -Wshadow warnings
Bug: v8:12244,v8:12245
Change-Id: I5eb07a60881db655ea70dc83189ed1a0447f0bea
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3278688
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77912}
2021-11-15 22:00:04 +00:00
Ng Zhi An
c25070c2a1 [cleanup] Fix some -Wshadow warnings
Bug: v8:12244,v8:12245
Change-Id: Icfdf2666220ac06c01b6220b4ac99b9ad00818dc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3278687
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77911}
2021-11-15 19:48:29 +00:00
Ng Zhi An
6577c5e9e2 [builtins][date] Fix -Wshadow warnings
Bug: v8:12244,v8:12245
Change-Id: I5fdc754432c7f619f4a32f92eb2da81beb23e8ce
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3278689
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77910}
2021-11-15 19:46:43 +00:00
Frank Tang
8bcb3f57b5 Reland "[cleanup] Remove harmony-intl-dateformat-day-period"
This is a reland of 5e041b8269

Original change's description:
> [cleanup] Remove harmony-intl-dateformat-day-period
>
> harmony-intl-dateformat-day-period is shipped in M92
>
> Bug: v8:12109
> Change-Id: I7d24463c0cc353c4baf52326159beb04592b81b5
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3099087
> Reviewed-by: Shu-yu Guo <syg@chromium.org>
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#76468}

Bug: v8:12109
Change-Id: Iff4a9c706d0b0092f077d67e4e840292bd8024a9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3276921
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77909}
2021-11-15 19:38:18 +00:00
Frank Tang
2ac274d521 [test262] Roll test262
42e21582f..26f1f4567e

Bug: v8:7834
Change-Id: I00a6b19abb885c0994f5f29d41ba782a848d5e21
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3276916
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77908}
2021-11-15 19:33:37 +00:00
Milad Fa
c8b918f6f1 PPC/S390: Argument Count Consistency
Port: 255aaed95b

Original Commit Message:

   The receiver is now always included in the actual argument
   count and the formal parameter count.
   kDontAdaptArgumentsSentinel is changed from UINT16_MAX to 0
   to preserve the maximum allowed declared parameters.
   The build flag activating the changes is not set for any
   architecture yet.

Bug: v8:11112
Change-Id: Ib106775014a886da80684dcb83ed704bb898a244
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3271635
Reviewed-by: Junliang Yan <junyan@redhat.com>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#77907}
2021-11-15 19:32:33 +00:00
Ng Zhi An
bb9766450d [objects] Make PropertyKind an enum class to fix -Wshadow
Bug: v8:12244,v8:12245
Change-Id: I3029cfb8e9afdcb5e53aa406359aa7246c23ea40
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3274021
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77906}
2021-11-15 19:05:14 +00:00
Dominik Inführ
ac48648715 [heap] Handle new_space() in Heap LAB methods
Let Heap::MakeHeapIterable() and Heap::FreeLinearAllocationAreas() also
handle the new space to be more uniform between spaces. Also removes
Heap::EnsureFillerObjectAtTop() in favor of
NewSpace::MakeLinearAllocationAreaIterable().

Bug: v8:10315
Change-Id: I7d28c1e95e433c4bc5a4a1a1f3aa8d71c43b8887
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3281926
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77905}
2021-11-15 17:28:13 +00:00
Victor Gomes
1fc840fa25 [bazel] Delete encoded-c-signature.h
This seems to be introduced by mistake in:
https://chromium-review.googlesource.com/c/v8/v8/+/3265064

No-Try: true
Change-Id: I6872334af03aa5c55938a6af6a302c5689033332
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3281927
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@{#77904}
2021-11-15 15:14:42 +00:00
Samuel Groß
33381ffdbf Allow customizing the RegionAllocator's split and merge operations
This change allows clients of the RegionAllocator to provide callbacks
that are invoked when regions are split or merged.
This will later be needed on Windows when a RegionAllocator is used to
manage a placeholder mapping as these need to be split and merged (using
the VirtualFree API) as well.


Bug: chromium:1218005
Change-Id: I228b41bdb43c4a9ef0db04de9b121dea6b5f12f9
Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3264287
Commit-Queue: Samuel Groß <saelo@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77903}
2021-11-15 13:59:14 +00:00
Liu Yu
5ee6b7a701 [loong][mips][regexp] Fix stack growth for global regexps
Port commit 3e3a027da1

Beside, some registers are changed to callee-saved, and the previous
related save and restore operations are removed.

Bug: v8:11382

Change-Id: Ic3161f8173771c1b7c190c77cbaf2534f52ec422
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3281673
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#77902}
2021-11-15 12:48:04 +00:00
Dominik Inführ
5f20156341 [heap] Sweep code pages only on the main thread
Code pages need to be swept on the main thread for now. Originally this
was done to prevent RWX on code pages, but there might be more other
smaller issues like the linked bug. Most likely this restriction isn't
a problem for concurrent SP at the moment, so stick with this
invariant for now.

Bug: chromium:1269558, v8:12054
Change-Id: Icf7a7ce9714b9ef07b1a5070f0b0dd963b6d3011
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3279682
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77901}
2021-11-15 12:45:13 +00:00
Dominik Inführ
490a9ead23 [heap] Add methods for freeing all LABs
This CL adds Heap::FreeLinearAllocationAreas to free all local
allocation buffers (LABs). We use this to give up LABs for a local GC.
The second method Heap::FreeSharedLinearAllocationAreas is used to free
all LABs in the shared heap for shared GCs and in the future also on
isolate shutdown.

Bug: v8:10315
Change-Id: Ie5cbb68c95fae027055aeaf4458473b04b15b18c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3279681
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77900}
2021-11-15 12:31:43 +00:00
Manos Koukoutos
e8db01aff7 [wasm] Revisit removed Store node inputs in escape analysis
The stored value might be an allocation that can be removed once the
Store node is removed. We need to revisit this node manually because
inputs in a node removed with ReplaceWithValue are not revisited
automatically.

Bug: v8:11510
Change-Id: I57cb8955a3e2f7143474ad7ced9d946e6d1cc18e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3277880
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77899}
2021-11-15 12:18:25 +00:00
Camillo Bruni
a42e067ec0 [snapshot] Add SnapshotDecompress RCS scope
We do have snapshot decompression trace events, let's also add a
runtime call stats scope for easy comparison.

Bug: chromium:1269494, chromium:1270039
Change-Id: If467cc38f37a0ea9d84e501b4984bf72736c8fa4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3279962
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77898}
2021-11-15 11:44:45 +00:00
Victor Gomes
76b4ebe153 [bazel] Create a target for V8 CI
This allow us to change the target to be built in V8 CI without
changing the bot recipe.

No-Try: true
Bug: v8:12388
Change-Id: I5513e264e7fb5ee273961b88171da8fa793c24f8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3280223
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77897}
2021-11-15 11:33:03 +00:00
Thad House
8927f28f41 [bazel] Support Windows builds in Bazel
Extend bazel build to support windows in addition to linux and mac.

Bug: v8:11234
Change-Id: I264f8dd8a33e221890a408d504a94ce2bc9cc19f
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3265064
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77896}
2021-11-15 10:48:26 +00:00
Camillo Bruni
b295d0b0af [api] Advance API deprecation for APIs last marked in v9.6
Bug: v8:11165
Change-Id: I4b5160245d032f3b57167344b03553e5c0374ca2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3275564
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77895}
2021-11-15 10:47:23 +00:00
Leszek Swirski
6b2fa4c12b [compiler] Post compile tasks from ignition instead of the parser
Posting compile tasks from the parser has several issues:

  1. We don't know how many functions there will be total, so we can't
     yet allocate shared_function_infos array on the Script
  2. Without this array, inner function compiles can't look up their own
     inner functions during bytecode finalization, so we can't run that
     finalization before script parse completes
  3. Scope analysis can't have run yet, so we can only post top-level
     function tasks and if we allocate SharedFunctionInfos early they
     are forced into a bit of a limbo state without an outer ScopeInfo.

Instead, we can post compile tasks during bytecode generation. Then, the
script parse is guaranteed to have completed, so we'll have a
shared_function_infos array and we will have allocated ScopeInfos
already. This also opens the door for posting tasks for compiling more
inner functions than just top-level, as well as generating better code
for functions/methods that reference same-script top-level
let/const/class.

Bug: chromium:1267680
Change-Id: Ie1a3a3c6f1b264c4ef28cd4763bfc6dc08f45d4d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3277884
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77894}
2021-11-15 10:17:19 +00:00
Shu-yu Guo
c96082a265 [test] Fix StringShare cctest for single generation builds
Bug: v8:12382
Change-Id: I31a9e919db56cf7642b2f5e22352ce3ebe0f6e23
Cq-Include-Trybots: luci.v8.try:v8_linux64_single_generation_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3278675
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77893}
2021-11-15 10:12:23 +00:00
Johann
b57944e221 remove blink_test
TestExpectations has been empty for almost 3 years and its
use in v8 is not documented.

Change-Id: I9cf51ddf0934869ed3ba6214b8d6a383dab8a11c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3281260
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Johann Koenig <johannkoenig@google.com>
Cr-Commit-Position: refs/heads/main@{#77892}
2021-11-15 09:52:14 +00:00
Dominik Inführ
195f6e11a6 [heap] Handle paged spaces in Heap::MakeHeapIterable
Complete implementation of Heap::MakeHeapIterable() by also making the
LABs of paged spaces iterable. This method is the one to use when
the heap and/or a particular space shall be iterable.

Bug: v8:12338
Change-Id: Id859cf1a05df21a54939c504c59d7b1ccd659c9b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3277888
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77891}
2021-11-15 08:47:18 +00:00
Andreas Haas
0e6eb3e219 [wasm] Allow dynamic tiering to release CompilationEventCallbacks
With eager compilation, CompilationEventCallbacks get released when all
compilation units in the compilation state are finished. This is
possible because no future compilation event could get triggered after
that. With dynamic tiering, though, the {FinishedCompilationChunk} event
can trigger repeatedly, even after all compilation units finish at some
point in time, as dynamic tiering can create new CompilationUnits. As
a temporary fix, CompilationEventCallbacks don't get released when
dynamic tiering is enabled.

This CL fixes this issue by turning the callback from an std::function
into a class, and adding a second function to the class which indicates
whether the callback can be released when all compilation units in the
compilation state are finished. Thereby all callbacks can be deallocated
except the ones like the code caching callback which waits for the
{FinishedCompilationChunk} events.

R=jkummerow@chromium.org

Bug: v8:12289
Change-Id: I0f73f4bd2dffe644c9a26c274cb52ac6fa49ab67
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3264288
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77890}
2021-11-15 08:34:49 +00:00
Manos Koukoutos
b927dc158c [wasm][turbofan] Store real signature on call nodes for inlining
In each wasm CallDescriptor, we store the signature of the call based on
the real parameters passed to the call. This signature is more precise
than the formal function signature. We use this signature in inlining
to enable more optimizations.

Changes:
- Add wasm_sig_ field to CallDescriptor.
- Construct the real signature in {DoCall} and {DoReturnCall} in
  graph-builder-interface, and pass it to all call-related functions in
  WasmGraphBuilder.
- Update {ReplaceTypeInCallDescriptorWith} to use ValueType over
  MachineType. Construct the updated function signature.
- In wasm-inlining, kill the Call node after inlining.
- Add two tests.

Bug: v8:11510
Change-Id: Ica711b6b4d83945ecb7201be26577eab7db3c060
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3270539
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77889}
2021-11-15 08:13:19 +00:00
JianxiaoLuIntel
725f92cb36 [d8] Fix unused shared_create_params in d8
Change-Id: I2c05683f2172cc4a37189382ad886f523d51e823
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3273814
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Auto-Submit: Jianxiao Lu <jianxiao.lu@intel.com>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77888}
2021-11-15 07:32:58 +00:00
v8-ci-autoroll-builder
0d21b5695b Update google_benchmark
Rolling v8/third_party/google_benchmark/src: a17480d..8401429

Remove bazelbuild/rules_cc dependency (#1283) (Teodor Spæren)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/8401429

Support for building with LLVM clang-10/clang-11 on Windows. (#1227) (Alisenai)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/926f61d

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

Change-Id: I8bf8ac6270221ea56ab065bb7acedd7dbe8f43f8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3281561
Reviewed-by: 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@{#77887}
2021-11-15 05:51:49 +00:00
v8-ci-autoroll-builder
0d49162c98 Update V8 DEPS.
Rolling v8/build: 2c7b246..d134d68

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

Change-Id: Id7ae91bc1ac02eac6b9e5efe0c89b6e3a07a766b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3281560
Reviewed-by: 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@{#77886}
2021-11-15 03:55:10 +00:00
v8-ci-autoroll-builder
0cb383f5d5 Update V8 DEPS.
Rolling v8/build: 701766c..2c7b246

Rolling v8/third_party/depot_tools: 08a95d8..3fca89b

Rolling v8/third_party/googletest/src: 9ca071b..1b18723

Rolling v8/tools/luci-go: git_revision:bf56a119c5f056a1f7a04c8dbe19cdd86728b540..git_revision:4cf9fa8105d30e3a6855bbfca50c5d6f88efb6b2

Rolling v8/tools/luci-go: git_revision:bf56a119c5f056a1f7a04c8dbe19cdd86728b540..git_revision:4cf9fa8105d30e3a6855bbfca50c5d6f88efb6b2

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

Change-Id: I59ae20fdf916dc2d1fd24cb6c5fd3229d252b466
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3279044
Reviewed-by: 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@{#77885}
2021-11-14 03:59:28 +00:00
v8-ci-autoroll-builder
4c03e3c547 Update V8 DEPS.
Rolling v8/build: f38f611..701766c

Rolling v8/third_party/aemu-linux-x64: eWKIKAWWZAJd3aNVfwGevVWupHnf0a31BNfVmvJfkucC.._9UC-vP_2UFSwkJLesq9YhIVywjThQvItoADZJtdSUcC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/279fe4e..a7ad5b5

Rolling v8/third_party/depot_tools: 0b187dc..08a95d8

Rolling v8/third_party/instrumented_libraries: 380f371..e09c4b6

Rolling v8/third_party/zlib: 6da1d53..f8964a5

Rolling v8/tools/clang: 92efe5e..32d7c38

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

Change-Id: I1242a5a0b8efa55c9fa5c979c107122b84407b31
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3279042
Reviewed-by: 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@{#77884}
2021-11-13 03:48:37 +00:00
Jakob Kummerow
4976642bbd [wasm] Switch dynamic tiering to budget-based approach
FLAG_wasm_dynamic_tiering is still off by default. When enabled,
it now uses the technique previously behind --new-wasm-dynamic-tiering.

Bug: v8:12281
Change-Id: I365c2c066e62418cd6abc7830f95d1fe0f950e33
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3275570
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77883}
2021-11-12 23:52:12 +00:00
Igor Sheludko
79f617b009 [runtime][api] Fix tracking of entered contexts
The entered contexts stack must be in sync with the flags stack.

Bug: chromium:1269225
Change-Id: Ibb522286b47866d5f13aaec1a0a02914c13a5545
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3279680
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77882}
2021-11-12 21:15:06 +00:00
Shu-yu Guo
d3f1fcaab0 [heap] Skip values in marking barrier if heap sharedness mismatches
When incrementally marking a non-shared heap, shared values should not
be marked. Similarly, non-shared values should not be marked when
incrementally marking a shared heap.

Bug: v8:11708
Change-Id: Iecd799e7e3060e5fb3897b8be0c4e8158d9ff57f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3278673
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77881}
2021-11-12 19:55:07 +00:00
Ng Zhi An
19d158b50b [deoptimizer] Fix -Wshadow
Bug: v8:12244,v8:12245
Change-Id: I4a57fbd187ffebb1c1f170865641caef7b193926
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3274017
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77880}
2021-11-12 19:41:07 +00:00
Junliang Yan
9b243c9a82 s390x: [baseline] port Generate_BaselineOutOfLinePrologue
Change-Id: I8cd279059800567a81d8586944c8ed4c0ef9fa92
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3279101
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#77879}
2021-11-12 19:13:38 +00:00
Ng Zhi An
e9c531b744 [builtins] Fix -Wshadow warnings
Bug: v8:12244,v8:12245
Change-Id: I02e08e79a7b3a07531bfac753beff13a866247e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3269170
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77878}
2021-11-12 17:52:46 +00:00
Igor Sheludko
ad4b160eaf [runtime] Ensure JSMessageObject has source positions
Under certain conditions GC could flush bytecode array from
SharedFunctionInfos. This CL ensures that the bytecode array is always
available for reconstructing source positions.

Bug: chromium:1265570
Change-Id: I2ce7eb04201f69121687ab0aaa2af42adb2caae0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3275569
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77877}
2021-11-12 17:43:31 +00:00