OLD | NEW |
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 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 | 257 |
258 DECLARE_PRINTER(TypeFeedbackVector) | 258 DECLARE_PRINTER(TypeFeedbackVector) |
259 | 259 |
260 // Clears the vector slots. | 260 // Clears the vector slots. |
261 void ClearSlots(SharedFunctionInfo* shared) { ClearSlotsImpl(shared, true); } | 261 void ClearSlots(SharedFunctionInfo* shared) { ClearSlotsImpl(shared, true); } |
262 | 262 |
263 void ClearSlotsAtGCTime(SharedFunctionInfo* shared) { | 263 void ClearSlotsAtGCTime(SharedFunctionInfo* shared) { |
264 ClearSlotsImpl(shared, false); | 264 ClearSlotsImpl(shared, false); |
265 } | 265 } |
266 | 266 |
267 static void ClearAllKeyedStoreICs(Isolate* isolate); | |
268 void ClearKeyedStoreICs(SharedFunctionInfo* shared); | |
269 | |
270 // The object that indicates an uninitialized cache. | 267 // The object that indicates an uninitialized cache. |
271 static inline Handle<Symbol> UninitializedSentinel(Isolate* isolate); | 268 static inline Handle<Symbol> UninitializedSentinel(Isolate* isolate); |
272 | 269 |
273 // The object that indicates a megamorphic state. | 270 // The object that indicates a megamorphic state. |
274 static inline Handle<Symbol> MegamorphicSentinel(Isolate* isolate); | 271 static inline Handle<Symbol> MegamorphicSentinel(Isolate* isolate); |
275 | 272 |
276 // The object that indicates a premonomorphic state. | 273 // The object that indicates a premonomorphic state. |
277 static inline Handle<Symbol> PremonomorphicSentinel(Isolate* isolate); | 274 static inline Handle<Symbol> PremonomorphicSentinel(Isolate* isolate); |
278 | 275 |
279 // A raw version of the uninitialized sentinel that's safe to read during | 276 // A raw version of the uninitialized sentinel that's safe to read during |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
599 void Clear(Code* host); | 596 void Clear(Code* host); |
600 | 597 |
601 // name can be a null handle for element loads. | 598 // name can be a null handle for element loads. |
602 void ConfigureMonomorphic(Handle<Name> name, Handle<Map> receiver_map, | 599 void ConfigureMonomorphic(Handle<Name> name, Handle<Map> receiver_map, |
603 Handle<Object> handler); | 600 Handle<Object> handler); |
604 // name can be null. | 601 // name can be null. |
605 void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps, | 602 void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps, |
606 List<Handle<Object>>* handlers); | 603 List<Handle<Object>>* handlers); |
607 void ConfigurePolymorphic(MapHandleList* maps, | 604 void ConfigurePolymorphic(MapHandleList* maps, |
608 MapHandleList* transitioned_maps, | 605 MapHandleList* transitioned_maps, |
609 CodeHandleList* handlers); | 606 List<Handle<Object>>* handlers); |
610 void ConfigureMegamorphicKeyed(IcCheckType property_type); | 607 void ConfigureMegamorphicKeyed(IcCheckType property_type); |
611 | 608 |
612 KeyedAccessStoreMode GetKeyedAccessStoreMode() const; | 609 KeyedAccessStoreMode GetKeyedAccessStoreMode() const; |
613 IcCheckType GetKeyType() const; | 610 IcCheckType GetKeyType() const; |
614 | 611 |
615 InlineCacheState StateFromFeedback() const override; | 612 InlineCacheState StateFromFeedback() const override; |
616 Name* FindFirstName() const override; | 613 Name* FindFirstName() const override; |
617 }; | 614 }; |
618 | 615 |
619 class BinaryOpICNexus final : public FeedbackNexus { | 616 class BinaryOpICNexus final : public FeedbackNexus { |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
678 } | 675 } |
679 }; | 676 }; |
680 | 677 |
681 inline BinaryOperationHint BinaryOperationHintFromFeedback(int type_feedback); | 678 inline BinaryOperationHint BinaryOperationHintFromFeedback(int type_feedback); |
682 inline CompareOperationHint CompareOperationHintFromFeedback(int type_feedback); | 679 inline CompareOperationHint CompareOperationHintFromFeedback(int type_feedback); |
683 | 680 |
684 } // namespace internal | 681 } // namespace internal |
685 } // namespace v8 | 682 } // namespace v8 |
686 | 683 |
687 #endif // V8_TRANSITIONS_H_ | 684 #endif // V8_TRANSITIONS_H_ |
OLD | NEW |