v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
mark-compact.cc File Reference
#include "src/heap/mark-compact.h"
#include <algorithm>
#include <atomic>
#include <iterator>
#include <memory>
#include <optional>
#include "src/base/bits.h"
#include "src/base/logging.h"
#include "src/base/platform/mutex.h"
#include "src/base/platform/platform.h"
#include "src/base/utils/random-number-generator.h"
#include "src/codegen/compilation-cache.h"
#include "src/common/assert-scope.h"
#include "src/common/globals.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/execution/execution.h"
#include "src/execution/frames-inl.h"
#include "src/execution/isolate-inl.h"
#include "src/execution/isolate-utils-inl.h"
#include "src/execution/vm-state-inl.h"
#include "src/flags/flags.h"
#include "src/handles/global-handles.h"
#include "src/heap/array-buffer-sweeper.h"
#include "src/heap/base/basic-slot-set.h"
#include "src/heap/concurrent-marking.h"
#include "src/heap/ephemeron-remembered-set.h"
#include "src/heap/evacuation-allocator-inl.h"
#include "src/heap/evacuation-verifier-inl.h"
#include "src/heap/gc-tracer-inl.h"
#include "src/heap/gc-tracer.h"
#include "src/heap/heap-layout-inl.h"
#include "src/heap/heap-utils-inl.h"
#include "src/heap/heap-visitor-inl.h"
#include "src/heap/heap.h"
#include "src/heap/incremental-marking.h"
#include "src/heap/index-generator.h"
#include "src/heap/large-spaces.h"
#include "src/heap/live-object-range-inl.h"
#include "src/heap/mark-compact-inl.h"
#include "src/heap/mark-sweep-utilities.h"
#include "src/heap/marking-barrier.h"
#include "src/heap/marking-inl.h"
#include "src/heap/marking-state-inl.h"
#include "src/heap/marking-visitor-inl.h"
#include "src/heap/marking.h"
#include "src/heap/memory-allocator.h"
#include "src/heap/memory-chunk-layout.h"
#include "src/heap/memory-chunk-metadata.h"
#include "src/heap/memory-chunk.h"
#include "src/heap/memory-measurement-inl.h"
#include "src/heap/memory-measurement.h"
#include "src/heap/mutable-page-metadata.h"
#include "src/heap/new-spaces.h"
#include "src/heap/object-stats.h"
#include "src/heap/page-metadata-inl.h"
#include "src/heap/page-metadata.h"
#include "src/heap/parallel-work-item.h"
#include "src/heap/pretenuring-handler-inl.h"
#include "src/heap/pretenuring-handler.h"
#include "src/heap/read-only-heap.h"
#include "src/heap/read-only-spaces.h"
#include "src/heap/remembered-set.h"
#include "src/heap/safepoint.h"
#include "src/heap/slot-set.h"
#include "src/heap/spaces-inl.h"
#include "src/heap/sweeper.h"
#include "src/heap/traced-handles-marking-visitor.h"
#include "src/heap/weak-object-worklists.h"
#include "src/heap/zapping.h"
#include "src/init/v8.h"
#include "src/logging/tracing-flags.h"
#include "src/objects/embedder-data-array-inl.h"
#include "src/objects/foreign.h"
#include "src/objects/hash-table-inl.h"
#include "src/objects/heap-object-inl.h"
#include "src/objects/heap-object.h"
#include "src/objects/instance-type.h"
#include "src/objects/js-array-buffer-inl.h"
#include "src/objects/js-objects-inl.h"
#include "src/objects/maybe-object.h"
#include "src/objects/objects.h"
#include "src/objects/slots-inl.h"
#include "src/objects/smi.h"
#include "src/objects/string-forwarding-table-inl.h"
#include "src/objects/transitions-inl.h"
#include "src/objects/visitors.h"
#include "src/sandbox/indirect-pointer-tag.h"
#include "src/snapshot/shared-heap-serializer.h"
#include "src/tasks/cancelable-task.h"
#include "src/tracing/tracing-category-observer.h"
#include "src/utils/utils-inl.h"

Go to the source code of this file.

Classes

class  v8::internal::MainMarkingVisitor
 
class  v8::internal::MarkCompactCollector::CustomRootBodyMarkingVisitor
 
class  v8::internal::MarkCompactCollector::SharedHeapObjectVisitor
 
class  v8::internal::InternalizedStringTableCleaner
 
class  v8::internal::MarkCompactWeakObjectRetainer
 
class  v8::internal::RecordMigratedSlotVisitor
 
class  v8::internal::MigrationObserver
 
class  v8::internal::ProfilingMigrationObserver
 
class  v8::internal::HeapObjectVisitor
 
class  v8::internal::EvacuateVisitorBase
 
class  v8::internal::EvacuateNewSpaceVisitor
 
class  v8::internal::EvacuateNewToOldSpacePageVisitor
 
class  v8::internal::EvacuateOldSpaceVisitor
 
class  v8::internal::EvacuateRecordOnlyVisitor
 
class  v8::internal::FullStringForwardingTableCleaner
 
class  v8::internal::MarkCompactCollector::ClearTrivialWeakRefJobItem
 
class  v8::internal::MarkCompactCollector::FilterNonTrivialWeakRefJobItem
 
class  v8::internal::PointersUpdatingVisitor
 
class  v8::internal::Evacuator
 
class  v8::internal::LiveObjectVisitor
 
class  v8::internal::PageEvacuationJob
 
class  v8::internal::PrecisePagePinningVisitor
 
class  v8::internal::EvacuationWeakObjectRetainer
 
class  v8::internal::UpdatingItem
 
class  v8::internal::PointersUpdatingJob
 
class  v8::internal::EphemeronTableUpdatingItem
 

Namespaces

namespace  v8
 
namespace  v8::internal
 

Functions

static void v8::internal::TraceFragmentation (PagedSpace *space)
 
static Tagged< Stringv8::internal::UpdateReferenceInExternalStringTableEntry (Heap *heap, FullObjectSlot p)
 

Variable Documentation

◆ chunk_

MutablePageMetadata* chunk_
private

Definition at line 5528 of file mark-compact.cc.

◆ collector_

MarkCompactCollector* collector_
private

Definition at line 2592 of file mark-compact.cc.

◆ elements_removed_

int elements_removed_ = 0
private

Definition at line 2810 of file mark-compact.cc.

◆ heap_

Heap* heap_
private

Definition at line 2809 of file mark-compact.cc.

◆ isolate_

Isolate* const isolate_
private

Definition at line 2631 of file mark-compact.cc.

◆ items_

std::vector<std::unique_ptr<ClearingItem> > items_
private

Definition at line 2594 of file mark-compact.cc.

◆ items_mutex_

base::Mutex items_mutex_
mutableprivate

Definition at line 2593 of file mark-compact.cc.

◆ marking_state_

NonAtomicMarkingState* marking_state_
private

Definition at line 5527 of file mark-compact.cc.

◆ record_old_to_shared_slots_

const bool record_old_to_shared_slots_
private

Definition at line 5529 of file mark-compact.cc.

◆ trace_id_

const uint64_t trace_id_
private

Definition at line 2632 of file mark-compact.cc.