Commit Graph

68705 Commits

Author SHA1 Message Date
Wenyu Zhao
9f45c2407d [heap] Skip PublishPendingAllocations for TPH
TPH doesn't support multiple mutators at the moment, so concurrent_inlining is disabled.
Thus we don't need to support `PublishPendingAllocations` for now.

Bug: v8:11641
Change-Id: I26f63f4093027878563c15de594a0a6bbef31c0a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2849819
Commit-Queue: Wenyu Zhao <wenyu.zhao@anu.edu.au>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74213}
2021-04-27 10:18:38 +00:00
Wenyu Zhao
a49e609896 [test] Filter tests for third party heap
* Failed tests that also trigger GCs are not filtered out. They are
expected to be fixed when TPH supports real garbage collection.

Bug: v8:11641
Change-Id: I30b8bcf48d5e3f32439eeffb39d28ee45db2a21c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2849822
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Wenyu Zhao <wenyu.zhao@anu.edu.au>
Cr-Commit-Position: refs/heads/master@{#74212}
2021-04-27 10:17:33 +00:00
Wenyu Zhao
ed976c9198 [heap] Add DCHECKs for third party heap
Place DCHECKs in per-space allocation functions and concurrent allocation functions
to assert TPH is not enabled.

For per-space allocation function, they should be redirected to TPH.

For concurrent allocations, TPH doesn't support it at the moment.

Bug: v8:11641
Change-Id: Ib7292bc03132353b0555d9cbd5b49936f4a6de76
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2849817
Commit-Queue: Wenyu Zhao <wenyu.zhao@anu.edu.au>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74211}
2021-04-27 09:30:13 +00:00
Wenyu Zhao
3e3d34caea [heap] Redirect TPH large object check
Bug: v8:11641
Change-Id: I76226e98a298e7868ec4fda75cb1bb75b8d42b7f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2849820
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Wenyu Zhao <wenyu.zhao@anu.edu.au>
Cr-Commit-Position: refs/heads/master@{#74210}
2021-04-27 09:22:22 +00:00
Daniel Dromboski
98e8ec5fe6 [tools] Make tools/mb/mb.py work with Python 3
Update the way urllib is imported. As of Python 3, the old `urllib2`
was split into several smaller modules under `urllib`.

This commit unifies the resulting imported names across Python 2 and
Python 3, for forward/backward compatibility.

Bug: v8:9871
Change-Id: I81310ea83536269ae0cdf1406fd69285928c9357
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848488
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74209}
2021-04-27 09:08:43 +00:00
QiuJi
5cabf54c55 [riscv64] fix PushAllRegistersAndIterateStack
1. add saving for s9, s10, s11
2. remove saving for gp.
3. fix maintain of fp (which alias to s0).

Reference of calling convention source:
https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf.

Change-Id: I7898f52e55df3976dccd736b72249f4fe28dd359
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848476
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Ji Qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/master@{#74208}
2021-04-27 09:05:22 +00:00
Leszek Swirski
cc6228c43a [watchlist] Add leszeks to src/baseline watchlist
Change-Id: I983d3c0a14238aeaa017f083b5df30668f6670e1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848472
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74207}
2021-04-27 08:40:24 +00:00
Wenyu Zhao
f5759d4f51 [heap] Skip WriteBarrierForRange for TPH
Bug: v8:11641
Change-Id: I82434a2134862a2de9b878c564141168c844132d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2849821
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Wenyu Zhao <wenyu.zhao@anu.edu.au>
Cr-Commit-Position: refs/heads/master@{#74206}
2021-04-27 08:37:16 +00:00
Georg Neis
a8f63db143 [runtime] Remove an unused variable
Bug: v8:11692
Change-Id: I89cdb3d7102123f63fc66106c35962d0578222c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2851878
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@{#74205}
2021-04-27 08:29:52 +00:00
Michael Achenbach
d2d7735b32 [test] Upgrade remaining testing on Linux to Bionic
Bug: chromium:1199430
Change-Id: I7bdbb6ecdf08e71b13825401ae0523a82386c48b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2851882
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74204}
2021-04-27 08:17:22 +00:00
v8-ci-autoroll-builder
50dc1418f0 Update V8 DEPS.
Rolling v8/build: 84e217e..6273d81

Rolling v8/third_party/aemu-linux-x64: GCNw2-mtXN7PnLi5hLQH5ab_ViULLYtqr5C1KX36CYQC..CMJyNq6nZ3RoBUYmon01iRJ7MYYfVl4ds1kgbGFcNRMC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/1727be6..00b0b51

Rolling v8/third_party/depot_tools: 90aee2a..c91f5f6

Rolling v8/third_party/googletest/src: f16d43c..23ef295

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

Change-Id: I755a92fbcb724c599fc0e848ad8edb4e7461d23b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2852896
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@{#74203}
2021-04-27 08:05:42 +00:00
Santiago Aboy Solanes
38fb2d2530 [compiler] Do MapRef::CanBeDeprecated and ::CanTransition concurrently
This is a reland as-is of
https://chromium-review.googlesource.com/c/v8/v8/+/2831488, which got
lost in the js-heap-broker.cc to heap-refs.cc transition.

Bug: v8:7790
Change-Id: I9dd9e77a665e70feb90457a906a221926a3c0b94
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848411
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74202}
2021-04-27 08:04:07 +00:00
Georg Neis
31813c7de6 [compiler] Fix a monotonicity issue in SimplifiedLowering
Bug: chromium:1202924
Change-Id: I555fc44c52a3883010e1c643a41d470fcc683a6a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2851880
Auto-Submit: Georg Neis <neis@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74201}
2021-04-27 08:03:02 +00:00
Michael Lippautz
707c5a0b38 cppgc: Fix empty benchmark on Windows
Keep idiomatic state loop but rely on USE() to avoid
warning about unused variables.

Bug: v8:11687
Change-Id: Icde295723c5d389d827280f70a65776866d4e7a9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850645
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74200}
2021-04-27 07:52:52 +00:00
Lu Yahan
e250cc167c [riscv64] Optimize add/sub with immediate
When add/sub with immm in [-4096, -2049] || [2048, 4094],
it can be split two addi/subi instr.

Change-Id: I94b93763c33fa5ef31c5ec4d23cbc5580a93ed1e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848732
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: Brice Dobry <brice.dobry@futurewei.com>
Cr-Commit-Position: refs/heads/master@{#74199}
2021-04-27 05:49:09 +00:00
Lu Yahan
6807a12664 [riscv64] Alter rs to t6 in CallCfunction
Change-Id: I8cb07269fa6a9175af94daa6375677927927a497
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848100
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: Brice Dobry <brice.dobry@futurewei.com>
Cr-Commit-Position: refs/heads/master@{#74198}
2021-04-27 05:19:35 +00:00
Lu Yahan
00016e5e3d [riscv64] Optimize xori and branch in FloatMinMaxHelper
xori rd, rs, 0x1 mean is that negating bit 0 of rs.
  So we can delte xori and invert the condition of the branch.

Change-Id: I318b7a2def6ec5d848757f85623564922abfcdc5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2847673
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: Brice Dobry <brice.dobry@futurewei.com>
Cr-Commit-Position: refs/heads/master@{#74197}
2021-04-27 05:18:31 +00:00
v8-ci-autoroll-builder
1bf7fe3a6e Update V8 DEPS.
Rolling v8/build: 0ee8b27..84e217e

Rolling v8/third_party/aemu-linux-x64: E8miK3g03NZQFrVhyywlfhYSWXsq2SfF7vw2pdW-doYC..GCNw2-mtXN7PnLi5hLQH5ab_ViULLYtqr5C1KX36CYQC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/8bc6b08..1727be6

Rolling v8/third_party/depot_tools: 61bf6e8..90aee2a

Rolling v8/third_party/google_benchmark/src: 058fb58..86da5ec

Rolling v8/third_party/icu: d25bdc0..cd9f9a9

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

Change-Id: Ia892f8b95d147532ed915d4908871c0d5f2f309c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2852466
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@{#74196}
2021-04-27 04:01:59 +00:00
Lu Yahan
a1e72ab03e [riscv64][sparkplug]Port Use EnterFrame/LeaveFrame with StackFrame::BASELINE
Change-Id: I7cf47d9be50790f453bd2908b58aff3a41e2f95b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848735
Reviewed-by: Brice Dobry <brice.dobry@futurewei.com>
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Cr-Commit-Position: refs/heads/master@{#74195}
2021-04-27 02:35:19 +00:00
Michael Lippautz
41272e0b5c base: Fix export for LsanPageAllocator
Bug: chromium:1056170
Change-Id: I0206078a672cb66edf6590430b35b7c3bc9ce1eb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2852238
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@{#74194}
2021-04-27 00:56:19 +00:00
Zhi An Ng
17e040c406 Revert "[wasm-simd][arm64] Update f32x4.mul(dup) pattern matching"
This reverts commit d2ce574457.

Reason for revert: We reverted the early canonicalization change, so we need to worry about non-canonicalized shuffles now.

Original change's description:
> [wasm-simd][arm64] Update f32x4.mul(dup) pattern matching
>
> We now canonicalize earlier in the pipeline, and don't need to worry
> about non-canonicalized shuffles.
>
> Bug: v8:11542,v8:11257
> Change-Id: If9f5c44061465be339c98e479fd8c5a437bbd74b
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2778673
> Reviewed-by: Bill Budge <bbudge@chromium.org>
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73645}

Bug: v8:11542
Bug: v8:11257
Change-Id: Ib492b3ab7ad140193975d2641999c12c9697e27b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850630
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74193}
2021-04-26 23:27:09 +00:00
Michael Lippautz
53400a4d9d cppgc: Add LSAN support for pages containing managed objects
- Move LsanPageAllocator to base;
- Use LsanPageAllocator in PageBackend that serves managed C++
  objects;
- Remove spurious TODO for GCInfoTable which should not use the
  LSAN-aware backend;

Bug: chromium:1056170
Change-Id: I2caa11443ab44da5164f1c29339e302bffb49228
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850157
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74192}
2021-04-26 20:03:19 +00:00
v8-ci-autoroll-builder
ae7dc6db24 Update V8 DEPS.
Rolling v8/build: 665fcc3..0ee8b27

Rolling v8/buildtools/third_party/libc++abi/trunk: d0f3388..f6a8e55

Rolling v8/buildtools/third_party/libunwind/trunk: 08f35c8..5844fc6

Rolling v8/third_party/aemu-linux-x64: RHTOD0RSgoWm-M1jtnmPhZKKrWS0SGcMPzXuBTCbIUYC..E8miK3g03NZQFrVhyywlfhYSWXsq2SfF7vw2pdW-doYC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/d628425..8bc6b08

Rolling v8/third_party/depot_tools: efd29f6..61bf6e8

Rolling v8/third_party/google_benchmark/src: 7f27afe..058fb58

Rolling v8/third_party/icu: 7e7574b..d25bdc0

Rolling v8/tools/clang: d7dd881..ba668f1

Rolling v8/tools/luci-go: git_revision:0f913477afc80d5c4b6609834d3bef6b44910e67..git_revision:173195137e006c3bbbd2394409e3d752f8b3c62f

Rolling v8/tools/luci-go: git_revision:0f913477afc80d5c4b6609834d3bef6b44910e67..git_revision:173195137e006c3bbbd2394409e3d752f8b3c62f

Rolling v8/tools/luci-go: git_revision:0f913477afc80d5c4b6609834d3bef6b44910e67..git_revision:173195137e006c3bbbd2394409e3d752f8b3c62f

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

Change-Id: I5e981c75993c85188e579264cc46f1c77c200b57
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2849981
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#74191}
2021-04-26 16:56:19 +00:00
Shu-yu Guo
4577fcb83f [test262] Roll test262
https://chromium.googlesource.com/external/github.com/tc39/test262/+log/311265..70bc32

Bug: v8:7834
Change-Id: Ie2de0088d9baeaa2635749035030a7d86eee368d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2846157
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74190}
2021-04-26 15:23:18 +00:00
Maya Lekova
7f9d7f0e40 [test] Import v8.gni to googletest and fix its visibility
This CL ensures googletest is built with the build configuration used
for other components of V8. This works around the issue that googletest
is compiled with hidden visibility, even in configurations that compile
with default visibility, such as when v8_enable_backtrace is provided.

Bug: chromium:1191946
Change-Id: I70fa3ce0a668a71a091607c22d2dda67e496fec4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850700
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74189}
2021-04-26 15:00:38 +00:00
Ulan Degenbaev
a8ba725f98 Properly initialize Isolate::last_long_task_stats_counter_
Bug: chromium:1173527
Change-Id: Ib5ec5732b442539ad112acaef3c2898f03082650
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2835733
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74188}
2021-04-26 14:44:08 +00:00
Liviu Rau
7693b6ca94 [branches] Remove obsolete configs
Bug: chromium:1064551
Change-Id: I925fdce3133e4e603aea3ad67656b0f3bb0dd89c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848408
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74187}
2021-04-26 14:09:43 +00:00
Ulan Degenbaev
764515cdb5 [heap] Remove Factory::NewUninitializedFixedArray
All existing usages are changed to Factory::NewFixedArray(). The
motivation for the removal is that the function is unsafe and easy
to misuse.

Note that NewUninitializedFixedArray has been already changed to
initialize the result as an experiment with 3%-13% regression on
a few SixSpeed microbenchmarks and no impact on larger benchmarks.

Change-Id: I2e084bc03b2636aa6d368ca255970566a7ce222e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2846895
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74186}
2021-04-26 13:52:38 +00:00
Andreas Haas
311c022a8b [wasm] Don't initialize WebAssembly if WebAssembly is disabled
Bug: chromium:1197703
Change-Id: I36fd8b6ef4105e7deab9617d3cd1f2eb44e08171
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850650
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74185}
2021-04-26 13:48:08 +00:00
Yahan Lu
d95cf569c1 [riscv64][wasm][liftoff] Record correct offset in StoreTaggedPointer
Port: a1616e6f7f
Change-Id: Idfb48da2e38948b23efdc129da8949200f0896c3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2814723
Commit-Queue: Brice Dobry <brice.dobry@futurewei.com>
Reviewed-by: Brice Dobry <brice.dobry@futurewei.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74184}
2021-04-26 13:37:38 +00:00
Mike Stanton
92d617a31b [compiler] Concurrency note for functions scheduled for debug
During background compilation, we check
SharedFunctionInfo::HasBreakInfo() to see if the function has
breakpoints for debugging, generally deciding not to inline the
function if so. We were concerned about the status of this bit
changing on the main thread. Happily, the main thread deoptimizes
all functions that inline the given function, and shuts down all
background compilation jobs as well. So it is not a meaningful
concern (that of say, ignored breakpoints). Updated a comment to
record this finding.

Bug: v8:7790
Change-Id: I7adbc5d19fc45eb7f4df1400c33f5988d9dac58d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848409
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74183}
2021-04-26 13:34:18 +00:00
Santiago Aboy Solanes
6dfbb095d2 Reland x2 "[compiler] Perform MapRef's SupportsFastArray methods concurrently"
This is a reland of fd16e67e49.
https://chromium-review.googlesource.com/c/v8/v8/+/2843813

Reason for reland: The reland was reverted due to TSAN no-cm flakily
failing due to races with the ProtectorCells[1]. The protector cells
part of the method was removed in a refactor[2]. Therefore, we can
re-reland with minor rebase changes in heap-refs.cc (heap.cc remains the
same).

[1]: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20no-concurrent-marking/3413
[2]: https://chromium-review.googlesource.com/c/v8/v8/+/2839553/7/src/compiler/heap-refs.cc

Bug: v8:7790
Change-Id: I976ab10c6398cffe5c5b87b28d9be0de2dd6261c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850638
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74182}
2021-04-26 13:23:38 +00:00
Dominik Inführ
be33ad3164 [heap] Make Heap::AllocateRaw invoke Safepoint()
This will help reducing the time needed to reach a Safepoint() on the
main thread. During startup main_thread_local_isolate() is not
initialized when Heap::AllocateRaw() is invoked. Solve this by
only running Safepoint() after deserialization is completed.

Bug: v8:10315
Change-Id: I281fdbe5cebcd7946d687f56676c0d563792fde5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2835714
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74181}
2021-04-26 12:58:10 +00:00
Andreas Haas
923d32606d [wasm][ia32] Spill result register of CompareExchange before using it
R=clemensb@chromium.org

Bug: chromium:1196837
Change-Id: I8945e25be12155482e1feefe1cfd980a94b0488d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850646
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74180}
2021-04-26 10:45:20 +00:00
Clemens Backes
baa2840f9e [wasm] Add variant for --wasm-write-protect-code-memory
This adds a test variant enabling --wasm-write-protect-code-memory, and
enables it on linux64 debug and release bots.

R=machenbach@chromium.org, jkummerow@chromium.org
CC=​dlehmann@google.com

Bug: v8:11667, v8:11663
Change-Id: I04f47d06d9720f7bc9e122d17b253646f2c203b1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839562
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74179}
2021-04-26 10:25:50 +00:00
Ross McIlroy
12aa090ee6 [Turboprop] Remove ScheduledMachineLowering and replace with inline reductions.
Instead of running a second pass of the scheduled graph after
effect control linearization to do machine lowering, integrate
the machine lowering reducers (MemoryLowering and SelectLowering)
into the graph assembler used by the effect control linearization.
This saves running through the graph and re-maintaining the schedule
for the second time, reducing overhead in Turboprop.

BUG=v8:9684

Change-Id: Ib0fed19089287c8e801a063333cb8404181411db
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848474
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74178}
2021-04-26 10:02:40 +00:00
Alex Rudenko
4982b98f3c Fix addBinding when called for multiple contexts
Bug: chromium:1169639
Change-Id: I3939b2e8568f0df12ecce192edca6df2b33e3835
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839551
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74177}
2021-04-26 09:49:09 +00:00
Michael Achenbach
72fb45c997 [test] Upgrade the set of main Linux64 builders to Bionic
Bug: chromium:1199430
Change-Id: I4b82b0ef4323f6636a49a41fef20aded0ab38674
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848479
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74176}
2021-04-26 09:46:00 +00:00
Clemens Backes
7ad5b96155 [liftoff] Fix >=2GB memory accesses on 32-bit
We were inconsistent in handling offsets >= 2GB on 32-bit systems. The
code was still relying on this being detected as statically out of
bounds, but with the increase of {kV8MaxWasmMemoryPages} to support 4GB
memories, this is not the case any more.

This CL fixes this by again detecting such situations as statically OOB.
We do not expect to be able to allocate memories of size >2GB on such
systems. If this assumptions turns out to be wrong, we will erroneously
trap. If that happens, we will have to explicitly disallow memories of
such size on 32-bit systems.

R=jkummerow@chromium.org

Bug: v8:7881, chromium:1201340
Change-Id: Ic89a67d38fb860eb8a48a4ff51bc02c53f8a2c2a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848467
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74175}
2021-04-26 09:39:30 +00:00
Santiago Aboy Solanes
8e73532460 [compiler] Set/Get the Map's inobject properties start non-atomically
The property kInObjectPropertiesStartOrConstructorFunctionIndexOffset
was set as relaxed due to races with the layout_descriptor
(https://chromium-review.googlesource.com/c/v8/v8/+/555210/). The
layout_descriptor was removed with the removal of double field unboxing.

We are able to turn those property's accessors into non-atomic ones
since they are set at construction time.

Bug: v8:7790
Change-Id: I25c53f0e00718cca72ba86f8475af9ecefb7ba3d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2843359
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74174}
2021-04-26 09:12:14 +00:00
Leszek Swirski
84e144fe71 [cleanup] Rename LocalIsolate templates to IsolateT
It's unfortunate that there is both a LocalIsolate template parameter,
and an actual LocalIsolate class. Clean this up by renaming the
template parameters to IsolateT

Change-Id: Iecefc3eca5aeb7bbd21e78818b90f9e75cdff10f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2846880
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74173}
2021-04-26 09:11:10 +00:00
Jakob Gruber
bad9f981ed [compiler] Background-serialize: HeapObject,JSReceiver,FixedArrayBase
Bug: v8:7790
Change-Id: I388a833810b3620eddcecc24fd571eda146fb785
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2843353
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74172}
2021-04-26 08:47:46 +00:00
Jakob Gruber
10ca48ffa5 [compiler] Merge the Ref lists
Prior to this CL, Refs were defined through four lists:

HEAP_BROKER_SERIALIZED_OBJECT_LIST
HEAP_BROKER_POSSIBLY_BACKGROUND_SERIALIZED_OBJECT_LIST
HEAP_BROKER_BACKGROUND_SERIALIZED_OBJECT_LIST
HEAP_BROKER_NEVER_SERIALIZED_OBJECT_LIST

Due to the way FooData objects are constructed (a long if-else chain
generated from these lists), the order of entries within the lists and
also between lists was important. In particular, subtypes had to
appear before all their supertypes. Within one list this was doable,
but with the split into 4 different lists this invariant cannot hold
in practice.

This CL refactors the four lists back into a single list to make
observing the invariant possible with upcoming changes. The new
unified list contains the RefSerializationKind as a second argument.

Related changes are not very interesting, except for
TryGetOrCreateData which now uses a set of templated functor objects
for setup (this was necessary to handle different FooData constructor
signatures).

Bug: v8:7790
Change-Id: Ia4c030c767830be4253cf41e3aaf67454f1cbef6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2843351
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74171}
2021-04-26 08:27:36 +00:00
Patrick Thier
d8e1f4d5a2 [test][sparkplug] Skip debugger test for archs without Sparkplug.
Change-Id: I1ddb64331053e969edd81debb69cc06b80c1095f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850635
Commit-Queue: Patrick Thier <pthier@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Auto-Submit: Patrick Thier <pthier@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74170}
2021-04-26 08:19:36 +00:00
Mathias Bynens
50be01b2b8 [inspector] Improve regular expression printing
Prior to this patch, `new RegExp('a/b')` logs the following in
the DevTools Console:

    /a/b/

This is syntactically invalid.

This patch fixes this while simplifying regular expression printing
in general by leveraging `RegExp#toString`, instead of duplicating
the logic on the inspector side. This is possible thanks to the recent
work on making `RegExp#toString` more robust (v8:1982).

Bug: chromium:1202013, v8:1982
Change-Id: I14ccc1892f4a99361ad170fea608ace630740991
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848463
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74169}
2021-04-26 08:17:46 +00:00
Ulan Degenbaev
0cd8a913a7 [ia32] Restore FP stack check in the deoptimizer
This restores the check that was removed in
https://chromiumcodereview.appspot.com/12300020/

Bug: chromium:736643

Change-Id: I82e218b9f2572953a7f433d713dff0528574eea1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848469
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74168}
2021-04-26 08:12:47 +00:00
Michael Achenbach
6915068874 [test] Upgrade testing on FYI and NumFuzz to Bionic
No-Try: true
Bug: chromium:1199430
Change-Id: I904a81a0c3e7c66addbcd5da1e44373d6cc6c350
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848478
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74167}
2021-04-26 07:43:26 +00:00
Jakob Gruber
4f2f14f8cd [compiler] Remove --turbo-direct-heap-access
On a per-job basis, --turbo-direct-heap-access should be equal to
whether concurrent inlining is enabled. We simplify involved logic by
removing the flag, and replacing all access to

- FLAG_turbo_direct_heap_access, and
- FLAG_concurrent_inlining

inside compiler/ with
OptimizedCompilationInfo::is_concurrent_inlining() (or derived values).

Bug: v8:7790
Change-Id: I64818e0e1004dded08c784ef1c4bdfd2af990a59
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2843345
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74166}
2021-04-26 06:59:16 +00:00
Jakob Gruber
0bc71bc9a6 [compiler] Refactor HeapObjectRef::BooleanValue paths
.. which used to be implemented by calling BooleanValue eagerly on all
seen heap objects during serialization. 1) it's wasteful to call this
on every object, 2) this was blocking conversion of HeapObjectRefs to
not require main-thread serialization.

This CL replaces the old pattern by a thread-safe TryGetBooleanValue
method, which may fail in some cases (e.g. when trying to read into a
HeapNumber).

Bug: v8:7790
Change-Id: I9d4ab7725231adce0b488c4c08c1f4bac78ce3c5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839557
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74165}
2021-04-26 06:21:06 +00:00
Jakob Gruber
364cec25c0 [compiler] Make Map a background-serialized-object
.. by locking the MapUpdater lock during MapData construction.

Note this only applies to basic MapRef/MapData construction. Some
methods, in particular MapRef::SerializeFoo methods, are not yet
background-serializable in general and require more work.

Bug: v8:7790
Change-Id: I473e78c82012ab6abc5a0633a4d34c4a40a3fb77
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839553
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74164}
2021-04-26 05:58:46 +00:00