5#ifndef V8_HEAP_EVACUATION_VERIFIER_H_
6#define V8_HEAP_EVACUATION_VERIFIER_H_
18class EvacuationVerifier final :
public ObjectVisitorWithCageBases,
21 explicit EvacuationVerifier(Heap*
heap);
25 void VisitPointers(Tagged<HeapObject> host, ObjectSlot
start,
26 ObjectSlot
end)
final;
27 void VisitPointers(Tagged<HeapObject> host, MaybeObjectSlot
start,
28 MaybeObjectSlot
end)
final;
29 void VisitInstructionStreamPointer(Tagged<Code> host,
30 InstructionStreamSlot slot)
final;
31 void VisitRootPointers(Root root,
const char* description,
32 FullObjectSlot
start, FullObjectSlot
end)
final;
33 void VisitMapPointer(Tagged<HeapObject>
object)
final;
34 void VisitCodeTarget(Tagged<InstructionStream> host, RelocInfo* rinfo)
final;
35 void VisitEmbeddedPointer(Tagged<InstructionStream> host,
36 RelocInfo* rinfo)
final;
39 V8_INLINE void VerifyHeapObjectImpl(Tagged<HeapObject> heap_object);
40 V8_INLINE bool ShouldVerifyObject(Tagged<HeapObject> heap_object);
42 template <
typename TSlot>
43 void VerifyPointersImpl(TSlot
start, TSlot
end);
46 void VerifyEvacuationOnPage(Address
start, Address
end);
47 void VerifyEvacuation(NewSpace* new_space);
48 void VerifyEvacuation(PagedSpaceBase* paged_space);