| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/crankshaft/hydrogen.h" | 5 #include "src/crankshaft/hydrogen.h" |
| 6 | 6 |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 | 8 |
| 9 #include "src/allocation-site-scopes.h" | 9 #include "src/allocation-site-scopes.h" |
| 10 #include "src/ast/ast-numbering.h" | 10 #include "src/ast/ast-numbering.h" |
| (...skipping 7528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7539 if (IsSloppyArgumentsElements(elements_kind)) { | 7539 if (IsSloppyArgumentsElements(elements_kind)) { |
| 7540 HInstruction* result = | 7540 HInstruction* result = |
| 7541 BuildKeyedGeneric(access_type, expr, slot, object, key, val); | 7541 BuildKeyedGeneric(access_type, expr, slot, object, key, val); |
| 7542 *has_side_effects = result->HasObservableSideEffects(); | 7542 *has_side_effects = result->HasObservableSideEffects(); |
| 7543 return AddInstruction(result); | 7543 return AddInstruction(result); |
| 7544 } | 7544 } |
| 7545 } | 7545 } |
| 7546 // Get transition target for each map (NULL == no transition). | 7546 // Get transition target for each map (NULL == no transition). |
| 7547 for (int i = 0; i < maps->length(); ++i) { | 7547 for (int i = 0; i < maps->length(); ++i) { |
| 7548 Handle<Map> map = maps->at(i); | 7548 Handle<Map> map = maps->at(i); |
| 7549 Handle<Map> transitioned_map = | 7549 Map* transitioned_map = |
| 7550 Map::FindTransitionedMap(map, &possible_transitioned_maps); | 7550 map->FindElementsKindTransitionedMap(&possible_transitioned_maps); |
| 7551 transition_target.Add(transitioned_map); | 7551 if (transitioned_map != nullptr) { |
| 7552 transition_target.Add(handle(transitioned_map)); |
| 7553 } else { |
| 7554 transition_target.Add(Handle<Map>()); |
| 7555 } |
| 7552 } | 7556 } |
| 7553 | 7557 |
| 7554 MapHandleList untransitionable_maps(maps->length()); | 7558 MapHandleList untransitionable_maps(maps->length()); |
| 7555 HTransitionElementsKind* transition = NULL; | 7559 HTransitionElementsKind* transition = NULL; |
| 7556 for (int i = 0; i < maps->length(); ++i) { | 7560 for (int i = 0; i < maps->length(); ++i) { |
| 7557 Handle<Map> map = maps->at(i); | 7561 Handle<Map> map = maps->at(i); |
| 7558 DCHECK(map->IsMap()); | 7562 DCHECK(map->IsMap()); |
| 7559 if (!transition_target.at(i).is_null()) { | 7563 if (!transition_target.at(i).is_null()) { |
| 7560 DCHECK(Map::IsValidElementsTransition( | 7564 DCHECK(Map::IsValidElementsTransition( |
| 7561 map->elements_kind(), | 7565 map->elements_kind(), |
| (...skipping 6013 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13575 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13579 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 13576 } | 13580 } |
| 13577 | 13581 |
| 13578 #ifdef DEBUG | 13582 #ifdef DEBUG |
| 13579 graph_->Verify(false); // No full verify. | 13583 graph_->Verify(false); // No full verify. |
| 13580 #endif | 13584 #endif |
| 13581 } | 13585 } |
| 13582 | 13586 |
| 13583 } // namespace internal | 13587 } // namespace internal |
| 13584 } // namespace v8 | 13588 } // namespace v8 |
| OLD | NEW |