5#ifndef V8_HEAP_MARKING_BARRIER_INL_H_
6#define V8_HEAP_MARKING_BARRIER_INL_H_
20template <
typename TSlot>
50 if (
v8_flags.black_allocated_pages &&
106 if (!target_worklist)
return;
113template <
typename TSlot>
117 const bool record_slots =
120 for (TSlot slot =
start; slot <
end; ++slot) {
121 typename TSlot::TObject
object = slot.Relaxed_Load();
124 if (
object.GetHeapObject(isolate, &heap_object)) {
static V8_INLINE bool InYoungGeneration(Tagged< Object > object)
static V8_INLINE bool InWritableSharedSpace(Tagged< HeapObject > object)
static V8_INLINE bool InReadOnlySpace(Tagged< HeapObject > object)
static V8_INLINE bool InBlackAllocatedPage(Tagged< HeapObject > object)
static V8_INLINE bool InAnySharedSpace(Tagged< HeapObject > object)
Isolate * isolate() const
static V8_INLINE void RecordSlot(Tagged< HeapObject > object, THeapObjectSlot slot, Tagged< HeapObject > target)
void MarkValue(Tagged< HeapObject > host, Tagged< HeapObject > value)
std::optional< MarkingWorklists::Local > shared_heap_worklists_
void MarkValueLocal(Tagged< HeapObject > value)
void Write(Tagged< HeapObject > host, TSlot slot, Tagged< HeapObject > value)
const bool is_shared_space_isolate_
std::unique_ptr< MarkingWorklists::Local > current_worklists_
bool IsCurrentMarkingBarrier(Tagged< HeapObject > verification_candidate)
void MarkRange(Tagged< HeapObject > value, TSlot start, TSlot end)
const bool uses_shared_heap_
MarkCompactCollector * major_collector_
void MarkValueShared(Tagged< HeapObject > value)
MarkingState marking_state_
bool IsCompacting(Tagged< HeapObject > object) const
V8_INLINE bool TryMark(Tagged< HeapObject > obj)
bool ShouldSkipEvacuationSlotRecording() const
static V8_INLINE MemoryChunk * FromHeapObject(Tagged< HeapObject > object)
V8_EXPORT_PRIVATE FlagValues v8_flags
SlotTraits::THeapObjectSlot HeapObjectSlot
#define DCHECK_IMPLIES(v1, v2)
#define DCHECK(condition)
static V8_INLINE bool TryMarkAndPush(Heap *heap, MarkingWorklists::Local *marking_worklist, MarkingState *marking_state, WorklistTarget target_worklis, Tagged< HeapObject > object)
static V8_INLINE std::optional< WorklistTarget > ShouldMarkObject(Heap *heap, Tagged< HeapObject > object)
#define V8_UNLIKELY(condition)