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); |