Add flag --collect-megamorphic-maps-from-stub-cache to help diagnose a
authorerik.corry@gmail.com <erik.corry@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 18 Nov 2011 14:08:57 +0000 (14:08 +0000)
committererik.corry@gmail.com <erik.corry@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 18 Nov 2011 14:08:57 +0000 (14:08 +0000)
memory leak.
Review URL: http://codereview.chromium.org/8599006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/flag-definitions.h
src/type-info.cc

index 9f11616b67d6d9a80e9c9623295f97a5dc6858f3..566010b5ea21bcff37fd22324855362722c90fdd 100644 (file)
@@ -128,6 +128,9 @@ DEFINE_bool(use_inlining, true, "use function inlining")
 DEFINE_bool(limit_inlining, true, "limit code size growth from inlining")
 DEFINE_bool(eliminate_empty_blocks, true, "eliminate empty blocks")
 DEFINE_bool(loop_invariant_code_motion, true, "loop invariant code motion")
+DEFINE_bool(collect_megamorphic_maps_from_stub_cache,
+            true,
+            "crankshaft harvests type feedback from stub cache")
 DEFINE_bool(hydrogen_stats, false, "print statistics for hydrogen")
 DEFINE_bool(trace_hydrogen, false, "trace generated hydrogen to file")
 DEFINE_bool(trace_inlining, false, "trace inlining decisions")
index d522242e61b1fbd333c2d95954cf3f2e6f8ee285..c781c615a74c07cea910845bcf0ab818028095dc 100644 (file)
@@ -419,7 +419,8 @@ void TypeFeedbackOracle::CollectReceiverTypes(unsigned ast_id,
     ASSERT(Handle<Code>::cast(object)->ic_state() == MEGAMORPHIC);
   } else if (object->IsMap()) {
     types->Add(Handle<Map>::cast(object));
-  } else if (Handle<Code>::cast(object)->ic_state() == MEGAMORPHIC) {
+  } else if (FLAG_collect_megamorphic_maps_from_stub_cache &&
+      Handle<Code>::cast(object)->ic_state() == MEGAMORPHIC) {
     types->Reserve(4);
     ASSERT(object->IsCode());
     isolate_->stub_cache()->CollectMatchingMaps(types, *name, flags);