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/heap.h" | 5 #include "src/heap/heap.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/api.h" | 8 #include "src/api.h" |
9 #include "src/ast/context-slot-cache.h" | 9 #include "src/ast/context-slot-cache.h" |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 1429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1440 | 1440 |
1441 MarkCompactEpilogue(); | 1441 MarkCompactEpilogue(); |
1442 | 1442 |
1443 if (FLAG_allocation_site_pretenuring) { | 1443 if (FLAG_allocation_site_pretenuring) { |
1444 EvaluateOldSpaceLocalPretenuring(size_of_objects_before_gc); | 1444 EvaluateOldSpaceLocalPretenuring(size_of_objects_before_gc); |
1445 } | 1445 } |
1446 } | 1446 } |
1447 | 1447 |
1448 | 1448 |
1449 void Heap::MarkCompactEpilogue() { | 1449 void Heap::MarkCompactEpilogue() { |
| 1450 TRACE_GC(tracer(), GCTracer::Scope::MC_EPILOGUE); |
1450 gc_state_ = NOT_IN_GC; | 1451 gc_state_ = NOT_IN_GC; |
1451 | 1452 |
1452 isolate_->counters()->objs_since_last_full()->Set(0); | 1453 isolate_->counters()->objs_since_last_full()->Set(0); |
1453 | 1454 |
1454 incremental_marking()->Epilogue(); | 1455 incremental_marking()->Epilogue(); |
1455 | 1456 |
1456 PreprocessStackTraces(); | 1457 PreprocessStackTraces(); |
1457 DCHECK(incremental_marking()->IsStopped()); | 1458 DCHECK(incremental_marking()->IsStopped()); |
1458 | 1459 |
1459 // We finished a marking cycle. We can uncommit the marking deque until | 1460 // We finished a marking cycle. We can uncommit the marking deque until |
1460 // we start marking again. | 1461 // we start marking again. |
1461 mark_compact_collector()->marking_deque()->Uninitialize(); | 1462 mark_compact_collector()->marking_deque()->Uninitialize(); |
1462 mark_compact_collector()->EnsureMarkingDequeIsCommitted( | 1463 mark_compact_collector()->EnsureMarkingDequeIsCommitted( |
1463 MarkCompactCollector::kMinMarkingDequeSize); | 1464 MarkCompactCollector::kMinMarkingDequeSize); |
1464 } | 1465 } |
1465 | 1466 |
1466 | 1467 |
1467 void Heap::MarkCompactPrologue() { | 1468 void Heap::MarkCompactPrologue() { |
| 1469 TRACE_GC(tracer(), GCTracer::Scope::MC_PROLOGUE); |
1468 isolate_->context_slot_cache()->Clear(); | 1470 isolate_->context_slot_cache()->Clear(); |
1469 isolate_->descriptor_lookup_cache()->Clear(); | 1471 isolate_->descriptor_lookup_cache()->Clear(); |
1470 RegExpResultsCache::Clear(string_split_cache()); | 1472 RegExpResultsCache::Clear(string_split_cache()); |
1471 RegExpResultsCache::Clear(regexp_multiple_cache()); | 1473 RegExpResultsCache::Clear(regexp_multiple_cache()); |
1472 | 1474 |
1473 isolate_->compilation_cache()->MarkCompactPrologue(); | 1475 isolate_->compilation_cache()->MarkCompactPrologue(); |
1474 | 1476 |
1475 CompletelyClearInstanceofCache(); | 1477 CompletelyClearInstanceofCache(); |
1476 | 1478 |
1477 FlushNumberStringCache(); | 1479 FlushNumberStringCache(); |
(...skipping 5020 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6498 } | 6500 } |
6499 | 6501 |
6500 | 6502 |
6501 // static | 6503 // static |
6502 int Heap::GetStaticVisitorIdForMap(Map* map) { | 6504 int Heap::GetStaticVisitorIdForMap(Map* map) { |
6503 return StaticVisitorBase::GetVisitorId(map); | 6505 return StaticVisitorBase::GetVisitorId(map); |
6504 } | 6506 } |
6505 | 6507 |
6506 } // namespace internal | 6508 } // namespace internal |
6507 } // namespace v8 | 6509 } // namespace v8 |
OLD | NEW |