From: jkummerow Date: Wed, 27 May 2015 12:30:34 +0000 (-0700) Subject: [turbofan] Fix type feedback for JSStoreNamed X-Git-Tag: upstream/4.7.83~2390 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1fb83a2f02f8eec5d9f6b041ecf2edfdf143cdce;p=platform%2Fupstream%2Fv8.git [turbofan] Fix type feedback for JSStoreNamed And delete remnants of non-vectorized LoadICs from the type feedback oracle Review URL: https://codereview.chromium.org/1147253004 Cr-Commit-Position: refs/heads/master@{#28650} --- diff --git a/src/compiler/js-type-feedback.cc b/src/compiler/js-type-feedback.cc index 0c07656d6..193feb61d 100644 --- a/src/compiler/js-type-feedback.cc +++ b/src/compiler/js-type-feedback.cc @@ -283,7 +283,7 @@ Reduction JSTypeFeedbackSpecializer::ReduceJSStoreNamed(Node* node) { // TODO(titzer): no feedback from vector ICs from stores. return NoChange(); } else { - oracle()->PropertyReceiverTypes(id, name, &maps); + oracle()->AssignmentReceiverTypes(id, name, &maps); } Node* receiver = node->InputAt(0); diff --git a/src/type-info.cc b/src/type-info.cc index 4ad66f855..6705c05fc 100644 --- a/src/type-info.cc +++ b/src/type-info.cc @@ -317,15 +317,6 @@ Type* TypeFeedbackOracle::CountType(TypeFeedbackId id) { } -void TypeFeedbackOracle::PropertyReceiverTypes(TypeFeedbackId id, - Handle name, - SmallMapList* receiver_types) { - receiver_types->Clear(); - Code::Flags flags = Code::ComputeHandlerFlags(Code::LOAD_IC); - CollectReceiverTypes(id, name, flags, receiver_types); -} - - bool TypeFeedbackOracle::HasOnlyStringMaps(SmallMapList* receiver_types) { bool all_strings = receiver_types->length() > 0; for (int i = 0; i < receiver_types->length(); i++) { @@ -335,18 +326,6 @@ bool TypeFeedbackOracle::HasOnlyStringMaps(SmallMapList* receiver_types) { } -void TypeFeedbackOracle::KeyedPropertyReceiverTypes( - TypeFeedbackId id, - SmallMapList* receiver_types, - bool* is_string, - IcCheckType* key_type) { - receiver_types->Clear(); - CollectReceiverTypes(id, receiver_types); - *is_string = HasOnlyStringMaps(receiver_types); - GetLoadKeyType(id, key_type); -} - - void TypeFeedbackOracle::PropertyReceiverTypes(FeedbackVectorICSlot slot, Handle name, SmallMapList* receiver_types) { diff --git a/src/type-info.h b/src/type-info.h index 76a45dc84..58a40cf34 100644 --- a/src/type-info.h +++ b/src/type-info.h @@ -42,14 +42,8 @@ class TypeFeedbackOracle: public ZoneObject { IcCheckType* key_type); void GetLoadKeyType(TypeFeedbackId id, IcCheckType* key_type); - void PropertyReceiverTypes(TypeFeedbackId id, Handle name, - SmallMapList* receiver_types); void PropertyReceiverTypes(FeedbackVectorICSlot slot, Handle name, SmallMapList* receiver_types); - void KeyedPropertyReceiverTypes(TypeFeedbackId id, - SmallMapList* receiver_types, - bool* is_string, - IcCheckType* key_type); void KeyedPropertyReceiverTypes(FeedbackVectorICSlot slot, SmallMapList* receiver_types, bool* is_string, IcCheckType* key_type);