| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index f16dc98a13e7ca3a1b6b2a1952c0c062e90a1cb8..722a5424c03dd86386af88cc41f5caf5c2d063b9 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -5696,6 +5696,8 @@
|
| };
|
|
|
|
|
| +class CompilationInfo;
|
| +
|
| // This class describes the layout of dependent codes array of a map. The
|
| // array is partitioned into several groups of dependent codes. Each group
|
| // contains codes with the same dependency on the map. The array has the
|
| @@ -5765,7 +5767,7 @@
|
|
|
| bool Contains(DependencyGroup group, WeakCell* code_cell);
|
|
|
| - static Handle<DependentCode> InsertCompilationDependencies(
|
| + static Handle<DependentCode> InsertCompilationInfo(
|
| Handle<DependentCode> entries, DependencyGroup group,
|
| Handle<Foreign> info);
|
|
|
| @@ -5776,8 +5778,8 @@
|
| void UpdateToFinishedCode(DependencyGroup group, Foreign* info,
|
| WeakCell* code_cell);
|
|
|
| - void RemoveCompilationDependencies(DependentCode::DependencyGroup group,
|
| - Foreign* info);
|
| + void RemoveCompilationInfo(DependentCode::DependencyGroup group,
|
| + Foreign* info);
|
|
|
| void DeoptimizeDependentCodeGroup(Isolate* isolate,
|
| DependentCode::DependencyGroup group);
|
| @@ -5794,6 +5796,9 @@
|
| inline void clear_at(int i);
|
| inline void copy(int from, int to);
|
| DECLARE_CAST(DependentCode)
|
| +
|
| + static DependentCode* ForObject(Handle<HeapObject> object,
|
| + DependencyGroup group);
|
|
|
| static const char* DependencyGroupName(DependencyGroup group);
|
| static void SetMarkedForDeoptimization(Code* code, DependencyGroup group);
|
| @@ -6351,6 +6356,10 @@
|
| }
|
|
|
| inline bool CanOmitMapChecks();
|
| +
|
| + static void AddDependentCompilationInfo(Handle<Map> map,
|
| + DependentCode::DependencyGroup group,
|
| + CompilationInfo* info);
|
|
|
| static void AddDependentCode(Handle<Map> map,
|
| DependentCode::DependencyGroup group,
|
| @@ -8554,6 +8563,12 @@
|
| static void DigestTransitionFeedback(Handle<AllocationSite> site,
|
| ElementsKind to_kind);
|
|
|
| + static void RegisterForDeoptOnTenureChange(Handle<AllocationSite> site,
|
| + CompilationInfo* info);
|
| +
|
| + static void RegisterForDeoptOnTransitionChange(Handle<AllocationSite> site,
|
| + CompilationInfo* info);
|
| +
|
| DECLARE_PRINTER(AllocationSite)
|
| DECLARE_VERIFIER(AllocationSite)
|
|
|
| @@ -8584,6 +8599,10 @@
|
| kSize> BodyDescriptor;
|
|
|
| private:
|
| + static void AddDependentCompilationInfo(Handle<AllocationSite> site,
|
| + DependentCode::DependencyGroup group,
|
| + CompilationInfo* info);
|
| +
|
| bool PretenuringDecisionMade() {
|
| return pretenure_decision() != kUndecided;
|
| }
|
| @@ -9816,6 +9835,9 @@
|
| static Handle<PropertyCell> InvalidateEntry(Handle<NameDictionary> dictionary,
|
| int entry);
|
|
|
| + static void AddDependentCompilationInfo(Handle<PropertyCell> cell,
|
| + CompilationInfo* info);
|
| +
|
| DECLARE_CAST(PropertyCell)
|
|
|
| // Dispatched behavior.
|
|
|