| OLD | NEW |
| 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 629 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 640 | 640 |
| 641 for (Page* p : *space) { | 641 for (Page* p : *space) { |
| 642 if (p->NeverEvacuate()) continue; | 642 if (p->NeverEvacuate()) continue; |
| 643 // Invariant: Evacuation candidates are just created when marking is | 643 // Invariant: Evacuation candidates are just created when marking is |
| 644 // started. This means that sweeping has finished. Furthermore, at the end | 644 // started. This means that sweeping has finished. Furthermore, at the end |
| 645 // of a GC all evacuation candidates are cleared and their slot buffers are | 645 // of a GC all evacuation candidates are cleared and their slot buffers are |
| 646 // released. | 646 // released. |
| 647 CHECK(!p->IsEvacuationCandidate()); | 647 CHECK(!p->IsEvacuationCandidate()); |
| 648 CHECK_NULL(p->old_to_old_slots()); | 648 CHECK_NULL(p->old_to_old_slots()); |
| 649 CHECK_NULL(p->typed_old_to_old_slots()); | 649 CHECK_NULL(p->typed_old_to_old_slots()); |
| 650 if (!p->SweepingDone()) { |
| 651 CHECK(!sweeping_in_progress()); |
| 652 CHECK(sweeper().IsSweepingCompleted(space->identity())); |
| 653 CHECK(false); |
| 654 } |
| 650 CHECK(p->SweepingDone()); | 655 CHECK(p->SweepingDone()); |
| 651 DCHECK(p->area_size() == area_size); | 656 DCHECK(p->area_size() == area_size); |
| 652 pages.push_back(std::make_pair(p->LiveBytesFromFreeList(), p)); | 657 pages.push_back(std::make_pair(p->LiveBytesFromFreeList(), p)); |
| 653 } | 658 } |
| 654 | 659 |
| 655 int candidate_count = 0; | 660 int candidate_count = 0; |
| 656 size_t total_live_bytes = 0; | 661 size_t total_live_bytes = 0; |
| 657 | 662 |
| 658 const bool reduce_memory = heap()->ShouldReduceMemory(); | 663 const bool reduce_memory = heap()->ShouldReduceMemory(); |
| 659 if (FLAG_manual_evacuation_candidates_selection) { | 664 if (FLAG_manual_evacuation_candidates_selection) { |
| (...skipping 3266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3926 // The target is always in old space, we don't have to record the slot in | 3931 // The target is always in old space, we don't have to record the slot in |
| 3927 // the old-to-new remembered set. | 3932 // the old-to-new remembered set. |
| 3928 DCHECK(!heap()->InNewSpace(target)); | 3933 DCHECK(!heap()->InNewSpace(target)); |
| 3929 RecordRelocSlot(host, &rinfo, target); | 3934 RecordRelocSlot(host, &rinfo, target); |
| 3930 } | 3935 } |
| 3931 } | 3936 } |
| 3932 } | 3937 } |
| 3933 | 3938 |
| 3934 } // namespace internal | 3939 } // namespace internal |
| 3935 } // namespace v8 | 3940 } // namespace v8 |
| OLD | NEW |