Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 1a43f0fb53fd88f5e68b4e00ac68f49643a8c7c1..5df8b26c5a37002f794eb0f7e8170da85c209740 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -193,6 +193,7 @@ class LChunkBuilder; |
V(WrapReceiver) |
#define GVN_TRACKED_FLAG_LIST(V) \ |
+ V(Maps) \ |
V(NewSpacePromotion) |
#define GVN_UNTRACKED_FLAG_LIST(V) \ |
@@ -205,7 +206,6 @@ class LChunkBuilder; |
V(DoubleArrayElements) \ |
V(SpecializedArrayElements) \ |
V(GlobalVars) \ |
- V(Maps) \ |
V(ArrayLengths) \ |
V(ContextSlots) \ |
V(OsrEntries) |
@@ -2248,6 +2248,7 @@ class HCheckMaps: public HTemplateInstruction<2> { |
SetOperandAt(1, typecheck != NULL ? typecheck : value); |
set_representation(Representation::Tagged()); |
SetFlag(kUseGVN); |
+ SetFlag(kTrackSideEffectDominators); |
SetGVNFlag(kDependsOnMaps); |
SetGVNFlag(kDependsOnElementsKind); |
map_set()->Add(map, zone); |
@@ -2257,6 +2258,7 @@ class HCheckMaps: public HTemplateInstruction<2> { |
SetOperandAt(1, value); |
set_representation(Representation::Tagged()); |
SetFlag(kUseGVN); |
+ SetFlag(kTrackSideEffectDominators); |
SetGVNFlag(kDependsOnMaps); |
SetGVNFlag(kDependsOnElementsKind); |
for (int i = 0; i < maps->length(); i++) { |
@@ -2291,7 +2293,7 @@ class HCheckMaps: public HTemplateInstruction<2> { |
virtual Representation RequiredInputRepresentation(int index) { |
return Representation::Tagged(); |
} |
- |
+ virtual void SetSideEffectDominator(GVNFlag side_effect, HValue* dominator); |
virtual void PrintDataTo(StringStream* stream); |
virtual HType CalculateInferredType(); |