Commit Graph

72540 Commits

Author SHA1 Message Date
Leszek Swirski
c201bb0909 [test] Fix flag scope __LINE__ use
`foo ## __LINE__` just emits foo__LINE__ because of how preprocessor
expansion works.

The typical solution for this is to use a CONCAT macro, but we in fact
already have a helper for what this is trying to solve,
UNIQUE_IDENTIFIER, so just use that instead.

Change-Id: Icea3f01db458c5d557e0affd3b004f4478c6c315
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3293084
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77998}
2021-11-19 18:02:33 +00:00
Samuel Groß
a32d2dda80 Hold the mutex throughout BoundedPageAllocator::ReleasePages
Previously, an allocation from a separate thread could grab the
just-released region and make it accessible before the regions
permissions are changed to kNoAccess at the end of ReleasePages.

Bug: v8:12414
Change-Id: I98c8f8e3df76d4a44c357ddab107cfeff20049b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3293083
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77997}
2021-11-19 16:26:43 +00:00
Dominik Inführ
7e62e2aa60 [heap] Fix DCHECK failure in Heap::StartIncrementalMarking
When starting incremental marking from an allocation observer, the
DCHECK for AllowGarbageCollection::IsAllowed() fails. We need to
explicitly allow this here in order to use SafepointScope.

Bug: chromium:1271659, v8:11708, v8:12413
Change-Id: I8607a82faed50f8dfffce1e495fb5e715a47bc1b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3293086
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Auto-Submit: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77996}
2021-11-19 14:21:53 +00:00
Ray Wang
7ae0b77628 [interpreter] Stop jump-table optimizing switch stms when spread overflows
Bug: v8:12389
Change-Id: I53c728ab0c8ba38c7dd96c7e1089f771ba44b9f0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289227
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77995}
2021-11-19 12:39:28 +00:00
Victor Gomes
46db3f20f1 [baseline] Predictable \/ SingleThreaded -> No Concurrent SP
Bug: v8:12054
Change-Id: I756c0a0d05860e2de748842157f4fa54726e94da
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289177
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77994}
2021-11-19 12:00:36 +00:00
Victor Gomes
906a69c43f [baseline] Disable CollectCPU when Concurrent SP
Bug: v8:12054
Change-Id: Ic121ef55ae7f8578aca3fc8303976f98959d2c8b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289175
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77993}
2021-11-19 11:37:23 +00:00
Patrick Thier
160a9f92aa Remove std::iterator uses
std: :iterator is deprecated C++17. Use base::iterator instead.
Change-Id: I682dc3b1547120e067a64eea4f71ffe4ee55ad16
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289168
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Auto-Submit: Patrick Thier <pthier@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77992}
2021-11-19 10:17:20 +00:00
Ng Zhi An
b6253099af Reland "heap: Fix compaction aborting all pages"
This reverts commit 2f17c06963.

Reason for revert: related to --concurrent_sparkplug and not to this

Original change's description:
> Revert "heap: Fix compaction aborting all pages"
>
> This reverts commit 18236dcbea.
>
> Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20no-concurrent-marking/6576/overview
>
> Original change's description:
> > heap: Fix compaction aborting all pages
> >
> > In such a case, we must post-process all aborted pages. The early
> > bailout assumed that not pages are aborted before trying compaction.
> >
> > Bug: chromium:1271229
> > Change-Id: I4c5998b9d1c7974f7d1d25a6729f42d5690a5759
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289171
> > Reviewed-by: Hannes Payer <hpayer@chromium.org>
> > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#77987}
>
> Bug: chromium:1271229
> Change-Id: Ia4b8687a0f3742bf0c894989f68c249b6c87c446
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3291900
> Auto-Submit: Zhi An Ng <zhin@chromium.org>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
> Owners-Override: Deepti Gandluri <gdeepti@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#77988}

Bug: chromium:1271229
Change-Id: Iba76a1ab11f1a52b845305f0aee4710af1406a91
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3292087
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77991}
2021-11-19 08:54:43 +00:00
Milad Fa
500defa505 PPC [liftoff]: Avoid overwriting offset register during fp load
Change-Id: I2abc916894b84aad5794e4a69979ca8683644806
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289933
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#77990}
2021-11-19 00:05:10 +00:00
Deepti Gandluri
31e20c034e Revert "[baseline] Enable Concurrent Sparkplug on future"
This reverts commit 19bbd0f7f4.

Reason for revert: Fails on future bot - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20no-concurrent-marking/6576/overview

Original change's description:
> [baseline] Enable Concurrent Sparkplug on future
>
> Bug: v8:12054
> Change-Id: I7bbd22067a9e98038a08ce5cb4b0ef494aadd651
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289252
> Commit-Queue: Victor Gomes <victorgomes@chromium.org>
> Commit-Queue: Milad Fa <mfarazma@redhat.com>
> Auto-Submit: Victor Gomes <victorgomes@chromium.org>
> Reviewed-by: Milad Fa <mfarazma@redhat.com>
> Cr-Commit-Position: refs/heads/main@{#77986}

Bug: v8:12054
Change-Id: I97a511b00a79a606ac9abb6d15b707c75706deee
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3292095
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77989}
2021-11-18 23:04:20 +00:00
Zhi An Ng
2f17c06963 Revert "heap: Fix compaction aborting all pages"
This reverts commit 18236dcbea.

Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20no-concurrent-marking/6576/overview

Original change's description:
> heap: Fix compaction aborting all pages
>
> In such a case, we must post-process all aborted pages. The early
> bailout assumed that not pages are aborted before trying compaction.
>
> Bug: chromium:1271229
> Change-Id: I4c5998b9d1c7974f7d1d25a6729f42d5690a5759
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289171
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#77987}

Bug: chromium:1271229
Change-Id: Ia4b8687a0f3742bf0c894989f68c249b6c87c446
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3291900
Auto-Submit: Zhi An Ng <zhin@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Owners-Override: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77988}
2021-11-18 21:17:30 +00:00
Michael Lippautz
18236dcbea heap: Fix compaction aborting all pages
In such a case, we must post-process all aborted pages. The early
bailout assumed that not pages are aborted before trying compaction.

Bug: chromium:1271229
Change-Id: I4c5998b9d1c7974f7d1d25a6729f42d5690a5759
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289171
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77987}
2021-11-18 20:15:20 +00:00
Victor Gomes
19bbd0f7f4 [baseline] Enable Concurrent Sparkplug on future
Bug: v8:12054
Change-Id: I7bbd22067a9e98038a08ce5cb4b0ef494aadd651
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289252
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#77986}
2021-11-18 18:33:40 +00:00
Clemens Backes
55d2c08c3c [codegen] Rename deoptimization info in safepoints
The entries contain more than just deoptimization info. Thus rename them
to "entries" and use "EntryBuilder" instead of "DeoptimizationInfo".

Drive-by: Remove the redundant {emitted_} field, just check if
{offset_} was initialized.

R=jkummerow@chromium.org

Bug: v8:12401
Change-Id: Ifedc265dc27dd6817b731d9e24a1d8654edc99de
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3291310
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77985}
2021-11-18 17:31:30 +00:00
Junliang Yan
a302ee47b7 s390x: [baseline] Add baseline entry in builtins
Change-Id: Ibd3ba4cd1edc174fdfaa826b8a6f7731f4627365
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289932
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#77984}
2021-11-18 17:12:46 +00:00
Clemens Backes
1c43ad5005 [codegen] Verify safepoint entries
Verify certain properties when emitting safepoint tables:
- entries are ordered by PC,
- trampoline PCs are also in order,
- all trampoline PCs come after all regular PCs, and
- an entry with a deopt index also has a trampoline PC set.

Drive-by: Slightly simplify logic in {UpdateDeoptimizationInfo}.
Drive-by 2: Inline IsIdenticalExceptForPc into the only caller, and
further simplify the logic there.

R=jkummerow@chromium.org

Bug: v8:12401
Change-Id: I8ea41b1628dceb914191f23165c8dccb79f9204c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289162
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77983}
2021-11-18 17:03:50 +00:00
Michael Lippautz
6fcbc0d2de cppgc: Fix Heap destruction finishing a GC
We should not assume that the embedder can run with concurrent marking
even though we just finalize the GC at this point.

Bug: chromium:1271371
Change-Id: I3d3a45e4283dcae9c6fdd1a467158254914868c3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289169
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77982}
2021-11-18 16:57:21 +00:00
Michael Lippautz
5ab4b89e12 cppgc: Add binary trees benchmark
Change-Id: I4886923bd3b2c29f5f317fbfab078af4d5dd8510
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289156
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77981}
2021-11-18 16:42:24 +00:00
Victor Gomes
74da8260c0 [baseline] Enable concurrent sparkplug on future
Bug: v8:12054
Change-Id: I492ceb377eb0e38f249f76e9f2a5cb554781652c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3291321
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77980}
2021-11-18 16:14:52 +00:00
Clemens Backes
7814343b75 [codegen] Use kNoDeoptIndex consistently
This removes the redundant {Safepoint::kNoDeoptimizationIndex}
definition, and uses {SafepointEntry::kNoDeoptIndex} consistently.

R=jkummerow@chromium.org

Bug: v8:12401
Change-Id: I4e12862d96a2b97245f8dde62243013425e53ff1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289159
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77979}
2021-11-18 16:12:50 +00:00
Milad Fa
e8b76952a4 PPC: add lhbrx to the dissembler
Change-Id: Ie61638fbc61b5a84dc9ba396e4df7193a2ebd6a7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3291547
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#77978}
2021-11-18 16:00:31 +00:00
v8-ci-autoroll-builder
2281ca47d3 Update V8 DEPS.
Rolling v8/build: 220a7fc..994f319

Rolling v8/buildtools: b138e6c..075dd7e

Rolling v8/buildtools/third_party/libc++abi/trunk: 707d75f..81212d2

Rolling v8/buildtools/third_party/libunwind/trunk: 51ffc5e..7f068e5

Rolling v8/third_party/android_sdk/public: AuYa11pULKT8AI14_owabJrkZoRGuovL-nvwmiONlYEC..Ez2NWws2SJYCF6qw2O-mSCqK6424l3ZdSTpppLyVR_cC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/1a5ffbc..e6e1eb6

Rolling v8/third_party/depot_tools: 2efe3d7..1c7dec3

Rolling v8/third_party/googletest/src: 1b18723..1a3e2a2

Rolling v8/tools/clang: 2c3af75..8caa4c5

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

Change-Id: I08fb9b9716466ecd84e01873e2d3d9019dd28056
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3290473
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@{#77977}
2021-11-18 15:42:53 +00:00
Dominik Inführ
fa8345df52 [heap] SafepointScope needs GCs to be allowed
A SafepointScope might need to block for a shared GC initiated from
another client isolate. This means that anytime we create a
SafepointScope a shared GC may run. This CL adds a DCHECK to ensure
AllowGarbageCollected::IsAllowed() holds for each SafepointScope.

So far this DCHECK was only run in the less likely event that a
SafepointScope actually runs a shared GC. Which is technically good
enough but it is easy to miss use cases of SafepointScope where this
does not hold.

Bug: v8:11708, v8:12377
Change-Id: I30cc33c05ebe4835430e1d699a86079810523858
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289625
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77976}
2021-11-18 15:41:50 +00:00
Clemens Backes
581b7c886c [codegen][cleanup] Switch safepoint fields to int
Many callers already pass an int, so there is no point in storing as an
uint32_t internally. The style guide also recommends int as the general
data type for integers, even if it's statically known that only positive
values will occur.

R=jkummerow@chromium.org

Bug: v8:12401
Change-Id: I6067139f514895f925d1c536112b4cb5c2c24a36
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289157
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77975}
2021-11-18 15:30:40 +00:00
Seth Brenith
ff05fe59b8 [tools] Make v8windbg more resilient to inlining
In order to determine which module contains V8, v8windbg has been
looking for the known symbol v8::Script::Run. However, that symbol might
not be found if the function was inlined. To fix, we should instead
choose a symbol that is declared with V8_NOINLINE.

Change-Id: Ib73dfb27f35ab81ab69f92ffab944f6f1096b895
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3290107
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#77974}
2021-11-18 15:29:00 +00:00
Jakob Gruber
7805c33c46 Compact DependentCode on growth
Refactor s.t. we now compact the DependentCode weak fixed array both
when adding new entries and when marked for deopts.

Bug: v8:12397
Change-Id: I842f3369644e88cc0b98a1f1371259c920cc8bbf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3291320
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77973}
2021-11-18 14:57:23 +00:00
Victor Gomes
9889f08e0e [test] Skip some cctest when concurrent sparkplug
The cpu profiler tests require a precise trace and become
flaky when running with concurrent sparkplug.

Bug: v8:12054
Change-Id: I62a20d15530c610bc1091371781c28687c718720
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289158
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77972}
2021-11-18 14:27:23 +00:00
Manos Koukoutos
5dad97b0a5 [wasm] Use vector for states in Int64Lowering
Using a map to store node states in Int64Lowering has proven slow.
Therefore, we change the data structure to a vector indexed by node ids.

Bug: v8:12166, chromium:1271179
Change-Id: I13b78091fe1a6a13c26afd706d3839b0c04390f4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3291308
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77971}
2021-11-18 14:16:50 +00:00
Kim-Anh Tran
026c972dd7 [debugger] Explicitly encode 'other' as reason for breaks and pauses
This CL explicitly encodes the 'other' reason for breaking for:
* regular breakpoints
* triggered pause events.

The reason for explicitly encoding the reason is that we may otherwise
not know why we pause when we handle it. This knowledge is needed
in order to fully support instrumentation breakpoints, e.g. if we do
not know that we paused on a triggered pause, and this happens to
overlap with an instrumentation, we would previously only report
'instrumentation' as a reason which would be wrong.

Bug: chromium:1229541
Change-Id: I93c08f965a491f6d34f280157b182a78d5b3cf07
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289638
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Kim-Anh Tran <kimanh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77970}
2021-11-18 14:03:50 +00:00
Jakob Gruber
f6f829b49f [compiler,code] Refactor code dependencies
Prior to this CL we regularly generated high counts of code
dependencies, and installation was not the most efficient.

This CL 1) implements early dependency deduplication and
2) simplifies the way dependencies are persisted on the heap
through DependentCode.

Re 1): we dedupe twice, once based on the CompilationDependency
contents, and again once we know the final target object.

Re 2): Instead of a linked list of weak fixed arrays per
dependency group, store deps in a flat array together with a
bitset of their dependency groups.

See also:
https://docs.google.com/document/d/1B34S1s3Iv6hbquZ93RugD0b-ZKfHEptJ8Fk_YyOvjDk/edit

Bug: v8:12195,v8:12397
Change-Id: I9ab47f6d87b10558194b5de30a36b1122f7e362a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3283074
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77969}
2021-11-18 13:22:57 +00:00
Victor Gomes
44ba2adb40 [heap][arm] Call AddCodeMemoryChunk off-thread
When compiling code off-thread in the large code space,
we need to register the chunk in the isolate using
AddCodeMemoryChunk.

In the main thread, this is done when AllocateRaw calls
NotifyOldGenerationExpansion.

Bug: chromium:1269315, v8:12054
Change-Id: I46ea5c9cdcd063708292dd49aac6d39091e11ba4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289151
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77968}
2021-11-18 13:17:56 +00:00
Patrick Thier
3e40f8f091 Add check for class constructor to CallFunction
Raise an exception if CallFunction is invoked with a class constructor.
The check was initially removed in [1] but there are cases where we
could end in CallFunction with class constructors from optimized code.

[1] https://crrev.com/c/3186434

Bug: chromium:1271384
Change-Id: I0d700c4b1d117334c1c4c14719e24cd1f2c5e3a2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3291313
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77967}
2021-11-18 12:44:10 +00:00
Tobias Tebbi
622dc9b7c2 [turbofan] fix type assertion for OtherUndetectable type
Undetectables are always callable in V8, so the previous type check
didn't make sense.

Bug: chromium:1267230
Change-Id: Idb557bb05ee4c3b332d1fe61b40557122660261a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3291303
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77966}
2021-11-18 11:48:26 +00:00
Manos Koukoutos
95c1647a45 [wasm] Update permitted calls in unrolled loops
We prevent unrolling of loops with indirect calls. We expand the set of
permitted wasm builtins in unrolled loops.

Bug: v8:11298
Change-Id: I70b8ff3b16d9b0d3a4ea2d103f8ffb74083fd2a9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289152
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77965}
2021-11-18 11:39:06 +00:00
Paolo Severini
9c8741567d [wasm][turbofan] Disable inlining of JS->Wasm calls by default
Bug: chromium:1271456
Change-Id: Ie1a5e62b941a8ba3da9b75cfe28a194b214df15e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3290583
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77964}
2021-11-18 10:38:26 +00:00
Marja Hölttä
f6c15e1f22 [web snapshots] Fix error reporting
We have 4 different cases:
1) Explicit web snapshots (--web-snapshot) & errors in the snapshot
2) Explicit web snapshots & errors in the embedded script
3) Auto-detected web snapshots (--experimental-web-snapshots) & errors
in the snapshot
4) Auto-detected web snapshots & errors in the embedded script

Before this CL: cases 2 & 4 resulted in a DCHECK failing and the error
in case 3 wasn't reported correctly.

This CL implements consistent error reporting for all of them.

Bug: v8:11525
Change-Id: If2e5039d9769b9cad2175dfd5c4f91edf61111ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3277877
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77963}
2021-11-18 10:25:38 +00:00
Patrick Thier
c0756abf29 [turbofan] Extend Type system BitsetType to 64 bit.
Extend BitsetType of TF's type system from 32 to 64 bit.
At the moment all 32 bits are used, so we can't add any new types.
This CL only adds support for > 32 types to C++. The bitset is also
mirrored in Torque. In the Torque definition, we just expose an
unstructured uint32 for the higher bits of the bitfield, because Toruqe
can't deal with 64 bit types on 32 bit platforms (yet) and we also can't
have multiple 1-bit bitfields within a single class (yet).

Bug: v8:12392, chromium:1262750
Change-Id: If571491443e86e4e47eb88d3f15eca485344d12d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3281922
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77962}
2021-11-18 10:02:56 +00:00
Victor Gomes
8414adc677 [bazel] Upstream config name change
No-Try: true
Change-Id: I78f338fa1e3cb7cc31e7c75d114ec55df5aa1272
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289145
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@{#77961}
2021-11-18 08:02:23 +00:00
Victor Gomes
b69ff1b8aa [bazel] Enable ICU
ICU roll fixes the Bazel build for ICU:
d3ba6ae0c0

No-Try: true
Bug: v8:12388
Change-Id: I5614ac1d3aa64b02f405e22b456f175a4662dd27
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289143
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@{#77960}
2021-11-18 08:01:21 +00:00
Shu-yu Guo
bb0f74d336 [heap] Support AllocationType::kSharedOld in LocalHeap and LocalFactory
This is in anticipation for sharing internalized and
in-place-internalizable strings across Isolates. When such strings are
shared, background compilation threads need to be able to allocate
strings in the shared old space.

Bug: v8:12007
Change-Id: I93179c9674cc16e5a6125049d20e61495bc1f3a9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3283615
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77959}
2021-11-18 01:34:08 +00:00
Ng Zhi An
9151e2bcc7 [wasm-relaxed-simd][arm64] Implement relaxed lane select
We move the mask to be the first input of the node in wasm-compiler.cc,
this matches the order for S128Select, which makes code-gen for
arm/arm64 simpler (directly lower to BSL with no more shuffle of
inputs). This requires tweaking of input indices in the instruction
selector for ia32/x64, but no change in codegen.

Bug: v8:12284
Change-Id: I1f6f1a9fe0869509be77f77b6f54a0c636a0f92d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3272640
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77958}
2021-11-18 00:07:47 +00:00
jiepan
7187ae4750 [x64] Implement 256-bit assembler for v(p)blendv*
Bug: v8:12228
Change-Id: I9f7bb60fb2647f44c41c8c9e35a534ecd60c426a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289150
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Jie Pan <jie.pan@intel.com>
Cr-Commit-Position: refs/heads/main@{#77957}
2021-11-18 00:01:37 +00:00
Ng Zhi An
9fc11f9163 [cleanup] Rename RelocInfo::NONE to RelocInfo::NO_INFO to fix -Wshadow
NONE clashes with the PropertyAttributes::NONE, which is defined in
v8::internal namespace. PropertyAttributes have too many call sites
and depend on using the enums as masks, making it hard to convert
to an enum class. So we are changing the name instead.

Bug: v8:12244
Change-Id: Iec0be12c626549cca137aceeaee0e30fafab8b05
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3284003
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77956}
2021-11-17 19:11:40 +00:00
Ng Zhi An
7610dca4af [ia32] Introduce vinstr helper that takes a VectorLength
fma_instr is now no longer required

Change-Id: Iab47aa6afcc53c78acf15c7ab71f6b9ba45263c8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3286003
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77955}
2021-11-17 18:36:41 +00:00
Ng Zhi An
b2dee3510f [cleanup] Make IcCheckType an enum class
Fixes -Wshadow warnings for ELEMENT.

Bug: v8:12244,v8:12245
Change-Id: Ic3dfa96b44fc18f0db10752639a54aeca324667c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3276928
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77954}
2021-11-17 16:41:00 +00:00
Al Muthanna Athamina
4b239782be [infra] Add testers for disable runtime call stats builders
Bug: v8:12400
Change-Id: I8498f50e32e5abbfcd6af0a8b4c4d85cdb1c6eec
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289627
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77953}
2021-11-17 16:04:17 +00:00
Al Muthanna Athamina
b8d3e4fbf1 [infra] Clean up mb_config after experiments splitting and renaming
Bug: chromium:1136844
Change-Id: I3775eeb9afd447e4c9fc7a2ad6b0365368b89049
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289153
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77952}
2021-11-17 15:54:56 +00:00
Michael Lippautz
048092586b heap: Fix monolith build
Fix monolith build complaning about used implicit copy ctor when copy
operator is explicitly defined.

Bug: v8:12402
Change-Id: Iec30882af1c825c277a2e538400c85348daa6301
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289624
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77951}
2021-11-17 15:25:41 +00:00
Clemens Backes
3be28afbb9 [wasm] Include source URL in tracing
For streaming compilation, include the source URL in tracing, to
help identifying problems with caching.

R=ahaas@chromium.org

Change-Id: Iefda71890024a4fc9ec933c34c5870ba697bbff9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289148
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77950}
2021-11-17 14:10:02 +00:00
Milad Fa
ae569cf877 PPC/s390: Update comments about argument count in interface descriptors
Port 2e955523d1

Original Commit Message:

    Comments in interface-descriptors stated that the argument count is
    without the receiver, which is no longer true (see [1]).

    [1] https://crrev.com/c/3140608

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

Change-Id: I1bbce6672f19a3e508676e4b23cf9910542cbb21
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3285407
Reviewed-by: Patrick Thier <pthier@chromium.org>
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#77949}
2021-11-17 14:01:02 +00:00