Commit Graph

71819 Commits

Author SHA1 Message Date
Ng Zhi An
9ffb482926 [wasm-relaxed-simd][x64] Prototype i8x16 relaxed swizzle
Bug: v8:12284
Change-Id: I3519dfa3302c5851585c7430a9930ccd81507090
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3206502
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77327}
2021-10-11 22:13:35 +00:00
Shu-yu Guo
a57d9aaba9 [heap] Promote shareable strings into shared heap
When --shared-string-table is passed, in-place-internalizable strings
are promoted into the shared old space to maintain the invariant that
in-place internalization can be done without copying.

Also some drive-by comment fixes and removal of unnecessary 'explicit'
on multi-parameter constructors.

Bug: v8:12007
Change-Id: I467d865e41934b1d5cdf85cbecc85c4befbfeb21
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3193591
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77326}
2021-10-11 18:33:15 +00:00
Ng Zhi An
c07c0e76c2 [compiler] Fix some -Wshadow warnings
Bug: v8:12244,v8:12245
Change-Id: Ic609c486fddcdb9b8171f013eb400dd74926d871
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3213142
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77325}
2021-10-11 17:10:15 +00:00
Ng Zhi An
574d50af6e [test] Unskip flaky test
Was a clang bug that has since been fixed, https://crbug.com/1163847.

Fixed: v8:11134
Change-Id: Idf2c4bcd8f07024e64e38289793e3af74f43e98c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212808
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77324}
2021-10-11 16:58:15 +00:00
Zhi An Ng
feb721c8f4 Revert "Update V8 DEPS."
This reverts commit 8838a07ee7.

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

Original change's description:
> Update V8 DEPS.
>
> Modified original autoroll to remove the icu roll, was:
>
> "Rolling v8/third_party/icu: 4df07a2..eedbaf7"
>
> See https://bugs.chromium.org/p/v8/issues/detail?id=12301
>
> Rolling v8/build: 64ad2a1..b091468
>
> Rolling v8/buildtools/linux64: git_revision:0153d369bbccc908f4da4993b1ba82728055926a..git_revision:693f9fb87e4febdd4299db9f73d8d2c958e63148
>
> Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/ee3f2f4..89d8a1b
>
> Rolling v8/third_party/depot_tools: 7cdf142..97b5b5f
>
> Rolling v8/third_party/zlib: bffc82b..edc0e06
>
> Rolling v8/tools/luci-go: git_revision:413d434bd4eee1130614494dfb19f1eba03d71af..git_revision:d1c03082ecda0148d8096f1fd8bf5491eafc7323
>
> Rolling v8/tools/luci-go: git_revision:413d434bd4eee1130614494dfb19f1eba03d71af..git_revision:d1c03082ecda0148d8096f1fd8bf5491eafc7323
>
> Rolling v8/tools/luci-go: git_revision:413d434bd4eee1130614494dfb19f1eba03d71af..git_revision:d1c03082ecda0148d8096f1fd8bf5491eafc7323
>
> TBR=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com
>
> Bug: v8:12301
> Change-Id: Iea0e4eef75bc083155a74cba168f0f109461c6f4
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3216188
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
> Cr-Commit-Position: refs/heads/main@{#77322}

Bug: v8:12301
Change-Id: I91e972661450662ee52819e4c7a008de3aaa010d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3216259
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/main@{#77323}
2021-10-11 16:43:27 +00:00
v8-ci-autoroll-builder
8838a07ee7 Update V8 DEPS.
Modified original autoroll to remove the icu roll, was:

"Rolling v8/third_party/icu: 4df07a2..eedbaf7"

See https://bugs.chromium.org/p/v8/issues/detail?id=12301

Rolling v8/build: 64ad2a1..b091468

Rolling v8/buildtools/linux64: git_revision:0153d369bbccc908f4da4993b1ba82728055926a..git_revision:693f9fb87e4febdd4299db9f73d8d2c958e63148

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/ee3f2f4..89d8a1b

Rolling v8/third_party/depot_tools: 7cdf142..97b5b5f

Rolling v8/third_party/zlib: bffc82b..edc0e06

Rolling v8/tools/luci-go: git_revision:413d434bd4eee1130614494dfb19f1eba03d71af..git_revision:d1c03082ecda0148d8096f1fd8bf5491eafc7323

Rolling v8/tools/luci-go: git_revision:413d434bd4eee1130614494dfb19f1eba03d71af..git_revision:d1c03082ecda0148d8096f1fd8bf5491eafc7323

Rolling v8/tools/luci-go: git_revision:413d434bd4eee1130614494dfb19f1eba03d71af..git_revision:d1c03082ecda0148d8096f1fd8bf5491eafc7323

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

Bug: v8:12301
Change-Id: Iea0e4eef75bc083155a74cba168f0f109461c6f4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3216188
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#77322}
2021-10-11 16:33:05 +00:00
Ng Zhi An
31a920aff3 [compiler] Fix some -Wshadow warnings
Bug: v8:12244,v8:12245
Change-Id: Ic63e06543e53d63ba4b58a864b46163abcddf82f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3213350
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77321}
2021-10-11 15:51:23 +00:00
Igor Sheludko
a881300a81 [ext-code-space] Add cage base fields to Code and CodeDataContainer
... which will be used for decompressing Code <-> CDC references
when external code space is enabled.

Bug: v8:11880
Change-Id: I142f635c7cc91cdb79ed51755271fad0223ade0d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3208814
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77320}
2021-10-11 15:01:35 +00:00
Victor Gomes
b54f1360b7 [baseline] Remove SP-on-the-GC-heap
Compiling Sparkplug on the heap saved 10% of the CompileBaseline
RCS metric, but that came with too much code complexity.
Since in the end that corresponds to < 1% of the entire compilation
time, we decided to revert this project.

This reverts:
commit e29b2ae48a
commit d1f2a83b7d
commit 4666e18206
commit a1147408e4
commit e0d4254f97
commit 9ab8422da7
commit a3b24ecc51
commit 1eb8770691
commit fe5c9dfd90
commit 7ac3b55a20
commit 7e95f30ec9
commit 323b596212
commit 6bf0b70490
commit e82b368b67
commit 5020d83e05
commit 642a467338
commit ec7b99d5c6
commit fb4f89aede
commit 208854bb14
commit 63be6dde31

Bug: v8:12158
Change-Id: I9f2539be6c7d80c6e243c9ab173e3c5bb0dff97d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3136453
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77319}
2021-10-11 13:34:45 +00:00
Jakob Kummerow
eeb772b2d3 [wasm] Fix TSan reports for feedback vector size access
By using atomic accessors.

Change-Id: I7ff8660aa118c809da9ce6ff851ebd5080a7b1c6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3217197
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77318}
2021-10-11 13:30:15 +00:00
Marja Hölttä
7b70036ec8 [web snapshots] Add a magic number to the binary format
Bug: v8:11525
Change-Id: I848167e13c7aa47d712a4315902eb8748e86c949
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3217192
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77317}
2021-10-11 13:03:45 +00:00
Jakob Gruber
12ecb4f567 [regexp] Various refactors
No functional changes.

- Removed unused Isolate* argument from regexp extrefs.
- Added const where possible.
- Removed unused functions.
- Shuffled declarations for better readability.
- ...

Change-Id: I6d9093052e8de4e33e9411541a691d0bab7b20c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3217193
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77316}
2021-10-11 13:02:43 +00:00
Leszek Swirski
3e9ba67266 [scanner] Make position a parameter of ReadBlock
It's not obvious for Utf16CharacterStream::ReadBlock that the block it
has to read is implicitly the one at the current pos(), and it was
slightly odd how ReadBlockAt had to fiddle with buffer_* values to make
pos() return the desired value before ReadBlock is called -- especially
since ReadBlock would usually overwrite those changes.

Instead, we can just make ReadBlock take an explicit position, and get
rid of ReadBlockAt entirely.

As a drive-by, I was always confused by what the various buffer_*
actually mean (especially the difference between buffer_cursor_ and
buffer_pos_) so document them with some ASCII art.

Change-Id: I610019089920692f54e01ae979c0ba827779e414
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3217194
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77315}
2021-10-11 12:47:23 +00:00
Nico Weber
bc4ea5e0fc Fix Wbitwise-instead-of-logical warnings
`a && b` only evaluates b if a is true. `a & b` always evaluates
both a and b. If a and b are of type bool, `&&` is usually what you
want, so clang now warns on `&` where both arguments are of type bool.

This warning fires twice in v8.

1. In branch-elimination.cc, we have the rare case where we _want_
   to evaluate both branches so that both reduced_ and node_conditions_
   are always updated. To make this more obvious, reorder the code a
   bit. (The warning can also be suppressed by casting one of the two
   expressions to int, but the reordering seems clearer.)

2. The other case is an actual (inconsequential) typo, so use || here.

Bug: chromium:1255745
Change-Id: I62ba45451ee2642265574d28c646d85f5a18670b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212891
Auto-Submit: Nico Weber <thakis@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77314}
2021-10-11 11:47:52 +00:00
gengjiawen
2a0bc36dec [parser] Fix the MSVC build
MSVC seems to instantiate the Parser::PreParserIdentifierToAstRawString
method despite it being unused. This CL adds an (unreachable)
definition for it.

Bug: v8:12266
Change-Id: I355ca82a9d6b7bc8cd16768a8df93e40f8bfc638
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3199856
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77313}
2021-10-11 11:46:49 +00:00
Victor Gomes
64e0bcff1d [bazel] Adds -Wno-bitwise-instead-of-logical
The warning flag was introduced in the last Clang release:
f62d18ff14

No-Try: true
Change-Id: I8210ee947ad1a459b9edd143e4a1f7b238b4f13e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3217191
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@{#77312}
2021-10-11 11:45:46 +00:00
Marja Hölttä
1efe8685be [web snapshots / d8] Make the output file name configurable
Bug: v8:11525
Change-Id: I16191bfa03bb9bbfb57a48015244c780e8cf30e1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3217190
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77311}
2021-10-11 11:44:44 +00:00
Junliang Yan
91b6d66645 s390: [liftoff] Fix jump table patching
Change-Id: I18181e0328353e14f9f5793779db4806b759ac9b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212293
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#77310}
2021-10-10 18:05:38 +00:00
Shu-yu Guo
388a80bab7 [snapshots] Add a new snapshot for shared heap objects
This CL adds a new snapshot to hold objects that are in the shared heap
or may need to be in the shared heap depending on runtime flags.
Currently this is to support --shared-string-table, which puts all
in-place-internalizable strings, internalized strings, and the
string table into the shared heap.

The shared heap snapshot is never deserialized into client Isolates.
This means when V8 is started without a shared Isolate, the shared heap
snapshot is deserialized into all Isolates.

Bug: v8:12007
Change-Id: I7eeab73080cda2e8250a5a49747f25b2440a349d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173905
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77309}
2021-10-08 23:24:58 +00:00
Shu-yu Guo
e1981ff5e2 [strings] Share internalized and in-place internalizable strings
To prepare for prototyping shared memory features, all internalized and
in-place internalizable (1- and 2-byte seq strings and external strings)
will always be allocated in the shared old space.

Cons strings, thin strings, and sliced strings remain allocated in the
thread-local space. They are copied over to the shared space when
internalized, as internalization implies flattening, which for these
strings requires a copy already.

To make the in-place internalization threadsafe, updating the map of
such strings is now done with a release store.

This CL does not yet support external strings.

Bug: v8:12007
Change-Id: I982c35c5120bf4c0c70c5294ce011b47430414c8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3140784
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77308}
2021-10-08 22:43:38 +00:00
Shu-yu Guo
98d7bbb435 [strings] Add --shared-string-table and support in d8
This CL reorders the initialization scheme for shared and client
Isolates such that clients attach to the shared Isolate before
setting up the Heap. This is to support sharing the string table.

Bug: v8:12007
Change-Id: Icb0e40cc5ed84d516c8073a70d0f769f517044c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3039264
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77307}
2021-10-08 22:40:28 +00:00
Milad Fa
9e68fc6eaf PPC [liftoff]: add cp to the offset documentation
Change-Id: Icd9d2c1c7c6b9e1ce2ebbf078e8984beda8c258d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212898
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#77306}
2021-10-08 18:54:27 +00:00
Samuel Groß
c3068d133b Require pointer_compression_shared_cage for virtual_memory_cage
The shared pointer compression cage is a requirement for the V8 virtual
memory cage, and there are some configurations that don't enable the
former but enable the latter, which thus break.

Bug: chromium:1218005
Change-Id: I734598a952ccafd57e4ed63a71e76e4dc252057e
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/+/3211996
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77305}
2021-10-08 17:19:48 +00:00
v8-ci-autoroll-builder
5b4b305ae1 Update V8 DEPS.
Rolling v8/build: c40c33e..64ad2a1

Rolling v8/buildtools/third_party/libc++abi/trunk: fdbb919..9eb0245

Rolling v8/buildtools/third_party/libunwind/trunk: 15999e7..557b51a

Rolling v8/third_party/aemu-linux-x64: ekZcu3VD0XVbtKxyJwVgI96y6Sr0eYcdLkgCt6ejF0gC..-dh4A1LzldRT2V-3X5pbC7DZsxgQ01JhKIFo6Bx5WP4C

Rolling v8/third_party/android_platform: 1a68ade..72e09e9

Rolling v8/third_party/depot_tools: 281edf7..7cdf142

Rolling v8/third_party/icu: 4df07a2..eedbaf7

Rolling v8/third_party/instrumented_libraries: 5df06a4..6527a4e

Rolling v8/tools/clang: c06edd1..203feb7

Rolling v8/tools/luci-go: git_revision:293cb303c8d63cc435a32b2fd1e834db15bfc069..git_revision:413d434bd4eee1130614494dfb19f1eba03d71af

Rolling v8/tools/luci-go: git_revision:293cb303c8d63cc435a32b2fd1e834db15bfc069..git_revision:413d434bd4eee1130614494dfb19f1eba03d71af

Rolling v8/tools/luci-go: git_revision:293cb303c8d63cc435a32b2fd1e834db15bfc069..git_revision:413d434bd4eee1130614494dfb19f1eba03d71af

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

Change-Id: I969789fcffb6371a253a717b7ba5cc2973804dab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3213847
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#77304}
2021-10-08 15:59:35 +00:00
Frank Tang
77e713f533 Reland "[Temporal] Part 1 - Skeleton"
This is a reland of 0adc1410b1

1. Fork out test/mjsunit/temporal/function-exist.js test
to test/mjsunit/temporal/function-exist-no-i18n.js and mark
 function-exist FAIL in no_i18n build.

Original change's description:
> [Temporal] Part 1 - Skeleton
>
> 1. Expose all the functions to empty buildins.
> 2. Wire up basic structure of classes and internal slots.
>
> Design Doc: https://docs.google.com/document/d/1Huu2OUlmveBh4wjgx0D7ouC9O9vSdiZWaRK3OwkQZU0/
>
> This is just a CL to establish a skeleton for Temporal.
> The Temporal is very big. The prototype CL is in
> https://chromium-review.googlesource.com/c/v8/v8/+/2967755
> but too big to be reviewed so I break up the basic structure here first.
>
> Cq-Include-Trybots: luci.v8.try:v8_linux64_bazel
> Bug: v8:11544
> Change-Id: I10d09e3c2530e5b1a6ba60014a2294e138879ff3
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3092561
> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> Reviewed-by: Shu-yu Guo <syg@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#76819}

Bug: v8:11544
Change-Id: I60eaface94ba9b3408cb235cd1ae425151a36732
Cq-Include-Trybots: luci.v8.try:v8_linux64_bazel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3160324
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77303}
2021-10-08 15:50:13 +00:00
Toon Verwaest
50d3de0204 [parser] Simply receiver handling in scopes
By adding the receiver variable to the locals we'll automatically create
a proper scope info entry. The receiver is allocated before we allocate
other locals anyway, so it'll be properly allocated.

Change-Id: Ic1d57257d26473f3a50cce27c335565bcb6e06c3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3211995
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77302}
2021-10-08 15:32:56 +00:00
Benedikt Meurer
08aa49eb7f [inspector] Reduce upper bound for async stack traces.
The V8Debugger maintains a list of async stack traces that were captured
so far, two mappings pointing weakly to async stack traces in this (one
mapping for tasks and one mapping for stored async stack traces). The
V8Debugger regularly prunes the list (and cleans up the stale weak
pointers afterwards) by going through the list in insertion order and
removing items until the number is below half the limit of 128k entries.

This approach wastes a lot of memory, since the list grows very big
before this manual collection starts, and it doesn't pay any attention
to whether the stack traces are still in active use or not. Also the
limit of 128k seems incredibly high (and arbitrary).

This leads to crashes observed in applications with lots of async task
activity (i.e. huge Angular applications) as soon as the debugger is
attached.

This CL performs a quickfix by reducing the limit for async stack traces
to a more reasonable number of 8k. We will need to follow up with a
proper fix that ensures that we only hold on strongly to async stack
traces that are still in need.

Also-By: jarin@chromium.org
Fixed: chromium:1258000
Bug: chromium:1257637, chromium:1254279, chromium:1203218
Change-Id: I2c482a688df4c6df575a0045d443db89d89b3d73
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3211709
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77301}
2021-10-08 13:39:06 +00:00
Junliang Yan
1628c91b51 ppc: [liftoff] Fix jump table atomic patching
Change-Id: I64f1d8868b3bc732d0014baaf4c87a7b6a0c68db
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212814
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#77300}
2021-10-08 12:45:45 +00:00
Patrick Thier
d87e5f42f3 [turbofan] Handle Allocations in StoreStoreElimination
Previously, StoreStoreElimination handled allocations as
"can observe anything". This is pretty conservative and prohibits
elimination of repeated double stores to the same field.
With this CL allocations are changed to "observes initializing stores".
This way it is guaranteed that initializing stores to a freshly created
object are not eliminated before allocations (that can trigger GC), but
allows elimination of non-initializing, unobservable stores in the
presence of allocations.

Bug: v8:12200
Change-Id: I5ef1ca8892a84a3b332e081e2fa6285d0eba9d46
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3211585
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77299}
2021-10-08 11:06:55 +00:00
Samuel Groß
8dbfae64ad Remove CppgcBoundedPageAllocator
This allocator was only required to ensure zero-initialization of pages
returned by the BoundedPageAllocator. With crrev/c/3208812, this is now
possible in a (hopefully) more efficient way by using the
kAllocatedPagesMustBeZeroInitialized PageInitializationMode.

Bug: chromium:1218005
Change-Id: I504248107a54c90285aa9a3a616b334aaa3fcb7a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3211583
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77298}
2021-10-08 10:43:05 +00:00
Igor Sheludko
aae06f0b01 [ext-code-space] Fix code bloat on Android builds
... introduced in
https://chromium-review.googlesource.com/c/v8/v8/+/3182231

Bug: v8:11880, chromium:1254494
Change-Id: I40bdb5b062adc74ed1dc63d9a334184fcac451b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212509
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77297}
2021-10-08 09:27:25 +00:00
Samuel Groß
95e7aee144 Reserve a minimally-sized virtual memory cage on older Windows versions
On Windows pre 8.1, reserving a large virtual memory region for the cage
is too expensive as it (apparently) creates PTEs. As such, we can only
create a cage with the minimum size and without guard regions.

Bug: chromium:1218005
Change-Id: Ib19b9a08f8c965d9739c1d539a0153b32a290826
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212507
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77296}
2021-10-08 08:16:25 +00:00
Manos Koukoutos
dc6e1c4e90 [fuzzer] Print compilation error in wasm-compile
For debugging purposes, we print the validation error if the module
generated by WasmCompileFuzzer fails to validate.

Change-Id: I79d2827e489194d02150484ab5a196e979a302af
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3211574
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77295}
2021-10-08 08:10:16 +00:00
Lu Yahan
7cd438c6d3 [riscv64] Port [fastcall] Enable float support on arm64
Change-Id: Iba439f2de9da359baeebd23482880013939b3066
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212059
Auto-Submit: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Commit-Queue: ji qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#77294}
2021-10-08 03:23:57 +00:00
Liu Yu
316f02f412 [mips][loong64][wasm-gc][liftoff] Reserve a stack slot for feedback
Port: 9d3c9d471f

Bug: v8:7748

Change-Id: Id2fbd5c8dd5be1ea1932f48c03657f636bfb28bd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3213351
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Liu yu <liuyu@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#77293}
2021-10-08 03:22:55 +00:00
Ng Zhi An
166dde5d2f [x64] Verify disassembly of SSE4_2 instructions
R=gdeepti@chromium.org

Bug: v8:12207
Change-Id: I3eafe4b2cf2d37fd4f8a9792fb96bf7b92a4c61b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3208456
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77292}
2021-10-08 00:13:23 +00:00
Ng Zhi An
61203cb9b7 [ia32][x64] Enable CPU feature in Assembler if supported
x64 already had logic to enable a lower CPU extension if a higher
level one was supported. Add this to ia32. And also add SSSE3->SSE3
logic.

Drive-by cleanup to remove an extra CpuFeatureScope.

Bug: v8:11154
Change-Id: I12e3aa990cc07149da213911c624468a39f4e1a3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212811
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77291}
2021-10-07 23:12:16 +00:00
Frank Tang
fed33f904f Reland "[intl] Fix consistency in Intl API"
This is a reland of a1e6efd80c

Fix Android issue by checking the resources is not filtering out.

Original change's description:
> [intl] Fix consistency in Intl API
>
> Fix several edge cases consistency issues with ICU discovered by test262 test by
> using Intl Enumeration API
> 1. Work around ICU short coming of always fallback in currency display
>  name so when the fallback is "none" in DisplayNames, the force fallback
> code will produce the correct undefined from the of(currency_code) method.
> 2. Always check numbering system is not algorithm based numbering system
> to fix DateTimeFormat/RelativeTimeFormat/NumberFormat
> resolvedOptions().numberingSystem when the reqested numberingSystem is one
> of the numbering systems that we filter out the resources and not supported.
> 3. Generalize the iso8601 bit solution in DateTimeFormat and rename it to
> alt_calendar bit to also fix DateTimeFormat resolvedOptions report
> calendar as "islamic" while requesting "islamic-rgsa".
> 4. Work around reporting inconsistency of currency code and display name
> in ICU.
>
> Bug: v8:12209
> Change-Id: Ibd349ee55426fad7d6f20a5e93fb35ff7438e111
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3153576
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Reviewed-by: Shu-yu Guo <syg@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#77242}

Bug: v8:12209
Change-Id: I96e1ba33e97f6a4abbe20e23a8fdff6cdf8bc131
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3207380
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77290}
2021-10-07 21:41:43 +00:00
Milad Fa
4413ae63df PPC/s390: [wasm-gc][liftoff] Reserve a stack slot for feedback
Port 9d3c9d471f

Original Commit Message:

    So far the slot is set to 0; in an upcoming CL it will be
    used for an actual feedback vector.

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

Change-Id: Idbaa1d11fbfe81cf1106e4796c82ae6a1d6c1a11
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212330
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#77289}
2021-10-07 17:14:39 +00:00
Maria Tîmbur
b7e3bd9d87 [fuzzer] Add support for the i8 and i16 packed types.
Add support for the i8 and i16 packed types.
Because i8 and i16 do not exist as value types
we need an i32 to instantiate a packed field.

Bug: v8:11954
Change-Id: Ib311fee537c4c9e4aed0ac366172b9b5fb1ee88e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3210267
Commit-Queue: Maria Tîmbur <mtimbur@google.com>
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77288}
2021-10-07 15:56:00 +00:00
Jakob Kummerow
5d75bd1fdb [wasm-gc] Speculative inlining for call_ref (off by default)
This patch adds infrastructure for collecting feedback about call_ref
call targets in Liftoff code, and using that feedback for turning
such calls into inlineable direct calls when building Turbofan graphs.
The feature is considered experimental quality and hence off by default,
--wasm-speculative-inlining turns it on.

Bug: v8:7748
Change-Id: I0d0d776f8a71c3dd2c9124d3731f3cb06d4f5821
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3205902
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77287}
2021-10-07 14:56:39 +00:00
Camillo Bruni
dee82c85a3 [runtime] Mark more Context getters const
- Add Context extension slot verification
- Fix ScriptContextTable printing
- Make Context::scope_info() inlinable

Bug: chromium:1244145
Change-Id: Ide71866885f3f92de6561dfef6911ee52c6094f9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3211578
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77286}
2021-10-07 14:33:59 +00:00
Samuel Groß
18c37d3258 Add PageInitializationMode enum for the BoundedPageAllocator
Currently, when compiling with V8_VIRTUAL_MEMORY_CAGE enabled, the
behavior of the BoundedPageAllocator changes from simply making freed
pages inaccessible to decommitting them, which guarantees that they will
be zero-initialized after the next allocation. As this seems to cause
some performance regressions on Mac, this CL introduces a new enum that
specifies how the allocator should behave:
kAllocatedPagesMustBeZeroInitialized causes the pages to be decommitted
during FreePages() and ReleasePages() and thus guarantees
zero-initialization during AllocPages().
kAllocatedPagesCanBeUninitialized only causes the pages to be made
inaccessible, and so does not generally guarantee zero-initialization
for AllocPages().

Finally, this CL also removes some dead code in allocation.cc.

Bug: chromium:1257089
Change-Id: I53fa52c8913df869bee2b536efe252780d1ad893
Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3208812
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@{#77285}
2021-10-07 12:55:39 +00:00
Jakob Gruber
6fbb8bc806 [intl] A fast path for Intl::CompareStrings
Certain collators and subject strings may take this new fast
path without calling into the (slow) ICU comparison functions.

This CL can be roughly split into three topics:
1. The fast path check, precomputed and implemented as a whitelist
   on the current locale string.
2. The actual fast path, which checks subject string eligibility
   and performs L1 and L3 collation weight comparisons all in one pass.
3. Resuming from an aborted fast-path into the generic path.

A longer overview is available at
https://docs.google.com/document/d/1oyDwjYn2JyHsx2YnJJKhjX0WMNQXb8ao86-DRzqiYNg/edit?usp=sharing

JetStream2/cdjs scores improve by roughly 40%.

Bug: v8:12196
Change-Id: I5e1bbd731a36c361af9667f9104d6fa15c42e117
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3149463
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77284}
2021-10-07 12:35:29 +00:00
v8-ci-autoroll-builder
c07776ad92 Reland "Update V8 DEPS."
This is a reland of 2ca7641f99

The tools/clang change was reverted to make sure we don't experience timeouts like
https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20CFI/8083/overview

Bug: v8:12293

Original change's description:
> Update V8 DEPS.
>
> Rolling v8/build: ebad853..c40c33e
>
> Rolling v8/buildtools/third_party/libc++abi/trunk: 9959b06..fdbb919
>
> Rolling v8/buildtools/third_party/libunwind/trunk: a002c72..15999e7
>
> Rolling v8/third_party/aemu-linux-x64: FAd7QuRV-mCjbKgg2SO4BBlRCvGIsI672THjo3tEIZAC..ekZcu3VD0XVbtKxyJwVgI96y6Sr0eYcdLkgCt6ejF0gC
>
> Rolling v8/third_party/android_platform: 7a11b79..1a68ade
>
> Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/c0b9d25..ee3f2f4
>
> Rolling v8/third_party/depot_tools: 0e2fb33..281edf7
>
> Rolling v8/third_party/googletest/src: 3b49be0..075810f
>
> Rolling v8/third_party/icu: 3f44383..4df07a2
>
> Rolling v8/third_party/zlib: dfa96e8..bffc82b
>
> Rolling v8/tools/clang: c06edd1..8640ca8
>
> Rolling v8/tools/luci-go: git_revision:a373a19da0fbbbe81b2b684e3797260294393e40..git_revision:293cb303c8d63cc435a32b2fd1e834db15bfc069
>
> Rolling v8/tools/luci-go: git_revision:a373a19da0fbbbe81b2b684e3797260294393e40..git_revision:293cb303c8d63cc435a32b2fd1e834db15bfc069
>
> Rolling v8/tools/luci-go: git_revision:a373a19da0fbbbe81b2b684e3797260294393e40..git_revision:293cb303c8d63cc435a32b2fd1e834db15bfc069
>
> TBR=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com
>
> Change-Id: I99dbd70ee899e1d1c9fafcf72509f2f50b1ae8a5
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3210331
> 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@{#77275}

Change-Id: Ia209b986eea61444d768782f58d4ba9391934f3f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3211569
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77283}
2021-10-07 12:24:19 +00:00
Andreas Haas
13a96f9363 [wasm] Trigger FinishedCompilationChunk event only with dynamic tiering
R=clemensb@chromium.org

Bug: v8:12281
Change-Id: Ice1465c2656c0ffd95b6297039f40762a176ddb4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3211581
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77282}
2021-10-07 11:47:17 +00:00
Camillo Bruni
1860b816ef [d8] Rename ScriptOrModule variables
Change-Id: I2ef2314deb2384dfdca06bd46f2d3640787c2011
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3211579
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Auto-Submit: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77281}
2021-10-07 11:23:09 +00:00
Lutz Vahl
79763662a8 Changed version number to 9.7
R=hablich@chromium.org, vahl@chromium.org

Change-Id: I9b30abad9500a1d89dd42f43dfe3e54fb4aed23c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3211573
Reviewed-by: Lutz Vahl <vahl@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Lutz Vahl <vahl@chromium.org>
Auto-Submit: Lutz Vahl <vahl@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77280}
2021-10-07 10:38:23 +00:00
Jakob Kummerow
9d3c9d471f [wasm-gc][liftoff] Reserve a stack slot for feedback
So far the slot is set to 0; in an upcoming CL it will be
used for an actual feedback vector.

Bug: v8:7748
Change-Id: I79f7502757d2cd8b07ced7105bf7532f5bc9b4f0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3205898
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77279}
2021-10-07 09:38:54 +00:00
Michael Lippautz
6123c57182 cppgc: Move incremental step on allocation to allocation observer
In addition, trigger the observer only every ~256KiB to avoid
excessive incremental marking steps on fragemented heaps that have to
set up LABs repeatedly.

Bug: v8:12285
Change-Id: Id3d85d2c3f96d9d914c731f998df827898e1863d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3208810
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77278}
2021-10-07 09:35:14 +00:00