| Index: src/compiler/js-type-feedback.cc
|
| diff --git a/src/compiler/js-type-feedback.cc b/src/compiler/js-type-feedback.cc
|
| index 1a218c228e8226ec588c28b0a3578a0755d4e402..0c07656d68ff4a1ff8e999ddb58a8a65c911c01c 100644
|
| --- a/src/compiler/js-type-feedback.cc
|
| +++ b/src/compiler/js-type-feedback.cc
|
| @@ -48,37 +48,14 @@ void JSTypeFeedbackTable::Record(Node* node, FeedbackVectorICSlot slot) {
|
|
|
| Reduction JSTypeFeedbackSpecializer::Reduce(Node* node) {
|
| switch (node->opcode()) {
|
| - case IrOpcode::kJSLoadProperty: {
|
| - HeapObjectMatcher<Name> match(node->InputAt(1));
|
| - if (match.HasValue() && match.Value().handle()->IsName()) {
|
| - // LoadProperty(o, "constant") => LoadNamed["constant"](o).
|
| - Unique<Name> name = match.Value();
|
| - const VectorSlotPair& feedback =
|
| - LoadPropertyParametersOf(node->op()).feedback();
|
| - node->set_op(jsgraph()->javascript()->LoadNamed(name, feedback,
|
| - NOT_CONTEXTUAL, KEYED));
|
| - node->RemoveInput(1);
|
| - return ReduceJSLoadNamed(node);
|
| - }
|
| + case IrOpcode::kJSLoadProperty:
|
| return ReduceJSLoadProperty(node);
|
| - }
|
| case IrOpcode::kJSLoadNamed:
|
| return ReduceJSLoadNamed(node);
|
| case IrOpcode::kJSStoreNamed:
|
| return ReduceJSStoreNamed(node);
|
| - case IrOpcode::kJSStoreProperty: {
|
| - HeapObjectMatcher<Name> match(node->InputAt(1));
|
| - if (match.HasValue() && match.Value().handle()->IsName()) {
|
| - // StoreProperty(o, "constant", v) => StoreNamed["constant"](o, v).
|
| - Unique<Name> name = match.Value();
|
| - LanguageMode language_mode = OpParameter<LanguageMode>(node);
|
| - node->set_op(
|
| - jsgraph()->javascript()->StoreNamed(language_mode, name, KEYED));
|
| - node->RemoveInput(1);
|
| - return ReduceJSStoreNamed(node);
|
| - }
|
| + case IrOpcode::kJSStoreProperty:
|
| return ReduceJSStoreProperty(node);
|
| - }
|
| default:
|
| break;
|
| }
|
| @@ -187,14 +164,7 @@ Reduction JSTypeFeedbackSpecializer::ReduceJSLoadNamed(Node* node) {
|
| // No type feedback ids or the load is uninitialized.
|
| return NoChange();
|
| }
|
| - if (p.load_ic() == NAMED) {
|
| - oracle()->PropertyReceiverTypes(slot, name, &maps);
|
| - } else {
|
| - // The load named was originally a load property.
|
| - bool is_string; // Unused.
|
| - IcCheckType key_type; // Unused.
|
| - oracle()->KeyedPropertyReceiverTypes(slot, &maps, &is_string, &key_type);
|
| - }
|
| + oracle()->PropertyReceiverTypes(slot, name, &maps);
|
|
|
| Node* effect = NodeProperties::GetEffectInput(node);
|
|
|
| @@ -313,14 +283,7 @@ Reduction JSTypeFeedbackSpecializer::ReduceJSStoreNamed(Node* node) {
|
| // TODO(titzer): no feedback from vector ICs from stores.
|
| return NoChange();
|
| } else {
|
| - if (p.store_ic() == NAMED) {
|
| - oracle()->PropertyReceiverTypes(id, name, &maps);
|
| - } else {
|
| - // The named store was originally a store property.
|
| - bool is_string; // Unused.
|
| - IcCheckType key_type; // Unused.
|
| - oracle()->KeyedPropertyReceiverTypes(id, &maps, &is_string, &key_type);
|
| - }
|
| + oracle()->PropertyReceiverTypes(id, name, &maps);
|
| }
|
|
|
| Node* receiver = node->InputAt(0);
|
|
|