5#ifndef V8_HEAP_MINOR_MARK_SWEEP_H_
6#define V8_HEAP_MINOR_MARK_SWEEP_H_
28class MinorMarkSweepCollector;
43 template <
typename Visitor>
60 std::memory_order_relaxed);
83 template <
typename Visitor>
93 template <
typename Visitor>
95 template <
typename Visitor>
97 template <
typename Visitor,
typename TSlot>
110 template <
typename Visitor>
141 template <
typename TSlot>
204 bool was_marked_incrementally);
238 std::unique_ptr<PretenuringHandler::PretenuringFeedbackMap>
241 std::unique_ptr<YoungGenerationRememberedSetsMarkingWorklist>
void ClearNonLiveReferences()
std::unique_ptr< YoungGenerationRememberedSetsMarkingWorklist > remembered_sets_marking_handler_
void TraceFragmentation()
YoungGenerationRememberedSetsMarkingWorklist * remembered_sets_marking_handler()
~MinorMarkSweepCollector()
NonAtomicMarkingState *const non_atomic_marking_state_
MinorMarkSweepCollector(Heap *heap)
V8_EXPORT_PRIVATE void DrainMarkingWorklist()
std::unique_ptr< PretenuringHandler::PretenuringFeedbackMap > pretenuring_feedback_
bool gc_finalization_requsted() const
std::unique_ptr< EphemeronRememberedSet::TableList > ephemeron_table_list_
bool is_in_atomic_pause() const
MarkingState *const marking_state_
std::atomic< bool > is_in_atomic_pause_
EphemeronRememberedSet::TableList * ephemeron_table_list() const
bool UseBackgroundThreadsInCycle() const
void MarkRoots(YoungGenerationRootMarkingVisitor &root_visitor, bool was_marked_incrementally)
YoungGenerationMainMarkingVisitor * main_marking_visitor()
std::unique_ptr< MarkingWorklists > marking_worklists_
std::optional< bool > use_background_threads_in_cycle_
bool StartSweepNewSpace()
MarkingWorklists::Local * local_marking_worklists()
void MarkRootsFromTracedHandles(YoungGenerationRootMarkingVisitor &root_visitor)
void PerformWrapperTracing()
std::unique_ptr< YoungGenerationMainMarkingVisitor > main_marking_visitor_
std::atomic< bool > gc_finalization_requested_
Heap::ResizeNewSpaceMode ResizeNewSpaceMode
bool SweepNewLargeSpace()
void DrainMarkingWorklistForTesting()
void FinishConcurrentMarking()
void MarkRootsFromConservativeStack(YoungGenerationRootMarkingVisitor &root_visitor)
static constexpr size_t kMaxParallelTasks
void StartMarking(bool force_use_background_threads)
void EvacuateExternalPointerReferences(MutablePageMetadata *p)
void StartSweepNewSpaceWithStickyBits()
MarkingWorklists * marking_worklists()
Local(YoungGenerationRememberedSetsMarkingWorklist *handler)
bool ProcessNextItem(Visitor *visitor)
YoungGenerationRememberedSetsMarkingWorklist *const handler_
std::optional< size_t > index_
void DeleteRememberedSets()
void Process(Visitor *visitor)
void MarkTypedPointers(Visitor *visitor)
SlotSet * background_slot_set_
void MarkUntypedPointers(Visitor *visitor)
const SlotsType slots_type_
MarkingItem(MutablePageMetadata *chunk, SlotsType slots_type, TypedSlotSet *typed_slot_set)
MarkingItem(MutablePageMetadata *chunk, SlotsType slots_type, SlotSet *slot_set, SlotSet *background_slot_set)
TypedSlotSet * typed_slot_set_
void MergeAndDeleteRememberedSets()
MutablePageMetadata *const chunk_
void DeleteSetsOnTearDown()
V8_INLINE SlotCallbackResult CheckAndMarkObject(Visitor *visitor, TSlot slot)
size_t RemainingRememberedSetsMarkingIteams() const
bool ProcessNextItem(Visitor *visitor, std::optional< size_t > &index)
YoungGenerationRememberedSetsMarkingWorklist(Heap *heap)
IndexGenerator remembered_sets_marking_index_generator_
std::vector< MarkingItem > remembered_sets_marking_items_
static std::vector< MarkingItem > CollectItems(Heap *heap)
~YoungGenerationRememberedSetsMarkingWorklist()
std::atomic_size_t remaining_remembered_sets_marking_items_
GarbageCollector collector() const override
YoungGenerationRootMarkingVisitor(const YoungGenerationRootMarkingVisitor &)=delete
V8_INLINE void VisitRootPointers(Root root, const char *description, FullObjectSlot start, FullObjectSlot end) final
YoungGenerationRootMarkingVisitor(MinorMarkSweepCollector *collector)
YoungGenerationRootMarkingVisitor & operator=(const YoungGenerationRootMarkingVisitor &)=delete
V8_INLINE void VisitRootPointer(Root root, const char *description, FullObjectSlot p) final
YoungGenerationMainMarkingVisitor *const main_marking_visitor_
void VisitPointersImpl(Root root, TSlot start, TSlot end)
~YoungGenerationRootMarkingVisitor()
#define DCHECK_NOT_NULL(val)
#define V8_EXPORT_PRIVATE