| 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_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 2303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2314 kUseCell, | 2314 kUseCell, |
| 2315 kUseGeneric | 2315 kUseGeneric |
| 2316 }; | 2316 }; |
| 2317 GlobalPropertyAccess LookupGlobalProperty(Variable* var, | 2317 GlobalPropertyAccess LookupGlobalProperty(Variable* var, |
| 2318 LookupResult* lookup, | 2318 LookupResult* lookup, |
| 2319 PropertyAccessType access_type); | 2319 PropertyAccessType access_type); |
| 2320 | 2320 |
| 2321 void EnsureArgumentsArePushedForAccess(); | 2321 void EnsureArgumentsArePushedForAccess(); |
| 2322 bool TryArgumentsAccess(Property* expr); | 2322 bool TryArgumentsAccess(Property* expr); |
| 2323 | 2323 |
| 2324 // Shared code for .call and .apply optimizations. | 2324 // Try to optimize fun.apply(receiver, arguments) pattern. |
| 2325 void HandleIndirectCall(Call* expr, HValue* function, int arguments_count); | 2325 bool TryCallApply(Call* expr); |
| 2326 // Try to optimize indirect calls such as fun.apply(receiver, arguments) | |
| 2327 // or fun.call(...). | |
| 2328 bool TryIndirectCall(Call* expr); | |
| 2329 void BuildFunctionApply(Call* expr); | |
| 2330 void BuildFunctionCall(Call* expr); | |
| 2331 | 2326 |
| 2332 bool TryHandleArrayCall(Call* expr, HValue* function); | 2327 bool TryHandleArrayCall(Call* expr, HValue* function); |
| 2333 bool TryHandleArrayCallNew(CallNew* expr, HValue* function); | 2328 bool TryHandleArrayCallNew(CallNew* expr, HValue* function); |
| 2334 void BuildArrayCall(Expression* expr, int arguments_count, HValue* function, | 2329 void BuildArrayCall(Expression* expr, int arguments_count, HValue* function, |
| 2335 Handle<AllocationSite> cell); | 2330 Handle<AllocationSite> cell); |
| 2336 | 2331 |
| 2337 enum ArrayIndexOfMode { kFirstIndexOf, kLastIndexOf }; | 2332 enum ArrayIndexOfMode { kFirstIndexOf, kLastIndexOf }; |
| 2338 HValue* BuildArrayIndexOf(HValue* receiver, | 2333 HValue* BuildArrayIndexOf(HValue* receiver, |
| 2339 HValue* search_element, | 2334 HValue* search_element, |
| 2340 ElementsKind kind, | 2335 ElementsKind kind, |
| (...skipping 15 matching lines...) Expand all Loading... |
| 2356 bool TryInlineConstruct(CallNew* expr, HValue* implicit_return_value); | 2351 bool TryInlineConstruct(CallNew* expr, HValue* implicit_return_value); |
| 2357 bool TryInlineGetter(Handle<JSFunction> getter, | 2352 bool TryInlineGetter(Handle<JSFunction> getter, |
| 2358 Handle<Map> receiver_map, | 2353 Handle<Map> receiver_map, |
| 2359 BailoutId ast_id, | 2354 BailoutId ast_id, |
| 2360 BailoutId return_id); | 2355 BailoutId return_id); |
| 2361 bool TryInlineSetter(Handle<JSFunction> setter, | 2356 bool TryInlineSetter(Handle<JSFunction> setter, |
| 2362 Handle<Map> receiver_map, | 2357 Handle<Map> receiver_map, |
| 2363 BailoutId id, | 2358 BailoutId id, |
| 2364 BailoutId assignment_id, | 2359 BailoutId assignment_id, |
| 2365 HValue* implicit_return_value); | 2360 HValue* implicit_return_value); |
| 2366 bool TryInlineIndirectCall(Handle<JSFunction> function, | 2361 bool TryInlineApply(Handle<JSFunction> function, |
| 2367 Call* expr, | 2362 Call* expr, |
| 2368 int arguments_count); | 2363 int arguments_count); |
| 2369 bool TryInlineBuiltinMethodCall(Call* expr, | 2364 bool TryInlineBuiltinMethodCall(Call* expr, |
| 2370 Handle<JSFunction> function, | 2365 HValue* receiver, |
| 2371 Handle<Map> receiver_map, | 2366 Handle<Map> receiver_map); |
| 2372 int args_count_no_receiver); | |
| 2373 bool TryInlineBuiltinFunctionCall(Call* expr); | 2367 bool TryInlineBuiltinFunctionCall(Call* expr); |
| 2374 enum ApiCallType { | 2368 enum ApiCallType { |
| 2375 kCallApiFunction, | 2369 kCallApiFunction, |
| 2376 kCallApiMethod, | 2370 kCallApiMethod, |
| 2377 kCallApiGetter, | 2371 kCallApiGetter, |
| 2378 kCallApiSetter | 2372 kCallApiSetter |
| 2379 }; | 2373 }; |
| 2380 bool TryInlineApiMethodCall(Call* expr, | 2374 bool TryInlineApiMethodCall(Call* expr, |
| 2381 HValue* receiver, | 2375 HValue* receiver, |
| 2382 SmallMapList* receiver_types); | 2376 SmallMapList* receiver_types); |
| (...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2900 } | 2894 } |
| 2901 | 2895 |
| 2902 private: | 2896 private: |
| 2903 HGraphBuilder* builder_; | 2897 HGraphBuilder* builder_; |
| 2904 }; | 2898 }; |
| 2905 | 2899 |
| 2906 | 2900 |
| 2907 } } // namespace v8::internal | 2901 } } // namespace v8::internal |
| 2908 | 2902 |
| 2909 #endif // V8_HYDROGEN_H_ | 2903 #endif // V8_HYDROGEN_H_ |
| OLD | NEW |