| 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/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #include "src/base/atomicops.h" | 7 #include "src/base/atomicops.h" |
| 8 #include "src/code-stubs.h" | 8 #include "src/code-stubs.h" |
| 9 #include "src/compilation-cache.h" | 9 #include "src/compilation-cache.h" |
| 10 #include "src/cpu-profiler.h" | 10 #include "src/cpu-profiler.h" |
| (...skipping 4206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4217 if (how_to_sweep == PARALLEL_CONSERVATIVE || | 4217 if (how_to_sweep == PARALLEL_CONSERVATIVE || |
| 4218 how_to_sweep == CONCURRENT_CONSERVATIVE) { | 4218 how_to_sweep == CONCURRENT_CONSERVATIVE) { |
| 4219 StartSweeperThreads(); | 4219 StartSweeperThreads(); |
| 4220 } | 4220 } |
| 4221 | 4221 |
| 4222 if (how_to_sweep == PARALLEL_CONSERVATIVE) { | 4222 if (how_to_sweep == PARALLEL_CONSERVATIVE) { |
| 4223 WaitUntilSweepingCompleted(); | 4223 WaitUntilSweepingCompleted(); |
| 4224 } | 4224 } |
| 4225 } | 4225 } |
| 4226 RemoveDeadInvalidatedCode(); | 4226 RemoveDeadInvalidatedCode(); |
| 4227 SweepSpace(heap()->code_space(), PRECISE); | |
| 4228 | 4227 |
| 4229 SweepSpace(heap()->cell_space(), PRECISE); | 4228 { GCTracer::Scope sweep_scope(tracer_, GCTracer::Scope::MC_SWEEP_CODE); |
| 4230 SweepSpace(heap()->property_cell_space(), PRECISE); | 4229 SweepSpace(heap()->code_space(), PRECISE); |
| 4230 } |
| 4231 |
| 4232 { GCTracer::Scope sweep_scope(tracer_, GCTracer::Scope::MC_SWEEP_CELL); |
| 4233 SweepSpace(heap()->cell_space(), PRECISE); |
| 4234 SweepSpace(heap()->property_cell_space(), PRECISE); |
| 4235 } |
| 4231 | 4236 |
| 4232 EvacuateNewSpaceAndCandidates(); | 4237 EvacuateNewSpaceAndCandidates(); |
| 4233 | 4238 |
| 4234 // ClearNonLiveTransitions depends on precise sweeping of map space to | 4239 // ClearNonLiveTransitions depends on precise sweeping of map space to |
| 4235 // detect whether unmarked map became dead in this collection or in one | 4240 // detect whether unmarked map became dead in this collection or in one |
| 4236 // of the previous ones. | 4241 // of the previous ones. |
| 4237 SweepSpace(heap()->map_space(), PRECISE); | 4242 { GCTracer::Scope sweep_scope(tracer_, GCTracer::Scope::MC_SWEEP_MAP); |
| 4243 SweepSpace(heap()->map_space(), PRECISE); |
| 4244 } |
| 4238 | 4245 |
| 4239 // Deallocate unmarked objects and clear marked bits for marked objects. | 4246 // Deallocate unmarked objects and clear marked bits for marked objects. |
| 4240 heap_->lo_space()->FreeUnmarkedObjects(); | 4247 heap_->lo_space()->FreeUnmarkedObjects(); |
| 4241 | 4248 |
| 4242 // Deallocate evacuated candidate pages. | 4249 // Deallocate evacuated candidate pages. |
| 4243 ReleaseEvacuationCandidates(); | 4250 ReleaseEvacuationCandidates(); |
| 4244 } | 4251 } |
| 4245 | 4252 |
| 4246 | 4253 |
| 4247 void MarkCompactCollector::ParallelSweepSpaceComplete(PagedSpace* space) { | 4254 void MarkCompactCollector::ParallelSweepSpaceComplete(PagedSpace* space) { |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4481 while (buffer != NULL) { | 4488 while (buffer != NULL) { |
| 4482 SlotsBuffer* next_buffer = buffer->next(); | 4489 SlotsBuffer* next_buffer = buffer->next(); |
| 4483 DeallocateBuffer(buffer); | 4490 DeallocateBuffer(buffer); |
| 4484 buffer = next_buffer; | 4491 buffer = next_buffer; |
| 4485 } | 4492 } |
| 4486 *buffer_address = NULL; | 4493 *buffer_address = NULL; |
| 4487 } | 4494 } |
| 4488 | 4495 |
| 4489 | 4496 |
| 4490 } } // namespace v8::internal | 4497 } } // namespace v8::internal |
| OLD | NEW |