Commit Graph

67768 Commits

Author SHA1 Message Date
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
Ng Zhi An
10587a273d [wasm-simd] Enable SIMD by default
Bug: v8:11511,v8:6020
Change-Id: I07b87b2a3a2ea08def9be2d0da808c013dd6fc2a
Cq-Include-Trybots: luci.v8.try:v8_linux_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2728245
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73237}
2021-03-05 17:49:39 +00:00
Clemens Backes
15f5679e04 [no-wasm] Split off runtime-test-wasm.cc
This moves all wasm-related runtime functions from runtime-test.cc to
runtime-test-wasm.cc, which makes it easier to fully exclude them later.

R=ahaas@chromium.org

Bug: v8:11238
Change-Id: I3bc1c175b8db8837097308ed09aab69725dcf5aa
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739648
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73236}
2021-03-05 17:33:49 +00:00
Bill Budge
c2a1d633a2 Reland "Reland "[wasm][liftoff] Respect CallDescriptor linkage""
This is a reland of 36a7cba2d6

Unchanged, so:

tbr=clemensb@chromium.org

Original change's description:
> Reland "[wasm][liftoff] Respect CallDescriptor linkage"
>
> This is a reland of 9428381103
>
> Patchset #2 fixes the Arm bug. A vpush is used to push the slot,
> so subtract kSimd128Size from the stack decrement to get padding.
>
> Original change's description:
> > [wasm][liftoff] Respect CallDescriptor linkage
> >
> > - Adds the actual stack slot location to LiftoffStackSlots::Slot.
> > - Adds SortInPushedOrder method for architectures that push
> >   parameters.
> > - Changes the LiftoffStackSlots::Construct signature to take the
> >   number of parameter slots in total, and changes implementations
> >   to insert padding when slots aren't contiguous.
> > - Changes Arm MacroAssembler::AllocateStackSpace to check the
> >   immediate value, and to be a nop when it's zero.
> >
> > Bug: v8:9198
> > Change-Id: Ibd5775dbed3a40051fa9e345556231a1c07cf4e9
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2717120
> > Reviewed-by: Andreas Haas <ahaas@chromium.org>
> > Reviewed-by: Clemens Backes <clemensb@chromium.org>
> > Commit-Queue: Bill Budge <bbudge@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#73191}
>
> Bug: v8:9198
> Change-Id: Iae4930e28dd7fc634e3709a5726379c6b37e5195
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2735984
> Reviewed-by: Bill Budge <bbudge@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Bill Budge <bbudge@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73195}

Bug: v8:9198
Change-Id: I45c2b6fc8c38ef864a0bd7a7be5b431c7b8855a3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739737
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73235}
2021-03-05 17:28:49 +00:00
Clemens Backes
4e0ac2ed13 [no-wasm] Remove wasm-js
This CL removes wasm-js.cc from compilation if
v8_enable_webassembly=false. In order to do so, an alternative
implementation of {v8::WasmStreaming} has to be provided, because the
public API should stay unchanged. The only path to obtain a
{v8::WasmStreaming} object is via {v8::WasmStreaming::Unpack}, which
will always fail if WebAssembly is not supported. Hence all methods in
{WasmStreamingImpl} are unreachable.

As a drive-by, this CL removes all includes from src/wasm in src/init
(bootstrapper.cc would have been done anyway, and v8.cc is just a few
 changes).

R=jkummerow@chromium.org

Bug: v8:11238
Change-Id: Ic0638eb5cda91ec29c1c07ef400bc670c91630fb
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737300
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73234}
2021-03-05 17:16:29 +00:00
Ng Zhi An
c3f9d3cd8e [wasm-simd] Update Wasm SIMD opcodes
Bump wasm-spec-tests version since the opcodes have also changed.

Also add missing opcodes to wasm-module-builder.js.

Bug: v8:6020
Change-Id: I60dcf1b300a5278aab5e1814c9ebf4ee85c60053
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2728432
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73233}
2021-03-05 17:12:49 +00:00
Ng Zhi An
79cbef354e [wasm-simd] Use kWasmStmt as invalid type in function sig
0x7b is the encoding for SIMD v128 types, so it will become valid when
we turn SIMD on by default. Use kWasmStmt (0x40) instead, it is not a
valid in the function signature position (which requires a value type).

Bug: v8:11511
Change-Id: Ife152e81d831a059a0122f9255897d97b5dc4fc9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739054
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73232}
2021-03-05 17:06:01 +00:00
Michael Lippautz
76260bc11c cppgc: Cleanups around testing
Bug: chromium:1056170
Change-Id: Ic6e40d5e5e9bcca28a8c344adfab06f4e88701aa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737302
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73231}
2021-03-05 17:04:19 +00:00
Clemens Backes
c87b273c29 [no-wasm] Remove wasm engine from isolate
This removes the {wasm_engine_} field from the isolate if
v8_enable_webassembly=false. This avoids any includes from src/wasm in
isolate.{h,cc}.
Unconditional access to the wasm engine in other parts are also #if'ed
out to avoid nullptr accesses.
Long-term, the {Isolate::wasm_engine()} method will be fully removed,
but this can only be done once src/wasm is excluded from compilation.

R=jkummerow@chromium.org, petermarshall@chromium.org

Bug: v8:11238
Change-Id: Ie3738884ec17ccc0a3027b91a2415c2c633ca774
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737298
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73230}
2021-03-05 16:59:39 +00:00
Clemens Backes
c1908c1373 [no-wasm] Fix build
This fixes a compile error after https://crrev.com/c/2715193.

TBR=bmeurer@chromium.org

Bug: v8:11238
Change-Id: I0b063fab4c00263b05af057534a9093ad0ddbf7d
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739635
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Eric Leese <leese@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73229}
2021-03-05 16:47:49 +00:00
Clemens Backes
d13a1e66a6 [wasm][debug] Re-install cached code
If we use code from the cache, we have to re-install it in the
NativeModule. Otherwise it won't be hit on calls.

R=thibaudm@chromium.org

Bug: v8:11516
Change-Id: Ie5f035e490d6525147a05b1fda1038b030e25d18
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739644
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73228}
2021-03-05 15:41:09 +00:00
Andreas Haas
eb24cf542c [wasm][liftoff] Implement indirect function calls through non-0 tables
R=thibaudm@chromium.org

Bug: v8:7581
Change-Id: Ifd10d1ce6129021ebb16dd85e6213210e4cc2e36
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739636
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73227}
2021-03-05 15:35:49 +00:00