| Index: src/heap/mark-compact.cc
|
| diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc
|
| index 55f4d75e1056a3dc8682704bd19398ee1b0b9f94..5c11183b00eaefdeae5134435a4ddbe8b2bc08e2 100644
|
| --- a/src/heap/mark-compact.cc
|
| +++ b/src/heap/mark-compact.cc
|
| @@ -2245,90 +2245,6 @@ void MarkCompactCollector::ProcessTopOptimizedFrame(
|
| }
|
| }
|
|
|
| -void MarkingDeque::SetUp() {
|
| - backing_store_ = new base::VirtualMemory(kMaxSize);
|
| - backing_store_committed_size_ = 0;
|
| - if (backing_store_ == nullptr) {
|
| - V8::FatalProcessOutOfMemory("MarkingDeque::SetUp");
|
| - }
|
| -}
|
| -
|
| -void MarkingDeque::TearDown() {
|
| - delete backing_store_;
|
| -}
|
| -
|
| -void MarkingDeque::StartUsing() {
|
| - base::LockGuard<base::Mutex> guard(&mutex_);
|
| - if (in_use_) {
|
| - // This can happen in mark-compact GC if the incremental marker already
|
| - // started using the marking deque.
|
| - return;
|
| - }
|
| - in_use_ = true;
|
| - EnsureCommitted();
|
| - array_ = reinterpret_cast<HeapObject**>(backing_store_->address());
|
| - size_t size = FLAG_force_marking_deque_overflows
|
| - ? 64 * kPointerSize
|
| - : backing_store_committed_size_;
|
| - DCHECK(
|
| - base::bits::IsPowerOfTwo32(static_cast<uint32_t>(size / kPointerSize)));
|
| - mask_ = static_cast<int>((size / kPointerSize) - 1);
|
| - top_ = bottom_ = 0;
|
| - overflowed_ = false;
|
| -}
|
| -
|
| -void MarkingDeque::StopUsing() {
|
| - base::LockGuard<base::Mutex> guard(&mutex_);
|
| - if (!in_use_) return;
|
| - DCHECK(IsEmpty());
|
| - DCHECK(!overflowed_);
|
| - top_ = bottom_ = mask_ = 0;
|
| - in_use_ = false;
|
| - if (FLAG_concurrent_sweeping) {
|
| - StartUncommitTask();
|
| - } else {
|
| - Uncommit();
|
| - }
|
| -}
|
| -
|
| -void MarkingDeque::Clear() {
|
| - DCHECK(in_use_);
|
| - top_ = bottom_ = 0;
|
| - overflowed_ = false;
|
| -}
|
| -
|
| -void MarkingDeque::Uncommit() {
|
| - DCHECK(!in_use_);
|
| - bool success = backing_store_->Uncommit(backing_store_->address(),
|
| - backing_store_committed_size_);
|
| - backing_store_committed_size_ = 0;
|
| - CHECK(success);
|
| -}
|
| -
|
| -void MarkingDeque::EnsureCommitted() {
|
| - DCHECK(in_use_);
|
| - if (backing_store_committed_size_ > 0) return;
|
| -
|
| - for (size_t size = kMaxSize; size >= kMinSize; size /= 2) {
|
| - if (backing_store_->Commit(backing_store_->address(), size, false)) {
|
| - backing_store_committed_size_ = size;
|
| - break;
|
| - }
|
| - }
|
| - if (backing_store_committed_size_ == 0) {
|
| - V8::FatalProcessOutOfMemory("MarkingDeque::EnsureCommitted");
|
| - }
|
| -}
|
| -
|
| -void MarkingDeque::StartUncommitTask() {
|
| - if (!uncommit_task_pending_) {
|
| - uncommit_task_pending_ = true;
|
| - UncommitTask* task = new UncommitTask(heap_->isolate(), this);
|
| - V8::GetCurrentPlatform()->CallOnBackgroundThread(
|
| - task, v8::Platform::kShortRunningTask);
|
| - }
|
| -}
|
| -
|
| class ObjectStatsVisitor : public HeapObjectVisitor {
|
| public:
|
| ObjectStatsVisitor(Heap* heap, ObjectStats* live_stats,
|
|
|