| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index c6f36bf63bdb3b4d31fba9c27b42bf8efff2f583..df54f8b98d063ec8dede4e725a1f1f77e85790f6 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -1038,7 +1038,6 @@ class MaybeObject BASE_EMBEDDED {
|
| V(DeoptimizationInputData) \
|
| V(DeoptimizationOutputData) \
|
| V(DependentCode) \
|
| - V(TypeFeedbackCells) \
|
| V(FixedArray) \
|
| V(FixedDoubleArray) \
|
| V(ConstantPoolArray) \
|
| @@ -5067,49 +5066,6 @@ class DeoptimizationOutputData: public FixedArray {
|
| // Forward declaration.
|
| class Cell;
|
| class PropertyCell;
|
| -
|
| -// TypeFeedbackCells is a fixed array used to hold the association between
|
| -// cache cells and AST ids for code generated by the full compiler.
|
| -// The format of the these objects is
|
| -// [i * 2]: Global property cell of ith cache cell.
|
| -// [i * 2 + 1]: Ast ID for ith cache cell.
|
| -class TypeFeedbackCells: public FixedArray {
|
| - public:
|
| - int CellCount() { return length() / 2; }
|
| - static int LengthOfFixedArray(int cell_count) { return cell_count * 2; }
|
| -
|
| - // Accessors for AST ids associated with cache values.
|
| - inline TypeFeedbackId AstId(int index);
|
| - inline void SetAstId(int index, TypeFeedbackId id);
|
| -
|
| - // Accessors for global property cells holding the cache values.
|
| - inline Cell* GetCell(int index);
|
| - inline void SetCell(int index, Cell* cell);
|
| -
|
| - // The object that indicates an uninitialized cache.
|
| - static inline Handle<Object> UninitializedSentinel(Isolate* isolate);
|
| -
|
| - // The object that indicates a megamorphic state.
|
| - static inline Handle<Object> MegamorphicSentinel(Isolate* isolate);
|
| -
|
| - // The object that indicates a monomorphic state of Array with
|
| - // ElementsKind
|
| - static inline Handle<Object> MonomorphicArraySentinel(Isolate* isolate,
|
| - ElementsKind elements_kind);
|
| -
|
| - // A raw version of the uninitialized sentinel that's safe to read during
|
| - // garbage collection (e.g., for patching the cache).
|
| - static inline Object* RawUninitializedSentinel(Heap* heap);
|
| -
|
| - // Casting.
|
| - static inline TypeFeedbackCells* cast(Object* obj);
|
| -
|
| - static const int kForInFastCaseMarker = 0;
|
| - static const int kForInSlowCaseMarker = 1;
|
| -};
|
| -
|
| -
|
| -// Forward declaration.
|
| class SafepointEntry;
|
| class TypeFeedbackInfo;
|
|
|
| @@ -5479,7 +5435,7 @@ class Code: public HeapObject {
|
| void ClearInlineCaches();
|
| void ClearInlineCaches(Kind kind);
|
|
|
| - void ClearTypeFeedbackCells(Heap* heap);
|
| + void ClearTypeFeedbackInfo(Heap* heap);
|
|
|
| BailoutId TranslatePcOffsetToAstId(uint32_t pc_offset);
|
| uint32_t TranslateAstIdToPcOffset(BailoutId ast_id);
|
| @@ -8192,7 +8148,7 @@ class TypeFeedbackInfo: public Struct {
|
| inline void set_inlined_type_change_checksum(int checksum);
|
| inline bool matches_inlined_type_change_checksum(int checksum);
|
|
|
| - DECL_ACCESSORS(type_feedback_cells, TypeFeedbackCells)
|
| + DECL_ACCESSORS(feedback_vector, FixedArray)
|
|
|
| static inline TypeFeedbackInfo* cast(Object* obj);
|
|
|
| @@ -8202,8 +8158,27 @@ class TypeFeedbackInfo: public Struct {
|
|
|
| static const int kStorage1Offset = HeapObject::kHeaderSize;
|
| static const int kStorage2Offset = kStorage1Offset + kPointerSize;
|
| - static const int kTypeFeedbackCellsOffset = kStorage2Offset + kPointerSize;
|
| - static const int kSize = kTypeFeedbackCellsOffset + kPointerSize;
|
| + static const int kFeedbackVectorOffset =
|
| + kStorage2Offset + kPointerSize;
|
| + static const int kSize = kFeedbackVectorOffset + kPointerSize;
|
| +
|
| + // The object that indicates an uninitialized cache.
|
| + static inline Handle<Object> UninitializedSentinel(Isolate* isolate);
|
| +
|
| + // The object that indicates a megamorphic state.
|
| + static inline Handle<Object> MegamorphicSentinel(Isolate* isolate);
|
| +
|
| + // The object that indicates a monomorphic state of Array with
|
| + // ElementsKind
|
| + static inline Handle<Object> MonomorphicArraySentinel(Isolate* isolate,
|
| + ElementsKind elements_kind);
|
| +
|
| + // A raw version of the uninitialized sentinel that's safe to read during
|
| + // garbage collection (e.g., for patching the cache).
|
| + static inline Object* RawUninitializedSentinel(Heap* heap);
|
| +
|
| + static const int kForInFastCaseMarker = 0;
|
| + static const int kForInSlowCaseMarker = 1;
|
|
|
| private:
|
| static const int kTypeChangeChecksumBits = 7;
|
|
|