| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_HYDROGEN_H_ | 5 #ifndef V8_HYDROGEN_H_ |
| 6 #define V8_HYDROGEN_H_ | 6 #define V8_HYDROGEN_H_ |
| 7 | 7 |
| 8 #include "src/accessors.h" | 8 #include "src/accessors.h" |
| 9 #include "src/allocation.h" | 9 #include "src/allocation.h" |
| 10 #include "src/ast.h" | 10 #include "src/ast.h" |
| (...skipping 2465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2476 static bool CanInlineArrayResizeOperation(Handle<Map> receiver_map); | 2476 static bool CanInlineArrayResizeOperation(Handle<Map> receiver_map); |
| 2477 | 2477 |
| 2478 // If --trace-inlining, print a line of the inlining trace. Inlining | 2478 // If --trace-inlining, print a line of the inlining trace. Inlining |
| 2479 // succeeded if the reason string is NULL and failed if there is a | 2479 // succeeded if the reason string is NULL and failed if there is a |
| 2480 // non-NULL reason string. | 2480 // non-NULL reason string. |
| 2481 void TraceInline(Handle<JSFunction> target, | 2481 void TraceInline(Handle<JSFunction> target, |
| 2482 Handle<JSFunction> caller, | 2482 Handle<JSFunction> caller, |
| 2483 const char* failure_reason); | 2483 const char* failure_reason); |
| 2484 | 2484 |
| 2485 void HandleGlobalVariableAssignment(Variable* var, HValue* value, | 2485 void HandleGlobalVariableAssignment(Variable* var, HValue* value, |
| 2486 FeedbackVectorICSlot ic_slot, | 2486 FeedbackVectorSlot slot, |
| 2487 BailoutId ast_id); | 2487 BailoutId ast_id); |
| 2488 | 2488 |
| 2489 void HandlePropertyAssignment(Assignment* expr); | 2489 void HandlePropertyAssignment(Assignment* expr); |
| 2490 void HandleCompoundAssignment(Assignment* expr); | 2490 void HandleCompoundAssignment(Assignment* expr); |
| 2491 void HandlePolymorphicNamedFieldAccess( | 2491 void HandlePolymorphicNamedFieldAccess( |
| 2492 PropertyAccessType access_type, Expression* expr, | 2492 PropertyAccessType access_type, Expression* expr, FeedbackVectorSlot slot, |
| 2493 FeedbackVectorICSlot slot, BailoutId ast_id, BailoutId return_id, | 2493 BailoutId ast_id, BailoutId return_id, HValue* object, HValue* value, |
| 2494 HValue* object, HValue* value, SmallMapList* types, Handle<String> name); | 2494 SmallMapList* types, Handle<String> name); |
| 2495 | 2495 |
| 2496 HValue* BuildAllocateExternalElements( | 2496 HValue* BuildAllocateExternalElements( |
| 2497 ExternalArrayType array_type, | 2497 ExternalArrayType array_type, |
| 2498 bool is_zero_byte_offset, | 2498 bool is_zero_byte_offset, |
| 2499 HValue* buffer, HValue* byte_offset, HValue* length); | 2499 HValue* buffer, HValue* byte_offset, HValue* length); |
| 2500 HValue* BuildAllocateFixedTypedArray(ExternalArrayType array_type, | 2500 HValue* BuildAllocateFixedTypedArray(ExternalArrayType array_type, |
| 2501 size_t element_size, | 2501 size_t element_size, |
| 2502 ElementsKind fixed_elements_kind, | 2502 ElementsKind fixed_elements_kind, |
| 2503 HValue* byte_length, HValue* length, | 2503 HValue* byte_length, HValue* length, |
| 2504 bool initialize); | 2504 bool initialize); |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2733 PropertyDetails details_; | 2733 PropertyDetails details_; |
| 2734 }; | 2734 }; |
| 2735 | 2735 |
| 2736 HValue* BuildMonomorphicAccess(PropertyAccessInfo* info, HValue* object, | 2736 HValue* BuildMonomorphicAccess(PropertyAccessInfo* info, HValue* object, |
| 2737 HValue* checked_object, HValue* value, | 2737 HValue* checked_object, HValue* value, |
| 2738 BailoutId ast_id, BailoutId return_id, | 2738 BailoutId ast_id, BailoutId return_id, |
| 2739 bool can_inline_accessor = true); | 2739 bool can_inline_accessor = true); |
| 2740 | 2740 |
| 2741 HValue* BuildNamedAccess(PropertyAccessType access, BailoutId ast_id, | 2741 HValue* BuildNamedAccess(PropertyAccessType access, BailoutId ast_id, |
| 2742 BailoutId reutrn_id, Expression* expr, | 2742 BailoutId reutrn_id, Expression* expr, |
| 2743 FeedbackVectorICSlot slot, HValue* object, | 2743 FeedbackVectorSlot slot, HValue* object, |
| 2744 Handle<String> name, HValue* value, | 2744 Handle<String> name, HValue* value, |
| 2745 bool is_uninitialized = false); | 2745 bool is_uninitialized = false); |
| 2746 | 2746 |
| 2747 void HandlePolymorphicCallNamed(Call* expr, | 2747 void HandlePolymorphicCallNamed(Call* expr, |
| 2748 HValue* receiver, | 2748 HValue* receiver, |
| 2749 SmallMapList* types, | 2749 SmallMapList* types, |
| 2750 Handle<String> name); | 2750 Handle<String> name); |
| 2751 void HandleLiteralCompareTypeof(CompareOperation* expr, | 2751 void HandleLiteralCompareTypeof(CompareOperation* expr, |
| 2752 Expression* sub_expr, | 2752 Expression* sub_expr, |
| 2753 Handle<String> check); | 2753 Handle<String> check); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 2770 HValue* index); | 2770 HValue* index); |
| 2771 | 2771 |
| 2772 HValue* BuildBinaryOperation( | 2772 HValue* BuildBinaryOperation( |
| 2773 BinaryOperation* expr, | 2773 BinaryOperation* expr, |
| 2774 HValue* left, | 2774 HValue* left, |
| 2775 HValue* right, | 2775 HValue* right, |
| 2776 PushBeforeSimulateBehavior push_sim_result); | 2776 PushBeforeSimulateBehavior push_sim_result); |
| 2777 HInstruction* BuildIncrement(bool returns_original_input, | 2777 HInstruction* BuildIncrement(bool returns_original_input, |
| 2778 CountOperation* expr); | 2778 CountOperation* expr); |
| 2779 HInstruction* BuildKeyedGeneric(PropertyAccessType access_type, | 2779 HInstruction* BuildKeyedGeneric(PropertyAccessType access_type, |
| 2780 Expression* expr, FeedbackVectorICSlot slot, | 2780 Expression* expr, FeedbackVectorSlot slot, |
| 2781 HValue* object, HValue* key, HValue* value); | 2781 HValue* object, HValue* key, HValue* value); |
| 2782 | 2782 |
| 2783 HInstruction* TryBuildConsolidatedElementLoad(HValue* object, | 2783 HInstruction* TryBuildConsolidatedElementLoad(HValue* object, |
| 2784 HValue* key, | 2784 HValue* key, |
| 2785 HValue* val, | 2785 HValue* val, |
| 2786 SmallMapList* maps); | 2786 SmallMapList* maps); |
| 2787 | 2787 |
| 2788 LoadKeyedHoleMode BuildKeyedHoleMode(Handle<Map> map); | 2788 LoadKeyedHoleMode BuildKeyedHoleMode(Handle<Map> map); |
| 2789 | 2789 |
| 2790 HInstruction* BuildMonomorphicElementAccess(HValue* object, | 2790 HInstruction* BuildMonomorphicElementAccess(HValue* object, |
| 2791 HValue* key, | 2791 HValue* key, |
| 2792 HValue* val, | 2792 HValue* val, |
| 2793 HValue* dependency, | 2793 HValue* dependency, |
| 2794 Handle<Map> map, | 2794 Handle<Map> map, |
| 2795 PropertyAccessType access_type, | 2795 PropertyAccessType access_type, |
| 2796 KeyedAccessStoreMode store_mode); | 2796 KeyedAccessStoreMode store_mode); |
| 2797 | 2797 |
| 2798 HValue* HandlePolymorphicElementAccess( | 2798 HValue* HandlePolymorphicElementAccess( |
| 2799 Expression* expr, FeedbackVectorICSlot slot, HValue* object, HValue* key, | 2799 Expression* expr, FeedbackVectorSlot slot, HValue* object, HValue* key, |
| 2800 HValue* val, SmallMapList* maps, PropertyAccessType access_type, | 2800 HValue* val, SmallMapList* maps, PropertyAccessType access_type, |
| 2801 KeyedAccessStoreMode store_mode, bool* has_side_effects); | 2801 KeyedAccessStoreMode store_mode, bool* has_side_effects); |
| 2802 | 2802 |
| 2803 HValue* HandleKeyedElementAccess(HValue* obj, HValue* key, HValue* val, | 2803 HValue* HandleKeyedElementAccess(HValue* obj, HValue* key, HValue* val, |
| 2804 Expression* expr, FeedbackVectorICSlot slot, | 2804 Expression* expr, FeedbackVectorSlot slot, |
| 2805 BailoutId ast_id, BailoutId return_id, | 2805 BailoutId ast_id, BailoutId return_id, |
| 2806 PropertyAccessType access_type, | 2806 PropertyAccessType access_type, |
| 2807 bool* has_side_effects); | 2807 bool* has_side_effects); |
| 2808 | 2808 |
| 2809 HInstruction* BuildNamedGeneric(PropertyAccessType access, Expression* expr, | 2809 HInstruction* BuildNamedGeneric(PropertyAccessType access, Expression* expr, |
| 2810 FeedbackVectorICSlot slot, HValue* object, | 2810 FeedbackVectorSlot slot, HValue* object, |
| 2811 Handle<Name> name, HValue* value, | 2811 Handle<Name> name, HValue* value, |
| 2812 bool is_uninitialized = false); | 2812 bool is_uninitialized = false); |
| 2813 | 2813 |
| 2814 HCheckMaps* AddCheckMap(HValue* object, Handle<Map> map); | 2814 HCheckMaps* AddCheckMap(HValue* object, Handle<Map> map); |
| 2815 | 2815 |
| 2816 void BuildLoad(Property* property, | 2816 void BuildLoad(Property* property, |
| 2817 BailoutId ast_id); | 2817 BailoutId ast_id); |
| 2818 void PushLoad(Property* property, | 2818 void PushLoad(Property* property, |
| 2819 HValue* object, | 2819 HValue* object, |
| 2820 HValue* key); | 2820 HValue* key); |
| 2821 | 2821 |
| 2822 void BuildStoreForEffect(Expression* expression, Property* prop, | 2822 void BuildStoreForEffect(Expression* expression, Property* prop, |
| 2823 FeedbackVectorICSlot slot, BailoutId ast_id, | 2823 FeedbackVectorSlot slot, BailoutId ast_id, |
| 2824 BailoutId return_id, HValue* object, HValue* key, | 2824 BailoutId return_id, HValue* object, HValue* key, |
| 2825 HValue* value); | 2825 HValue* value); |
| 2826 | 2826 |
| 2827 void BuildStore(Expression* expression, Property* prop, | 2827 void BuildStore(Expression* expression, Property* prop, |
| 2828 FeedbackVectorICSlot slot, BailoutId ast_id, | 2828 FeedbackVectorSlot slot, BailoutId ast_id, |
| 2829 BailoutId return_id, bool is_uninitialized = false); | 2829 BailoutId return_id, bool is_uninitialized = false); |
| 2830 | 2830 |
| 2831 HInstruction* BuildLoadNamedField(PropertyAccessInfo* info, | 2831 HInstruction* BuildLoadNamedField(PropertyAccessInfo* info, |
| 2832 HValue* checked_object); | 2832 HValue* checked_object); |
| 2833 HInstruction* BuildStoreNamedField(PropertyAccessInfo* info, | 2833 HInstruction* BuildStoreNamedField(PropertyAccessInfo* info, |
| 2834 HValue* checked_object, | 2834 HValue* checked_object, |
| 2835 HValue* value); | 2835 HValue* value); |
| 2836 | 2836 |
| 2837 HValue* BuildContextChainWalk(Variable* var); | 2837 HValue* BuildContextChainWalk(Variable* var); |
| 2838 | 2838 |
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3070 | 3070 |
| 3071 private: | 3071 private: |
| 3072 HGraphBuilder* builder_; | 3072 HGraphBuilder* builder_; |
| 3073 }; | 3073 }; |
| 3074 | 3074 |
| 3075 | 3075 |
| 3076 } // namespace internal | 3076 } // namespace internal |
| 3077 } // namespace v8 | 3077 } // namespace v8 |
| 3078 | 3078 |
| 3079 #endif // V8_HYDROGEN_H_ | 3079 #endif // V8_HYDROGEN_H_ |
| OLD | NEW |