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

Unified Diff: src/crankshaft/hydrogen.cc

Issue 2809923002: Unify implementations of Map handles vectors and lists (Closed)
Patch Set: Review feedback Created 3 years, 7 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.cc ('k') | src/feedback-vector.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/crankshaft/hydrogen.cc
diff --git a/src/crankshaft/hydrogen.cc b/src/crankshaft/hydrogen.cc
index 78e0718c8d93250766fa79468d393b80b7620dfb..9ff42644abe4f72cacd807174c601cd97c1f8fcf 100644
--- a/src/crankshaft/hydrogen.cc
+++ b/src/crankshaft/hydrogen.cc
@@ -6914,9 +6914,11 @@ HValue* HOptimizedGraphBuilder::HandlePolymorphicElementAccess(
}
// Elements_kind transition support.
- MapHandleList transition_target(maps->length());
+ MapHandles transition_target;
+ transition_target.reserve(maps->length());
// Collect possible transition targets.
- MapHandleList possible_transitioned_maps(maps->length());
+ MapHandles possible_transitioned_maps;
+ possible_transitioned_maps.reserve(maps->length());
for (int i = 0; i < maps->length(); ++i) {
Handle<Map> map = maps->at(i);
// Loads from strings or loads with a mix of string and non-string maps
@@ -6925,7 +6927,7 @@ HValue* HOptimizedGraphBuilder::HandlePolymorphicElementAccess(
ElementsKind elements_kind = map->elements_kind();
if (CanInlineElementAccess(map) && IsFastElementsKind(elements_kind) &&
elements_kind != GetInitialFastElementsKind()) {
- possible_transitioned_maps.Add(map);
+ possible_transitioned_maps.push_back(map);
}
if (IsSloppyArgumentsElementsKind(elements_kind)) {
HInstruction* result =
@@ -6938,16 +6940,17 @@ HValue* HOptimizedGraphBuilder::HandlePolymorphicElementAccess(
for (int i = 0; i < maps->length(); ++i) {
Handle<Map> map = maps->at(i);
Map* transitioned_map =
- map->FindElementsKindTransitionedMap(&possible_transitioned_maps);
+ map->FindElementsKindTransitionedMap(possible_transitioned_maps);
if (transitioned_map != nullptr) {
DCHECK(!map->is_stable());
- transition_target.Add(handle(transitioned_map));
+ transition_target.push_back(handle(transitioned_map));
} else {
- transition_target.Add(Handle<Map>());
+ transition_target.push_back(Handle<Map>());
}
}
- MapHandleList untransitionable_maps(maps->length());
+ MapHandles untransitionable_maps;
+ untransitionable_maps.reserve(maps->length());
HTransitionElementsKind* transition = NULL;
for (int i = 0; i < maps->length(); ++i) {
Handle<Map> map = maps->at(i);
@@ -6959,14 +6962,14 @@ HValue* HOptimizedGraphBuilder::HandlePolymorphicElementAccess(
transition = Add<HTransitionElementsKind>(object, map,
transition_target.at(i));
} else {
- untransitionable_maps.Add(map);
+ untransitionable_maps.push_back(map);
}
}
// If only one map is left after transitioning, handle this case
// monomorphically.
- DCHECK(untransitionable_maps.length() >= 1);
- if (untransitionable_maps.length() == 1) {
+ DCHECK(untransitionable_maps.size() >= 1);
+ if (untransitionable_maps.size() == 1) {
Handle<Map> untransitionable_map = untransitionable_maps[0];
HInstruction* instr = NULL;
if (!CanInlineElementAccess(untransitionable_map)) {
@@ -6983,8 +6986,7 @@ HValue* HOptimizedGraphBuilder::HandlePolymorphicElementAccess(
HBasicBlock* join = graph()->CreateBasicBlock();
- for (int i = 0; i < untransitionable_maps.length(); ++i) {
- Handle<Map> map = untransitionable_maps[i];
+ for (Handle<Map> map : untransitionable_maps) {
ElementsKind elements_kind = map->elements_kind();
HBasicBlock* this_map = graph()->CreateBasicBlock();
HBasicBlock* other_map = graph()->CreateBasicBlock();
« no previous file with comments | « src/compiler/js-native-context-specialization.cc ('k') | src/feedback-vector.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698