OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/code-factory.h" | 5 #include "src/code-factory.h" |
6 #include "src/compiler/access-builder.h" | 6 #include "src/compiler/access-builder.h" |
7 #include "src/compiler/js-graph.h" | 7 #include "src/compiler/js-graph.h" |
8 #include "src/compiler/js-typed-lowering.h" | 8 #include "src/compiler/js-typed-lowering.h" |
9 #include "src/compiler/linkage.h" | 9 #include "src/compiler/linkage.h" |
10 #include "src/compiler/node-matchers.h" | 10 #include "src/compiler/node-matchers.h" |
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
819 return NoChange(); | 819 return NoChange(); |
820 } | 820 } |
821 | 821 |
822 | 822 |
823 Reduction JSTypedLowering::ReduceJSLoadNamed(Node* node) { | 823 Reduction JSTypedLowering::ReduceJSLoadNamed(Node* node) { |
824 DCHECK_EQ(IrOpcode::kJSLoadNamed, node->opcode()); | 824 DCHECK_EQ(IrOpcode::kJSLoadNamed, node->opcode()); |
825 Node* receiver = NodeProperties::GetValueInput(node, 0); | 825 Node* receiver = NodeProperties::GetValueInput(node, 0); |
826 Type* receiver_type = NodeProperties::GetType(receiver); | 826 Type* receiver_type = NodeProperties::GetType(receiver); |
827 Node* effect = NodeProperties::GetEffectInput(node); | 827 Node* effect = NodeProperties::GetEffectInput(node); |
828 Node* control = NodeProperties::GetControlInput(node); | 828 Node* control = NodeProperties::GetControlInput(node); |
829 Handle<Name> name = LoadNamedParametersOf(node->op()).name(); | 829 Handle<Name> name = NamedAccessOf(node->op()).name(); |
830 // Optimize "length" property of strings. | 830 // Optimize "length" property of strings. |
831 if (name.is_identical_to(factory()->length_string()) && | 831 if (name.is_identical_to(factory()->length_string()) && |
832 receiver_type->Is(Type::String())) { | 832 receiver_type->Is(Type::String())) { |
833 Node* value = effect = | 833 Node* value = effect = |
834 graph()->NewNode(simplified()->LoadField( | 834 graph()->NewNode(simplified()->LoadField( |
835 AccessBuilder::ForStringLength(graph()->zone())), | 835 AccessBuilder::ForStringLength(graph()->zone())), |
836 receiver, effect, control); | 836 receiver, effect, control); |
837 ReplaceWithValue(node, value, effect); | 837 ReplaceWithValue(node, value, effect); |
838 return Replace(value); | 838 return Replace(value); |
839 } | 839 } |
(...skipping 1000 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1840 } | 1840 } |
1841 | 1841 |
1842 | 1842 |
1843 MachineOperatorBuilder* JSTypedLowering::machine() const { | 1843 MachineOperatorBuilder* JSTypedLowering::machine() const { |
1844 return jsgraph()->machine(); | 1844 return jsgraph()->machine(); |
1845 } | 1845 } |
1846 | 1846 |
1847 } // namespace compiler | 1847 } // namespace compiler |
1848 } // namespace internal | 1848 } // namespace internal |
1849 } // namespace v8 | 1849 } // namespace v8 |
OLD | NEW |