Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index b9eab45293befcf143e0bfa77abc8f347cc459b9..a4d01bbb3bc0f10cb0d9fe35d23f32f6a35f678d 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -2877,6 +2877,7 @@ class HCheckMaps: public HTemplateInstruction<2> { |
HCheckMaps* check_map = new(zone) HCheckMaps(value, zone, typecheck); |
for (int i = 0; i < maps->length(); i++) { |
check_map->map_set_.Add(maps->at(i), zone); |
+ check_map->has_migration_target_ |= maps->at(i)->is_migration_target(); |
} |
check_map->map_set_.Sort(); |
return check_map; |
@@ -2895,6 +2896,10 @@ class HCheckMaps: public HTemplateInstruction<2> { |
HValue* value() { return OperandAt(0); } |
SmallMapList* map_set() { return &map_set_; } |
+ bool has_migration_target() { |
+ return has_migration_target_; |
+ } |
+ |
virtual void FinalizeUniqueValueId(); |
DECLARE_CONCRETE_INSTRUCTION(CheckMaps) |
@@ -2919,7 +2924,7 @@ class HCheckMaps: public HTemplateInstruction<2> { |
// Clients should use one of the static New* methods above. |
HCheckMaps(HValue* value, Zone *zone, HValue* typecheck) |
: HTemplateInstruction<2>(value->type()), |
- omit_(false), map_unique_ids_(0, zone) { |
+ omit_(false), has_migration_target_(false), map_unique_ids_(0, zone) { |
SetOperandAt(0, value); |
// Use the object value for the dependency if NULL is passed. |
// TODO(titzer): do GVN flags already express this dependency? |
@@ -2941,6 +2946,7 @@ class HCheckMaps: public HTemplateInstruction<2> { |
} |
bool omit_; |
+ bool has_migration_target_; |
SmallMapList map_set_; |
ZoneList<UniqueValueId> map_unique_ids_; |
}; |