| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 5d96c2fbfc914be07b180f6def5ef916d9b39c3d..5b0a1c70ae174267dac8b78706664829af3517b8 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -5733,8 +5733,6 @@ class Code: public HeapObject {
|
| void ClearInlineCaches();
|
| void ClearInlineCaches(Kind kind);
|
|
|
| - void ClearTypeFeedbackInfo(Heap* heap);
|
| -
|
| BailoutId TranslatePcOffsetToAstId(uint32_t pc_offset);
|
| uint32_t TranslateAstIdToPcOffset(BailoutId ast_id);
|
|
|
| @@ -6998,6 +6996,8 @@ class SharedFunctionInfo: public HeapObject {
|
| // Removed a specific optimized code object from the optimized code map.
|
| void EvictFromOptimizedCodeMap(Code* optimized_code, const char* reason);
|
|
|
| + void ClearTypeFeedbackInfo(Heap* heap);
|
| +
|
| // Trims the optimized code map after entries have been removed.
|
| void TrimOptimizedCodeMap(int shrink_by);
|
|
|
| @@ -7102,6 +7102,12 @@ class SharedFunctionInfo: public HeapObject {
|
| inline int construction_count();
|
| inline void set_construction_count(int value);
|
|
|
| + // [feedback_vector] - accumulates ast node feedback from full-codegen and
|
| + // (increasingly) from crankshafted code where sufficient feedback isn't
|
| + // available. Currently the field is duplicated in
|
| + // TypeFeedbackInfo::feedback_vector, but the allocation is done here.
|
| + DECL_ACCESSORS(feedback_vector, FixedArray)
|
| +
|
| // [initial_map]: initial map of the first function called as a constructor.
|
| // Saved for the duration of the tracking phase.
|
| // This is a weak link (GC resets it to undefined_value if no other live
|
| @@ -7383,8 +7389,10 @@ class SharedFunctionInfo: public HeapObject {
|
| static const int kScriptOffset = kFunctionDataOffset + kPointerSize;
|
| static const int kDebugInfoOffset = kScriptOffset + kPointerSize;
|
| static const int kInferredNameOffset = kDebugInfoOffset + kPointerSize;
|
| - static const int kInitialMapOffset =
|
| + static const int kFeedbackVectorOffset =
|
| kInferredNameOffset + kPointerSize;
|
| + static const int kInitialMapOffset =
|
| + kFeedbackVectorOffset + kPointerSize;
|
| #if V8_HOST_ARCH_32_BIT
|
| // Smi fields.
|
| static const int kLengthOffset =
|
| @@ -8464,7 +8472,6 @@ class TypeFeedbackInfo: public Struct {
|
| inline void set_inlined_type_change_checksum(int checksum);
|
| inline bool matches_inlined_type_change_checksum(int checksum);
|
|
|
| - DECL_ACCESSORS(feedback_vector, FixedArray)
|
|
|
| static inline TypeFeedbackInfo* cast(Object* obj);
|
|
|
| @@ -8474,10 +8481,9 @@ class TypeFeedbackInfo: public Struct {
|
|
|
| static const int kStorage1Offset = HeapObject::kHeaderSize;
|
| static const int kStorage2Offset = kStorage1Offset + kPointerSize;
|
| - static const int kFeedbackVectorOffset =
|
| - kStorage2Offset + kPointerSize;
|
| - static const int kSize = kFeedbackVectorOffset + kPointerSize;
|
| + static const int kSize = kStorage2Offset + kPointerSize;
|
|
|
| + // TODO(mvstanton): move these sentinel declarations to shared function info.
|
| // The object that indicates an uninitialized cache.
|
| static inline Handle<Object> UninitializedSentinel(Isolate* isolate);
|
|
|
| @@ -8493,9 +8499,6 @@ class TypeFeedbackInfo: public Struct {
|
| // 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;
|
|
|
|
|