| 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 |