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

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

Issue 2797993006: [turbofan] Add type to the allocation operator. (Closed)
Patch Set: Remove caching 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 unified diff | Download patch
« no previous file with comments | « src/compiler/js-create-lowering.cc ('k') | src/compiler/js-typed-lowering.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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/compiler/js-native-context-specialization.h" 5 #include "src/compiler/js-native-context-specialization.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/code-factory.h" 8 #include "src/code-factory.h"
9 #include "src/compilation-dependencies.h" 9 #include "src/compilation-dependencies.h"
10 #include "src/compiler/access-builder.h" 10 #include "src/compiler/access-builder.h"
(...skipping 1502 matching lines...) Expand 10 before | Expand all | Expand 10 after
1513 value = effect = graph()->NewNode(simplified()->CheckNumber(), value, 1513 value = effect = graph()->NewNode(simplified()->CheckNumber(), value,
1514 effect, control); 1514 effect, control);
1515 if (!field_index.is_inobject() || field_index.is_hidden_field() || 1515 if (!field_index.is_inobject() || field_index.is_hidden_field() ||
1516 !FLAG_unbox_double_fields) { 1516 !FLAG_unbox_double_fields) {
1517 if (access_info.HasTransitionMap()) { 1517 if (access_info.HasTransitionMap()) {
1518 // Allocate a MutableHeapNumber for the new property. 1518 // Allocate a MutableHeapNumber for the new property.
1519 effect = graph()->NewNode( 1519 effect = graph()->NewNode(
1520 common()->BeginRegion(RegionObservability::kNotObservable), 1520 common()->BeginRegion(RegionObservability::kNotObservable),
1521 effect); 1521 effect);
1522 Node* box = effect = graph()->NewNode( 1522 Node* box = effect = graph()->NewNode(
1523 simplified()->Allocate(NOT_TENURED), 1523 simplified()->Allocate(Type::OtherInternal(), NOT_TENURED),
1524 jsgraph()->Constant(HeapNumber::kSize), effect, control); 1524 jsgraph()->Constant(HeapNumber::kSize), effect, control);
1525 effect = graph()->NewNode( 1525 effect = graph()->NewNode(
1526 simplified()->StoreField(AccessBuilder::ForMap()), box, 1526 simplified()->StoreField(AccessBuilder::ForMap()), box,
1527 jsgraph()->HeapConstant(factory()->mutable_heap_number_map()), 1527 jsgraph()->HeapConstant(factory()->mutable_heap_number_map()),
1528 effect, control); 1528 effect, control);
1529 effect = graph()->NewNode( 1529 effect = graph()->NewNode(
1530 simplified()->StoreField(AccessBuilder::ForHeapNumberValue()), 1530 simplified()->StoreField(AccessBuilder::ForHeapNumberValue()),
1531 box, value, effect, control); 1531 box, value, effect, control);
1532 value = effect = 1532 value = effect =
1533 graph()->NewNode(common()->FinishRegion(), box, effect); 1533 graph()->NewNode(common()->FinishRegion(), box, effect);
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after
2202 values.push_back(value); 2202 values.push_back(value);
2203 } 2203 }
2204 // Initialize the new fields to undefined. 2204 // Initialize the new fields to undefined.
2205 for (int i = 0; i < JSObject::kFieldsAdded; ++i) { 2205 for (int i = 0; i < JSObject::kFieldsAdded; ++i) {
2206 values.push_back(jsgraph()->UndefinedConstant()); 2206 values.push_back(jsgraph()->UndefinedConstant());
2207 } 2207 }
2208 // Allocate and initialize the new properties. 2208 // Allocate and initialize the new properties.
2209 effect = graph()->NewNode( 2209 effect = graph()->NewNode(
2210 common()->BeginRegion(RegionObservability::kNotObservable), effect); 2210 common()->BeginRegion(RegionObservability::kNotObservable), effect);
2211 Node* new_properties = effect = graph()->NewNode( 2211 Node* new_properties = effect = graph()->NewNode(
2212 simplified()->Allocate(NOT_TENURED), 2212 simplified()->Allocate(Type::OtherInternal(), NOT_TENURED),
2213 jsgraph()->Constant(FixedArray::SizeFor(new_length)), effect, control); 2213 jsgraph()->Constant(FixedArray::SizeFor(new_length)), effect, control);
2214 effect = graph()->NewNode(simplified()->StoreField(AccessBuilder::ForMap()), 2214 effect = graph()->NewNode(simplified()->StoreField(AccessBuilder::ForMap()),
2215 new_properties, jsgraph()->FixedArrayMapConstant(), 2215 new_properties, jsgraph()->FixedArrayMapConstant(),
2216 effect, control); 2216 effect, control);
2217 effect = graph()->NewNode( 2217 effect = graph()->NewNode(
2218 simplified()->StoreField(AccessBuilder::ForFixedArrayLength()), 2218 simplified()->StoreField(AccessBuilder::ForFixedArrayLength()),
2219 new_properties, jsgraph()->Constant(new_length), effect, control); 2219 new_properties, jsgraph()->Constant(new_length), effect, control);
2220 for (int i = 0; i < new_length; ++i) { 2220 for (int i = 0; i < new_length; ++i) {
2221 effect = graph()->NewNode( 2221 effect = graph()->NewNode(
2222 simplified()->StoreField( 2222 simplified()->StoreField(
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
2378 return jsgraph()->javascript(); 2378 return jsgraph()->javascript();
2379 } 2379 }
2380 2380
2381 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const { 2381 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const {
2382 return jsgraph()->simplified(); 2382 return jsgraph()->simplified();
2383 } 2383 }
2384 2384
2385 } // namespace compiler 2385 } // namespace compiler
2386 } // namespace internal 2386 } // namespace internal
2387 } // namespace v8 2387 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/js-create-lowering.cc ('k') | src/compiler/js-typed-lowering.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698