Move the temporary private freelist closer to where it's used

BUG=v8:3104
R=hpayer@chromium.org
LOG=n

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18707 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
jochen@chromium.org 2014-01-21 11:48:51 +00:00
parent 6b1ae170b9
commit 7b3b9bd316
4 changed files with 8 additions and 16 deletions

View File

@ -3976,18 +3976,18 @@ intptr_t MarkCompactCollector::SweepConservatively(PagedSpace* space,
}
void MarkCompactCollector::SweepInParallel(PagedSpace* space,
FreeList* private_free_list) {
void MarkCompactCollector::SweepInParallel(PagedSpace* space) {
PageIterator it(space);
FreeList* free_list = space == heap()->old_pointer_space()
? free_list_old_pointer_space_.get()
: free_list_old_data_space_.get();
FreeList private_free_list(space);
while (it.has_next()) {
Page* p = it.next();
if (p->TryParallelSweeping()) {
SweepConservatively<SWEEP_IN_PARALLEL>(space, private_free_list, p);
free_list->Concatenate(private_free_list);
SweepConservatively<SWEEP_IN_PARALLEL>(space, &private_free_list, p);
free_list->Concatenate(&private_free_list);
}
}
}

View File

@ -717,8 +717,7 @@ class MarkCompactCollector {
MarkingParity marking_parity() { return marking_parity_; }
// Concurrent and parallel sweeping support.
void SweepInParallel(PagedSpace* space,
FreeList* private_free_list);
void SweepInParallel(PagedSpace* space);
void WaitUntilSweepingCompleted();

View File

@ -44,10 +44,7 @@ SweeperThread::SweeperThread(Isolate* isolate)
collector_(heap_->mark_compact_collector()),
start_sweeping_semaphore_(0),
end_sweeping_semaphore_(0),
stop_semaphore_(0),
private_free_list_old_data_space_(heap_->paged_space(OLD_DATA_SPACE)),
private_free_list_old_pointer_space_(
heap_->paged_space(OLD_POINTER_SPACE)) {
stop_semaphore_(0) {
NoBarrier_Store(&stop_thread_, static_cast<AtomicWord>(false));
}
@ -66,10 +63,8 @@ void SweeperThread::Run() {
return;
}
collector_->SweepInParallel(heap_->old_data_space(),
&private_free_list_old_data_space_);
collector_->SweepInParallel(heap_->old_pointer_space(),
&private_free_list_old_pointer_space_);
collector_->SweepInParallel(heap_->old_data_space());
collector_->SweepInParallel(heap_->old_pointer_space());
end_sweeping_semaphore_.Signal();
}
}

View File

@ -59,8 +59,6 @@ class SweeperThread : public Thread {
Semaphore start_sweeping_semaphore_;
Semaphore end_sweeping_semaphore_;
Semaphore stop_semaphore_;
FreeList private_free_list_old_data_space_;
FreeList private_free_list_old_pointer_space_;
volatile AtomicWord stop_thread_;
};