- 04 Aug, 2022 1 commit
-
-
Michael Lippautz authored
v8::TracedReference is supposed to be used from objects allocated on CppHeap. Such objects can be in construction during garbage collection, meaning that they are unable to invoke Trace(v8::TraceReference) as they have not been properly set up. It is thus necessary to use conservative tracing to find v8::TracedReference (backed by TracedNode in GlobalHandle) in in-construction objects. Change-Id: I5b4ac6e7805ff7ded33f63a405db65ea08d809ad Bug: v8:13141, chromium:1322114 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3806439 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#82188}
-
- 01 Aug, 2022 1 commit
-
-
Michael Lippautz authored
Introduce RootVisitor and related class hierarchy to just handle roots. This avoids the awkard definitions for roots visiation in all the cases they are not needed. Change-Id: Ib0912e4bf543db2ecf68caead6929c68d6afdda6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3782794Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82107}
-
- 21 Jul, 2022 1 commit
-
-
Michael Lippautz authored
Introduce `TraceStrongContainer()` to retain containers strongly. This makes the use of `Trace(T*)` obsolete as all other use cases should refer to Member overloads. Bug: v8:13089 Change-Id: Ib0e762bf3298f1818528e45cc842d14a63f2c684 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3779680Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81864}
-
- 19 Jul, 2022 1 commit
-
-
Michael Lippautz authored
We will provide a replacement for raw pointers in future which should only be used by backing stores. Any other callsite must go through Trace(BasicMember<>). Bug: v8:13089 Change-Id: Ibdae439b44ad94bd7af2532855be941c5334db99 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3772328 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81833}
-
- 25 May, 2022 1 commit
-
-
Anton Bikineev authored
Due to collections with inlined storage, Oilpan still supports on-stack Members, which are always compressed if pointer compression is enabled. This CL scans halfwords (together with full words) on stack to find potential pointers. Since on-heap pointers can only be compressed and in-construction objects always reside on heap, only halfwords need to be scanned for them. The alternative potential followup approaches: 1) Use a separate uncompressed type for pointer in inlined collections; 2) Dynamically register regions of stack containing compressed pointers. Bug: chromium:1325007 Change-Id: Ia706fd8e7383d30aff11f4014faa9edd3d289a55 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644959Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#80747}
-
- 17 Nov, 2020 1 commit
-
-
Michael Lippautz authored
Allows embedders to allocate C++ objects on the internal managed C++ heap. Bug: chromium:1056170 Change-Id: Ibd81d0fc915478a81f14e8ab12a631e442790f04 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2536642Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#71225}
-
- 22 Oct, 2020 1 commit
-
-
Omer Katz authored
This CL adds TraceWeakContainer and VisitWeakContainer to the Visitor api. It also introduces the weak_container_worklist_ used to force re-tracing of weak containers that are reachable from stack. Bug: chromium:1056170 Change-Id: I4ba75bd64939b8df9ece7422828a5ac647b03fd1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2491022 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#70708}
-
- 14 Oct, 2020 1 commit
-
-
Michael Lippautz authored
Bug: chromium:1056170 Change-Id: Ib03a09db010f3ad06701520fc39e7e83055dbb9e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2467855 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#70515}
-
- 06 Aug, 2020 1 commit
-
-
Omer Katz authored
This is a revival of https://chromium-review.googlesource.com/c/v8/v8/+/2228332 The CL establishes the following: *) Objects are marked before being pushed to the worklists. *) Live bytes are always accounted after tracing an object (i.e. move from Gray to Black below). *) Previously not fully constructed objects are traced immediately instead of pushed to the marking worklist. This establishes the following invariants for all marking worklists: 1) White = !object.is_marked() && !worklist.contains(object) 2) Gray = object.is_marked() && worklist.contains(object) 3) Black = object.is_marked() && !worklist.contains(object) Bug: chromium:1056170 Change-Id: I821573b3fbc057e6ffb836154271ff986ecb4d2b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2336797Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#69268}
-
- 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}
-
- 02 Jul, 2020 1 commit
-
-
Michael Lippautz authored
Split off ConservativeMarkingVisitor from MarkingVisitor. After this change, MarkingVisitor and ConservativeMarkingVisitor are types that are instantiated with Marking and merely forward to MarkingState accrodingly. The two marking-related visitors can be passed along as interface types cppgc::Visitor and ConservativeTracingVisitor, respectively. Change-Id: Iad103dc3053c61d1a104a8802edd420d21cdf935 Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2270538 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#68661}
-
- 16 Jun, 2020 1 commit
-
-
Michael Lippautz authored
- Untangles MarkingVisitor from Marker. - Adds ConservativeTracingVisitor encapsulating conservative tracing. This enables the following architecture: - Marking visitors (unified + stand-alone) inherit from MarkingVisitor; - Markers (unified + stand-alone) inherit (or directly use) Marker Bug: chromium:1056170 Change-Id: I05304c231d2983dab5611d05cf4aa8bfa3ed5e20 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2245600Reviewed-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@{#68366}
-
- 08 Jun, 2020 1 commit
-
-
Michael Lippautz authored
Document: - Visitor Bug: chromium:1056170 Change-Id: Icc0037befa73f043fcbf14ff4ff89be8b8940ee4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235696Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68233}
-
- 14 Apr, 2020 1 commit
-
-
Michael Lippautz authored
Provides the infrastructure to register weak callbacks for WeakMember<T> through visitor. The WeakCallbackInfo broker is used to query objects for liveness. In a future CL the same broker object is passed to custom weak callbacks. Change-Id: I8b5a66354e0e457521989d40ae64a9558c339503 Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2142265 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@{#67109}
-
- 07 Apr, 2020 1 commit
-
-
Michael Lippautz authored
This CL adds the necessary traits to dispatch from Member through a visitor implementation for GarabgeCollected and GarbageCollectedMixin. Bug: chromium:1056170 Change-Id: I12680335044aaa842639fb5e8f9a3ac61587f51a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2138431Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67041}
-