Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Unified Diff: src/compiler/js-native-context-specialization.cc

Issue 2811593002: [turbofan] Remove the obsolete PropertyAccessInfo::Generic. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/compiler/js-native-context-specialization.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/js-native-context-specialization.cc
diff --git a/src/compiler/js-native-context-specialization.cc b/src/compiler/js-native-context-specialization.cc
index 842b002da7d68dca87c3df8f8f762ec214c5cc09..4103646c22615ad0e713c789c6f2f5525d9b8341 100644
--- a/src/compiler/js-native-context-specialization.cc
+++ b/src/compiler/js-native-context-specialization.cc
@@ -553,7 +553,7 @@ Reduction JSNativeContextSpecialization::ReduceJSStoreGlobal(Node* node) {
Reduction JSNativeContextSpecialization::ReduceNamedAccess(
Node* node, Node* value, MapHandleList const& receiver_maps,
Handle<Name> name, AccessMode access_mode, LanguageMode language_mode,
- Handle<FeedbackVector> vector, FeedbackSlot slot, Node* index) {
+ Node* index) {
DCHECK(node->opcode() == IrOpcode::kJSLoadNamed ||
node->opcode() == IrOpcode::kJSStoreNamed ||
node->opcode() == IrOpcode::kJSLoadProperty ||
@@ -599,13 +599,6 @@ Reduction JSNativeContextSpecialization::ReduceNamedAccess(
if (is_exceptional || !(flags() & kAccessorInliningEnabled)) {
return NoChange();
}
- } else if (access_info.IsGeneric()) {
- // We do not handle generic calls in try blocks.
- if (is_exceptional) return NoChange();
- // We only handle the generic store IC case.
- if (!vector->IsStoreIC(slot)) {
- return NoChange();
- }
}
}
@@ -644,7 +637,7 @@ Reduction JSNativeContextSpecialization::ReduceNamedAccess(
// Generate the actual property access.
ValueEffectControl continuation = BuildPropertyAccess(
receiver, value, context, frame_state, effect, control, name,
- access_info, access_mode, language_mode, vector, slot);
+ access_info, access_mode, language_mode);
value = continuation.value();
effect = continuation.effect();
control = continuation.control();
@@ -747,10 +740,9 @@ Reduction JSNativeContextSpecialization::ReduceNamedAccess(
}
// Generate the actual property access.
- ValueEffectControl continuation =
- BuildPropertyAccess(this_receiver, this_value, context, frame_state,
- this_effect, this_control, name, access_info,
- access_mode, language_mode, vector, slot);
+ ValueEffectControl continuation = BuildPropertyAccess(
+ this_receiver, this_value, context, frame_state, this_effect,
+ this_control, name, access_info, access_mode, language_mode);
values.push_back(continuation.value());
effects.push_back(continuation.effect());
controls.push_back(continuation.control());
@@ -823,7 +815,7 @@ Reduction JSNativeContextSpecialization::ReduceNamedAccessFromNexus(
// Try to lower the named access based on the {receiver_maps}.
return ReduceNamedAccess(node, value, receiver_maps, name, access_mode,
- language_mode, nexus.vector_handle(), nexus.slot());
+ language_mode);
}
Reduction JSNativeContextSpecialization::ReduceJSLoadNamed(Node* node) {
@@ -1225,17 +1217,16 @@ Reduction JSNativeContextSpecialization::ReduceKeyedAccess(
} else {
name = factory()->InternalizeName(name);
return ReduceNamedAccess(node, value, receiver_maps, name, access_mode,
- language_mode, nexus.vector_handle(),
- nexus.slot());
+ language_mode);
}
}
}
// Check if we have feedback for a named access.
if (Name* name = nexus.FindFirstName()) {
- return ReduceNamedAccess(
- node, value, receiver_maps, handle(name, isolate()), access_mode,
- language_mode, nexus.vector_handle(), nexus.slot(), index);
+ return ReduceNamedAccess(node, value, receiver_maps,
+ handle(name, isolate()), access_mode,
+ language_mode, index);
} else if (nexus.GetKeyType() != ELEMENT) {
// The KeyedLoad/StoreIC has seen non-element accesses, so we cannot assume
// that the {index} is a valid array index, thus we just let the IC continue
@@ -1309,8 +1300,7 @@ JSNativeContextSpecialization::ValueEffectControl
JSNativeContextSpecialization::BuildPropertyAccess(
Node* receiver, Node* value, Node* context, Node* frame_state, Node* effect,
Node* control, Handle<Name> name, PropertyAccessInfo const& access_info,
- AccessMode access_mode, LanguageMode language_mode,
- Handle<FeedbackVector> vector, FeedbackSlot slot) {
+ AccessMode access_mode, LanguageMode language_mode) {
// Determine actual holder and perform prototype chain checks.
Handle<JSObject> holder;
if (access_info.holder().ToHandle(&holder)) {
@@ -1411,7 +1401,8 @@ JSNativeContextSpecialization::BuildPropertyAccess(
break;
}
}
- } else if (access_info.IsDataField() || access_info.IsDataConstantField()) {
+ } else {
+ DCHECK(access_info.IsDataField() || access_info.IsDataConstantField());
FieldIndex const field_index = access_info.field_index();
Type* const field_type = access_info.field_type();
MachineRepresentation const field_representation =
@@ -1661,28 +1652,6 @@ JSNativeContextSpecialization::BuildPropertyAccess(
storage, value, effect, control);
}
}
- } else {
- DCHECK(access_info.IsGeneric());
- DCHECK_EQ(AccessMode::kStore, access_mode);
- DCHECK(vector->IsStoreIC(slot));
- DCHECK_EQ(vector->GetLanguageMode(slot), language_mode);
- Callable callable =
- CodeFactory::StoreICInOptimizedCode(isolate(), language_mode);
- const CallInterfaceDescriptor& descriptor = callable.descriptor();
- CallDescriptor* desc = Linkage::GetStubCallDescriptor(
- isolate(), graph()->zone(), descriptor,
- descriptor.GetStackParameterCount(), CallDescriptor::kNeedsFrameState,
- Operator::kNoProperties);
- Node* stub_code = jsgraph()->HeapConstant(callable.code());
- Node* name_node = jsgraph()->HeapConstant(name);
- Node* slot_node = jsgraph()->Constant(vector->GetIndex(slot));
- Node* vector_node = jsgraph()->HeapConstant(vector);
-
- Node* inputs[] = {stub_code, receiver, name_node, value, slot_node,
- vector_node, context, frame_state, effect, control};
-
- value = effect = control =
- graph()->NewNode(common()->Call(desc), arraysize(inputs), inputs);
}
return ValueEffectControl(value, effect, control);
@@ -1727,10 +1696,6 @@ Reduction JSNativeContextSpecialization::ReduceJSStoreDataPropertyInLiteral(
return NoChange();
}
- if (access_info.IsGeneric()) {
- return NoChange();
- }
-
Node* receiver = NodeProperties::GetValueInput(node, 0);
Node* effect = NodeProperties::GetEffectInput(node);
Node* control = NodeProperties::GetControlInput(node);
@@ -1754,8 +1719,7 @@ Reduction JSNativeContextSpecialization::ReduceJSStoreDataPropertyInLiteral(
// Generate the actual property access.
ValueEffectControl continuation = BuildPropertyAccess(
receiver, value, context, frame_state_lazy, effect, control, cached_name,
- access_info, AccessMode::kStoreInLiteral, LanguageMode::SLOPPY,
- p.feedback().vector(), p.feedback().slot());
+ access_info, AccessMode::kStoreInLiteral, LanguageMode::SLOPPY);
value = continuation.value();
effect = continuation.effect();
control = continuation.control();
« no previous file with comments | « src/compiler/js-native-context-specialization.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698