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 2097 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2108 static const int kMaxLoadPolymorphism = 4; | 2108 static const int kMaxLoadPolymorphism = 4; |
2109 static const int kMaxStorePolymorphism = 4; | 2109 static const int kMaxStorePolymorphism = 4; |
2110 | 2110 |
2111 // Even in the 'unlimited' case we have to have some limit in order not to | 2111 // Even in the 'unlimited' case we have to have some limit in order not to |
2112 // overflow the stack. | 2112 // overflow the stack. |
2113 static const int kUnlimitedMaxInlinedSourceSize = 100000; | 2113 static const int kUnlimitedMaxInlinedSourceSize = 100000; |
2114 static const int kUnlimitedMaxInlinedNodes = 10000; | 2114 static const int kUnlimitedMaxInlinedNodes = 10000; |
2115 static const int kUnlimitedMaxInlinedNodesCumulative = 10000; | 2115 static const int kUnlimitedMaxInlinedNodesCumulative = 10000; |
2116 | 2116 |
2117 // Maximum depth and total number of elements and properties for literal | 2117 // Maximum depth and total number of elements and properties for literal |
2118 // graphs to be considered for fast deep-copying. | 2118 // graphs to be considered for fast deep-copying. The limit is chosen to |
| 2119 // match the maximum number of inobject properties, to ensure that the |
| 2120 // performance of using object literals is not worse than using constructor |
| 2121 // functions, see crbug.com/v8/6211 for details. |
2119 static const int kMaxFastLiteralDepth = 3; | 2122 static const int kMaxFastLiteralDepth = 3; |
2120 static const int kMaxFastLiteralProperties = 8; | 2123 static const int kMaxFastLiteralProperties = |
| 2124 (JSObject::kMaxInstanceSize - JSObject::kHeaderSize) >> kPointerSizeLog2; |
2121 | 2125 |
2122 // Simple accessors. | 2126 // Simple accessors. |
2123 void set_function_state(FunctionState* state) { function_state_ = state; } | 2127 void set_function_state(FunctionState* state) { function_state_ = state; } |
2124 | 2128 |
2125 AstContext* ast_context() const { return ast_context_; } | 2129 AstContext* ast_context() const { return ast_context_; } |
2126 void set_ast_context(AstContext* context) { ast_context_ = context; } | 2130 void set_ast_context(AstContext* context) { ast_context_ = context; } |
2127 | 2131 |
2128 // Accessors forwarded to the function state. | 2132 // Accessors forwarded to the function state. |
2129 CompilationInfo* current_info() const { | 2133 CompilationInfo* current_info() const { |
2130 return function_state()->compilation_info(); | 2134 return function_state()->compilation_info(); |
(...skipping 871 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3002 } | 3006 } |
3003 | 3007 |
3004 private: | 3008 private: |
3005 HOptimizedGraphBuilder* builder_; | 3009 HOptimizedGraphBuilder* builder_; |
3006 }; | 3010 }; |
3007 | 3011 |
3008 } // namespace internal | 3012 } // namespace internal |
3009 } // namespace v8 | 3013 } // namespace v8 |
3010 | 3014 |
3011 #endif // V8_CRANKSHAFT_HYDROGEN_H_ | 3015 #endif // V8_CRANKSHAFT_HYDROGEN_H_ |
OLD | NEW |