- 04 Aug, 2020 1 commit
-
-
Dominik Inführ authored
This is a reland of b354e344 This CL adds 3 fixes: * Unprotect code object before creating filler * Allows AllocationObserver::Step to add more AllocationObservers * Update limit in NewSpace::UpdateLinearAllocationArea Original change's description: > [heap] Refactor allocation observer in AllocationCounter > > Moves accounting of allocation observers into the AllocationCounter > class. This CL removes top_on_previous_step_ for counters that are > increased regularly in the slow path of the allocation functions. > > AdvanceAllocationObservers() informs the AllocationCounter about > allocated bytes, InvokeAllocationObservers() needs to be invoked when > an allocation step is reached. NextBytes() returns the number of bytes > until the next AllocationObserver::Step needs to run. > > Bug: v8:10315 > Change-Id: I8b6eb8719ab032d44ee0614d2a0f2645bfce9df6 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2320650 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69170} Bug: v8:10315 Change-Id: I89ab4d5069a234a293471f613dab16b47d8fff89 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332805Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69216}
-
- 01 Aug, 2020 1 commit
-
-
Dominik Inführ authored
This reverts commit b354e344. Reason for revert: Clusterfuzz found issues with this CL. Original change's description: > [heap] Refactor allocation observer in AllocationCounter > > Moves accounting of allocation observers into the AllocationCounter > class. This CL removes top_on_previous_step_ for counters that are > increased regularly in the slow path of the allocation functions. > > AdvanceAllocationObservers() informs the AllocationCounter about > allocated bytes, InvokeAllocationObservers() needs to be invoked when > an allocation step is reached. NextBytes() returns the number of bytes > until the next AllocationObserver::Step needs to run. > > Bug: v8:10315 > Change-Id: I8b6eb8719ab032d44ee0614d2a0f2645bfce9df6 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2320650 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69170} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: Icd713207bfb2085421fd82009be24a0211ae86da No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10315 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332667Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69187}
-
- 31 Jul, 2020 1 commit
-
-
Dominik Inführ authored
Moves accounting of allocation observers into the AllocationCounter class. This CL removes top_on_previous_step_ for counters that are increased regularly in the slow path of the allocation functions. AdvanceAllocationObservers() informs the AllocationCounter about allocated bytes, InvokeAllocationObservers() needs to be invoked when an allocation step is reached. NextBytes() returns the number of bytes until the next AllocationObserver::Step needs to run. Bug: v8:10315 Change-Id: I8b6eb8719ab032d44ee0614d2a0f2645bfce9df6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2320650 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69170}
-
- 30 Jul, 2020 2 commits
-
-
Ng Zhi An authored
These are no longer tied to instruction-selector, so move them out into their own unittests. We can then remove the *ForTesting methods. Bug: v8:10696 Change-Id: I387cf38290d9602b011ee1d13ee5285ac660f208 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2326951Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#69149}
-
Dominik Inführ authored
PersistentHandlesScope works similar to the DeferredHandleScope, but returns PersistentHandles instead of DeferredHandles on Detach(). Since PersistentHandlesScope takes over filled blocks from the main thread local handle, remove the block_size_ field and use kHandleBlockSize instead. This way all blocks have exactly the same size. Bug: v8:10315 Change-Id: I295cad6f84852f87c55d95572905069443f5698c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2324254 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69138}
-
- 24 Jul, 2020 1 commit
-
-
Ross McIlroy authored
Adds support for register allocation within a block to the fast register allocator. Also adds some unittests covering basic register allocation. No support yet for spill slot allocation, so functions that spill don't work yet. BUG=v8:9684 Change-Id: I91d0fc0660d7b65f59235242fd5e3b1a7618d813 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2297467 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#69045}
-
- 23 Jul, 2020 1 commit
-
-
Michael Lippautz authored
The following adds support for JSMember through the existing GlobalHandles implementation also used for TracedReference. In addition, JSMember now supports set, clear, copy, move, comparison and interaction with Local. Bug: chromium:1056170 Change-Id: Ia50218bcfe4c056b3533a5b14eea954ade1da243 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2310357Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#69028}
-
- 21 Jul, 2020 1 commit
-
-
Michael Lippautz authored
V8 already depends on cppgc_base which means that unittests does not need to depend on cppgc_for_testing any longer. Move the cppgc_for_testing dependency to the stand-alone cppgc_unittests binary Bug: v8:10674 Change-Id: I07bfe30901eb1683d2e0ee0189f73b5244884f27 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2310249 Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#68970}
-
- 16 Jul, 2020 1 commit
-
-
Omer Katz authored
This CL ports MarkingVerifier from blink. The existing verifier checks only references on heap. This new verifier checks references both on heap and on stack. Bug: chromium:1056170 Change-Id: I083dcb0087125312cca34a2201015a9aecfe6ea4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2300484 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68891}
-
- 10 Jul, 2020 1 commit
-
-
Michael Lippautz authored
Adds support for main-thread handling of JSMember during the atomic pause. Follow-ups for later: - Copy/Move/Heterogenous assignment - Write barrier - Atomic handling for concurrent processing. Bug: chromium:1056170 Change-Id: Ia9ac4599ca85cf7cc2d67066e89485744d7d56b6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2289781 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68813}
-
- 07 Jul, 2020 1 commit
-
-
Michael Lippautz authored
- Adds JSVisitor that is used for unified heap marking. - Adds JSMember as supported reference type that also encapsulates a write barrier in future. JSMember is a replacement for TracedReference which can be deprecated with EmbedderHeapTracer once the library is used to handle unified heap collections. The dispatch for v8::JSMember on cppgc::Visitor is provided through a specialization of TraceTrait. Bug: chromium:1056170 Change-Id: I60d976ae66db3e5fa2e690a21627bdcb8c6871af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2284488Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68716}
-
- 23 Jun, 2020 1 commit
-
-
Clemens Backes authored
The interpreter is not used in production code any more, hence move it from src/wasm to test/common/wasm. It's still used in unit tests, cctests, and in fuzzers. Because of this move, a few more methods had to be exported via V8_EXPORT_PRIVATE. R=ahaas@chromium.org, yangguo@chromium.org Bug: v8:10389 Change-Id: If626b940a721146c596fd7df4faaea633e710272 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2257226 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#68480}
-
- 17 Jun, 2020 2 commits
-
-
Michael Lippautz authored
This is a reland of 539f0ed2 The reland fixes creating TimeDelta from double which requires saturated_cast<>. Improvements to this constructions are tracked in v8:10620. Original change's description: > cppgc,heap: Implement atomic unified heap GC > > Add v8::CppHeap as an implementation of a cppgc heap that > integrates with V8's existing EmbedderHeapTracer API. The > current implementation only supports non-incremental marking. > > Bug: chromium:1056170 > Change-Id: I4a09eb5ae57f5c7defe35eb3fe346627eb492473 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2245610 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#68374} Bug: chromium:1056170,v8:10620 Change-Id: I39e15790e5cafe24da2a14d0bae6543391ebb536 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2248191Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68387}
-
Anton Bikineev authored
This adds the following things: - age table for 4K regions; - generational barrier for mixed 4K regions; - unmarking for major collections; - young generation flags. Bug: chromium:1029379 Change-Id: Ief1229f0dac5f90c5f06d3168c8ffb4b7d1f1b53 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2246566 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68379}
-
- 16 Jun, 2020 2 commits
-
-
Zhi An Ng authored
This reverts commit 539f0ed2. Reason for revert: UBSan failures https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/11626? TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,bikineev@chromium.org Change-Id: I9a8c88bd5a81a55795fba077056ad1ef37287186 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2248780 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#68375}
-
Michael Lippautz authored
Add v8::CppHeap as an implementation of a cppgc heap that integrates with V8's existing EmbedderHeapTracer API. The current implementation only supports non-incremental marking. Bug: chromium:1056170 Change-Id: I4a09eb5ae57f5c7defe35eb3fe346627eb492473 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2245610 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68374}
-
- 08 Jun, 2020 1 commit
-
-
Michael Lippautz authored
Adds allocation-based heap growing strategy that triggers GC based on some limit. The limit is computed based on previous live memory and a constant growing factor. For invoking GC, we support two modes: with and without conservative stack scanning. Without conservative stack scanning, an invoker makes sure that we schedule a GC without stack using the existing platform. Bug: chromium:1056170 Change-Id: I1808aeb5806a6ddd5501b556d6b6b129a85b9cda Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2228887Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68235}
-
- 05 Jun, 2020 1 commit
-
-
Manos Koukoutos authored
Changes: - Remove subtyping checks from value-type.h and move them to dedicated files. Leave a limited version in value-type.h for testing. - Implement subtyping for struct and array types, according to the wasm-gc proposal. - Implement type equivalence checking. - Introduce a subtyping relation cache in WasmModule. - Rename IsSubTypeOf -> IsSubtypeOf. - Fix v8 possible bug where iterator_range took two unused type parameters. - Add unittests for subtyping. Bug: v8:7748 Change-Id: I0ddbda4145e0412196dcf4fc63f3c5875fb3ab5a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2228497 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#68192}
-
- 03 Jun, 2020 1 commit
-
-
Michael Lippautz authored
This ports HeapStatsCollector (former ThreadHeapStatsCollector) from Blink. The CL only ports accounting of allocated object size which is needed for a simple growing strategy in a follow up. HeapStatsCollector is a global dependency for most sub components as it provides infrastructure for measuring time (through trace scopes) and space. The general idea of HeapStatsCollector is to act as sink where all sub components push time and space information. This information is then gathered and made available via an event that is implemented as POD. Time-dependent info is available through regular getters (pull) and observers (push). Change-Id: I40b4d76e1a40c56e5df1a7353622318cde730e26 Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2225902 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68150}
-
- 02 Jun, 2020 1 commit
-
-
Anton Bikineev authored
This moves from Blink: 1) implementation of the marking write barrier; 2) WriteBarrierWorklist to Marker; 3) incremental/concurrent marking options. Bug: chromium:1056170 Change-Id: Ia3e31ffd920a99803420b1453695fe2fb8d843b8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2218064 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68108}
-
- 26 May, 2020 3 commits
-
-
Anton Bikineev authored
This reverts commit a35d0e8c. The original CL is likely not a culprit for the infra failures. Bug: chromium:1056170 Change-Id: I8fa85db8a737fb01328021782f0c43626fa52b0d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2215826Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#67977}
-
Maya Lekova authored
This reverts commit 9a0e6bd5. Reason for revert: Speculative revert for https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20builder/47777 Original change's description: > cppgc: Port concurrent sweeper > > This moves concurrent and incremental sweeping from Blink. This also > adds TestPlatform that makes it easier to test concurrent and > incremental sweeping. > > Drive-by: fix unmarking of large pages. > > Bug: chromium:1056170 > Change-Id: Ifd50ff67b9df17ff117a5f4d4eb5a2937d3023be > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2207132 > Commit-Queue: Anton Bikineev <bikineev@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67969} TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org Change-Id: I5530f11f7b8560116324bb156ba98e426c0feb35 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2215057Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#67970}
-
Anton Bikineev authored
This moves concurrent and incremental sweeping from Blink. This also adds TestPlatform that makes it easier to test concurrent and incremental sweeping. Drive-by: fix unmarking of large pages. Bug: chromium:1056170 Change-Id: Ifd50ff67b9df17ff117a5f4d4eb5a2937d3023be Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2207132 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67969}
-
- 13 May, 2020 1 commit
-
-
Michael Lippautz authored
This is a reland of 3df36990 Original change's description: > cppgc: Port ObjectStartBitmap > > This ports ObjectStartBitmap from Blink. > > Bug: chromium:1056170 > Change-Id: Ib959d9ac1c5e1e34ffa6418f77956e993c570ffc > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2181331 > Commit-Queue: Anton Bikineev <bikineev@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67735} Bug: chromium:1056170 Change-Id: I6e2fd99e96bebe3060f4feb8503ab04c0d452d51 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2198986Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67772}
-
- 12 May, 2020 2 commits
-
-
Leszek Swirski authored
This reverts commit 3df36990. Reason for revert: Breaks MSVC bot (https://cr-buildbucket.appspot.com/build/8880517266974148704) Original change's description: > cppgc: Port ObjectStartBitmap > > This ports ObjectStartBitmap from Blink. > > Bug: chromium:1056170 > Change-Id: Ib959d9ac1c5e1e34ffa6418f77956e993c570ffc > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2181331 > Commit-Queue: Anton Bikineev <bikineev@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67735} TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org Change-Id: Iaea15b11c0ee7b599fe1f275aded7414bce428ac No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2196321Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#67742}
-
Anton Bikineev authored
This ports ObjectStartBitmap from Blink. Bug: chromium:1056170 Change-Id: Ib959d9ac1c5e1e34ffa6418f77956e993c570ffc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2181331 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67735}
-
- 08 May, 2020 2 commits
-
-
Michael Lippautz authored
Adjust suffix to "-unittest" like everywhere else in V8. Accept clang-format suggested changes. Bug: chromium:1056170 Change-Id: I54c1396e79aff87c052233853d7fe560337eeecf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190410 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67672}
-
Michael Lippautz authored
This patch provides infrastructure to pin object types to specific spaces. This allows embedders to create mutual exclusive arenas for certain (base) types. In future, this will also be used to provide sliding-window compaction on certain custom spaces. We mainly preserve the existing infrastructure with the difference that spaces are now slightly more dynamic than in Blink as they are kept in a vector instead of a fixed-size array. The mechanism differs from Blink in that it does not allow the user object to call allocation methods directly but instead provides a trait that can be overridden to specify a custom space. The patch preserves templatization for objects that do not go into custom spaces to safe a branch in the allocation hot path. Change-Id: I08aa6932348e2d6258e19c4a32d189865f459f02 Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187611 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67666}
-
- 07 May, 2020 3 commits
-
-
Omer Katz authored
This reverts commit dc1af6a2. Reason for revert: Diff in patchset 2 Original change's description: > Revert "cppgc: Initial marking loop" > > This reverts commit fb9a19fe. > > Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/11028 > > Original change's description: > > cppgc: Initial marking loop > > > > This CL introduces: > > - Worklist > > - MarkingHandler to manage gc marking phase > > - Integration into CollectGarbage for atomic pause GC > > - MarkingVisitor for main thread marking > > > > Still missing from this CL: > > - Proper handling for stack scanning > > - Handling of previously not fully constructed objects > > > > Bug: chromium:1056170 > > Change-Id: I70ac8534dfb898777cf3a06e3119cac8072174fd > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170526 > > Commit-Queue: Omer Katz <omerkatz@chromium.org> > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#67642} > > TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org > > Change-Id: I666481f44119771be685bf2555aa0dd5eda83a01 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: chromium:1056170 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187502 > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67643} TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org,nicohartmann@chromium.org # Not skipping CQ checks because this is a reland. Bug: chromium:1056170 Change-Id: I54e963e2aeaaf16069bdcdb019c0ac65e28ef6e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187733Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67654}
-
Nico Hartmann authored
This reverts commit fb9a19fe. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/11028 Original change's description: > cppgc: Initial marking loop > > This CL introduces: > - Worklist > - MarkingHandler to manage gc marking phase > - Integration into CollectGarbage for atomic pause GC > - MarkingVisitor for main thread marking > > Still missing from this CL: > - Proper handling for stack scanning > - Handling of previously not fully constructed objects > > Bug: chromium:1056170 > Change-Id: I70ac8534dfb898777cf3a06e3119cac8072174fd > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170526 > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67642} TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org Change-Id: I666481f44119771be685bf2555aa0dd5eda83a01 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187502Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#67643}
-
Omer Katz authored
This CL introduces: - Worklist - MarkingHandler to manage gc marking phase - Integration into CollectGarbage for atomic pause GC - MarkingVisitor for main thread marking Still missing from this CL: - Proper handling for stack scanning - Handling of previously not fully constructed objects Bug: chromium:1056170 Change-Id: I70ac8534dfb898777cf3a06e3119cac8072174fd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170526 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67642}
-
- 05 May, 2020 1 commit
-
-
Anton Bikineev authored
This ports sweeper logic from Blink into a separate entity - Sweeper. Concurrent sweeping is in a followup. Bug: chromium:1056170 Change-Id: I41196225f0d882cb0ab5190d23e297ee2498df6b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2167858 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67581}
-
- 29 Apr, 2020 1 commit
-
-
Omer Katz authored
The worklist in this CL is a merge of the worklists of Oilpan and V8. This implementation supports both use cases and should serve as the shared worklist once we start merging the codebase. Bug: chromium:1056170 Change-Id: I4ecdb475f3900c33eced9249efa112a69c1b2707 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170828Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67459}
-
- 28 Apr, 2020 1 commit
-
-
Dan Elphick authored
base::List is only used inside of heap and has some pretty strange semantics that don't lend themselves to it being a general purpose data structure so this moves it to heap where it can be safe isolated. Bug: v8:10454 Change-Id: I7921c22286276432956005c72143b22b0364fc93 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170029 Auto-Submit: Dan Elphick <delphick@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67448}
-
- 24 Apr, 2020 1 commit
-
-
Etienne Pierre-doray authored
The impl works by posting up to NumberOfWorkerThreads() tasks with CallOnWorkerThread(). Change-Id: I188ac57c9e5d6e3befdcc6f945fbf337dabe1d1d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2130886 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by: Gabriel Charette <gab@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67368}
-
- 22 Apr, 2020 1 commit
-
-
Anton Bikineev authored
- implemented as a single-linked list with head and tail pointers. The tail pointer is needed for freelist appending; - stores entries in buckets, where bucket[log2(size)] stores entries >= size; - implements worst fit allocation to amortize free list call; - ported from Blink: https://bit.ly/2yC8XKJ. Bug: chromium:1056170 Change-Id: I26cf62c948c95a7cbfecd5f7f22ad975e6b8c732 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157376 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67310}
-
- 17 Apr, 2020 2 commits
-
-
Jakob Kummerow authored
These opcodes are not officially specified yet, they are defined in the "prototype implementation spec" at https://bit.ly/3cWcm6Q. Drive-by: drop a unit test whose entire coverage can be provided by a compile-time check. Bug: v8:7748 Change-Id: Icefa6dd321802c8a01c4561178b9d21eca1fbaa3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2152841Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#67208}
-
Paolo Severini authored
This changelist adds the logic to format, decode, sends and receive packets in the format specified by the GDB-remote protocol (https://sourceware.org/gdb/onlinedocs/gdb/Overview.html#Overview). Build with: v8_enable_wasm_gdb_remote_debugging = true Run with: --wasm-gdb-remote Bug: chromium:1010467 Change-Id: Ibc9c6713c561d06847b472fab591c208c193199f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1929409 Commit-Queue: Paolo Severini <paolosev@microsoft.com> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67196}
-
- 15 Apr, 2020 1 commit
-
-
Anton Bikineev authored
CrossThreadPersistent and friends are the followup. Bug: chromium:1056170 Change-Id: Ide910062d80952da73b922398c281162b1861f47 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144957 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67153}
-
- 14 Apr, 2020 1 commit
-
-
Anton Bikineev authored
A few notes: 1) Oilpan is a generic library, meaning that it can work with arbitrary user types. The library is split in type-aware (include/) and type-erased (src/) parts. The former comprises a lot of code that still needs to be defended with dchecks; 2) Macros are prefixed with CPPGC_, so that they don't clash in the user code with similar macros from other libraries; 3) The macros simply forward requests to V8 so that dcheck handlers can be configured uniformly; 4) The CL doesn't contain CHECK_EQ and friends, but they can be added later if needed. Bug: chromium:1056170 Change-Id: I68e6f663247705233eaf030384164d81e53071e1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2148774 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67129}
-