Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(457)

Side by Side Diff: src/type-feedback-vector.h

Issue 2337123003: [turbofan] Collect invocation counts and compute relative call frequencies. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_TYPE_FEEDBACK_VECTOR_H_ 5 #ifndef V8_TYPE_FEEDBACK_VECTOR_H_
6 #define V8_TYPE_FEEDBACK_VECTOR_H_ 6 #define V8_TYPE_FEEDBACK_VECTOR_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "src/base/logging.h" 10 #include "src/base/logging.h"
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 215
216 typedef BitSetComputer<FeedbackVectorSlotKind, kFeedbackVectorSlotKindBits, 216 typedef BitSetComputer<FeedbackVectorSlotKind, kFeedbackVectorSlotKindBits,
217 kSmiValueSize, uint32_t> VectorICComputer; 217 kSmiValueSize, uint32_t> VectorICComputer;
218 218
219 DISALLOW_IMPLICIT_CONSTRUCTORS(TypeFeedbackMetadata); 219 DISALLOW_IMPLICIT_CONSTRUCTORS(TypeFeedbackMetadata);
220 }; 220 };
221 221
222 222
223 // The shape of the TypeFeedbackVector is an array with: 223 // The shape of the TypeFeedbackVector is an array with:
224 // 0: feedback metadata 224 // 0: feedback metadata
225 // 1: feedback slot #0 225 // 1: invocation count
226 // 2: feedback slot #0
226 // ... 227 // ...
227 // 1 + slot_count - 1: feedback slot #(slot_count-1) 228 // 2 + slot_count - 1: feedback slot #(slot_count-1)
228 // 229 //
229 class TypeFeedbackVector : public FixedArray { 230 class TypeFeedbackVector : public FixedArray {
230 public: 231 public:
231 // Casting. 232 // Casting.
232 static inline TypeFeedbackVector* cast(Object* obj); 233 static inline TypeFeedbackVector* cast(Object* obj);
233 234
234 static const int kMetadataIndex = 0; 235 static const int kMetadataIndex = 0;
235 static const int kReservedIndexCount = 1; 236 static const int kInvocationCountIndex = 1;
237 static const int kReservedIndexCount = 2;
236 238
237 inline void ComputeCounts(int* with_type_info, int* generic); 239 inline void ComputeCounts(int* with_type_info, int* generic);
238 240
239 inline bool is_empty() const; 241 inline bool is_empty() const;
240 242
241 // Returns number of slots in the vector. 243 // Returns number of slots in the vector.
242 inline int slot_count() const; 244 inline int slot_count() const;
243 245
244 inline TypeFeedbackMetadata* metadata() const; 246 inline TypeFeedbackMetadata* metadata() const;
247 inline int invocation_count() const;
245 248
246 // Conversion from a slot to an integer index to the underlying array. 249 // Conversion from a slot to an integer index to the underlying array.
247 static int GetIndex(FeedbackVectorSlot slot) { 250 static int GetIndex(FeedbackVectorSlot slot) {
248 return kReservedIndexCount + slot.ToInt(); 251 return kReservedIndexCount + slot.ToInt();
249 } 252 }
250 static int GetIndexFromSpec(const FeedbackVectorSpec* spec, 253 static int GetIndexFromSpec(const FeedbackVectorSpec* spec,
251 FeedbackVectorSlot slot); 254 FeedbackVectorSlot slot);
252 255
253 // Conversion from an integer index to the underlying array to a slot. 256 // Conversion from an integer index to the underlying array to a slot.
254 static inline FeedbackVectorSlot ToSlot(int index); 257 static inline FeedbackVectorSlot ToSlot(int index);
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
626 KeyedAccessStoreMode GetKeyedAccessStoreMode() const; 629 KeyedAccessStoreMode GetKeyedAccessStoreMode() const;
627 IcCheckType GetKeyType() const; 630 IcCheckType GetKeyType() const;
628 631
629 InlineCacheState StateFromFeedback() const override; 632 InlineCacheState StateFromFeedback() const override;
630 Name* FindFirstName() const override; 633 Name* FindFirstName() const override;
631 }; 634 };
632 } // namespace internal 635 } // namespace internal
633 } // namespace v8 636 } // namespace v8
634 637
635 #endif // V8_TRANSITIONS_H_ 638 #endif // V8_TRANSITIONS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698