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

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

Issue 1016803002: Remove PropertyCell space (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 9 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
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/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/heap/incremental-marking.h" 7 #include "src/heap/incremental-marking.h"
8 8
9 #include "src/code-stubs.h" 9 #include "src/code-stubs.h"
10 #include "src/compilation-cache.h" 10 #include "src/compilation-cache.h"
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 if (is_marking) { 306 if (is_marking) {
307 chunk->SetFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING); 307 chunk->SetFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING);
308 chunk->SetFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING); 308 chunk->SetFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING);
309 309
310 // It's difficult to filter out slots recorded for large objects. 310 // It's difficult to filter out slots recorded for large objects.
311 if (chunk->owner()->identity() == LO_SPACE && 311 if (chunk->owner()->identity() == LO_SPACE &&
312 chunk->size() > static_cast<size_t>(Page::kPageSize) && is_compacting) { 312 chunk->size() > static_cast<size_t>(Page::kPageSize) && is_compacting) {
313 chunk->SetFlag(MemoryChunk::RESCAN_ON_EVACUATION); 313 chunk->SetFlag(MemoryChunk::RESCAN_ON_EVACUATION);
314 } 314 }
315 } else if (chunk->owner()->identity() == CELL_SPACE || 315 } else if (chunk->owner()->identity() == CELL_SPACE ||
316 chunk->owner()->identity() == PROPERTY_CELL_SPACE ||
317 chunk->scan_on_scavenge()) { 316 chunk->scan_on_scavenge()) {
318 chunk->ClearFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING); 317 chunk->ClearFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING);
319 chunk->ClearFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING); 318 chunk->ClearFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING);
320 } else { 319 } else {
321 chunk->ClearFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING); 320 chunk->ClearFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING);
322 chunk->SetFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING); 321 chunk->SetFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING);
323 } 322 }
324 } 323 }
325 324
326 325
(...skipping 26 matching lines...) Expand all
353 NewSpacePage* p = it.next(); 352 NewSpacePage* p = it.next();
354 SetNewSpacePageFlags(p, false); 353 SetNewSpacePageFlags(p, false);
355 } 354 }
356 } 355 }
357 356
358 357
359 void IncrementalMarking::DeactivateIncrementalWriteBarrier() { 358 void IncrementalMarking::DeactivateIncrementalWriteBarrier() {
360 DeactivateIncrementalWriteBarrierForSpace(heap_->old_pointer_space()); 359 DeactivateIncrementalWriteBarrierForSpace(heap_->old_pointer_space());
361 DeactivateIncrementalWriteBarrierForSpace(heap_->old_data_space()); 360 DeactivateIncrementalWriteBarrierForSpace(heap_->old_data_space());
362 DeactivateIncrementalWriteBarrierForSpace(heap_->cell_space()); 361 DeactivateIncrementalWriteBarrierForSpace(heap_->cell_space());
363 DeactivateIncrementalWriteBarrierForSpace(heap_->property_cell_space());
364 DeactivateIncrementalWriteBarrierForSpace(heap_->map_space()); 362 DeactivateIncrementalWriteBarrierForSpace(heap_->map_space());
365 DeactivateIncrementalWriteBarrierForSpace(heap_->code_space()); 363 DeactivateIncrementalWriteBarrierForSpace(heap_->code_space());
366 DeactivateIncrementalWriteBarrierForSpace(heap_->new_space()); 364 DeactivateIncrementalWriteBarrierForSpace(heap_->new_space());
367 365
368 LargePage* lop = heap_->lo_space()->first_page(); 366 LargePage* lop = heap_->lo_space()->first_page();
369 while (lop->is_valid()) { 367 while (lop->is_valid()) {
370 SetOldSpacePageFlags(lop, false, false); 368 SetOldSpacePageFlags(lop, false, false);
371 lop = lop->next_page(); 369 lop = lop->next_page();
372 } 370 }
373 } 371 }
(...skipping 14 matching lines...) Expand all
388 NewSpacePage* p = it.next(); 386 NewSpacePage* p = it.next();
389 SetNewSpacePageFlags(p, true); 387 SetNewSpacePageFlags(p, true);
390 } 388 }
391 } 389 }
392 390
393 391
394 void IncrementalMarking::ActivateIncrementalWriteBarrier() { 392 void IncrementalMarking::ActivateIncrementalWriteBarrier() {
395 ActivateIncrementalWriteBarrier(heap_->old_pointer_space()); 393 ActivateIncrementalWriteBarrier(heap_->old_pointer_space());
396 ActivateIncrementalWriteBarrier(heap_->old_data_space()); 394 ActivateIncrementalWriteBarrier(heap_->old_data_space());
397 ActivateIncrementalWriteBarrier(heap_->cell_space()); 395 ActivateIncrementalWriteBarrier(heap_->cell_space());
398 ActivateIncrementalWriteBarrier(heap_->property_cell_space());
399 ActivateIncrementalWriteBarrier(heap_->map_space()); 396 ActivateIncrementalWriteBarrier(heap_->map_space());
400 ActivateIncrementalWriteBarrier(heap_->code_space()); 397 ActivateIncrementalWriteBarrier(heap_->code_space());
401 ActivateIncrementalWriteBarrier(heap_->new_space()); 398 ActivateIncrementalWriteBarrier(heap_->new_space());
402 399
403 LargePage* lop = heap_->lo_space()->first_page(); 400 LargePage* lop = heap_->lo_space()->first_page();
404 while (lop->is_valid()) { 401 while (lop->is_valid()) {
405 SetOldSpacePageFlags(lop, true, is_compacting_); 402 SetOldSpacePageFlags(lop, true, is_compacting_);
406 lop = lop->next_page(); 403 lop = lop->next_page();
407 } 404 }
408 } 405 }
(...skipping 621 matching lines...) Expand 10 before | Expand all | Expand 10 after
1030 void IncrementalMarking::IncrementIdleMarkingDelayCounter() { 1027 void IncrementalMarking::IncrementIdleMarkingDelayCounter() {
1031 idle_marking_delay_counter_++; 1028 idle_marking_delay_counter_++;
1032 } 1029 }
1033 1030
1034 1031
1035 void IncrementalMarking::ClearIdleMarkingDelayCounter() { 1032 void IncrementalMarking::ClearIdleMarkingDelayCounter() {
1036 idle_marking_delay_counter_ = 0; 1033 idle_marking_delay_counter_ = 0;
1037 } 1034 }
1038 } 1035 }
1039 } // namespace v8::internal 1036 } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/heap/heap-inl.h ('k') | src/heap/mark-compact.cc » ('j') | src/objects-inl.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698