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

Side by Side Diff: src/crankshaft/hydrogen.h

Issue 2593553002: [crankshaft] Ensure that we use inlined Array.prototype.shift only when there's no elements in the … (Closed)
Patch Set: Created 4 years 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 | « no previous file | src/crankshaft/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_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
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
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
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_
OLDNEW
« no previous file with comments | « no previous file | src/crankshaft/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698