| 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/compiler/js-builtin-reducer.h" | 5 #include "src/compiler/js-builtin-reducer.h" | 
| 6 | 6 | 
| 7 #include "src/compilation-dependencies.h" | 7 #include "src/compilation-dependencies.h" | 
| 8 #include "src/compiler/access-builder.h" | 8 #include "src/compiler/access-builder.h" | 
| 9 #include "src/compiler/js-graph.h" | 9 #include "src/compiler/js-graph.h" | 
| 10 #include "src/compiler/node-matchers.h" | 10 #include "src/compiler/node-matchers.h" | 
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 323 | 323 | 
| 324 bool HasInstanceTypeWitness(Node* receiver, Node* effect, | 324 bool HasInstanceTypeWitness(Node* receiver, Node* effect, | 
| 325                             InstanceType instance_type) { | 325                             InstanceType instance_type) { | 
| 326   for (Node* dominator = effect;;) { | 326   for (Node* dominator = effect;;) { | 
| 327     if (dominator->opcode() == IrOpcode::kCheckMaps && | 327     if (dominator->opcode() == IrOpcode::kCheckMaps && | 
| 328         dominator->InputAt(0) == receiver) { | 328         dominator->InputAt(0) == receiver) { | 
| 329       // Check if all maps have the given {instance_type}. | 329       // Check if all maps have the given {instance_type}. | 
| 330       for (int i = 1; i < dominator->op()->ValueInputCount(); ++i) { | 330       for (int i = 1; i < dominator->op()->ValueInputCount(); ++i) { | 
| 331         Node* const map = NodeProperties::GetValueInput(dominator, i); | 331         Node* const map = NodeProperties::GetValueInput(dominator, i); | 
| 332         Type* const map_type = NodeProperties::GetType(map); | 332         Type* const map_type = NodeProperties::GetType(map); | 
| 333         if (!map_type->IsConstant()) return false; | 333         if (!map_type->IsHeapConstant()) return false; | 
| 334         Handle<Map> const map_value = | 334         Handle<Map> const map_value = | 
| 335             Handle<Map>::cast(map_type->AsConstant()->Value()); | 335             Handle<Map>::cast(map_type->AsHeapConstant()->Value()); | 
| 336         if (map_value->instance_type() != instance_type) return false; | 336         if (map_value->instance_type() != instance_type) return false; | 
| 337       } | 337       } | 
| 338       return true; | 338       return true; | 
| 339     } | 339     } | 
| 340     switch (dominator->opcode()) { | 340     switch (dominator->opcode()) { | 
| 341       case IrOpcode::kStoreField: { | 341       case IrOpcode::kStoreField: { | 
| 342         FieldAccess const& access = FieldAccessOf(dominator->op()); | 342         FieldAccess const& access = FieldAccessOf(dominator->op()); | 
| 343         if (access.base_is_tagged == kTaggedBase && | 343         if (access.base_is_tagged == kTaggedBase && | 
| 344             access.offset == HeapObject::kMapOffset) { | 344             access.offset == HeapObject::kMapOffset) { | 
| 345           return false; | 345           return false; | 
| (...skipping 1043 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1389   return jsgraph()->simplified(); | 1389   return jsgraph()->simplified(); | 
| 1390 } | 1390 } | 
| 1391 | 1391 | 
| 1392 JSOperatorBuilder* JSBuiltinReducer::javascript() const { | 1392 JSOperatorBuilder* JSBuiltinReducer::javascript() const { | 
| 1393   return jsgraph()->javascript(); | 1393   return jsgraph()->javascript(); | 
| 1394 } | 1394 } | 
| 1395 | 1395 | 
| 1396 }  // namespace compiler | 1396 }  // namespace compiler | 
| 1397 }  // namespace internal | 1397 }  // namespace internal | 
| 1398 }  // namespace v8 | 1398 }  // namespace v8 | 
| OLD | NEW | 
|---|