Commit 1fb83a2f authored by jkummerow's avatar jkummerow Committed by Commit bot

[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}
parent 7483dbd5
...@@ -283,7 +283,7 @@ Reduction JSTypeFeedbackSpecializer::ReduceJSStoreNamed(Node* node) { ...@@ -283,7 +283,7 @@ Reduction JSTypeFeedbackSpecializer::ReduceJSStoreNamed(Node* node) {
// TODO(titzer): no feedback from vector ICs from stores. // TODO(titzer): no feedback from vector ICs from stores.
return NoChange(); return NoChange();
} else { } else {
oracle()->PropertyReceiverTypes(id, name, &maps); oracle()->AssignmentReceiverTypes(id, name, &maps);
} }
Node* receiver = node->InputAt(0); Node* receiver = node->InputAt(0);
......
...@@ -317,15 +317,6 @@ Type* TypeFeedbackOracle::CountType(TypeFeedbackId id) { ...@@ -317,15 +317,6 @@ Type* TypeFeedbackOracle::CountType(TypeFeedbackId id) {
} }
void TypeFeedbackOracle::PropertyReceiverTypes(TypeFeedbackId id,
Handle<Name> 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 TypeFeedbackOracle::HasOnlyStringMaps(SmallMapList* receiver_types) {
bool all_strings = receiver_types->length() > 0; bool all_strings = receiver_types->length() > 0;
for (int i = 0; i < receiver_types->length(); i++) { for (int i = 0; i < receiver_types->length(); i++) {
...@@ -335,18 +326,6 @@ bool TypeFeedbackOracle::HasOnlyStringMaps(SmallMapList* receiver_types) { ...@@ -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, void TypeFeedbackOracle::PropertyReceiverTypes(FeedbackVectorICSlot slot,
Handle<Name> name, Handle<Name> name,
SmallMapList* receiver_types) { SmallMapList* receiver_types) {
......
...@@ -42,14 +42,8 @@ class TypeFeedbackOracle: public ZoneObject { ...@@ -42,14 +42,8 @@ class TypeFeedbackOracle: public ZoneObject {
IcCheckType* key_type); IcCheckType* key_type);
void GetLoadKeyType(TypeFeedbackId id, IcCheckType* key_type); void GetLoadKeyType(TypeFeedbackId id, IcCheckType* key_type);
void PropertyReceiverTypes(TypeFeedbackId id, Handle<Name> name,
SmallMapList* receiver_types);
void PropertyReceiverTypes(FeedbackVectorICSlot slot, Handle<Name> name, void PropertyReceiverTypes(FeedbackVectorICSlot slot, Handle<Name> name,
SmallMapList* receiver_types); SmallMapList* receiver_types);
void KeyedPropertyReceiverTypes(TypeFeedbackId id,
SmallMapList* receiver_types,
bool* is_string,
IcCheckType* key_type);
void KeyedPropertyReceiverTypes(FeedbackVectorICSlot slot, void KeyedPropertyReceiverTypes(FeedbackVectorICSlot slot,
SmallMapList* receiver_types, bool* is_string, SmallMapList* receiver_types, bool* is_string,
IcCheckType* key_type); IcCheckType* key_type);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment