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_CRANKSHAFT_HYDROGEN_H_ | 5 #ifndef V8_CRANKSHAFT_HYDROGEN_H_ |
6 #define V8_CRANKSHAFT_HYDROGEN_H_ | 6 #define V8_CRANKSHAFT_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/ast-type-bounds.h" | 10 #include "src/ast/ast-type-bounds.h" |
(...skipping 1783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1794 ElementsKind to_elements_kind, | 1794 ElementsKind to_elements_kind, |
1795 HValue* length, | 1795 HValue* length, |
1796 HValue* capacity); | 1796 HValue* capacity); |
1797 | 1797 |
1798 HValue* BuildElementIndexHash(HValue* index); | 1798 HValue* BuildElementIndexHash(HValue* index); |
1799 | 1799 |
1800 void BuildCreateAllocationMemento(HValue* previous_object, | 1800 void BuildCreateAllocationMemento(HValue* previous_object, |
1801 HValue* previous_object_size, | 1801 HValue* previous_object_size, |
1802 HValue* payload); | 1802 HValue* payload); |
1803 | 1803 |
1804 HInstruction* BuildConstantMapCheck(Handle<JSObject> constant); | 1804 HInstruction* BuildConstantMapCheck(Handle<JSObject> constant, |
| 1805 bool ensure_no_elements = false); |
1805 HInstruction* BuildCheckPrototypeMaps(Handle<JSObject> prototype, | 1806 HInstruction* BuildCheckPrototypeMaps(Handle<JSObject> prototype, |
1806 Handle<JSObject> holder); | 1807 Handle<JSObject> holder, |
| 1808 bool ensure_no_elements = false); |
1807 | 1809 |
1808 HInstruction* BuildGetNativeContext(HValue* closure); | 1810 HInstruction* BuildGetNativeContext(HValue* closure); |
1809 HInstruction* BuildGetNativeContext(); | 1811 HInstruction* BuildGetNativeContext(); |
1810 | 1812 |
1811 // Builds a loop version if |depth| is specified or unrolls the loop to | 1813 // Builds a loop version if |depth| is specified or unrolls the loop to |
1812 // |depth_value| iterations otherwise. | 1814 // |depth_value| iterations otherwise. |
1813 HValue* BuildGetParentContext(HValue* depth, int depth_value); | 1815 HValue* BuildGetParentContext(HValue* depth, int depth_value); |
1814 | 1816 |
1815 HInstruction* BuildGetArrayFunction(); | 1817 HInstruction* BuildGetArrayFunction(); |
1816 HValue* BuildArrayBufferViewFieldAccessor(HValue* object, | 1818 HValue* BuildArrayBufferViewFieldAccessor(HValue* object, |
(...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2370 bool TryInlineApiGetter(Handle<Object> function, Handle<Map> receiver_map, | 2372 bool TryInlineApiGetter(Handle<Object> function, Handle<Map> receiver_map, |
2371 BailoutId ast_id); | 2373 BailoutId ast_id); |
2372 bool TryInlineApiSetter(Handle<Object> function, Handle<Map> receiver_map, | 2374 bool TryInlineApiSetter(Handle<Object> function, Handle<Map> receiver_map, |
2373 BailoutId ast_id); | 2375 BailoutId ast_id); |
2374 bool TryInlineApiCall(Handle<Object> function, HValue* receiver, | 2376 bool TryInlineApiCall(Handle<Object> function, HValue* receiver, |
2375 SmallMapList* receiver_maps, int argc, BailoutId ast_id, | 2377 SmallMapList* receiver_maps, int argc, BailoutId ast_id, |
2376 ApiCallType call_type, | 2378 ApiCallType call_type, |
2377 TailCallMode syntactic_tail_call_mode); | 2379 TailCallMode syntactic_tail_call_mode); |
2378 static bool IsReadOnlyLengthDescriptor(Handle<Map> jsarray_map); | 2380 static bool IsReadOnlyLengthDescriptor(Handle<Map> jsarray_map); |
2379 static bool CanInlineArrayResizeOperation(Handle<Map> receiver_map); | 2381 static bool CanInlineArrayResizeOperation(Handle<Map> receiver_map); |
| 2382 static bool NoElementsInPrototypeChain(Handle<Map> receiver_map); |
2380 | 2383 |
2381 // If --trace-inlining, print a line of the inlining trace. Inlining | 2384 // If --trace-inlining, print a line of the inlining trace. Inlining |
2382 // succeeded if the reason string is NULL and failed if there is a | 2385 // succeeded if the reason string is NULL and failed if there is a |
2383 // non-NULL reason string. | 2386 // non-NULL reason string. |
2384 void TraceInline(Handle<JSFunction> target, Handle<JSFunction> caller, | 2387 void TraceInline(Handle<JSFunction> target, Handle<JSFunction> caller, |
2385 const char* failure_reason, | 2388 const char* failure_reason, |
2386 TailCallMode tail_call_mode = TailCallMode::kDisallow); | 2389 TailCallMode tail_call_mode = TailCallMode::kDisallow); |
2387 | 2390 |
2388 void HandleGlobalVariableAssignment(Variable* var, HValue* value, | 2391 void HandleGlobalVariableAssignment(Variable* var, HValue* value, |
2389 FeedbackVectorSlot slot, | 2392 FeedbackVectorSlot slot, |
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2979 } | 2982 } |
2980 | 2983 |
2981 private: | 2984 private: |
2982 HOptimizedGraphBuilder* builder_; | 2985 HOptimizedGraphBuilder* builder_; |
2983 }; | 2986 }; |
2984 | 2987 |
2985 } // namespace internal | 2988 } // namespace internal |
2986 } // namespace v8 | 2989 } // namespace v8 |
2987 | 2990 |
2988 #endif // V8_CRANKSHAFT_HYDROGEN_H_ | 2991 #endif // V8_CRANKSHAFT_HYDROGEN_H_ |
OLD | NEW |