Commit 1c6f0fa6 authored by yangguo@chromium.org's avatar yangguo@chromium.org

Revert "Precisely sweep scan on scavenge pages and use heap iterator to iterate over them."

This reverts r22154.

TBR=hpayer@chromium.org

Review URL: https://codereview.chromium.org/365853003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent d4c07acd
...@@ -4146,23 +4146,12 @@ void MarkCompactCollector::SweepSpace(PagedSpace* space, SweeperType sweeper) { ...@@ -4146,23 +4146,12 @@ void MarkCompactCollector::SweepSpace(PagedSpace* space, SweeperType sweeper) {
pages_swept++; pages_swept++;
parallel_sweeping_active = true; parallel_sweeping_active = true;
} else { } else {
if (p->scan_on_scavenge()) { if (FLAG_gc_verbose) {
SweepPrecisely<SWEEP_ONLY, IGNORE_SKIP_LIST, IGNORE_FREE_SPACE>( PrintF("Sweeping 0x%" V8PRIxPTR " conservatively in parallel.\n",
space, p, NULL); reinterpret_cast<intptr_t>(p));
pages_swept++;
if (FLAG_gc_verbose) {
PrintF("Sweeping 0x%" V8PRIxPTR
" scan on scavenge page precisely.\n",
reinterpret_cast<intptr_t>(p));
}
} else {
if (FLAG_gc_verbose) {
PrintF("Sweeping 0x%" V8PRIxPTR " conservatively in parallel.\n",
reinterpret_cast<intptr_t>(p));
}
p->set_parallel_sweeping(MemoryChunk::PARALLEL_SWEEPING_PENDING);
space->IncreaseUnsweptFreeBytes(p);
} }
p->set_parallel_sweeping(MemoryChunk::PARALLEL_SWEEPING_PENDING);
space->IncreaseUnsweptFreeBytes(p);
} }
space->set_end_of_unswept_pages(p); space->set_end_of_unswept_pages(p);
break; break;
......
...@@ -552,21 +552,8 @@ void StoreBuffer::IteratePointersToNewSpace(ObjectSlotCallback slot_callback, ...@@ -552,21 +552,8 @@ void StoreBuffer::IteratePointersToNewSpace(ObjectSlotCallback slot_callback,
FindPointersToNewSpaceInMapsRegion( FindPointersToNewSpaceInMapsRegion(
start, end, slot_callback, clear_maps); start, end, slot_callback, clear_maps);
} else { } else {
ASSERT(page->WasSweptPrecisely()); FindPointersToNewSpaceInRegion(
HeapObjectIterator iterator(page, NULL); start, end, slot_callback, clear_maps);
for (HeapObject* heap_object = iterator.Next();
heap_object != NULL;
heap_object = iterator.Next()) {
// We skip filler, free space, and constant pool objects.
if (!heap_object->IsFiller() &&
!heap_object->IsConstantPoolArray()) {
FindPointersToNewSpaceInRegion(
heap_object->address() + HeapObject::kHeaderSize,
heap_object->address() + heap_object->Size(),
slot_callback,
clear_maps);
}
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment