From 9df341d69fe8c53d2dfade65cc2cdb4cd52d6a17 Mon Sep 17 00:00:00 2001 From: "mstarzinger@chromium.org" Date: Thu, 16 May 2013 08:39:24 +0000 Subject: [PATCH] Put preservation of optimized code map behind a flag. R=hpayer@chromium.org Review URL: https://codereview.chromium.org/15119004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/flag-definitions.h | 2 ++ src/objects-visiting-inl.h | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/src/flag-definitions.h b/src/flag-definitions.h index 98f1d12..5c7c646 100644 --- a/src/flag-definitions.h +++ b/src/flag-definitions.h @@ -268,6 +268,8 @@ DEFINE_bool(lookup_sample_by_shared, true, "info, not JSFunction itself") DEFINE_bool(cache_optimized_code, true, "cache optimized code for closures") +DEFINE_bool(flush_optimized_code_cache, true, + "flushes the cache of optimized code for closures on every GC") DEFINE_bool(inline_construct, true, "inline constructor calls") DEFINE_bool(inline_arguments, true, "inline functions with arguments object") DEFINE_bool(inline_accessors, true, "inline JavaScript accessors") diff --git a/src/objects-visiting-inl.h b/src/objects-visiting-inl.h index d0a70c3..f83f00f 100644 --- a/src/objects-visiting-inl.h +++ b/src/objects-visiting-inl.h @@ -311,6 +311,12 @@ void StaticMarkingVisitor::VisitSharedFunctionInfo( if (shared->ic_age() != heap->global_ic_age()) { shared->ResetForNewContext(heap->global_ic_age()); } + if (FLAG_cache_optimized_code && + FLAG_flush_optimized_code_cache && + !shared->optimized_code_map()->IsSmi()) { + // Always flush the optimized code map if requested by flag. + shared->ClearOptimizedCodeMap(); + } MarkCompactCollector* collector = heap->mark_compact_collector(); if (collector->is_code_flushing_enabled()) { if (FLAG_cache_optimized_code && !shared->optimized_code_map()->IsSmi()) { -- 2.7.4