Commit Graph

62333 Commits

Author SHA1 Message Date
Michael Lippautz
1d26770085 cppgc: Add composite object tracing to Visitor
This allows embedding objects in each other and recursively trace
through them.

Bug: chromium:1056170
Change-Id: I4e4ae4c1669109c01003cb6b69797cf271a74033
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2198977
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67841}
2020-05-15 21:09:15 +00:00
Ng Zhi An
99e4ef48e1 [wasm-simd][liftoff][arm][arm64] Implement i8x16 shr
Only for arm and arm64 now. The ia32 and x64 ones are more complicated
and will be included in subsequent changes.

Bug: v8:9909
Change-Id: I6597efbccd780e12234f8674e09e60bb3f803630
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202722
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67840}
2020-05-15 21:00:04 +00:00
Milad Farazmand
013ad9e23d PPC/s390: [wasm-simd][liftoff] Implement i32x4 shr_s shr_u
Port 0ba8b7165a

Original Commit Message:

    Implemented for x64, ia32, arm64, arm.

R=zhin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I45caa3fbf643e3caa7b452383155fa32d3ca399e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2204333
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#67839}
2020-05-15 19:11:34 +00:00
Jakob Kummerow
509866f778 [cleanup][wasm] Use explicit types instead of "auto"
in function-body-decoder-impl.h.

Bug: v8:10506
Change-Id: If31aa9e35cc34f6c1c191bd487b1b01727e01dc1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2204204
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67838}
2020-05-15 18:31:12 +00:00
Andreas Haas
0b5f3c70a3 [d8][wasm] Don't enable streaming compilation without async compilation
The --wasm-test-streaming flag enabled streaming compilation after a
check that streaming compilation is not enabled if async compilation is
not enabled. This caused a later check to trigger. With this CL
streaming compilation does not get enabled by --wasm-test-streaming if
async compilation is not enabled.

R=clemensb@chromium.org

Bug: chromium:1082990
Change-Id: Ibe12389beae6a3335d3c8b6039fcea450f25d281
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202985
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67837}
2020-05-15 18:11:22 +00:00
Ng Zhi An
67a337b5b6 [wasm-simd][liftoff] Implement i16x8 shr
Implement for x64, ia32, arm64, and arm.

Bug: v8:9909
Change-Id: Ia9499b211e915f8763b4f593824099391dca7e1f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202718
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67836}
2020-05-15 17:47:03 +00:00
Ng Zhi An
0ba8b7165a [wasm-simd][liftoff] Implement i32x4 shr_s shr_u
Implemented for x64, ia32, arm64, arm.

Bug: v8:9909
Change-Id: Ib1479525d44c29b2ba02de31d655da2cde21d9fc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202356
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67835}
2020-05-15 17:13:52 +00:00
Ng Zhi An
40414ce148 [wasm-simd][liftoff] Implement i64x2 shr_s and shr_u
Implementation for arm64 and arm.

Bug: v8:9909
Change-Id: Icbded4f6fddb19526ec3f646a3f4157fb94d3695
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2198358
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67834}
2020-05-15 16:57:42 +00:00
Dan Elphick
04eef1868f [cleanup] Delete dead SlotsBuffer functions
Removes dead functions related to long removed SlotsBuffer class.

Bug: v8:10506
Change-Id: I79d6e77d2305e19048b62e2bc584fe986affd111
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202908
Commit-Queue: Dan Elphick <delphick@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Auto-Submit: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67833}
2020-05-15 15:28:12 +00:00
Bill Budge
4436f5e95b [torque] Port builtins/builtins-function-gen to Torque
- Ports FastFunctionPrototypeBind and FunctionPrototypeHasInstance
  to torque.

Bug: v8:9891
Change-Id: Iaebaf3c6025907a1b7310c4e08200b4855c7ca6b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2188929
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67832}
2020-05-15 14:45:27 +00:00
Dan Elphick
a3d5ad8384 [heap] Split out new-spaces.h
Splits out all of SemiSpace, NewSpaces and related classes into
paged-spaces.h.

Bug: v8:10473, v8:10506
Change-Id: I97ecceaf5df41263cc8ea75ff0018442bfeffa66
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202903
Auto-Submit: Dan Elphick <delphick@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67831}
2020-05-15 14:44:22 +00:00
Almothana Athamneh
f81996e2d6 Migrate v8_linux64_msan_rel to next-gen format
This CL splits the v8_linux64_msan_rel
to an intitial buidler and a triggered
builder with changing the name to a
new format (master side).

Bug: v8:10445
Change-Id: I42a975a30a5210c96acb27b18fc1ac7de7c0ecd1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202990
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67830}
2020-05-15 14:13:12 +00:00
Marja Hölttä
e140e73e0c [Promise.any] Initialize the "errors" array lazily
Bug: v8:9808
Change-Id: Ia2d883e95d96d67f4b4860af1782735ac0aa6979
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2193075
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Auto-Submit: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67829}
2020-05-15 13:56:12 +00:00
Tobias Tebbi
6ca9eec5d6 [torque] allow casting from MaybeObject
Bug: v8:7793
Change-Id: Ief280b44f4fe74e2b38fc649e4d61b5e4146234a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2204097
Auto-Submit: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67828}
2020-05-15 13:45:09 +00:00
Dominik Inführ
e5c3dd5968 [heap] Finish sweeping in safepoint
Refactor Heap::FinalizeSweeping such that EnsureSweepingCompleted
is executed in a safepoint.

Bug: v8:10315
Change-Id: Iee09765ba5fd35e3e696b018bd616954d609ef72
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2204098
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67827}
2020-05-15 13:29:29 +00:00
Milad Farazmand
b5aa78d0bc PPC: [wasm-simd] Implement simd ReplaceLane
Also modified simd ExtractLane to use the input lane.

Change-Id: Icc40226c1f3e001eb588e8c44570399c19582404
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199643
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#67826}
2020-05-15 13:26:49 +00:00
Marja Hölttä
780443586a [cleanup] Rename internal fields to match the spec
They're exposed via DevTools.

- [[PromiseStatus]] → [[PromiseState]]
- [[PromiseValue]] → [[PromiseResult]]
- [[GeneratorStatus]] → [[GeneratorState]]

Related CLs:

- Chromium CL temporarily disabling affected tests:
  https://chromium-review.googlesource.com/c/chromium/src/+/2203201
- Chromium CL re-enabling affected tests:
  https://chromium-review.googlesource.com/c/chromium/src/+/2202900

Bug: v8:10506, v8:5416
Change-Id: Id12fb0f2ba2b453139a5d74afff9021108c15f08
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202984
Reviewed-by: Simon Zünd <szuend@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67825}
2020-05-15 13:17:09 +00:00
Richard Stotz
a5038c4228 [wasm][liftoff][x64] Add saturated conversion i32 to f32
Bug: v8:10520
Change-Id: Ief1c2565168529f618fe55feacccc66d8d05376a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2196351
Commit-Queue: Richard Stotz <rstz@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67824}
2020-05-15 13:02:19 +00:00
Georg Neis
349e4ee3fc [turbofan] Make GraphAssembler branching respect typing
GraphAssembler creates Phi nodes and creates additional inputs to them
depending on how many jumps go there. If the typer decorator is active,
it will type the Phi node at creation time. GraphAssembler was not aware
of types (until recently it was not used while the graph is typed) and
did not update the Phi type with each new input. This CL fixes that.

Bug: chromium:1082704
Change-Id: Id94bcda752c7b3dc836eb2b6c6b55b1690185a09
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202978
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67823}
2020-05-15 12:50:11 +00:00
Andreas Haas
6771d3e318 [wasm][liftoff][cleanup] Remove default parameter of GetUnusedRegister
This CL removes the default parameter of GetUnusedRegister to avoid bugs
where the default parameter is used accidentially. With "{}" the default
value of the parameter is easy to write, and also not much more difficult to read.

R=clemensb@chromium.org

Bug: v8:10506
Change-Id: I3debe5eb91578c82abdac81dc6c252435fdf30d6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202991
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67822}
2020-05-15 12:35:29 +00:00
Ulan Degenbaev
3b4bafa5a8 [offthread] Fix a data race in Page::Expand
This is a quick fix that guards the NotifyOldGenerationExpansion call,
which is not thread-safe outside GC.

Bug: v8:10536
Change-Id: Iff42fee24242c2e88e0c814ae41766e97181324a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2204037
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67821}
2020-05-15 12:23:49 +00:00
Lutz Vahl
1b09f6a60f Changed version number to 8.5
Change-Id: I29afdce160a883987495857dd44e14aa8e51e861
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201141
Reviewed-by: Lutz Vahl <vahl@chromium.org>
Reviewed-by: Michael Hablich <hablich@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Lutz Vahl <vahl@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67820}
2020-05-15 11:04:29 +00:00
Zhao Jiazhong
c47e1b217d [mips][wasm-simd][liftoff] Implement i64x2 shr_s and shr_u
Port 99a361eec6
https://crrev.com/c/2198456

Change-Id: I5a1b4085de9e41ce122eef12aaaeb3c3c038d27c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2203369
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#67819}
2020-05-15 10:55:49 +00:00
Michael Achenbach
d5f7622136 Add include owners for version changes
NOTRY=true

Change-Id: I3c6ee995634ebd16b9829ca75ae84203ac2c2f35
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202987
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67818}
2020-05-15 10:24:49 +00:00
cjihrig
f23493c9fc Update postmortem metadata generation script
See: https://github.com/nodejs/node/pull/32831
Change-Id: I1e537bf9378156e8c309dbf4e2532257c98ec151
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2191056
Reviewed-by: Joyee Cheung <joyee@igalia.com>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/master@{#67817}
2020-05-15 10:13:49 +00:00
Thibaud Michaud
9694ba868f [wasm][fuzzer] Add static assert to prevent UB
The bool specialization of DataRange::get was removed recently as it is
not used anymore. Add a static assert to ensure that we do not run into
the undefined behavior that this specialization was meant to prevent.

R=clemensb@chromium.org

Change-Id: I43abfe03c6fa4722b1dafc0025eb0bdff5379337
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202979
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67816}
2020-05-15 09:34:49 +00:00
Ng Zhi An
c7928e55ca [wasm-simd] Fix max alignment for load extends
Load extends always load 64-bits. Previously, we were setting the max
alignment to be the size_log_2 of the load_type. For LoadExtends the
load_type indicates what the lane size to be extended is, *NOT* the size
to be loaded.

Bug: chromium:1082848
Change-Id: I0c4115ea6ec916211b03afdb83376ccc05c0c244
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202721
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67815}
2020-05-14 23:16:09 +00:00
Ng Zhi An
c96621243a [clang-tidy] Use auto for readability
This only changes iterator type specifiers and cast expressions.

See
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-auto.html
for more on this warning.

Bug: v8:10488
Change-Id: I1e6747aafb24fd2d9d946e054fb20fbd1d8e5b26
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2191921
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67814}
2020-05-14 22:40:00 +00:00
Ng Zhi An
7afd12e0d8 [clang-tidy] Use auto for readability
This only changes iterator type specifiers and cast expressions.

See
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-auto.html
for more on this warning.

Bug: v8:10488
Change-Id: I26b4f837524c640021e44f39315201173b5867f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2191348
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67813}
2020-05-14 22:37:29 +00:00
Ross McIlroy
d9828e4553 [Turboprop] Allow removal of multiple unreachable blocks that merge.
The scheduler could schedule unreachable nodes on two basic blocks that
later merge. Update DCHECK in graph-assembler's basic block updater to
only check for the self-containedness of unreachable basic blocks
removed from the schedule after all the blocks have been re-written to
allow for this case.

BUG=chromium:1079446,v8:9684

Change-Id: I91899dbf389e4425542dbd2b1ca95c3f6ad79c05
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2196354
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67812}
2020-05-14 21:22:35 +00:00
Dan Elphick
8686ea8121 [heap] Split out paged-spaces.h
Splits out all of PagedSpace and subclasses into paged-spaces.h. Also
moves CodeObjectRegistry to code-object-registry.h.

Bug: v8:10473, v8:10506
Change-Id: I35fab1e545e958eb32f3e39a5e2ce8fb087c2a53
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201763
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67811}
2020-05-14 19:25:25 +00:00
Milad Farazmand
b079058b12 PPC/s390: [wasm-simd][liftoff] Implement i64x2 shr_s and shr_u
Port 99a361eec6

Original Commit Message:

    Implementation for x64 and ia32.

R=zhin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I2b199a71178a3ebbe488d438b997014303a82d08
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202717
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#67810}
2020-05-14 19:12:05 +00:00
Dominik Inführ
ee68662a33 [heap] Use CAS for incrementing MemoryChunk::live_byte_count_
Experimenting with incrementing live_byte_count_ using a relaxed CAS
operation. If no regression is found, we could get away with background
threads increasing that counter directly, instead of using separate
counters like concurrent markers.

Bug: v8:10315
Change-Id: I2e7a1f941a728f59d6e1fbd686d2eeb01ea4378a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201765
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67809}
2020-05-14 17:41:55 +00:00
Ng Zhi An
99a361eec6 [wasm-simd][liftoff] Implement i64x2 shr_s and shr_u
Implementation for x64 and ia32.

Bug: v8:9909
Change-Id: Id494d292fe8ab464e07f4b9520d1c251d355615a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2198456
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67808}
2020-05-14 17:07:57 +00:00
Andreas Haas
1bda8d9b32 [wasm] Disallow streaming compilation when --no-wasm-async-compilation
The --no-wasm-async-compilation disabled async compilation so far, but
async compilation was still possible over streaming compilation. With
this CL, also streaming compilation is disabled.

R=clemensb@chromium.org

Bug: v8:9760
Change-Id: I7e8d4db9e3bb960e8e7380e2190409f63b2f1968
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199343
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67807}
2020-05-14 16:45:55 +00:00
Ng Zhi An
0c795b64e1 [wasm-simd][liftoff][arm][arm64] Implement shl
Bug: v8:9909
Change-Id: Ia87c46a45804dc0a3b5e7275a92c263fbcd4b145
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2197547
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67806}
2020-05-14 16:41:15 +00:00
Peter Marshall
dbf9ff6155 [cpu-profiler] Remove hi-res options via tracing category
The devtools frontend used this to set a lower interval (100us). Now the
frontend will stop setting this category and we will always profile
with 100us (which was already the default).

Bug: chromium:1082220

Change-Id: Iaa671d9750ad4c13b95c2c1ba1e433a1077c858a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2198989
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67805}
2020-05-14 15:30:04 +00:00
Thibaud Michaud
78774f07d5 [wasm][fuzzer] Remove unused function
R=ahaas@chromium.org

Change-Id: I757abd5d0e8e63745482e9bec66abf39a174f0ed
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201759
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Milad Farazmand <miladfar@ca.ibm.com>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67804}
2020-05-14 15:18:44 +00:00
Omer Katz
930598427c Reland "cppgc: Stack scanning using ObjectStartBitmap"
This reverts commit 580917d252.

Reason for revert: fix in patchset 2

Original change's description:
> Revert "cppgc: Stack scanning using ObjectStartBitmap"
> 
> This reverts commit d3a72e3c2a.
> 
> Reason for revert: MSAN failures (https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/32360)
> 
> Original change's description:
> > cppgc: Stack scanning using ObjectStartBitmap
> > 
> > This CL implements stack scanning for cppgc.
> > Given a value on the stack, the MarkingVisitor uses
> > PageBackend::Lookup to checks whether that address is on
> > the heap. If it is, BasePage::TryObjectHeaderFromInnerAddress
> > (introduced in this CL) is used to get the relevant object
> > header. Note that random addresses on the heap might point to
> > free memory, object-start-bitmap, etc.
> > 
> > If a valid object header is found:
> > * If the object is not in construction, the GCInfoIndex is used
> > the get the relevant Trace method and the object is traced.
> > * Otherwise, the object is conservatively scanned - i.e. the
> > payload of the object is iterated word by word and each word is
> > treated as a possible pointer.
> > 
> > Only addresses pointing to the payload on non-free objects are
> > traced.
> > 
> > BasePage::TryObjectHeaderFromInnerAddress assumes on LAB on the
> > relevant space, thus all LABs are reset before scanning the stack.
> > 
> > Bug: chromium:1056170
> > Change-Id: I172850f6f1bbb6f0efca8e44ad8fdfe222977b9f
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190426
> > Commit-Queue: Omer Katz <omerkatz@chromium.org>
> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> > Reviewed-by: Anton Bikineev <bikineev@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#67795}
> 
> TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org
> 
> Change-Id: I3caef6f9f55911fd1a86e895c3495d1b98b1eac2
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:1056170
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201136
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#67796}

TBR=ulan@chromium.org,mlippautz@chromium.org,leszeks@chromium.org,bikineev@chromium.org,omerkatz@chromium.org

# Not skipping CQ checks because this is a reland.

Bug: chromium:1056170
Change-Id: If7ea4fe5cb794c07544d5545f5d6548e3375d3ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201137
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67803}
2020-05-14 15:07:23 +00:00
Leszek Swirski
acb8fefa02 [compiler] Hold Handles for finalization data
Avoid the SFI lookup in the script's weak SFI list, which could fail if
the function was somehow GCed between allocation and finalization, and
instead hold a Handle to each finalizing SFI in the finalization data
structure.

For similar reasons, also check that the compiled function to have its
compilation finalized is still compiled by that point, because it could
have been bytecode flushed.

Bug: chromium:1081691
Change-Id: I4e1f681263473a966e782b23291636d10a9209c5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199349
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67802}
2020-05-14 14:51:53 +00:00
Omer Katz
cc6dfd5d67 Fix CountPopulation non-builtin implementation
The existing non-builtin implementation is returning wrong results.
For example, given the value 63 as a uint8_t it returns 38 (should be 6).

The new implementation follows the naive algorithm presented in figure 5-1
in Hacker's Delight section 5-1.
Note that the algorithm in the book is designed for 32 bit numbers, so we
extended it to support 64 bit as well.

Bug: chromium:1056170
Change-Id: I8fed9c449f80b01b8cc93d339529c0e1e0863fc0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199345
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67801}
2020-05-14 14:24:13 +00:00
Mythri A
4753a0a4e3 [TurboFan] Fix a bug with holder equality checks in ReduceCallApiFunc
When reducing api calls, TurboFan infers the maps of the receiver
and tries to drop the compatibile receiver checks if we can verify that
it is safe to do so. One of these checks involves checking that the holder
is same across all of the receiver maps. However, when receiver itself
is the holder the existing checks prevent TurboFan from optimizing the
api calls.

Change-Id: I6aad39a1a9bb351550e04dd883fa49d7d53ca691
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201076
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67800}
2020-05-14 14:12:33 +00:00
Leszek Swirski
595609fb85 [offthread] Add off thread deserialization
Add a new OffThreadObjectDeserializer, which can deserialize a snapshot
into an OffThreadIsolate.

This involves templating the Deserializer base class on Isolate, and
amending OffThreadHeap to be able to create Reservations same as the
main-thread Heap can. Various off-thread incompatible methods are
stubbed out as UNREACHABLE in OffThreadIsolate overloads.

There is currently no API entry into the off-thread deserialization, but
under --stress-background-compile it now runs the CodeDeserializer (i.e.
code cache deserialization) in a background thread.

Bug: chromium:1075999

Change-Id: I2453f51ae31df4d4b6aa94b0804a9d6d3a03781e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2172741
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67799}
2020-05-14 13:50:24 +00:00
Leszek Swirski
4dabba12bc [cleanup] Make SFI::function_data a SYNCHRONIZED_ACCESSOR
We can use existing macros to define this getter/setter rather than hand
writing it -- as a side effect this ends up defining an Isolate overload
of the getter which was otherwise missing.

Bug: v8:10506
Change-Id: I0bc5a3082b5ed0416c8099a94e7d2e32a2bd363f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199350
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67798}
2020-05-14 12:58:52 +00:00
Ulan Degenbaev
555324dadb [heap] Disable --scavenge-separate-stack-scanning flag by default
It was enabled accidentally.

Bug: chromium:1082426
Change-Id: I08019aeb3ddc34fea8ce9e08c6ace3a95335c171
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199354
Auto-Submit: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67797}
2020-05-14 11:26:04 +00:00
Leszek Swirski
580917d252 Revert "cppgc: Stack scanning using ObjectStartBitmap"
This reverts commit d3a72e3c2a.

Reason for revert: MSAN failures (https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/32360)

Original change's description:
> cppgc: Stack scanning using ObjectStartBitmap
> 
> This CL implements stack scanning for cppgc.
> Given a value on the stack, the MarkingVisitor uses
> PageBackend::Lookup to checks whether that address is on
> the heap. If it is, BasePage::TryObjectHeaderFromInnerAddress
> (introduced in this CL) is used to get the relevant object
> header. Note that random addresses on the heap might point to
> free memory, object-start-bitmap, etc.
> 
> If a valid object header is found:
> * If the object is not in construction, the GCInfoIndex is used
> the get the relevant Trace method and the object is traced.
> * Otherwise, the object is conservatively scanned - i.e. the
> payload of the object is iterated word by word and each word is
> treated as a possible pointer.
> 
> Only addresses pointing to the payload on non-free objects are
> traced.
> 
> BasePage::TryObjectHeaderFromInnerAddress assumes on LAB on the
> relevant space, thus all LABs are reset before scanning the stack.
> 
> Bug: chromium:1056170
> Change-Id: I172850f6f1bbb6f0efca8e44ad8fdfe222977b9f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190426
> Commit-Queue: Omer Katz <omerkatz@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Anton Bikineev <bikineev@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#67795}

TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org

Change-Id: I3caef6f9f55911fd1a86e895c3495d1b98b1eac2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1056170
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201136
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67796}
2020-05-14 11:09:25 +00:00
Omer Katz
d3a72e3c2a cppgc: Stack scanning using ObjectStartBitmap
This CL implements stack scanning for cppgc.
Given a value on the stack, the MarkingVisitor uses
PageBackend::Lookup to checks whether that address is on
the heap. If it is, BasePage::TryObjectHeaderFromInnerAddress
(introduced in this CL) is used to get the relevant object
header. Note that random addresses on the heap might point to
free memory, object-start-bitmap, etc.

If a valid object header is found:
* If the object is not in construction, the GCInfoIndex is used
the get the relevant Trace method and the object is traced.
* Otherwise, the object is conservatively scanned - i.e. the
payload of the object is iterated word by word and each word is
treated as a possible pointer.

Only addresses pointing to the payload on non-free objects are
traced.

BasePage::TryObjectHeaderFromInnerAddress assumes on LAB on the
relevant space, thus all LABs are reset before scanning the stack.

Bug: chromium:1056170
Change-Id: I172850f6f1bbb6f0efca8e44ad8fdfe222977b9f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190426
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67795}
2020-05-14 10:56:28 +00:00
Santiago Aboy Solanes
2b7201500b [turbolizer] Update Readme regarding typescript migration
Basically, remove 'Turbolizer is currently migrating to TypeScript.'

Bug: v8:7327
Change-Id: I83df1b4cf568e17c2e9393865702e5bb722a8b95
Notry: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199353
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67794}
2020-05-14 10:55:23 +00:00
cjihrig
9868b2aefa Fix SmartOS compilation errors
This commit resolves compilation errors on SmartOS that
were found while upgrading Node.js.

See: https://github.com/nodejs/node/pull/32831
Change-Id: Ia2a2e028ba4f5bfd69c050cab4fb4e13af5eefd9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2191054
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67793}
2020-05-14 10:31:43 +00:00
Dan Elphick
cde84e8428 [heap] move MemoryChunk functions to memory-chunk.cc
Also adds missing header includes.

Bug: v8:10473
Change-Id: Ib5bf599dae5bc954edcb6e6fcbd83004bd48c1eb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199347
Auto-Submit: Dan Elphick <delphick@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67792}
2020-05-14 09:54:44 +00:00