Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: src/heap/mark-compact.cc

Issue 2869413002: [heap] MinorMC: Only iterate new space global handles for ptr updates (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/heap/heap.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/heap/mark-compact.h" 5 #include "src/heap/mark-compact.h"
6 6
7 #include "src/base/atomicops.h" 7 #include "src/base/atomicops.h"
8 #include "src/base/bits.h" 8 #include "src/base/bits.h"
9 #include "src/base/sys-info.h" 9 #include "src/base/sys-info.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 4383 matching lines...) Expand 10 before | Expand all | Expand 10 after
4394 void MinorMarkCompactCollector::UpdatePointersAfterEvacuation() { 4394 void MinorMarkCompactCollector::UpdatePointersAfterEvacuation() {
4395 TRACE_GC(heap()->tracer(), GCTracer::Scope::MC_EVACUATE_UPDATE_POINTERS); 4395 TRACE_GC(heap()->tracer(), GCTracer::Scope::MC_EVACUATE_UPDATE_POINTERS);
4396 4396
4397 PointersUpdatingVisitor updating_visitor; 4397 PointersUpdatingVisitor updating_visitor;
4398 4398
4399 { 4399 {
4400 TRACE_GC(heap()->tracer(), 4400 TRACE_GC(heap()->tracer(),
4401 GCTracer::Scope::MC_EVACUATE_UPDATE_POINTERS_TO_NEW); 4401 GCTracer::Scope::MC_EVACUATE_UPDATE_POINTERS_TO_NEW);
4402 UpdateToSpacePointersInParallel(heap_, &page_parallel_job_semaphore_, 4402 UpdateToSpacePointersInParallel(heap_, &page_parallel_job_semaphore_,
4403 *this); 4403 *this);
4404 // TODO(mlippautz): Iteration mode is not optimal as we process all 4404 heap_->IterateRoots(&updating_visitor, VISIT_ALL_IN_MINOR_MC_UPDATE);
4405 // global handles. Find a way to only process the ones related to new
4406 // space.
4407 heap_->IterateRoots(&updating_visitor, VISIT_ALL_IN_SWEEP_NEWSPACE);
4408 UpdatePointersInParallel<OLD_TO_NEW>(heap_, &page_parallel_job_semaphore_, 4405 UpdatePointersInParallel<OLD_TO_NEW>(heap_, &page_parallel_job_semaphore_,
4409 this); 4406 this);
4410 } 4407 }
4411 4408
4412 { 4409 {
4413 TRACE_GC(heap()->tracer(), 4410 TRACE_GC(heap()->tracer(),
4414 GCTracer::Scope::MC_EVACUATE_UPDATE_POINTERS_WEAK); 4411 GCTracer::Scope::MC_EVACUATE_UPDATE_POINTERS_WEAK);
4415 4412
4416 EvacuationWeakObjectRetainer evacuation_object_retainer; 4413 EvacuationWeakObjectRetainer evacuation_object_retainer;
4417 heap()->ProcessWeakListRoots(&evacuation_object_retainer); 4414 heap()->ProcessWeakListRoots(&evacuation_object_retainer);
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
4638 // The target is always in old space, we don't have to record the slot in 4635 // The target is always in old space, we don't have to record the slot in
4639 // the old-to-new remembered set. 4636 // the old-to-new remembered set.
4640 DCHECK(!heap()->InNewSpace(target)); 4637 DCHECK(!heap()->InNewSpace(target));
4641 RecordRelocSlot(host, &rinfo, target); 4638 RecordRelocSlot(host, &rinfo, target);
4642 } 4639 }
4643 } 4640 }
4644 } 4641 }
4645 4642
4646 } // namespace internal 4643 } // namespace internal
4647 } // namespace v8 4644 } // namespace v8
OLDNEW
« no previous file with comments | « src/heap/heap.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698