| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 8ee79e7862ec5522975c5622a365030027d4e27a..393e02c9f97ba6381ad0697aa220dfe2df319d63 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -5351,7 +5351,7 @@
|
|
|
| if (type == kUseCell) {
|
| Handle<PropertyCell> cell = it.GetPropertyCell();
|
| - top_info()->dependencies()->AssumePropertyCell(cell);
|
| + PropertyCell::AddDependentCompilationInfo(cell, top_info());
|
| if (it.property_details().cell_type() == PropertyCellType::kConstant) {
|
| Handle<Object> constant_object(cell->value(), isolate());
|
| if (constant_object->IsConsString()) {
|
| @@ -5732,7 +5732,7 @@
|
| 4);
|
|
|
| // Register to deopt if the boilerplate ElementsKind changes.
|
| - top_info()->dependencies()->AssumeTransitionStable(site);
|
| + AllocationSite::RegisterForDeoptOnTransitionChange(site, top_info());
|
| }
|
|
|
| // The array is expected in the bailout environment during computation
|
| @@ -6047,7 +6047,8 @@
|
| DCHECK(field_type_.IsHeapObject());
|
|
|
| // Add dependency on the map that introduced the field.
|
| - top_info()->dependencies()->AssumeFieldType(GetFieldOwnerFromMap(map));
|
| + Map::AddDependentCompilationInfo(GetFieldOwnerFromMap(map),
|
| + DependentCode::kFieldTypeGroup, top_info());
|
| return true;
|
| }
|
|
|
| @@ -6516,7 +6517,7 @@
|
| GlobalPropertyAccess type = LookupGlobalProperty(var, &it, STORE);
|
| if (type == kUseCell) {
|
| Handle<PropertyCell> cell = it.GetPropertyCell();
|
| - top_info()->dependencies()->AssumePropertyCell(cell);
|
| + PropertyCell::AddDependentCompilationInfo(cell, top_info());
|
| if (it.property_details().cell_type() == PropertyCellType::kConstant) {
|
| Handle<Object> constant(cell->value(), isolate());
|
| if (value->IsConstant()) {
|
| @@ -9310,7 +9311,7 @@
|
| HValue* constructor = environment()->ExpressionStackAt(argument_count);
|
|
|
| // Register on the site for deoptimization if the transition feedback changes.
|
| - top_info()->dependencies()->AssumeTransitionStable(site);
|
| + AllocationSite::RegisterForDeoptOnTransitionChange(site, top_info());
|
| ElementsKind kind = site->GetElementsKind();
|
| HInstruction* site_instruction = Add<HConstant>(site);
|
|
|
| @@ -9446,7 +9447,8 @@
|
| Handle<AllocationSite> allocation_site = expr->allocation_site();
|
| allocation_mode = HAllocationMode(allocation_site);
|
| // Take a dependency on allocation site.
|
| - top_info()->dependencies()->AssumeTenuringDecision(allocation_site);
|
| + AllocationSite::RegisterForDeoptOnTenureChange(allocation_site,
|
| + top_info());
|
| }
|
| }
|
|
|
| @@ -9490,7 +9492,8 @@
|
| // 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.
|
| - top_info()->dependencies()->AssumeInitialMapCantChange(initial_map);
|
| + Map::AddDependentCompilationInfo(
|
| + initial_map, DependentCode::kInitialMapChangedGroup, top_info());
|
| return;
|
| }
|
|
|
| @@ -10464,7 +10467,7 @@
|
| if (!allocation_mode.feedback_site().is_null()) {
|
| DCHECK(!graph()->info()->IsStub());
|
| Handle<AllocationSite> site(allocation_mode.feedback_site());
|
| - top_info()->dependencies()->AssumeTenuringDecision(site);
|
| + AllocationSite::RegisterForDeoptOnTenureChange(site, top_info());
|
| }
|
|
|
| // Inline the string addition into the stub when creating allocation
|
| @@ -11035,10 +11038,10 @@
|
| Handle<AllocationSite> site(site_context->current());
|
| if (FLAG_allocation_site_pretenuring) {
|
| pretenure_flag = site_context->current()->GetPretenureMode();
|
| - top_info()->dependencies()->AssumeTenuringDecision(site);
|
| - }
|
| -
|
| - top_info()->dependencies()->AssumeTransitionStable(site);
|
| + AllocationSite::RegisterForDeoptOnTenureChange(site, top_info());
|
| + }
|
| +
|
| + AllocationSite::RegisterForDeoptOnTransitionChange(site, top_info());
|
|
|
| HInstruction* object = Add<HAllocate>(object_size_constant, type,
|
| pretenure_flag, instance_type, site_context->current());
|
|
|