| Index: src/mark-compact.cc
|
| diff --git a/src/mark-compact.cc b/src/mark-compact.cc
|
| index 1b992ec44c4ac2153fc8d7083bb4544710361e84..f1e8f61cc6272b23db6dcb0b9d9fb25bb2172da8 100644
|
| --- a/src/mark-compact.cc
|
| +++ b/src/mark-compact.cc
|
| @@ -882,7 +882,9 @@ class StaticMarkingVisitor : public StaticVisitorBase {
|
| static inline void VisitCodeTarget(Heap* heap, RelocInfo* rinfo) {
|
| ASSERT(RelocInfo::IsCodeTarget(rinfo->rmode()));
|
| Code* target = Code::GetCodeFromTargetAddress(rinfo->target_address());
|
| - if (FLAG_cleanup_code_caches_at_gc && target->is_inline_cache_stub()) {
|
| + if (FLAG_cleanup_code_caches_at_gc && target->is_inline_cache_stub()
|
| + && (target->ic_state() == MEGAMORPHIC || Serializer::enabled() ||
|
| + heap->isolate()->context_exit_happened())) {
|
| IC::Clear(rinfo->pc());
|
| // Please note targets for cleared inline cached do not have to be
|
| // marked since they are contained in HEAP->non_monomorphic_cache().
|
| @@ -2142,8 +2144,7 @@ void MarkCompactCollector::AfterMarking() {
|
| code_flusher_->ProcessCandidates();
|
| }
|
|
|
| - // Clean up dead objects from the runtime profiler.
|
| - heap()->isolate()->runtime_profiler()->RemoveDeadSamples();
|
| + heap()->isolate()->set_context_exit_happened(false);
|
| }
|
|
|
|
|
| @@ -3147,10 +3148,6 @@ void MarkCompactCollector::EvacuateNewSpaceAndCandidates() {
|
| heap_->UpdateReferencesInExternalStringTable(
|
| &UpdateReferenceInExternalStringTableEntry);
|
|
|
| - // Update JSFunction pointers from the runtime profiler.
|
| - heap()->isolate()->runtime_profiler()->UpdateSamplesAfterCompact(
|
| - &updating_visitor);
|
| -
|
| EvacuationWeakObjectRetainer evacuation_object_retainer;
|
| heap()->ProcessWeakReferences(&evacuation_object_retainer);
|
|
|
|
|