Commit Graph

70579 Commits

Author SHA1 Message Date
Andreas Haas
bce81d6be0 [wasm] Support partial serialization of modules
At the moment a WebAssembly module can be serialized successfully when
all functions were compiled with TurboFan. However, for some functions
it may not be necessary to be compiled with TurboFan, e.g. for functions
where Liftoff code is as good as TurboFan code.

With this CL we allow WebAssembly modules to get serialized even when
not all functions are compiled with TurboFan. Missing functions are
marked as missing in the serlialization. Upon deserialization, missing
functions either get compiled by Liftoff, or initialized with a
lazy-compilation stub, depending on the V8 configuration.

Bug: v8:11862
Change-Id: Ic833a17639bf841c5def6fe3c35173fe0376c246
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2960209
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75987}
2021-07-29 10:27:42 +00:00
Omer Katz
acb0263c7f cppgc: Fix flaky crash due to used bytes counters mismatch
Cppgc reports used bytes statistics to CppHeap. CppHeap should forward
the stats to v8. However, if we are not allowed to trigger a GC, CppHeap
will cache the stats until the reporting.
On GC finalization, CppHeap resets v8's counters to the current marked
bytes counter.
If the last reported stats before GC finalization are cached, CppHeap
doesn't clear the cache on GC finalization. On the next stats reporting,
CppHeap will report the cached values. If the cache is a decrease that
is larger than the current marked bytes, a DCHECK in
LocalEmbedderHeapTracer::DecreaseAllocatedSize will fail.

Bug: chromium:1056170
Change-Id: I47933abc3e5f5c4a91454e0ec03adde5cf61d8fc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056970
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75986}
2021-07-29 10:11:42 +00:00
Camillo Bruni
1d249e8cb4 [runtime][microtask] Various smaller performance tweaks
- Make sure we use fast prechecks in the header files
- MicrotaskQueue::CallEnqueueMicrotask returns a Smi instead of a
  more costly undefined value (the return value is enforced by the
  calling convention, but unused)
- Merge FireMicrotasksCompletedCallback into OnComplete

Change-Id: I3797b946bcffb6349e5693c41478bd2bad1f93fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3024154
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75985}
2021-07-29 10:07:18 +00:00
Clemens Backes
02ba58d59d [ycm] Fix python script
This fixes the youcompleteme config script to look for ninja_output.py
in tools/vim instead of tools/ninja (it was moved there in
https://crrev.com/c/2797536), and makes a minor adjustment for python3
compatibility.

R=machenbach@chromium.org

Bug: v8:11879
Change-Id: Ia825903fb6019865244c5529bf2d23935a10ad5e
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3059077
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75984}
2021-07-29 09:48:32 +00:00
Camillo Bruni
2049e188c6 [runtime] Remove is_runtime_stats_enabled without RCS
If v8_enable_runtime_call_stats == false, we don't need
TracingFlags::is_runtime_stats_enabled and can save a bit of code and
needless overhead.

Bug: v8:11299
Change-Id: Ia5ec51c29b2408b77b65984c5bba0ae16e0de243
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3024155
Reviewed-by: Patrick Thier <pthier@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75983}
2021-07-29 09:25:42 +00:00
Leszek Swirski
86c81a842e Reland^3 "[sparkplug] Enable sparkplug by default on desktop"
This is a reland of 1494106756
which is a reland of 0f79565bb7
which is a reland of 85e6c4b643

The _other_ gc-stress issue should be now be fixed with
https://crrev.com/c/3059072.

Relanding without changes.

TBR=verwaest@chromium.org

Original change's description:
> Reland^2 "[sparkplug] Enable sparkplug by default on desktop"
>
> This is a reland of 0f79565bb7
> which is a reland of 85e6c4b643
> GC-stress issue was still flushing, now fixed for real with
> https://crrev.com/c/3054117.
>
> Relanding without changes.
>
> TBR=verwaest@chromium.org
>
> Original change's description:
> > Reland "[sparkplug] Enable sparkplug by default on desktop"
> >
> > This is a reland of 85e6c4b643
> > GC-stress issue was flushing, fixed with https://crrev.com/c/3048172.
> > Relanding without changes.
> >
> > TBR=verwaest@chromium.org
> >
> > Original change's description:
> > > [sparkplug] Enable sparkplug by default on desktop
> > >
> > > Bug: v8:11420
> > > Change-Id: I07ac7f30b5ffffe40170ac15d5df0d3bf8a53523
> > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041418
> > > Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> > > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> > > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> > > Cr-Commit-Position: refs/heads/master@{#75868}
> >
> > Bug: v8:11420
> > Change-Id: I44ac0e4a5df07db79fa50db3134cdae3af41c88c
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053588
> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#75916}
>
> Bug: v8:11420
> Change-Id: I24c7aea81ca58c339fc3bcc904663bdefb93106b
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054118
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Cr-Commit-Position: refs/heads/master@{#75926}

Cq-Include-Trybots: luci.v8.try:v8_linux_gc_stress_dbg_ng,v8_linux_arm64_gc_stress_dbg_ng,v8_mac64_gc_stress_dbg_ng
Bug: v8:11420
Change-Id: I94f9927b689d876135750f6151de14f295035c72
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056986
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75982}
2021-07-29 09:10:22 +00:00
Anton Bikineev
0da245a895 base: Fix races in BoundedPageAllocator
Due to missing locks, there is a race between AllocatePagesAt (or
ReserveForSharedMemoryMapping) and other functions that modify
std::sets in RegionAllocator (e.g. AllocatePages or ReleasePages).

The CL adds locks to AllocatePagesAt and ReserveForSharedMemoryMapping.

Bug: chromium:1232067
Change-Id: I0ec503ab1ab432952ea067eb916299ea88566879
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056985
Auto-Submit: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75981}
2021-07-29 09:05:53 +00:00
Andrew Comminos
9bd74dfdbf [cpu-profiler] Include empty samples when context filter fails
If context filtration fails, ensure that we still include an empty
sample. This ensures that we can properly terminate stacks.

Bug: chromium:956688
Change-Id: I3edeb3434960c420e24827c209055f7c378361bf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3058053
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Andrew Comminos <acomminos@fb.com>
Cr-Commit-Position: refs/heads/master@{#75980}
2021-07-29 08:32:20 +00:00
Yoshisato Yanagisawa
e0a0350a67 Add two V8 Linux64 - builder shadows.
- goma cache silo is a builder to build the same target with cache silo.
  This is needed for fair build performance comparison between reclient
  and Goma.
- reclient compare is a builder to verify artifacts generated in remote
  and that generated locally matches.

Bug: chromium:1233780
Change-Id: I5854d20880e972a07fa09cfc5d4a6f9385844fbb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3058059
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75979}
2021-07-29 08:31:17 +00:00
Leszek Swirski
b4e62f2d14 [sparkplug] Fix invalid stack on baseline install
InterpreterOnStackReplacement_ToBaseline spills the accumulator register
without a frame, but can then call kInstallBaselineCode. If that
function then allocates, then the GC will see an invalid stack.

Fix this by making sure that the accumulator register is spilled inside
the internal frame of the kInstallBaselineCode, and either don't spill
it at all outside that frame, or at least make sure that we pop/re-push
the spilled value so that it moves inside the frame.

Bug: v8:11420
Change-Id: Iad2aa718b0477ff960544d881fecae9efcbeef54
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3059072
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75978}
2021-07-29 08:13:47 +00:00
Leszek Swirski
b223262da5 Revert "Mark json-parser-recursive as slow"
This reverts commit 71e27849bb.

Reason for revert: As of https://crrev.com/c/3059685 it's fast.

Original change's description:
> Mark json-parser-recursive as slow
>
> Bug: v8:12029
> Change-Id: I0d25f8c844c9826e10ca2ccc6beb385439e97dde
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3058451
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75968}

Bug: v8:12029
Change-Id: I9536adbe4d8434e44d3e113104694baa3b3cea47
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3059687
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#75977}
2021-07-29 08:08:50 +00:00
Leszek Swirski
89cf666e14 [test] Lower the stack size & iterations on JSON test
The test makes sure that JSON parsing doesn't stack overflow if given a
deeply nested JSON object. This deep nesting makes the test slow, so we
can test ~the same thing by lowering both the nesting and the stack
size.

Bug: v8:12029
Change-Id: I689ffc1b9db167a1cf1de93beeb09c89e03264a4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3059685
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75976}
2021-07-29 08:07:48 +00:00
Yang Guo
19400b909d Include test/inspector/regress to swarming
R=machenbach@chromium.org

Bug: chromium:1234045
Change-Id: Id72ac120d161d1419a1c07d68dbe6314bf865e84
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3059084
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75975}
2021-07-29 08:00:47 +00:00
Leszek Swirski
f298b11b5e [profiler] Avoid double lookup in script map
Use the result of scripts.find() instead of using operator[] when
looking up scripts. This avoids an ugly const_cast, and avoids doing the
lookup twice.

Change-Id: I7c1a6be28928e2e3d928c389328be8785be3cff7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056989
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75974}
2021-07-29 07:36:17 +00:00
Jakob Gruber
da3698523a [compiler] Remove invalid CHECK on mutable map bits
is_deprecated and is_stable are mutable and can be changed
concurrently.  We protect against changes through dependencies. CHECKs
on such fields are invalid.

Bug: v8:7790,chromium:1234206
Change-Id: I9bb7fab0342e0e2c33377c162b1912a8f93e760b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3059682
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75973}
2021-07-29 07:12:27 +00:00
v8-ci-autoroll-builder
79c612b526 Update V8 DEPS.
Rolling v8/build: 0c49d51..82f37a4

Rolling v8/buildtools/third_party/libunwind/trunk: e6a0f63..cdb04dc

Rolling v8/tools/clang: def6c30..30a89ee

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

Change-Id: I422cf12eb5927bec02723c9b2937edaf0da84bfa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3058304
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@{#75972}
2021-07-29 03:18:20 +00:00
Liu Yu
8c4188bf74 [mips][codegen] Remove PrepareForTailCall
Port: ec7171608b

Bug: v8:11879
Change-Id: Ib1ef3d984d559e4d4cec4d4daa9e1fec856f3686
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3058062
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@{#75971}
2021-07-29 01:31:27 +00:00
Milad Fa
06ae01909d Skip regress-crbug-1233401 for jitless mode
The test currently fails on machines with sparkplug enabled:
```
Flag --sparkplug: value implied by --jitless conflicts
with explicit specification
```
And passes on platform without sparkplug.

Bug: chromium:1233401
Change-Id: Ia0277f8d356e34efb611ca9960c11ec78b9b94ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3058300
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75970}
2021-07-28 21:30:37 +00:00
v8-ci-autoroll-builder
768e1570af Update V8 DEPS.
Rolling v8/build: 96a4da9..0c49d51

Rolling v8/third_party/aemu-linux-x64: LiTUyHa0AyC2fE72v094aZIjv1aTdQEZfYm-LIJVQIwC..EfaAueisHmQB3i2Cqncpzj07xFoDNrwT09yreit16bgC

Rolling v8/tools/clang: 2a8bb1c..def6c30

Rolling v8/tools/luci-go: git_revision:75ff299b9adf969190cafebe902255856a346f0b..git_revision:2c98a90e4f4daa808cb69d51e71eee9289bd5422

Rolling v8/tools/luci-go: git_revision:75ff299b9adf969190cafebe902255856a346f0b..git_revision:2c98a90e4f4daa808cb69d51e71eee9289bd5422

Rolling v8/tools/luci-go: git_revision:75ff299b9adf969190cafebe902255856a346f0b..git_revision:2c98a90e4f4daa808cb69d51e71eee9289bd5422

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

Change-Id: I39ed6b937454484fff5edd7ce34ba9befdb1478d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3058298
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@{#75969}
2021-07-28 18:45:56 +00:00
Ng Zhi An
71e27849bb Mark json-parser-recursive as slow
Bug: v8:12029
Change-Id: I0d25f8c844c9826e10ca2ccc6beb385439e97dde
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3058451
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75968}
2021-07-28 18:09:06 +00:00
Yang Guo
04ade0b668 Fix test expectation for new inspector test
R=leszeks@chromium.org

Bug: chromium:1233401
Change-Id: Ieaf7513d2dbd9bc84a996defbf0a929d35befa36
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3059082
Commit-Queue: Yang Guo <yangguo@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Auto-Submit: Yang Guo <yangguo@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75967}
2021-07-28 17:26:16 +00:00
Rakhim Khismet
d26babbd6d [fuzzer] Adding struct.new and array.new operations
We add new alternative "new_object" in order to
emit new struct and array types. We check whether
heaptype is struct or array type so we could emit
"NewDefault" or "NewWithRtt". The additional methods
(IsArray/StructType, GetArray/StructType)  was added to WasmModuleBuilder.

Bug: v8:11954
Change-Id: I7a0e73edfbaa49beb1efd60b0f1b9916dc50df22
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056459
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Rakhim Khismet <khismet@google.com>
Cr-Commit-Position: refs/heads/master@{#75966}
2021-07-28 16:45:56 +00:00
Milad Fa
603e13e8e6 S390 [liftoff]: Initiate FP binary operations
FP Div, Min and Max are added in this CL.

Opcodes are also reordered in macros to match the
instruction selector.

Change-Id: Idd6909721b0d06d523c93873e5faff39449d937c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3058294
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75965}
2021-07-28 16:29:18 +00:00
Junliang Yan
8f62c98d54 ppc: [liftoff] implement count leading/trailing zeros
Change-Id: Ib10b00443fe1d46ccb75bd93ec0c855919bb563d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3058295
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75964}
2021-07-28 15:40:37 +00:00
Yang Guo
dc49fe0647 [debug] correctly tier down function for side effect check mode
Previously we do not tier down from baseline to interpreter, which
breaks per-bytecode side effect checks (to check whether e.g. we are
mutating a temporary object, which is not considered a side effect).

R=leszeks@chromium.org

Bug: chromium:1233401
Change-Id: Ie08b5352aa4c124421b4c9abce18326938bbc822
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056981
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75963}
2021-07-28 15:03:26 +00:00
Benedikt Meurer
4ccf0a4c83 [profiler] Use description for Symbols in Heap snapshots.
Previously we'd report all property edges with symbol names as <symbol>,
which was not very useful, especially with private class fields now
seeing more adoption.

Fixed: chromium:1232467
Change-Id: I53cf0811c4b83d016b988b687c6decbddd3c2fdd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055309
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75962}
2021-07-28 14:18:36 +00:00
Santiago Aboy Solanes
2dd0dbe9e4 [test] Mark pdfjs as slow for TSAN builds
Bug: v8:11600
Change-Id: I38696d64da4e321d966933179800376b7fdedaca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056987
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75961}
2021-07-28 14:03:46 +00:00
Clemens Backes
b971ab3067 [traphandler] Fix test link errors on some MSan/ASan builds
Found these when compiling the arm64 simulator for MSan (Release) and
ASan (Debug and Release). Depending on the exact configuration (and
compiler), different functions will get inlined and different symbols
need to be available at link time.

1) Since GetRecoveredTrapCount is used in a unittest, it needs to be
   exported.

2) The thread-local g_thread_in_wasm_code cannot be exported on
   Windows, hence it cannot (safely) be used in unit tests. Use the
   {GetThreadInWasmThreadLocalAddress} function instead, which will
   return the address of that thread-local variable.

R=ahaas@chromium.org, mseaborn@chromium.org

Bug: v8:11955
Change-Id: I118f60c1580a8362f8232541576a1c41da7042bd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3049077
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75960}
2021-07-28 13:34:37 +00:00
Mythri A
3c5705c611 [csa] Fix AllocateFunctionWithMapAndContext
Use write barrier when storing code into JSFunction::Code field.
Earlier, code from SharedFunctionInfo was always a builtin and hence
it was safe to skip write barrier there. With Sparkplug we could
also store baseline code and hence it isn't safe to skip write barrier.

Change-Id: I6a68ac759d619cdbeec8d4a37e9493d46f7aa790
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056982
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75959}
2021-07-28 13:15:06 +00:00
Leszek Swirski
6a77c34699 [turbofan] Move OSR entry stack check before exception ranges
The OSR entry stack check is needed as a function entry stack check to
make sure the call isn't overflowing, but emitting it as part of the
loop peeling meant that it would be within any exception handler ranges
that the loop is in.

In particular, this meant that code like this:

    try {
      loop {
          OSR();
      }
    } catch {}

would logically insert the entry stack check inside the try, and thus
stack overflows of the function call would be caught within the
function, and the function could continue runnning in an overflown
state.

Bug: chromium:1232875, chromium:1034322
Change-Id: I846c6f520fd3a897da016132419ad48043859c33
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056980
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75958}
2021-07-28 12:11:16 +00:00
Jakob Gruber
c48395d2fc [compiler] Enable concurrent GetPropertyAccessInfo by default
Drive-by: Remove invalid DCHECK(!is_deprecated) since we cannot
guarantee this in a concurrent setting.
Drive-by: Instead, check for deprecation during dependency validation.
Drive-by: Remove addtl. invalid or outdated DCHECKs.

Bug: v8:7790
Change-Id: Ia77a82976b987fe1eaca6178dac6c7b75fbf98fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041666
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75957}
2021-07-28 09:53:26 +00:00
Jakob Kummerow
2d6ad4deb4 [bigint] Fix corner-case bugs in fast .toString
Bug: v8:11515
Change-Id: Ieece676f2f4ae258db8b7e1783c796ff6c0fa6f4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055293
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75956}
2021-07-28 09:52:26 +00:00
Liu Yu
5404eaf159 [mips][liftoff] Push the instance as part of frame construction
Port 593fbb69c4

Bug: v8:12017
Change-Id: I0776820d0ab51950028da347d9d7d08acfb30386
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3058652
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@{#75955}
2021-07-28 09:51:46 +00:00
Maya Lekova
472e40b369 [test] Re-enable slow benchmark on TSAN
Bug: v8:11905
Change-Id: I845914a1c9dca760fd160fc2ff15aacc3f323993
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056976
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Auto-Submit: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75954}
2021-07-28 09:48:27 +00:00
Clemens Backes
6b2e9f6407 [ia32][nowasm] Fix compilation
Fix ia32 for v8_enable_webassembly=false.
This is not a configuration that we test on CQ or the waterfall, but
it was working at some point so this CL makes it compile again.

R=zhin@chromium.org

Change-Id: I78dafe08199c89ec24613a62a3085e923a51b43e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056450
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75953}
2021-07-28 08:39:56 +00:00
Santiago Aboy Solanes
bbc6e492c8 [compiler] Enable background serialization for non-concurrent inlining
This means that we are now background serializing
RefSerializationKind::kBackgroundSerialized classes on all configs.

Bug: v8:7790
Change-Id: Iaa54718303e07e37a95d3f54d0c4c173d4174967
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056453
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75952}
2021-07-28 08:27:36 +00:00
Jakob Gruber
ffd682409f [compiler] Pass actual type/rep into dependencies
.. instead of recalculating them at the risk of getting different
answers.

In a concurrent setting, repeated type/rep calculations are not
guaranteed to return the same answer. Instead, calculate them once and
pass them into dependency creation methods.

Note with this CL we now get the type/rep off the holder map and not
the field owner map. The results should be identical and behavior
should not change (verified by CHECKs).

Bug: v8:7790
Change-Id: I2b4c3bb8907082c69448ca743d3c8740cd8f71f3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055306
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75951}
2021-07-28 07:45:36 +00:00
Liu Yu
5a55f36b91 [mips][liftoff] Add explicit stack check for large frames
Port edc349dbf5

Bug: v8:11235

Change-Id: Ie3cfadf97afcea4048c20bc1a5646f4e3c2a82ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3058061
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#75950}
2021-07-28 07:31:10 +00:00
Jakob Gruber
e8fd93689e [compiler] Thread-safe Map::ComputeMinObjectSlack
ComputeMinObjectSlack is called concurrently from background threads
(when --concurrent-inlining) and must therefore be thread-safe.

This CL adds a compiler-specific thread-safe variant
of ComputeMinObjectSlack in addition to the plain old non-thread-safe
one. Thread-safety is achieved through locking: on the bg thread, a
shared lock when traversing transitions, and on the main thread, an
additional exclusive critical section when overwriting prototype
transitions.

Tbr: leszeks@chromium.org
Bug: v8:7790,v8:12010,chromium:1231901
Change-Id: If5af83df1ab896b22477921449fb5ba4c8d3e8a3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3045342
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75949}
2021-07-28 06:05:36 +00:00
v8-ci-autoroll-builder
89e659a2aa Update V8 DEPS.
Rolling v8/build: e3754f7..96a4da9

Rolling v8/buildtools/third_party/libc++abi/trunk: bfcda91..24e92c2

Rolling v8/buildtools/third_party/libunwind/trunk: 23a5972..e6a0f63

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

Change-Id: I9042ee9ede0949807a83329e8045811adad06fe2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3058290
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@{#75948}
2021-07-28 03:44:06 +00:00
Milad Fa
322c7e475a PPC [simd]: Optimize bitmask on Power10
This cl uses the newly added instructions on power10 for
extracting the sign bits.

Change-Id: I9e4fa3bdd7fa5fc7004695c1d3ac29e3906d5207
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056506
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75947}
2021-07-27 19:15:44 +00:00
Marja Hölttä
8c9fc13a4a [rab/gsab] TypedArray.prototype.fill: Support rab / gsab
Bug: v8:11111
Change-Id: I09e918a3f8c50e10691c8ab4718b7c4ae9184000
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055303
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75946}
2021-07-27 17:07:04 +00:00
Milad Fa
d5212940fb PPC/s390: [codegen] Remove PrepareForTailCall
Port ec7171608b

Original Commit Message:

    This is no longer used, tail calls are dealt with inside of
    VisiTailCall.

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

Change-Id: I44cac6f77ce79d47806b3f504c3bad1d88475a25
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055307
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75945}
2021-07-27 16:59:53 +00:00
Ng Zhi An
98ddfe7792 [disassembler] Add more padding for printing instruction bytes
We can emit a 9-byte nop, so leave more padding, otherwise the
disassembled code looks a bit off, e.g.:

0x265ef7799a73   5b3  e902010000     jmp 0x265ef7799b7a  <+0x6ba>
0x265ef7799a78   5b8  0f1f840000000000 nop
0x265ef7799a80   5c0  83c004         addl rax,0x4

Bug: v8:11879
Change-Id: I697e97b45644e28e544705b972c88702f7f27ffc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054255
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75944}
2021-07-27 16:56:04 +00:00
v8-ci-autoroll-builder
368f27ca88 Update V8 DEPS.
Rolling v8/build: ff4b382..e3754f7

Rolling v8/buildtools/linux64: git_revision:d565aa3e72dd9e81da9595ee8c9d7b24cb45c48b..git_revision:c0a2d23c21e87f27f5af3e5dc2a99f2ef3480b9e

Rolling v8/buildtools/third_party/libc++abi/trunk: e8bf577..bfcda91

Rolling v8/buildtools/third_party/libunwind/trunk: d7b11d7..23a5972

Rolling v8/third_party/aemu-linux-x64: jIoBgZ-iUWXLCCH8YkbLabPLzKXZ54b27lb6trJpzpUC..LiTUyHa0AyC2fE72v094aZIjv1aTdQEZfYm-LIJVQIwC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/9ac1fdf..10f6e4b

Rolling v8/tools/clang: 131233f..2a8bb1c

Rolling v8/tools/luci-go: git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d..git_revision:75ff299b9adf969190cafebe902255856a346f0b

Rolling v8/tools/luci-go: git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d..git_revision:75ff299b9adf969190cafebe902255856a346f0b

Rolling v8/tools/luci-go: git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d..git_revision:75ff299b9adf969190cafebe902255856a346f0b

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

Change-Id: Ie13b5864c24cc43c5e49ba794af1ca0024fd8e01
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056498
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@{#75943}
2021-07-27 15:43:44 +00:00
Milad Fa
24d92be5b4 PPC/s390: [liftoff] Push the instance as part of frame construction
Port 593fbb69c4

Original Commit Message:

    Currently we first construct the frame (via
    {TurboAssembler::EnterFrame}), then we spill the instance to the
    respective slot (via {LiftoffAssembler::SpillInstance}). Instead, we
    should already spill the instance as part of frame construction. That
    allows for a more compact instruction to be used ("push" instead of
    "mov" on Intel), and on arm64 even allows to merge pushing into an
    existing instruction (where we currently push the zero register x31
    instead).

    This makes the prologue more similar to what TurboFan generates in
    {TurboAssembler::AssembleConstructFrame} (which does not use
    {TurboAssembler::EnterFrame}).

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

Change-Id: I0b87d73776b59ade36faea2f4772c63c89eb740e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056455
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75942}
2021-07-27 15:39:14 +00:00
Jakob Kummerow
8c057f1736 [bigint] Define V8_ADVANCED_BIGINT_ALGORITHMS everywhere
It was previously only passed to compilation units in src/bigint/,
but inconsistencies arise when it's not passed to other compilation
units that #include src/bigint/bigint.h.

Fixed: chromium:1233397
Change-Id: Idb310d8c13bad12766699086574aa2c3869eb56c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056452
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75941}
2021-07-27 15:17:34 +00:00
Vasili Skurydzin
8d3d0dbfd1 [aix] Correction to builtin alignment
This changes builtin definition so that builtins are now located in GL
.text section, to maintain their alignment in the resulting binaries
and make sure the off-heap code is aligned to kCodeAlignment.

Change-Id: I4662ca59273fa2dd11e7ecf63969597b9dd9664b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054431
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Vasili Skurydzin <vasili.skurydzin@ibm.com>
Cr-Commit-Position: refs/heads/master@{#75940}
2021-07-27 14:01:20 +00:00
Al Muthanna Athamina
149f1693cb Update V8 DEPS manually
Include changes from https://crrev.com/ff4b382aca5ad5077883bec9e4ac3dc64776902a

Bug: chromium:1233409
Change-Id: I571feec6e3d56ade7ad167f2e0b7bebb5c9ddf8b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055300
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75939}
2021-07-27 13:57:33 +00:00
Clemens Backes
593fbb69c4 [liftoff] Push the instance as part of frame construction
Currently we first construct the frame (via
{TurboAssembler::EnterFrame}), then we spill the instance to the
respective slot (via {LiftoffAssembler::SpillInstance}). Instead, we
should already spill the instance as part of frame construction. That
allows for a more compact instruction to be used ("push" instead of
"mov" on Intel), and on arm64 even allows to merge pushing into an
existing instruction (where we currently push the zero register x31
instead).

This makes the prologue more similar to what TurboFan generates in
{TurboAssembler::AssembleConstructFrame} (which does not use
{TurboAssembler::EnterFrame}).

R=ahaas@chromium.org

Bug: v8:12017
Change-Id: Ibb4a38d2049cff66fec9450db4f7f375d006beac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055302
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75938}
2021-07-27 13:37:53 +00:00