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

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

Issue 260003006: Added a Isolate* parameter to Serializer::enabled(). (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 // TODO(gc) consider setting this to some low level so that some 475 // TODO(gc) consider setting this to some low level so that some
476 // debug tests run with incremental marking and some without. 476 // debug tests run with incremental marking and some without.
477 static const intptr_t kActivationThreshold = 0; 477 static const intptr_t kActivationThreshold = 0;
478 #endif 478 #endif
479 // Only start incremental marking in a safe state: 1) when incremental 479 // Only start incremental marking in a safe state: 1) when incremental
480 // marking is turned on, 2) when we are currently not in a GC, and 480 // marking is turned on, 2) when we are currently not in a GC, and
481 // 3) when we are currently not serializing or deserializing the heap. 481 // 3) when we are currently not serializing or deserializing the heap.
482 return FLAG_incremental_marking && 482 return FLAG_incremental_marking &&
483 FLAG_incremental_marking_steps && 483 FLAG_incremental_marking_steps &&
484 heap_->gc_state() == Heap::NOT_IN_GC && 484 heap_->gc_state() == Heap::NOT_IN_GC &&
485 !Serializer::enabled() && 485 !Serializer::enabled(heap_->isolate()) &&
486 heap_->isolate()->IsInitialized() && 486 heap_->isolate()->IsInitialized() &&
487 heap_->PromotedSpaceSizeOfObjects() > kActivationThreshold; 487 heap_->PromotedSpaceSizeOfObjects() > kActivationThreshold;
488 } 488 }
489 489
490 490
491 void IncrementalMarking::ActivateGeneratedStub(Code* stub) { 491 void IncrementalMarking::ActivateGeneratedStub(Code* stub) {
492 ASSERT(RecordWriteStub::GetMode(stub) == 492 ASSERT(RecordWriteStub::GetMode(stub) ==
493 RecordWriteStub::STORE_BUFFER_ONLY); 493 RecordWriteStub::STORE_BUFFER_ONLY);
494 494
495 if (!IsMarking()) { 495 if (!IsMarking()) {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 553
554 554
555 void IncrementalMarking::Start(CompactionFlag flag) { 555 void IncrementalMarking::Start(CompactionFlag flag) {
556 if (FLAG_trace_incremental_marking) { 556 if (FLAG_trace_incremental_marking) {
557 PrintF("[IncrementalMarking] Start\n"); 557 PrintF("[IncrementalMarking] Start\n");
558 } 558 }
559 ASSERT(FLAG_incremental_marking); 559 ASSERT(FLAG_incremental_marking);
560 ASSERT(FLAG_incremental_marking_steps); 560 ASSERT(FLAG_incremental_marking_steps);
561 ASSERT(state_ == STOPPED); 561 ASSERT(state_ == STOPPED);
562 ASSERT(heap_->gc_state() == Heap::NOT_IN_GC); 562 ASSERT(heap_->gc_state() == Heap::NOT_IN_GC);
563 ASSERT(!Serializer::enabled()); 563 ASSERT(!Serializer::enabled(heap_->isolate()));
564 ASSERT(heap_->isolate()->IsInitialized()); 564 ASSERT(heap_->isolate()->IsInitialized());
565 565
566 ResetStepCounters(); 566 ResetStepCounters();
567 567
568 if (!heap_->mark_compact_collector()->IsConcurrentSweepingInProgress()) { 568 if (!heap_->mark_compact_collector()->IsConcurrentSweepingInProgress()) {
569 StartMarking(flag); 569 StartMarking(flag);
570 } else { 570 } else {
571 if (FLAG_trace_incremental_marking) { 571 if (FLAG_trace_incremental_marking) {
572 PrintF("[IncrementalMarking] Start sweeping.\n"); 572 PrintF("[IncrementalMarking] Start sweeping.\n");
573 } 573 }
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
1011 bytes_scanned_ = 0; 1011 bytes_scanned_ = 0;
1012 write_barriers_invoked_since_last_step_ = 0; 1012 write_barriers_invoked_since_last_step_ = 0;
1013 } 1013 }
1014 1014
1015 1015
1016 int64_t IncrementalMarking::SpaceLeftInOldSpace() { 1016 int64_t IncrementalMarking::SpaceLeftInOldSpace() {
1017 return heap_->MaxOldGenerationSize() - heap_->PromotedSpaceSizeOfObjects(); 1017 return heap_->MaxOldGenerationSize() - heap_->PromotedSpaceSizeOfObjects();
1018 } 1018 }
1019 1019
1020 } } // namespace v8::internal 1020 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/ic.cc ('k') | src/isolate.cc » ('j') | src/objects-visiting-inl.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698