Index: src/heap/incremental-marking.cc |
diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc |
index 85494ce22170763cd402a5e27b15234fa629a29b..52a3f058ffa02fde5a55ae0e6621d748d03e9538 100644 |
--- a/src/heap/incremental-marking.cc |
+++ b/src/heap/incremental-marking.cc |
@@ -141,52 +141,6 @@ void IncrementalMarking::RecordWriteIntoCodeSlow(Code* host, RelocInfo* rinfo, |
} |
-void IncrementalMarking::RecordWrites(HeapObject* obj) { |
- if (IsMarking()) { |
- MarkBit obj_bit = Marking::MarkBitFrom(obj); |
- if (Marking::IsBlack(obj_bit)) { |
- MemoryChunk* chunk = MemoryChunk::FromAddress(obj->address()); |
- if (chunk->IsFlagSet(MemoryChunk::HAS_PROGRESS_BAR)) { |
- chunk->set_progress_bar(0); |
- } |
- BlackToGreyAndUnshift(obj, obj_bit); |
- RestartIfNotMarking(); |
- } |
- } |
-} |
- |
- |
-void IncrementalMarking::BlackToGreyAndUnshift(HeapObject* obj, |
- MarkBit mark_bit) { |
- DCHECK(Marking::MarkBitFrom(obj) == mark_bit); |
- DCHECK(obj->Size() >= 2 * kPointerSize); |
- DCHECK(IsMarking()); |
- Marking::BlackToGrey(mark_bit); |
- int obj_size = obj->Size(); |
- MemoryChunk::IncrementLiveBytesFromGC(obj, -obj_size); |
- bytes_scanned_ -= obj_size; |
- int64_t old_bytes_rescanned = bytes_rescanned_; |
- bytes_rescanned_ = old_bytes_rescanned + obj_size; |
- if ((bytes_rescanned_ >> 20) != (old_bytes_rescanned >> 20)) { |
- if (bytes_rescanned_ > 2 * heap_->PromotedSpaceSizeOfObjects()) { |
- // If we have queued twice the heap size for rescanning then we are |
- // going around in circles, scanning the same objects again and again |
- // as the program mutates the heap faster than we can incrementally |
- // trace it. In this case we switch to non-incremental marking in |
- // order to finish off this marking phase. |
- if (FLAG_trace_incremental_marking) { |
- PrintIsolate( |
- heap()->isolate(), |
- "Hurrying incremental marking because of lack of progress\n"); |
- } |
- marking_speed_ = kMaxMarkingSpeed; |
- } |
- } |
- |
- heap_->mark_compact_collector()->marking_deque()->Unshift(obj); |
-} |
- |
- |
void IncrementalMarking::WhiteToGreyAndPush(HeapObject* obj, MarkBit mark_bit) { |
Marking::WhiteToGrey(mark_bit); |
heap_->mark_compact_collector()->marking_deque()->Push(obj); |
@@ -323,8 +277,7 @@ class IncrementalMarkingMarkingVisitor |
}; |
void IncrementalMarking::IterateBlackObject(HeapObject* object) { |
- if (black_allocation() && |
- Page::FromAddress(object->address())->IsFlagSet(Page::BLACK_PAGE)) { |
+ if (IsMarking() && Marking::IsBlack(Marking::MarkBitFrom(object))) { |
IncrementalMarkingMarkingVisitor::IterateBody(object->map(), object); |
} |
} |