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

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
« no previous file with comments | « src/heap/heap-inl.h ('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/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 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 if (is_marking) { 296 if (is_marking) {
297 chunk->SetFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING); 297 chunk->SetFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING);
298 chunk->SetFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING); 298 chunk->SetFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING);
299 299
300 // It's difficult to filter out slots recorded for large objects. 300 // It's difficult to filter out slots recorded for large objects.
301 if (chunk->owner()->identity() == LO_SPACE && 301 if (chunk->owner()->identity() == LO_SPACE &&
302 chunk->size() > static_cast<size_t>(Page::kPageSize) && is_compacting) { 302 chunk->size() > static_cast<size_t>(Page::kPageSize) && is_compacting) {
303 chunk->SetFlag(MemoryChunk::RESCAN_ON_EVACUATION); 303 chunk->SetFlag(MemoryChunk::RESCAN_ON_EVACUATION);
304 } 304 }
305 } else if (chunk->owner()->identity() == CELL_SPACE || 305 } else if (chunk->owner()->identity() == CELL_SPACE ||
306 chunk->owner()->identity() == PROPERTY_CELL_SPACE ||
307 chunk->scan_on_scavenge()) { 306 chunk->scan_on_scavenge()) {
308 chunk->ClearFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING); 307 chunk->ClearFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING);
309 chunk->ClearFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING); 308 chunk->ClearFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING);
310 } else { 309 } else {
311 chunk->ClearFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING); 310 chunk->ClearFlag(MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING);
312 chunk->SetFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING); 311 chunk->SetFlag(MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING);
313 } 312 }
314 } 313 }
315 314
316 315
(...skipping 25 matching lines...) Expand all
342 while (it.has_next()) { 341 while (it.has_next()) {
343 NewSpacePage* p = it.next(); 342 NewSpacePage* p = it.next();
344 SetNewSpacePageFlags(p, false); 343 SetNewSpacePageFlags(p, false);
345 } 344 }
346 } 345 }
347 346
348 347
349 void IncrementalMarking::DeactivateIncrementalWriteBarrier() { 348 void IncrementalMarking::DeactivateIncrementalWriteBarrier() {
350 DeactivateIncrementalWriteBarrierForSpace(heap_->old_space()); 349 DeactivateIncrementalWriteBarrierForSpace(heap_->old_space());
351 DeactivateIncrementalWriteBarrierForSpace(heap_->cell_space()); 350 DeactivateIncrementalWriteBarrierForSpace(heap_->cell_space());
352 DeactivateIncrementalWriteBarrierForSpace(heap_->property_cell_space());
353 DeactivateIncrementalWriteBarrierForSpace(heap_->map_space()); 351 DeactivateIncrementalWriteBarrierForSpace(heap_->map_space());
354 DeactivateIncrementalWriteBarrierForSpace(heap_->code_space()); 352 DeactivateIncrementalWriteBarrierForSpace(heap_->code_space());
355 DeactivateIncrementalWriteBarrierForSpace(heap_->new_space()); 353 DeactivateIncrementalWriteBarrierForSpace(heap_->new_space());
356 354
357 LargePage* lop = heap_->lo_space()->first_page(); 355 LargePage* lop = heap_->lo_space()->first_page();
358 while (lop->is_valid()) { 356 while (lop->is_valid()) {
359 SetOldSpacePageFlags(lop, false, false); 357 SetOldSpacePageFlags(lop, false, false);
360 lop = lop->next_page(); 358 lop = lop->next_page();
361 } 359 }
362 } 360 }
(...skipping 13 matching lines...) Expand all
376 while (it.has_next()) { 374 while (it.has_next()) {
377 NewSpacePage* p = it.next(); 375 NewSpacePage* p = it.next();
378 SetNewSpacePageFlags(p, true); 376 SetNewSpacePageFlags(p, true);
379 } 377 }
380 } 378 }
381 379
382 380
383 void IncrementalMarking::ActivateIncrementalWriteBarrier() { 381 void IncrementalMarking::ActivateIncrementalWriteBarrier() {
384 ActivateIncrementalWriteBarrier(heap_->old_space()); 382 ActivateIncrementalWriteBarrier(heap_->old_space());
385 ActivateIncrementalWriteBarrier(heap_->cell_space()); 383 ActivateIncrementalWriteBarrier(heap_->cell_space());
386 ActivateIncrementalWriteBarrier(heap_->property_cell_space());
387 ActivateIncrementalWriteBarrier(heap_->map_space()); 384 ActivateIncrementalWriteBarrier(heap_->map_space());
388 ActivateIncrementalWriteBarrier(heap_->code_space()); 385 ActivateIncrementalWriteBarrier(heap_->code_space());
389 ActivateIncrementalWriteBarrier(heap_->new_space()); 386 ActivateIncrementalWriteBarrier(heap_->new_space());
390 387
391 LargePage* lop = heap_->lo_space()->first_page(); 388 LargePage* lop = heap_->lo_space()->first_page();
392 while (lop->is_valid()) { 389 while (lop->is_valid()) {
393 SetOldSpacePageFlags(lop, true, is_compacting_); 390 SetOldSpacePageFlags(lop, true, is_compacting_);
394 lop = lop->next_page(); 391 lop = lop->next_page();
395 } 392 }
396 } 393 }
(...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after
1016 void IncrementalMarking::IncrementIdleMarkingDelayCounter() { 1013 void IncrementalMarking::IncrementIdleMarkingDelayCounter() {
1017 idle_marking_delay_counter_++; 1014 idle_marking_delay_counter_++;
1018 } 1015 }
1019 1016
1020 1017
1021 void IncrementalMarking::ClearIdleMarkingDelayCounter() { 1018 void IncrementalMarking::ClearIdleMarkingDelayCounter() {
1022 idle_marking_delay_counter_ = 0; 1019 idle_marking_delay_counter_ = 0;
1023 } 1020 }
1024 } 1021 }
1025 } // namespace v8::internal 1022 } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/heap/heap-inl.h ('k') | src/heap/mark-compact.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698