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

Side by Side Diff: src/hydrogen.h

Issue 1266983002: VectorICs: Crankshaft adaptations to deal with vector store ics. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « src/compiler/js-generic-lowering.cc ('k') | src/hydrogen.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/v8.h" 8 #include "src/v8.h"
9 9
10 #include "src/accessors.h" 10 #include "src/accessors.h"
(...skipping 2435 matching lines...) Expand 10 before | Expand all | Expand 10 after
2446 static bool IsReadOnlyLengthDescriptor(Handle<Map> jsarray_map); 2446 static bool IsReadOnlyLengthDescriptor(Handle<Map> jsarray_map);
2447 static bool CanInlineArrayResizeOperation(Handle<Map> receiver_map); 2447 static bool CanInlineArrayResizeOperation(Handle<Map> receiver_map);
2448 2448
2449 // If --trace-inlining, print a line of the inlining trace. Inlining 2449 // If --trace-inlining, print a line of the inlining trace. Inlining
2450 // succeeded if the reason string is NULL and failed if there is a 2450 // succeeded if the reason string is NULL and failed if there is a
2451 // non-NULL reason string. 2451 // non-NULL reason string.
2452 void TraceInline(Handle<JSFunction> target, 2452 void TraceInline(Handle<JSFunction> target,
2453 Handle<JSFunction> caller, 2453 Handle<JSFunction> caller,
2454 const char* failure_reason); 2454 const char* failure_reason);
2455 2455
2456 void HandleGlobalVariableAssignment(Variable* var, 2456 void HandleGlobalVariableAssignment(Variable* var, HValue* value,
2457 HValue* value, 2457 FeedbackVectorICSlot ic_slot,
2458 BailoutId ast_id); 2458 BailoutId ast_id);
2459 2459
2460 void HandlePropertyAssignment(Assignment* expr); 2460 void HandlePropertyAssignment(Assignment* expr);
2461 void HandleCompoundAssignment(Assignment* expr); 2461 void HandleCompoundAssignment(Assignment* expr);
2462 void HandlePolymorphicNamedFieldAccess(PropertyAccessType access_type, 2462 void HandlePolymorphicNamedFieldAccess(
2463 Expression* expr, 2463 PropertyAccessType access_type, Expression* expr,
2464 BailoutId ast_id, 2464 FeedbackVectorICSlot slot, BailoutId ast_id, BailoutId return_id,
2465 BailoutId return_id, 2465 HValue* object, HValue* value, SmallMapList* types, Handle<String> name);
2466 HValue* object,
2467 HValue* value,
2468 SmallMapList* types,
2469 Handle<String> name);
2470 2466
2471 HValue* BuildAllocateExternalElements( 2467 HValue* BuildAllocateExternalElements(
2472 ExternalArrayType array_type, 2468 ExternalArrayType array_type,
2473 bool is_zero_byte_offset, 2469 bool is_zero_byte_offset,
2474 HValue* buffer, HValue* byte_offset, HValue* length); 2470 HValue* buffer, HValue* byte_offset, HValue* length);
2475 HValue* BuildAllocateFixedTypedArray(ExternalArrayType array_type, 2471 HValue* BuildAllocateFixedTypedArray(ExternalArrayType array_type,
2476 size_t element_size, 2472 size_t element_size,
2477 ElementsKind fixed_elements_kind, 2473 ElementsKind fixed_elements_kind,
2478 HValue* byte_length, HValue* length, 2474 HValue* byte_length, HValue* length,
2479 bool initialize); 2475 bool initialize);
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
2708 PropertyDetails details_; 2704 PropertyDetails details_;
2709 }; 2705 };
2710 2706
2711 HValue* BuildMonomorphicAccess(PropertyAccessInfo* info, HValue* object, 2707 HValue* BuildMonomorphicAccess(PropertyAccessInfo* info, HValue* object,
2712 HValue* checked_object, HValue* value, 2708 HValue* checked_object, HValue* value,
2713 BailoutId ast_id, BailoutId return_id, 2709 BailoutId ast_id, BailoutId return_id,
2714 bool can_inline_accessor = true); 2710 bool can_inline_accessor = true);
2715 2711
2716 HValue* BuildNamedAccess(PropertyAccessType access, BailoutId ast_id, 2712 HValue* BuildNamedAccess(PropertyAccessType access, BailoutId ast_id,
2717 BailoutId reutrn_id, Expression* expr, 2713 BailoutId reutrn_id, Expression* expr,
2718 HValue* object, Handle<String> name, HValue* value, 2714 FeedbackVectorICSlot slot, HValue* object,
2715 Handle<String> name, HValue* value,
2719 bool is_uninitialized = false); 2716 bool is_uninitialized = false);
2720 2717
2721 void HandlePolymorphicCallNamed(Call* expr, 2718 void HandlePolymorphicCallNamed(Call* expr,
2722 HValue* receiver, 2719 HValue* receiver,
2723 SmallMapList* types, 2720 SmallMapList* types,
2724 Handle<String> name); 2721 Handle<String> name);
2725 void HandleLiteralCompareTypeof(CompareOperation* expr, 2722 void HandleLiteralCompareTypeof(CompareOperation* expr,
2726 Expression* sub_expr, 2723 Expression* sub_expr,
2727 Handle<String> check); 2724 Handle<String> check);
2728 void HandleLiteralCompareNil(CompareOperation* expr, 2725 void HandleLiteralCompareNil(CompareOperation* expr,
(...skipping 15 matching lines...) Expand all
2744 HValue* index); 2741 HValue* index);
2745 2742
2746 HValue* BuildBinaryOperation( 2743 HValue* BuildBinaryOperation(
2747 BinaryOperation* expr, 2744 BinaryOperation* expr,
2748 HValue* left, 2745 HValue* left,
2749 HValue* right, 2746 HValue* right,
2750 PushBeforeSimulateBehavior push_sim_result); 2747 PushBeforeSimulateBehavior push_sim_result);
2751 HInstruction* BuildIncrement(bool returns_original_input, 2748 HInstruction* BuildIncrement(bool returns_original_input,
2752 CountOperation* expr); 2749 CountOperation* expr);
2753 HInstruction* BuildKeyedGeneric(PropertyAccessType access_type, 2750 HInstruction* BuildKeyedGeneric(PropertyAccessType access_type,
2754 Expression* expr, 2751 Expression* expr, FeedbackVectorICSlot slot,
2755 HValue* object, 2752 HValue* object, HValue* key, HValue* value);
2756 HValue* key,
2757 HValue* value);
2758 2753
2759 HInstruction* TryBuildConsolidatedElementLoad(HValue* object, 2754 HInstruction* TryBuildConsolidatedElementLoad(HValue* object,
2760 HValue* key, 2755 HValue* key,
2761 HValue* val, 2756 HValue* val,
2762 SmallMapList* maps); 2757 SmallMapList* maps);
2763 2758
2764 LoadKeyedHoleMode BuildKeyedHoleMode(Handle<Map> map); 2759 LoadKeyedHoleMode BuildKeyedHoleMode(Handle<Map> map);
2765 2760
2766 HInstruction* BuildMonomorphicElementAccess(HValue* object, 2761 HInstruction* BuildMonomorphicElementAccess(HValue* object,
2767 HValue* key, 2762 HValue* key,
2768 HValue* val, 2763 HValue* val,
2769 HValue* dependency, 2764 HValue* dependency,
2770 Handle<Map> map, 2765 Handle<Map> map,
2771 PropertyAccessType access_type, 2766 PropertyAccessType access_type,
2772 KeyedAccessStoreMode store_mode); 2767 KeyedAccessStoreMode store_mode);
2773 2768
2774 HValue* HandlePolymorphicElementAccess(Expression* expr, 2769 HValue* HandlePolymorphicElementAccess(
2775 HValue* object, 2770 Expression* expr, FeedbackVectorICSlot slot, HValue* object, HValue* key,
2776 HValue* key, 2771 HValue* val, SmallMapList* maps, PropertyAccessType access_type,
2777 HValue* val, 2772 KeyedAccessStoreMode store_mode, bool* has_side_effects);
2778 SmallMapList* maps,
2779 PropertyAccessType access_type,
2780 KeyedAccessStoreMode store_mode,
2781 bool* has_side_effects);
2782 2773
2783 HValue* HandleKeyedElementAccess(HValue* obj, HValue* key, HValue* val, 2774 HValue* HandleKeyedElementAccess(HValue* obj, HValue* key, HValue* val,
2784 Expression* expr, BailoutId ast_id, 2775 Expression* expr, FeedbackVectorICSlot slot,
2785 BailoutId return_id, 2776 BailoutId ast_id, BailoutId return_id,
2786 PropertyAccessType access_type, 2777 PropertyAccessType access_type,
2787 bool* has_side_effects); 2778 bool* has_side_effects);
2788 2779
2789 HInstruction* BuildNamedGeneric(PropertyAccessType access, Expression* expr, 2780 HInstruction* BuildNamedGeneric(PropertyAccessType access, Expression* expr,
2790 HValue* object, Handle<String> name, 2781 FeedbackVectorICSlot slot, HValue* object,
2791 HValue* value, bool is_uninitialized = false); 2782 Handle<Name> name, HValue* value,
2783 bool is_uninitialized = false);
2792 2784
2793 HCheckMaps* AddCheckMap(HValue* object, Handle<Map> map); 2785 HCheckMaps* AddCheckMap(HValue* object, Handle<Map> map);
2794 2786
2795 void BuildLoad(Property* property, 2787 void BuildLoad(Property* property,
2796 BailoutId ast_id); 2788 BailoutId ast_id);
2797 void PushLoad(Property* property, 2789 void PushLoad(Property* property,
2798 HValue* object, 2790 HValue* object,
2799 HValue* key); 2791 HValue* key);
2800 2792
2801 void BuildStoreForEffect(Expression* expression, 2793 void BuildStoreForEffect(Expression* expression, Property* prop,
2802 Property* prop, 2794 FeedbackVectorICSlot slot, BailoutId ast_id,
2803 BailoutId ast_id, 2795 BailoutId return_id, HValue* object, HValue* key,
2804 BailoutId return_id,
2805 HValue* object,
2806 HValue* key,
2807 HValue* value); 2796 HValue* value);
2808 2797
2809 void BuildStore(Expression* expression, 2798 void BuildStore(Expression* expression, Property* prop,
2810 Property* prop, 2799 FeedbackVectorICSlot slot, BailoutId ast_id,
2811 BailoutId ast_id, 2800 BailoutId return_id, bool is_uninitialized = false);
2812 BailoutId return_id,
2813 bool is_uninitialized = false);
2814 2801
2815 HInstruction* BuildLoadNamedField(PropertyAccessInfo* info, 2802 HInstruction* BuildLoadNamedField(PropertyAccessInfo* info,
2816 HValue* checked_object); 2803 HValue* checked_object);
2817 HInstruction* BuildStoreNamedField(PropertyAccessInfo* info, 2804 HInstruction* BuildStoreNamedField(PropertyAccessInfo* info,
2818 HValue* checked_object, 2805 HValue* checked_object,
2819 HValue* value); 2806 HValue* value);
2820 2807
2821 HValue* BuildContextChainWalk(Variable* var); 2808 HValue* BuildContextChainWalk(Variable* var);
2822 2809
2823 HInstruction* BuildThisFunction(); 2810 HInstruction* BuildThisFunction();
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
3055 } 3042 }
3056 3043
3057 private: 3044 private:
3058 HGraphBuilder* builder_; 3045 HGraphBuilder* builder_;
3059 }; 3046 };
3060 3047
3061 3048
3062 } } // namespace v8::internal 3049 } } // namespace v8::internal
3063 3050
3064 #endif // V8_HYDROGEN_H_ 3051 #endif // V8_HYDROGEN_H_
OLDNEW
« no previous file with comments | « src/compiler/js-generic-lowering.cc ('k') | src/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698