| Index: src/hydrogen.cc
 | 
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
 | 
| index ba055405b17692533ec472ca6a76bd7519ea7bc0..e077541a20bd93187e30d6ac4ab134297d94b9b2 100644
 | 
| --- a/src/hydrogen.cc
 | 
| +++ b/src/hydrogen.cc
 | 
| @@ -5396,7 +5396,7 @@ void HOptimizedGraphBuilder::VisitVariableProxy(VariableProxy* expr) {
 | 
|  
 | 
|        if (type == kUseCell) {
 | 
|          Handle<PropertyCell> cell = it.GetPropertyCell();
 | 
| -        PropertyCell::AddDependentCompilationInfo(cell, top_info());
 | 
| +        top_info()->dependencies()->AssumePropertyCell(cell);
 | 
|          if (it.property_details().cell_type() == PropertyCellType::kConstant) {
 | 
|            Handle<Object> constant_object(cell->value(), isolate());
 | 
|            if (constant_object->IsConsString()) {
 | 
| @@ -5777,7 +5777,7 @@ void HOptimizedGraphBuilder::VisitArrayLiteral(ArrayLiteral* expr) {
 | 
|                                  4);
 | 
|  
 | 
|      // Register to deopt if the boilerplate ElementsKind changes.
 | 
| -    AllocationSite::RegisterForDeoptOnTransitionChange(site, top_info());
 | 
| +    top_info()->dependencies()->AssumeTransitionStable(site);
 | 
|    }
 | 
|  
 | 
|    // The array is expected in the bailout environment during computation
 | 
| @@ -6092,8 +6092,7 @@ bool HOptimizedGraphBuilder::PropertyAccessInfo::LoadFieldMaps(
 | 
|    DCHECK(field_type_.IsHeapObject());
 | 
|  
 | 
|    // Add dependency on the map that introduced the field.
 | 
| -  Map::AddDependentCompilationInfo(GetFieldOwnerFromMap(map),
 | 
| -                                   DependentCode::kFieldTypeGroup, top_info());
 | 
| +  top_info()->dependencies()->AssumeFieldType(GetFieldOwnerFromMap(map));
 | 
|    return true;
 | 
|  }
 | 
|  
 | 
| @@ -6563,7 +6562,7 @@ void HOptimizedGraphBuilder::HandleGlobalVariableAssignment(
 | 
|    GlobalPropertyAccess type = LookupGlobalProperty(var, &it, STORE);
 | 
|    if (type == kUseCell) {
 | 
|      Handle<PropertyCell> cell = it.GetPropertyCell();
 | 
| -    PropertyCell::AddDependentCompilationInfo(cell, top_info());
 | 
| +    top_info()->dependencies()->AssumePropertyCell(cell);
 | 
|      if (it.property_details().cell_type() == PropertyCellType::kConstant) {
 | 
|        Handle<Object> constant(cell->value(), isolate());
 | 
|        if (value->IsConstant()) {
 | 
| @@ -9357,7 +9356,7 @@ void HOptimizedGraphBuilder::BuildInlinedCallArray(
 | 
|    HValue* constructor = environment()->ExpressionStackAt(argument_count);
 | 
|  
 | 
|    // Register on the site for deoptimization if the transition feedback changes.
 | 
| -  AllocationSite::RegisterForDeoptOnTransitionChange(site, top_info());
 | 
| +  top_info()->dependencies()->AssumeTransitionStable(site);
 | 
|    ElementsKind kind = site->GetElementsKind();
 | 
|    HInstruction* site_instruction = Add<HConstant>(site);
 | 
|  
 | 
| @@ -9493,8 +9492,7 @@ void HOptimizedGraphBuilder::VisitCallNew(CallNew* expr) {
 | 
|          Handle<AllocationSite> allocation_site = expr->allocation_site();
 | 
|          allocation_mode = HAllocationMode(allocation_site);
 | 
|          // Take a dependency on allocation site.
 | 
| -        AllocationSite::RegisterForDeoptOnTenureChange(allocation_site,
 | 
| -                                                       top_info());
 | 
| +        top_info()->dependencies()->AssumeTenuringDecision(allocation_site);
 | 
|        }
 | 
|      }
 | 
|  
 | 
| @@ -9538,8 +9536,7 @@ void HOptimizedGraphBuilder::VisitCallNew(CallNew* expr) {
 | 
|        // Inlining worked, add a dependency on the initial map to make sure that
 | 
|        // this code is deoptimized whenever the initial map of the constructor
 | 
|        // changes.
 | 
| -      Map::AddDependentCompilationInfo(
 | 
| -          initial_map, DependentCode::kInitialMapChangedGroup, top_info());
 | 
| +      top_info()->dependencies()->AssumeInitialMapCantChange(initial_map);
 | 
|        return;
 | 
|      }
 | 
|  
 | 
| @@ -10513,7 +10510,7 @@ HValue* HGraphBuilder::BuildBinaryOperation(
 | 
|      if (!allocation_mode.feedback_site().is_null()) {
 | 
|        DCHECK(!graph()->info()->IsStub());
 | 
|        Handle<AllocationSite> site(allocation_mode.feedback_site());
 | 
| -      AllocationSite::RegisterForDeoptOnTenureChange(site, top_info());
 | 
| +      top_info()->dependencies()->AssumeTenuringDecision(site);
 | 
|      }
 | 
|  
 | 
|      // Inline the string addition into the stub when creating allocation
 | 
| @@ -11084,10 +11081,10 @@ HInstruction* HOptimizedGraphBuilder::BuildFastLiteral(
 | 
|    Handle<AllocationSite> current_site(*site_context->current(), isolate());
 | 
|    if (FLAG_allocation_site_pretenuring) {
 | 
|      pretenure_flag = current_site->GetPretenureMode();
 | 
| -    AllocationSite::RegisterForDeoptOnTenureChange(current_site, top_info());
 | 
| +    top_info()->dependencies()->AssumeTenuringDecision(current_site);
 | 
|    }
 | 
|  
 | 
| -  AllocationSite::RegisterForDeoptOnTransitionChange(current_site, top_info());
 | 
| +  top_info()->dependencies()->AssumeTransitionStable(current_site);
 | 
|  
 | 
|    HInstruction* object = Add<HAllocate>(
 | 
|        object_size_constant, type, pretenure_flag, instance_type, current_site);
 | 
| 
 |