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

Side by Side Diff: src/heap/incremental-marking.cc

Issue 2088223002: [heap] Modernize all *Page iterators to be proper C++ iterators (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Unify w/ LargePageIterator Created 4 years, 6 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') | src/heap/mark-compact.cc » ('j') | 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/incremental-marking.h" 5 #include "src/heap/incremental-marking.h"
6 6
7 #include "src/code-stubs.h" 7 #include "src/code-stubs.h"
8 #include "src/compilation-cache.h" 8 #include "src/compilation-cache.h"
9 #include "src/conversions.h" 9 #include "src/conversions.h"
10 #include "src/heap/gc-idle-time-handler.h" 10 #include "src/heap/gc-idle-time-handler.h"
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 if (is_marking) { 338 if (is_marking) {
339 chunk->SetFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING); 339 chunk->SetFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING);
340 } else { 340 } else {
341 chunk->ClearFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING); 341 chunk->ClearFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING);
342 } 342 }
343 } 343 }
344 344
345 345
346 void IncrementalMarking::DeactivateIncrementalWriteBarrierForSpace( 346 void IncrementalMarking::DeactivateIncrementalWriteBarrierForSpace(
347 PagedSpace* space) { 347 PagedSpace* space) {
348 PageIterator it(space); 348 for (Page* p : *space) {
349 while (it.has_next()) {
350 Page* p = it.next();
351 SetOldSpacePageFlags(p, false, false); 349 SetOldSpacePageFlags(p, false, false);
352 } 350 }
353 } 351 }
354 352
355 353
356 void IncrementalMarking::DeactivateIncrementalWriteBarrierForSpace( 354 void IncrementalMarking::DeactivateIncrementalWriteBarrierForSpace(
357 NewSpace* space) { 355 NewSpace* space) {
358 NewSpacePageIterator it(space); 356 for (Page* p : *space) {
359 while (it.has_next()) {
360 Page* p = it.next();
361 SetNewSpacePageFlags(p, false); 357 SetNewSpacePageFlags(p, false);
362 } 358 }
363 } 359 }
364 360
365 361
366 void IncrementalMarking::DeactivateIncrementalWriteBarrier() { 362 void IncrementalMarking::DeactivateIncrementalWriteBarrier() {
367 DeactivateIncrementalWriteBarrierForSpace(heap_->old_space()); 363 DeactivateIncrementalWriteBarrierForSpace(heap_->old_space());
368 DeactivateIncrementalWriteBarrierForSpace(heap_->map_space()); 364 DeactivateIncrementalWriteBarrierForSpace(heap_->map_space());
369 DeactivateIncrementalWriteBarrierForSpace(heap_->code_space()); 365 DeactivateIncrementalWriteBarrierForSpace(heap_->code_space());
370 DeactivateIncrementalWriteBarrierForSpace(heap_->new_space()); 366 DeactivateIncrementalWriteBarrierForSpace(heap_->new_space());
371 367
372 LargePage* lop = heap_->lo_space()->first_page(); 368 for (LargePage* lop : *heap_->lo_space()) {
373 while (LargePage::IsValid(lop)) {
374 SetOldSpacePageFlags(lop, false, false); 369 SetOldSpacePageFlags(lop, false, false);
375 lop = lop->next_page();
376 } 370 }
377 } 371 }
378 372
379 373
380 void IncrementalMarking::ActivateIncrementalWriteBarrier(PagedSpace* space) { 374 void IncrementalMarking::ActivateIncrementalWriteBarrier(PagedSpace* space) {
381 PageIterator it(space); 375 for (Page* p : *space) {
382 while (it.has_next()) {
383 Page* p = it.next();
384 SetOldSpacePageFlags(p, true, is_compacting_); 376 SetOldSpacePageFlags(p, true, is_compacting_);
385 } 377 }
386 } 378 }
387 379
388 380
389 void IncrementalMarking::ActivateIncrementalWriteBarrier(NewSpace* space) { 381 void IncrementalMarking::ActivateIncrementalWriteBarrier(NewSpace* space) {
390 NewSpacePageIterator it(space->ToSpaceStart(), space->ToSpaceEnd()); 382 for (Page* p : *space) {
391 while (it.has_next()) {
392 Page* p = it.next();
393 SetNewSpacePageFlags(p, true); 383 SetNewSpacePageFlags(p, true);
394 } 384 }
395 } 385 }
396 386
397 387
398 void IncrementalMarking::ActivateIncrementalWriteBarrier() { 388 void IncrementalMarking::ActivateIncrementalWriteBarrier() {
399 ActivateIncrementalWriteBarrier(heap_->old_space()); 389 ActivateIncrementalWriteBarrier(heap_->old_space());
400 ActivateIncrementalWriteBarrier(heap_->map_space()); 390 ActivateIncrementalWriteBarrier(heap_->map_space());
401 ActivateIncrementalWriteBarrier(heap_->code_space()); 391 ActivateIncrementalWriteBarrier(heap_->code_space());
402 ActivateIncrementalWriteBarrier(heap_->new_space()); 392 ActivateIncrementalWriteBarrier(heap_->new_space());
403 393
404 LargePage* lop = heap_->lo_space()->first_page(); 394 for (LargePage* lop : *heap_->lo_space()) {
405 while (LargePage::IsValid(lop)) {
406 SetOldSpacePageFlags(lop, true, is_compacting_); 395 SetOldSpacePageFlags(lop, true, is_compacting_);
407 lop = lop->next_page();
408 } 396 }
409 } 397 }
410 398
411 399
412 bool IncrementalMarking::ShouldActivateEvenWithoutIdleNotification() { 400 bool IncrementalMarking::ShouldActivateEvenWithoutIdleNotification() {
413 #ifndef DEBUG 401 #ifndef DEBUG
414 static const intptr_t kActivationThreshold = 8 * MB; 402 static const intptr_t kActivationThreshold = 8 * MB;
415 #else 403 #else
416 // TODO(gc) consider setting this to some low level so that some 404 // TODO(gc) consider setting this to some low level so that some
417 // debug tests run with incremental marking and some without. 405 // debug tests run with incremental marking and some without.
(...skipping 836 matching lines...) Expand 10 before | Expand all | Expand 10 after
1254 void IncrementalMarking::IncrementIdleMarkingDelayCounter() { 1242 void IncrementalMarking::IncrementIdleMarkingDelayCounter() {
1255 idle_marking_delay_counter_++; 1243 idle_marking_delay_counter_++;
1256 } 1244 }
1257 1245
1258 1246
1259 void IncrementalMarking::ClearIdleMarkingDelayCounter() { 1247 void IncrementalMarking::ClearIdleMarkingDelayCounter() {
1260 idle_marking_delay_counter_ = 0; 1248 idle_marking_delay_counter_ = 0;
1261 } 1249 }
1262 } // namespace internal 1250 } // namespace internal
1263 } // namespace v8 1251 } // namespace v8
OLDNEW
« no previous file with comments | « src/heap/heap.cc ('k') | src/heap/mark-compact.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698