| Index: src/hydrogen-instructions.h
 | 
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
 | 
| index ba8d2e781dc1c102fa0789f95b23c4384c29db8a..aa19bc32f57a320091c994840668f62b4e49c73f 100644
 | 
| --- a/src/hydrogen-instructions.h
 | 
| +++ b/src/hydrogen-instructions.h
 | 
| @@ -1223,6 +1223,7 @@ class HChange: public HUnaryOperation {
 | 
|      SetFlag(kUseGVN);
 | 
|      if (deoptimize_on_undefined) SetFlag(kDeoptimizeOnUndefined);
 | 
|      if (is_truncating) SetFlag(kTruncatingToInt32);
 | 
| +    if (to.IsTagged()) SetGVNFlag(kChangesNewSpacePromotion);
 | 
|    }
 | 
|  
 | 
|    virtual HValue* EnsureAndPropagateNotMinusZero(BitVector* visited);
 | 
| @@ -1348,6 +1349,7 @@ class HStackCheck: public HTemplateInstruction<1> {
 | 
|  
 | 
|    HStackCheck(HValue* context, Type type) : type_(type) {
 | 
|      SetOperandAt(0, context);
 | 
| +    SetGVNFlag(kChangesNewSpacePromotion);
 | 
|    }
 | 
|  
 | 
|    HValue* context() { return OperandAt(0); }
 | 
| @@ -1926,6 +1928,7 @@ class HUnaryMathOperation: public HTemplateInstruction<2> {
 | 
|        case kMathAbs:
 | 
|          set_representation(Representation::Tagged());
 | 
|          SetFlag(kFlexibleRepresentation);
 | 
| +        SetGVNFlag(kChangesNewSpacePromotion);
 | 
|          break;
 | 
|        case kMathSqrt:
 | 
|        case kMathPowHalf:
 | 
| @@ -1934,6 +1937,7 @@ class HUnaryMathOperation: public HTemplateInstruction<2> {
 | 
|        case kMathCos:
 | 
|        case kMathTan:
 | 
|          set_representation(Representation::Double());
 | 
| +        SetGVNFlag(kChangesNewSpacePromotion);
 | 
|          break;
 | 
|        default:
 | 
|          UNREACHABLE();
 | 
| @@ -3154,6 +3158,7 @@ class HPower: public HTemplateInstruction<2> {
 | 
|      SetOperandAt(1, right);
 | 
|      set_representation(Representation::Double());
 | 
|      SetFlag(kUseGVN);
 | 
| +    SetGVNFlag(kChangesNewSpacePromotion);
 | 
|    }
 | 
|  
 | 
|    HValue* left() { return OperandAt(0); }
 | 
| @@ -4323,6 +4328,7 @@ class HTransitionElementsKind: public HTemplateInstruction<1> {
 | 
|      SetFlag(kUseGVN);
 | 
|      SetGVNFlag(kChangesElementsKind);
 | 
|      SetGVNFlag(kChangesElementsPointer);
 | 
| +    SetGVNFlag(kChangesNewSpacePromotion);
 | 
|      set_representation(Representation::Tagged());
 | 
|    }
 | 
|  
 | 
| @@ -4384,6 +4390,7 @@ class HStringCharCodeAt: public HTemplateInstruction<3> {
 | 
|      set_representation(Representation::Integer32());
 | 
|      SetFlag(kUseGVN);
 | 
|      SetGVNFlag(kDependsOnMaps);
 | 
| +    SetGVNFlag(kChangesNewSpacePromotion);
 | 
|    }
 | 
|  
 | 
|    virtual Representation RequiredInputRepresentation(int index) {
 | 
| @@ -4415,6 +4422,7 @@ class HStringCharFromCode: public HTemplateInstruction<2> {
 | 
|      SetOperandAt(1, char_code);
 | 
|      set_representation(Representation::Tagged());
 | 
|      SetFlag(kUseGVN);
 | 
| +    SetGVNFlag(kChangesNewSpacePromotion);
 | 
|    }
 | 
|  
 | 
|    virtual Representation RequiredInputRepresentation(int index) {
 | 
| @@ -4516,6 +4524,7 @@ class HFastLiteral: public HMaterializedLiteral<1> {
 | 
|          boilerplate_(boilerplate),
 | 
|          total_size_(total_size) {
 | 
|      SetOperandAt(0, context);
 | 
| +    SetGVNFlag(kChangesNewSpacePromotion);
 | 
|    }
 | 
|  
 | 
|    // Maximum depth and total number of elements and properties for literal
 | 
| @@ -4551,6 +4560,7 @@ class HArrayLiteral: public HMaterializedLiteral<1> {
 | 
|          length_(length),
 | 
|          boilerplate_object_(boilerplate_object) {
 | 
|      SetOperandAt(0, context);
 | 
| +    SetGVNFlag(kChangesNewSpacePromotion);
 | 
|    }
 | 
|  
 | 
|    HValue* context() { return OperandAt(0); }
 | 
| @@ -4591,6 +4601,7 @@ class HObjectLiteral: public HMaterializedLiteral<1> {
 | 
|          fast_elements_(fast_elements),
 | 
|          has_function_(has_function) {
 | 
|      SetOperandAt(0, context);
 | 
| +    SetGVNFlag(kChangesNewSpacePromotion);
 | 
|    }
 | 
|  
 | 
|    HValue* context() { return OperandAt(0); }
 | 
| @@ -4652,6 +4663,7 @@ class HFunctionLiteral: public HTemplateInstruction<1> {
 | 
|        : shared_info_(shared), pretenure_(pretenure) {
 | 
|      SetOperandAt(0, context);
 | 
|      set_representation(Representation::Tagged());
 | 
| +    SetGVNFlag(kChangesNewSpacePromotion);
 | 
|    }
 | 
|  
 | 
|    HValue* context() { return OperandAt(0); }
 | 
| 
 |