Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index c7725788e803c8b71b5f77cd5de678050530377c..7a1ae26bd6e874307accd856d1f905ed32204ab6 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -5497,6 +5497,8 @@ 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); |
@@ -6692,8 +6694,6 @@ 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); |
@@ -6802,12 +6802,6 @@ 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 |
@@ -7088,10 +7082,8 @@ 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 kFeedbackVectorOffset = |
- kInferredNameOffset + kPointerSize; |
static const int kInitialMapOffset = |
- kFeedbackVectorOffset + kPointerSize; |
+ kInferredNameOffset + kPointerSize; |
// ast_node_count is a Smi field. It could be grouped with another Smi field |
// into a PSEUDO_SMI_ACCESSORS pair (on x64), if one becomes available. |
static const int kAstNodeCountOffset = |
@@ -8177,6 +8169,8 @@ 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); |
// Dispatched behavior. |
@@ -8185,9 +8179,10 @@ class TypeFeedbackInfo: public Struct { |
static const int kStorage1Offset = HeapObject::kHeaderSize; |
static const int kStorage2Offset = kStorage1Offset + kPointerSize; |
- static const int kSize = kStorage2Offset + kPointerSize; |
+ static const int kFeedbackVectorOffset = |
+ kStorage2Offset + kPointerSize; |
+ static const int kSize = kFeedbackVectorOffset + 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); |
@@ -8203,6 +8198,9 @@ 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; |