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.h" | 10 #include "src/ast/ast.h" |
(...skipping 1772 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1783 FILL_WITH_HOLE | 1783 FILL_WITH_HOLE |
1784 }; | 1784 }; |
1785 | 1785 |
1786 ElementsKind kind() { return kind_; } | 1786 ElementsKind kind() { return kind_; } |
1787 HAllocate* elements_location() { return elements_location_; } | 1787 HAllocate* elements_location() { return elements_location_; } |
1788 | 1788 |
1789 HAllocate* AllocateEmptyArray(); | 1789 HAllocate* AllocateEmptyArray(); |
1790 HAllocate* AllocateArray(HValue* capacity, | 1790 HAllocate* AllocateArray(HValue* capacity, |
1791 HValue* length_field, | 1791 HValue* length_field, |
1792 FillMode fill_mode = FILL_WITH_HOLE); | 1792 FillMode fill_mode = FILL_WITH_HOLE); |
1793 // Use these allocators when capacity could be unknown at compile time | |
1794 // but its limit is known. For constant |capacity| the value of | |
1795 // |capacity_upper_bound| is ignored and the actual |capacity| | |
1796 // value is used as an upper bound. | |
1797 HAllocate* AllocateArray(HValue* capacity, | |
1798 int capacity_upper_bound, | |
1799 HValue* length_field, | |
1800 FillMode fill_mode = FILL_WITH_HOLE); | |
1801 HAllocate* AllocateArray(HValue* capacity, | |
1802 HConstant* capacity_upper_bound, | |
1803 HValue* length_field, | |
1804 FillMode fill_mode = FILL_WITH_HOLE); | |
1805 HValue* GetElementsLocation() { return elements_location_; } | 1793 HValue* GetElementsLocation() { return elements_location_; } |
1806 HValue* EmitMapCode(); | 1794 HValue* EmitMapCode(); |
1807 | 1795 |
1808 private: | 1796 private: |
1809 Zone* zone() const { return builder_->zone(); } | 1797 Zone* zone() const { return builder_->zone(); } |
1810 int elements_size() const { | 1798 int elements_size() const { |
1811 return IsFastDoubleElementsKind(kind_) ? kDoubleSize : kPointerSize; | 1799 return IsFastDoubleElementsKind(kind_) ? kDoubleSize : kPointerSize; |
1812 } | 1800 } |
1813 HGraphBuilder* builder() { return builder_; } | 1801 HGraphBuilder* builder() { return builder_; } |
1814 HGraph* graph() { return builder_->graph(); } | 1802 HGraph* graph() { return builder_->graph(); } |
(...skipping 1299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3114 } | 3102 } |
3115 | 3103 |
3116 private: | 3104 private: |
3117 HOptimizedGraphBuilder* builder_; | 3105 HOptimizedGraphBuilder* builder_; |
3118 }; | 3106 }; |
3119 | 3107 |
3120 } // namespace internal | 3108 } // namespace internal |
3121 } // namespace v8 | 3109 } // namespace v8 |
3122 | 3110 |
3123 #endif // V8_CRANKSHAFT_HYDROGEN_H_ | 3111 #endif // V8_CRANKSHAFT_HYDROGEN_H_ |
OLD | NEW |