Commit Graph

67779 Commits

Author SHA1 Message Date
Adam Barth
e2ce0eb4c1 [fuchsia] Migrate from protect2 to protect
These functions do the same thing, but Fuchsia will eventually remove
support for protect2.

Change-Id: I9f2b4153efa2f78238eb020e9f422f666ae5b7bb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2743635
Auto-Submit: Adam Barth <abarth@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73287}
2021-03-09 09:09:03 +00:00
pthier
ae8823217d Use map of prototype in Map::Hash.
Instead of using addresses of prototype and constructor (which can be
movedby GC) when computing the hash of a Map, we use the addresses of the
prototype map (which won't be compacted).
The prototype map is in a 1:1 relation with the prototype.
In addition the prototype points to the constructor in most cases.

Bug: v8:11519
Change-Id: Ibc47e5870955d7721509be07fae7719a93da9a26
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739646
Commit-Queue: Patrick Thier <pthier@chromium.org>
Auto-Submit: Patrick Thier <pthier@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73286}
2021-03-09 08:51:53 +00:00
v8-ci-autoroll-builder
03a73545af Update V8 DEPS.
Rolling v8/build: baef8bb..077f859

Rolling v8/buildtools: 27d20f0..a5cc843

Rolling v8/third_party/aemu-linux-x64: UNqI4KV2QmdCbFaMAYUJ340CZT7YjUKiV11WNfMPFF8C..dBlHF6-1NU-vr6DU068Y8_WQHCWdk_yovRmg225wIr0C

Rolling v8/third_party/depot_tools: 4ec3fd3..75c9832

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I03ac61daec32bd0a968d7bdc9ce56d1a4aa8915a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2744974
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/master@{#73285}
2021-03-09 04:06:28 +00:00
Bill Budge
8a2144b5bc Revert "[v8windbg] Add more items in the Locals pane"
This reverts commit 19b62d0b4e.

Reason for revert: Undefined behavior
https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/15449

Original change's description:
> [v8windbg] Add more items in the Locals pane
>
> Add more items in the Locals pane representing the JS function name,
> source file name, and character offset within the source file, so
> that the user doesn’t need to dig through the shared_function_info to
> find them.
>
> Change-Id: I5d42b3c9542885a72e81613503d1d5abf51870b5
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712310
> Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
> Reviewed-by: Seth Brenith <seth.brenith@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#73282}

Change-Id: I616cd642379b97dff5fb0c66aeb6488e2f9b298b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2744420
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73284}
2021-03-08 23:46:38 +00:00
Ng Zhi An
e408c23364 [ia32] Merge some macro-assembler functions into macro lists
Bug: v8:11384
Change-Id: I5efbcd661242b8c8e23225f921b9170db66d98dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2740486
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73283}
2021-03-08 22:23:47 +00:00
Z Nguyen-Huu
19b62d0b4e [v8windbg] Add more items in the Locals pane
Add more items in the Locals pane representing the JS function name,
source file name, and character offset within the source file, so
that the user doesn’t need to dig through the shared_function_info to
find them.

Change-Id: I5d42b3c9542885a72e81613503d1d5abf51870b5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712310
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Reviewed-by: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#73282}
2021-03-08 22:15:58 +00:00
Michael Lippautz
b6a96f27a0 cppgc: Fix conservative stack handling
When objects are recorded for conservative handling and the GC is
finalized conservatively, with a different stack, we rely on
MarkNotFullyConstructedObjects(). In this method, the objects are
initially marked, only to be forwarded to handlers that try to mark
them again.

Bug: chromium:1056170
Change-Id: I942e7b0ec88aae08e3fe06b7cb3ff4a86dc42f36
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2744074
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73281}
2021-03-08 21:53:58 +00:00
Georg Neis
d752719988 Add another test for crbug 1161847
... where TF doesn't see that the property is deleted and re-added.

Bug: chromium:1161847
Change-Id: I599a25fa8d29154b5bfede45f6655a1eac44a0f7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739592
Auto-Submit: Georg Neis <neis@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73280}
2021-03-08 21:52:28 +00:00
Bill Budge
60ee0d056e [liftoff][arm64] Add ValueKinds for AcquireByType
- Adds some missing types, to appease the fuzzers.

Bug: chromium:1185464
Change-Id: I08c4ebe5f4ae0d036da9819b805aeac93be384fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742017
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73279}
2021-03-08 20:50:17 +00:00
Seth Brenith
90a66422b7 Remove 'length' field from ScopeInfo
This change relands the last part of https://crrev.com/c/2601880 .

ScopeInfo has a vestigial 'length' field from when it used to be a
FixedArray. This change removes that field, which saves some memory.

More specifically:

- Make ScopeInfo inherit from HeapObject, not FixedArrayBase which
  supplied the 'length' field.
- Change FactoryBase::NewScopeInfo to allocate the updated object shape.
  It maintains the existing behavior of filling the newly-allocated
  object with undefined, even though that's not a valid ScopeInfo and
  further initialization is required.
- Change a few length computations to use HeapObject::kHeaderSize rather
  than FixedArray::kHeaderSize.
- Remove an unnecessary heap verifier function.

Change-Id: I9b3980157568fdb0402fa31660949966b401fd31
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2733037
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#73278}
2021-03-08 20:03:47 +00:00
Michael Lippautz
e0f40862df cppgc: Add explicit Resize() call
Resize() may be used to adjust additional trailing bytes of an object.
It is up to the embedder to ensure correctness in case of shrinking.

Bug: chromium:1056170
Change-Id: I954df6c7440b77275cd62e4b802e8f5d39c06f9d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739652
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73277}
2021-03-08 20:02:07 +00:00
Ng Zhi An
9658615e37 [ia32] Merge some macro-assembler functions into macro lists
Bug: v8:11384
Change-Id: I230548625908512753e5d05dcf4f19c593d9cb19
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739449
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73276}
2021-03-08 19:21:49 +00:00
Milad Fa
9177516278 PPC [simd]: Implement VSEL and vector FP min/max on Sim
Change-Id: Ice30aa43344e7bd010a03c49efa9b6389193e98f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742627
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73275}
2021-03-08 19:06:56 +00:00
Bill Budge
a3a13baac3 [arm64] Eliminate unnecessary RoundUp call for returns
- arm64 aligns the frame, which guarantees an even
  number of return slots. Change RoundUp call to DCHECK.

Bug: v8:9198
Change-Id: I9a6949b93d14109f83f09800ffe75ebba6387b04
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2740481
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73274}
2021-03-08 18:37:06 +00:00
Junliang Yan
d14225d0cf PPC: Reland "Reland "[wasm][liftoff] Respect CallDescriptor linkage""
Port c2a1d633a2

Drive-by: port code-generator-s390.cc changes
Change-Id: I2090cf136d62cc9db1f17d158b88a1e58cc430d9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2740341
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73273}
2021-03-08 18:36:01 +00:00
Leszek Swirski
2f3ebfa9a4 [sparkplug] Use sorted vector for handlers
Rather than doing a set lookup for each bytecode offset during
iteration, rely on the fact that bytecode offsets are monotonically
increasing, and store the handler offsets in a sorted array with a
"next offset" cursor that the iteration can increment when a handler
is found.

Bug: v8:11420
Change-Id: I50e40043540d37e6c6ecb3e39a9a92c28b65e3d1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742621
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/master@{#73272}
2021-03-08 17:31:33 +00:00
Maya Lekova
c15a7c97e5 [fastcall] Fix code generation with Turboprop
Bug: chromium:1185753
Change-Id: Ic59de63d3db745356b2b3dddca0064185e5ad57b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739593
Auto-Submit: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73271}
2021-03-08 17:02:43 +00:00
Santiago Aboy Solanes
1a4c5211c1 [objects] Remove unused LookupIterator methods
Change-Id: Ie555be4ee5c44dcd6a1b4f5a6716b7ce38213191
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742620
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73270}
2021-03-08 15:31:23 +00:00
Junliang Yan
8167cf9031 s390x: Reland "Reland "[wasm][liftoff] Respect CallDescriptor linkage""
Port c2a1d633a2

Change-Id: I2062ce41260b3e55fdcfff7e47de3aab5132d391
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739247
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73269}
2021-03-08 15:17:13 +00:00
Manos Koukoutos
174f0e9515 [wasm] Use object operators in wasm compiler, enable optimizations
This CL enables full csa optimization for wasm code. To take advantage
of csa load elimination, it switches from Load/Store to LoadFromObject/
StoreToObject operators in the wasm compiler (where possible).

Bug: v8:11510
Change-Id: Ibecd8ba81e89a76553b12ad2671ecad520e9e066
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2727407
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73268}
2021-03-08 14:35:25 +00:00
Michael Lippautz
ee34ce48ab cppgc: Fix allocation granularity on 32bit
Reduce the granularity to 4 bytes:
- Saves some memory on 32bit configurations
- Allows uniformly reasoning about HoH::ObjectSize() with
  RoundUp<kAllocationGranularity>(sizeof(T))

Change-Id: Ic87aa25839d9b8a99916c07d64e5e49864a6cb53
Bug: chromium:1056170
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739628
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73267}
2021-03-08 14:32:53 +00:00
Marja Hölttä
fff6cdf2cd [snapshot] Remove overzealous DISALLOW_GARBAGE_COLLECTION
As of https://chromium-review.googlesource.com/c/v8/v8/+/2452689 ,
ObjectCacheIndexMap uses IdentityMap which deals with GC gracefully.

Change-Id: I6d43ee2c1e330556b0ab7e4a6c313d5b37086343
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742615
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73266}
2021-03-08 14:24:33 +00:00
Victor Gomes
fb6d4ba104 [ia32][sparkplug] Sparkplug IA32 port
Change-Id: Idece4925aa0ffa99bc34db39d20b24a41d59f84f
Bug: v8:11421
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715064
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73265}
2021-03-08 14:16:03 +00:00
Omer Katz
fe5f67e9b5 cppgc: Add checks and locks to (Weak)CrossThreadPersistents
This CL adds missing locks to the PersistentRegions for
(Weak)CrossThreadPersistents.
To make sure no locks are missed in the future, this CL also splits
PersistentRegion and introduces CrossThreadPersistentRegion that checks
whether a lock is taken whenever it is accessed.

Bug: chromium:1056170
Change-Id: Iaaef4a28af0f02bcb896706e9abf1ee5ad2ee1e1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737299
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73264}
2021-03-08 14:01:13 +00:00
Clemens Backes
c249669c58 [wasm] Add missing validation on Drop
Before dropping a value we should validate that there is indeed a value
on the stack.

R=jkummerow@chromium.org

Bug: chromium:1184964
Change-Id: Iec3ac061df2545717749e664b10c383765d67c9d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739588
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73263}
2021-03-08 13:54:03 +00:00
Michael Lippautz
0fe9c8358a cppgc: Add explicit FreeUnreferencedObject() call
Add an explicit FreeUnreferencedObject() call that can be used to
reclaim objects that are guaranteed to not be referenced anymore
by the embedder. It is up to the embedder to ensure correctness.

Change-Id: I7f2d86d9639e8b805f79a8fd0a346903f63171e5
Bug: chromium:1056170
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737301
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73262}
2021-03-08 13:03:03 +00:00
Clemens Backes
2cd2c4885a [no-wasm] Remove deoptimizer support
This removes all includes of src/wasm from src/deoptimizer, by #if'ing
out wasm-related parts. This will allow to later exclude the whole
src/wasm directory from compilation.

Drive-by: Inline DecodeWasmReturnKind and EncodeWasmReturnKind to avoid
more #ifs.

R=jgruber@chromium.org

Bug: v8:11238
Change-Id: Ia49ed26fc217b3e80756a363dcd397d9060f6835
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739653
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73261}
2021-03-08 12:53:53 +00:00
Santiago Aboy Solanes
b1c5a9a26f [cleanup] Remove is_null from tnode.h
Instead of checking for the null TNode, we can use base::Optional.

Bug: v8:6949
Change-Id: I550b2fdb507c61ea6128a0631351b22a8542d4d3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737296
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73260}
2021-03-08 12:47:13 +00:00
Igor Sheludko
f95db8916a [const-tracking] Fix incorrect DCHECK in MapUpdater
Bug: chromium:1185463, v8:9233
Change-Id: I87ad8e1ddbbf106ae5221264b53d53aded2c4c51
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739633
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73259}
2021-03-08 12:43:28 +00:00
Kim-Anh Tran
5ba47eed64 [debug] Fix null pointer access in FindSharedFunctionInfo
This fixes a null pointer access in FindSharedFunctionInfo that
was introduced when adding a guard to top level function
compilation.

Bug: chromium:1185540
Change-Id: I24b9752637aba0e660bd8f20be83522e1009b69f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742194
Commit-Queue: Kim-Anh Tran <kimanh@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73258}
2021-03-08 12:42:23 +00:00
Frank Emrich
416fae8653 [dict-proto] SwissNameDictionary rollout in runtime code, pt. 3
This CL is part of a series that makes SwissNameDictionary available
as a new property backing store. Previously, the flag
v8_dict_mode_prototypes allows selecting between NameDictionary and
OrderedNameDictionary as the backing store used for all dictionary
mode objects. This series of CLs changes this such that enabling the
flag causes SwissNameDictionary being used instead of
OrderedNameDictionary. The behavior for when the flag is not set
remains unchanged (= use NameDictionary).

This particular CL just collects many small changes, including some
CSA changes where runtime calls are necessary.

Bug: v8:11388
Change-Id: I38fd18098fc641a5d92a986da251a6b3ac09411a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739642
Commit-Queue: Frank Emrich <emrich@google.com>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73257}
2021-03-08 12:32:13 +00:00
Jakob Kummerow
d0abf522ef [stackguard] Add "HasTerminationRequest" function
We sometimes have a need to check for termination requests
while we're in the middle of non-GC-safe computations, so
we can't do a full "HandleInterrupts" (which could do GC).
This CL adds a separate function to check for termination
requests (but no other interrupt reasons) in such cases.

Bug: v8:9877, v8:11515
Change-Id: I431dba193a07ba63003794639e5d3630470d6ee7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739587
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73256}
2021-03-08 12:00:08 +00:00
cjihrig
1648e050ca torque: workaround stod() limitations on Solaris
std::stod() on Solaris does not currently handle hex strings.
This commit provides a workaround based on strtol() until proper
stod() support is available.

This was encountered while updating Node.js to V8 8.8. For more
details see the following comment:

https://github.com/nodejs/node/pull/36139#issuecomment-740131942

Change-Id: I16ed80a817f6d9105e7153b10824b1fee8520432
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692746
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73255}
2021-03-08 11:59:03 +00:00
Clemens Backes
7585aaf3e3 [IWYU] Fix includes of wasm-engine.h
Remove the include from js-array-buffer-inl.h, because the wasm engine
is not used in that file. Add missing includes in other files that
relied on the recursive include.

R=jkummerow@chromium.org

Bug: v8:11238
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Change-Id: I8b7f11ce92858cbc0ccf26925159486ed39573fa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739650
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73254}
2021-03-08 11:33:59 +00:00
Jakob Kummerow
1e55665ac2 [wasm] Follow-up fixes for decoder stack handling
Follow-up to 1b5c7e15 / r73193.
ClusterFuzz is going to be _so_ happy about this...

Fixed: chromium:1184928, chromium:1184966, chromium:1184991
Fixed: chromium:1185045, chromium:1185126, chromium:1185322
Fixed: chromium:1185443
Change-Id: I0adc50b4a0fc2d62eb8034c23102c61163b73f74
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739586
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73253}
2021-03-08 11:21:40 +00:00
Pierre Langlois
25e5892f1e [generators] Let parameters and register FixedArray be a large object
Bug: v8:11491
Change-Id: I603bc9ab6c4e925bc210a8cf420e2d7c6bcfb186
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712782
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73252}
2021-03-08 11:14:49 +00:00
Santiago Aboy Solanes
73ea0da2d5 [cleanup] Remove atomic kRelaxed accessors in favour for non-atomic ones
If a method happens on the main thread and only on the main thread
(i.e. it will never be run on the background), it is safer to use
non-atomic accessors as TSAN will give warnings if we use them
improperly.

As a drive-by, pass the isolate as a parameter where it was readily
available as it saves us from getting the isolate from the object later
on.

Bug: v8:7790
Change-Id: Id9bdd69254edc60b0331a32fccf1479a95b7d286
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2732669
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73251}
2021-03-08 10:57:19 +00:00
Jakob Gruber
40f8b099b1 [array] Fix bounds check in ArrayConcat
The recent change crrev.com/c/2712755 got a bounds check wrong,
causing an invalid use of the lookup iterator.

Bug: v8:1185072
Change-Id: I3138d266cb4b2482dcb5078fb025bbfc43dd2940
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742196
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73250}
2021-03-08 10:41:29 +00:00
Ross McIlroy
215a6c6e78 [TurboFan][TurboProp] Replace CHECK with DCHECK in InputAt/ReplaceInput.
The range checks in InputAt and ReplaceInput are relatively expensive
given the high frequency of these calls and the bitfield decoding
required for InputCount. Make these DCHECKs instead of CHECKS

BUG=v8:9684

Change-Id: Ibee0f9b06b4581f3bc1176d1fe57de33cdd73cdc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2735274
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73249}
2021-03-08 09:45:55 +00:00
Clemens Backes
1997c7a6ed [owners] Fix lesse -> leese in debug and inspector
The typo was introduced in https://crrev.com/c/2712964.

R=bmeurer@chromium.org
CC=leese@chromium.org

No-Try: true
Change-Id: I773e13919d939c8c55c42393e335956deb5eb36d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739651
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73248}
2021-03-08 07:24:39 +00:00
v8-ci-autoroll-builder
c924f9a8d5 Update V8 DEPS.
Rolling v8/build: 6950b7c..baef8bb

Rolling v8/buildtools/third_party/libunwind/trunk: 8869f42..cc80b4a

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I8b0663f26ef8b2805813b46973bddf500fb9cb6d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2741780
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/master@{#73247}
2021-03-08 03:49:58 +00:00
v8-ci-autoroll-builder
10f26c08b9 Update V8 DEPS.
Rolling v8/build: 426f691..6950b7c

Rolling v8/buildtools: 523462a..27d20f0

Rolling v8/buildtools/third_party/libc++abi/trunk: 47a0930..c93be42

Rolling v8/third_party/aemu-linux-x64: bA9tqm_KjeEA4nnfJ882IxW2o2pJSsODi2wo4fvcXz4C..UNqI4KV2QmdCbFaMAYUJ340CZT7YjUKiV11WNfMPFF8C

Rolling v8/third_party/icu: e05b663..e6379c8

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: Ib9d330c20f57e23eac75d41231fb132774714967
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2741001
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/master@{#73246}
2021-03-07 03:57:28 +00:00
Milad Fa
cde30ece0e PPC: [test] Skip flaky test on PPC
Port ed60adb549

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

Bug: v8:11134
Change-Id: I02d0899df33633c15a5911b055a7e34961d8982f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739647
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73245}
2021-03-06 18:15:54 +00:00
Liu Yu
65ea58c80c [mips][wasm][liftoff] Respect CallDescriptor linkage
Port: c2a1d633a2

Bug: v8:9198
Change-Id: I5b448fec800b0db2860f415dd3ddcfe98728b501
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2738791
Auto-Submit: Liu yu <liuyu@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#73244}
2021-03-06 10:38:20 +00:00
v8-ci-autoroll-builder
84409f08e9 Update V8 DEPS.
Rolling v8/build: 1d395a4..426f691

Rolling v8/buildtools/third_party/libc++abi/trunk: fe29ae7..47a0930

Rolling v8/third_party/aemu-linux-x64: 4yn313S199CgJrH0XVuCHKiXUdTRA6xvUirpQa02vu0C..bA9tqm_KjeEA4nnfJ882IxW2o2pJSsODi2wo4fvcXz4C

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/cdacb3b..4f82770

Rolling v8/third_party/depot_tools: 3f58a79..4ec3fd3

Rolling v8/tools/clang: 791d56c..630ab8a

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I1969cd666f1a013195b0e251fb77cff1149a0f79
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739537
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/master@{#73243}
2021-03-06 04:00:33 +00:00
Bill Budge
37f9742b56 [compiler] Refactor CallDescriptor methods
- Renames StackParameterCount to ParameterSlotCount, to avoid
  confusion between slots and parameters, which are not in general
  equivalent.
- Similarly, renames StackReturnCount to ReturnSlotCount.
- Adjusts the result of GetFirstUnusedStackSlot to return one more
  than the last slot of the argument area, not including padding.
- Renames GetFirstUnusedStackSlot to GetOffsetToFirstUnusedStackSlot
  to reflect that the result is an offset from callee to caller
  frames.
- GetReturnsOffset is a little clearer, with adjustment for the
  different semantics of GetFirstUnusedStackSlot.
- Renames 'optional_padding_slot' and 'first_unused_stack_slot'
  variables in Tailcall codegen to reflect that these are offsets.

Bug: v8:9198

Change-Id: Ib73c52710dc1f3ead640d488a6fdeb605b7b665e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2700099
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73242}
2021-03-06 01:44:20 +00:00
Bill Budge
d2ab64ebb7 Reland "[codegen][frames] Generalize argument padding slot code"
This is a (manual) reland of ba87518e071a75fb951b490d3f75a87ca715cc23

It is unchanged, except to rebase around a merge conflict.
TBR=neis@chromium.org, jgruber@chromium.org

Bug: v8:9198

> [codegen][frames] Generalize argument padding slot code
>
> - Removes kPadArguments boolean.
> - Changes ShouldPadArguments to ArgumentPaddingSlots to reflect
>   that on some architectures more than 1 padding slot may be needed.
> - Adds AddArgumentPaddingSlots and ShouldPadArguments convenience
>   functions.
>
> Bug: v8:9198
>
> Change-Id: Iba87518e071a75fb951b490d3f75a87ca715cc23
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2679109
> Commit-Queue: Bill Budge <bbudge@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#72605}

Change-Id: I2a9022964d3bafe68c5c1e7de0ae7e837dd5c2e3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2740457
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73241}
2021-03-05 22:35:30 +00:00
Frank Tang
2590dc5a50 Fix DateTimeFormat::formatRange bug
Using hack mentioned in https://unicode-org.atlassian.net/browse/ICU-20710
to address the short coming in the ICU IntervalFormat

Bug: v8:11411
Change-Id: I38e54d3617f24afbd9dc4355f946850d7a506116
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713573
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73240}
2021-03-05 22:32:00 +00:00
Bill Budge
13568594c0 Reland "[compiler][linkage] No allocation of slots after aligning a frame"
This is a reland of b18bc2217b

It is unchanged, so:
TBR=jgruber@chromium.org, georgia.kouveli@arm.com

Original change's description:
> [compiler][linkage] No allocation of slots after aligning a frame
>
> - Adds DCHECKs to make sure no stack slots are allocated after
>   aligning a frame.
> - Changes Arm64 CodeGenerator::FinishFrame to align the frame after
>   allocating callee-saved registers, and relaxes the constraints on
>   the number of callee-saved registers.
>
> Bug: v8:9198
> Change-Id: Iacb0518b57fa3ea2ff801eda69719f4c32733850
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2694104
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Bill Budge <bbudge@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#72781}

Bug: v8:9198
Change-Id: I0b809fab67586ac188c39ef1569c0b2ceb60d3b9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2738957
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73239}
2021-03-05 21:51:30 +00:00
Bill Budge
e639eafea3 Reland "Reland "Reland "[compiler][wasm] Align Frame slots to value size"""
This is a reland of 352b9ecbdb

The test/fix CL has been merged in, as the fixes to return slot
accounting are needed to fix Arm64 issues turned up by the fuzzers:

https://chromium-review.googlesource.com/c/v8/v8/+/2644139

The reverted fix for Wasm return slot allocation is added in
patchset #2, to avoid fuzzer issues that it fixed:

https://chromium-review.googlesource.com/c/v8/v8/+/2683024

TBR=neis@chromium.org

Original change's description:
> Reland "Reland "[compiler][wasm] Align Frame slots to value size""
>
> This is a reland of 1694925c72
>
> Minor fix to linkage for constexpr.
>
> TBR=ahaas@chromium.org,neis@chromium.org
>
> Original change's description:
> > Reland "[compiler][wasm] Align Frame slots to value size"
> >
> > This is a reland of cddaf66c37
> >
> > Original change's description:
> > > [compiler][wasm] Align Frame slots to value size
> > >
> > > - Adds an AlignedSlotAllocator class and tests, to unify slot
> > >   allocation. This attempts to use alignment holes for smaller
> > >   values.
> > > - Reworks Frame to use the new allocator for stack slots.
> > > - Reworks LinkageAllocator to use the new allocator for stack
> > >   slots and for ARMv7 FP register aliasing.
> > > - Fixes the RegisterAllocator to align spill slots.
> > > - Fixes InstructionSelector to align spill slots.
> > >
> > > Bug: v8:9198
> > >
> > > Change-Id: Ida148db428be89ef95de748ec5fc0e7b0358f523
> > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2512840
> > > Commit-Queue: Bill Budge <bbudge@chromium.org>
> > > Reviewed-by: Georg Neis <neis@chromium.org>
> > > Reviewed-by: Andreas Haas <ahaas@chromium.org>
> > > Cr-Commit-Position: refs/heads/master@{#71644}
> >
> > Bug: v8:9198
> > Change-Id: Ib91fa6746370c38496706341e12d05c7bf999389
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2633390
> > Commit-Queue: Bill Budge <bbudge@chromium.org>
> > Reviewed-by: Andreas Haas <ahaas@chromium.org>
> > Reviewed-by: Georg Neis <neis@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#72195}
>
> Bug: v8:9198
> Change-Id: I91e02b823af8ec925dacf075388fb22e3eeb3384
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2640890
> Reviewed-by: Bill Budge <bbudge@chromium.org>
> Commit-Queue: Bill Budge <bbudge@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#72209}

Bug: v8:9198
Change-Id: Ia5cf63af4e5991bc7cf42da9972ffd044fc829f0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2733177
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73238}
2021-03-05 19:49:19 +00:00