OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 2193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2204 Handle<JSFunction> target); | 2204 Handle<JSFunction> target); |
2205 | 2205 |
2206 int InliningAstSize(Handle<JSFunction> target); | 2206 int InliningAstSize(Handle<JSFunction> target); |
2207 bool TryInline(Handle<JSFunction> target, | 2207 bool TryInline(Handle<JSFunction> target, |
2208 int arguments_count, | 2208 int arguments_count, |
2209 HValue* implicit_return_value, | 2209 HValue* implicit_return_value, |
2210 BailoutId ast_id, | 2210 BailoutId ast_id, |
2211 BailoutId return_id, | 2211 BailoutId return_id, |
2212 InliningKind inlining_kind); | 2212 InliningKind inlining_kind); |
2213 | 2213 |
2214 bool TryInlineCall(Call* expr, bool drop_extra = false); | 2214 bool TryInlineCall(Call* expr); |
2215 bool TryInlineConstruct(CallNew* expr, HValue* implicit_return_value); | 2215 bool TryInlineConstruct(CallNew* expr, HValue* implicit_return_value); |
2216 bool TryInlineGetter(Handle<JSFunction> getter, | 2216 bool TryInlineGetter(Handle<JSFunction> getter, |
2217 BailoutId ast_id, | 2217 BailoutId ast_id, |
2218 BailoutId return_id); | 2218 BailoutId return_id); |
2219 bool TryInlineSetter(Handle<JSFunction> setter, | 2219 bool TryInlineSetter(Handle<JSFunction> setter, |
2220 BailoutId id, | 2220 BailoutId id, |
2221 BailoutId assignment_id, | 2221 BailoutId assignment_id, |
2222 HValue* implicit_return_value); | 2222 HValue* implicit_return_value); |
2223 bool TryInlineApply(Handle<JSFunction> function, | 2223 bool TryInlineApply(Handle<JSFunction> function, |
2224 Call* expr, | 2224 Call* expr, |
2225 int arguments_count); | 2225 int arguments_count); |
2226 bool TryInlineBuiltinMethodCall(Call* expr, | 2226 bool TryInlineBuiltinMethodCall(Call* expr, |
2227 HValue* receiver, | 2227 HValue* receiver, |
2228 Handle<Map> receiver_map, | 2228 Handle<Map> receiver_map); |
2229 CheckType check_type); | 2229 bool TryInlineBuiltinFunctionCall(Call* expr); |
2230 bool TryInlineBuiltinFunctionCall(Call* expr, bool drop_extra); | 2230 bool TryInlineApiMethodCall(Call* expr, |
2231 bool TryInlineApiMethodCall( | 2231 HValue* receiver, |
2232 Call* expr, HValue* receiver, Handle<Map> receiver_map); | 2232 Handle<Map> receiver_map); |
2233 bool TryInlineApiFunctionCall(Call* expr, HValue* receiver, bool drop_extra); | 2233 bool TryInlineApiFunctionCall(Call* expr, HValue* receiver); |
2234 bool TryInlineApiCall(Call* expr, | 2234 bool TryInlineApiCall(Call* expr, |
2235 HValue* receiver, | 2235 HValue* receiver, |
2236 Handle<Map> receiver_map, | 2236 Handle<Map> receiver_map, |
2237 bool drop_extra, | |
2238 bool is_function_call); | 2237 bool is_function_call); |
2239 | 2238 |
2240 // If --trace-inlining, print a line of the inlining trace. Inlining | 2239 // If --trace-inlining, print a line of the inlining trace. Inlining |
2241 // succeeded if the reason string is NULL and failed if there is a | 2240 // succeeded if the reason string is NULL and failed if there is a |
2242 // non-NULL reason string. | 2241 // non-NULL reason string. |
2243 void TraceInline(Handle<JSFunction> target, | 2242 void TraceInline(Handle<JSFunction> target, |
2244 Handle<JSFunction> caller, | 2243 Handle<JSFunction> caller, |
2245 const char* failure_reason); | 2244 const char* failure_reason); |
2246 | 2245 |
2247 void HandleGlobalVariableAssignment(Variable* var, | 2246 void HandleGlobalVariableAssignment(Variable* var, |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2377 Handle<String> name); | 2376 Handle<String> name); |
2378 bool TryStorePolymorphicAsMonomorphic(BailoutId assignment_id, | 2377 bool TryStorePolymorphicAsMonomorphic(BailoutId assignment_id, |
2379 HValue* object, | 2378 HValue* object, |
2380 HValue* value, | 2379 HValue* value, |
2381 SmallMapList* types, | 2380 SmallMapList* types, |
2382 Handle<String> name); | 2381 Handle<String> name); |
2383 void HandlePolymorphicCallNamed(Call* expr, | 2382 void HandlePolymorphicCallNamed(Call* expr, |
2384 HValue* receiver, | 2383 HValue* receiver, |
2385 SmallMapList* types, | 2384 SmallMapList* types, |
2386 Handle<String> name); | 2385 Handle<String> name); |
2387 bool TryCallPolymorphicAsMonomorphic(Call* expr, | |
2388 HValue* receiver, | |
2389 SmallMapList* types, | |
2390 Handle<String> name); | |
2391 void HandleLiteralCompareTypeof(CompareOperation* expr, | 2386 void HandleLiteralCompareTypeof(CompareOperation* expr, |
2392 Expression* sub_expr, | 2387 Expression* sub_expr, |
2393 Handle<String> check); | 2388 Handle<String> check); |
2394 void HandleLiteralCompareNil(CompareOperation* expr, | 2389 void HandleLiteralCompareNil(CompareOperation* expr, |
2395 Expression* sub_expr, | 2390 Expression* sub_expr, |
2396 NilValue nil); | 2391 NilValue nil); |
2397 HControlInstruction* BuildCompareInstruction(Token::Value op, | 2392 HControlInstruction* BuildCompareInstruction(Token::Value op, |
2398 HValue* left, | 2393 HValue* left, |
2399 HValue* right, | 2394 HValue* right, |
2400 Type* left_type, | 2395 Type* left_type, |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2515 HValue* object_elements); | 2510 HValue* object_elements); |
2516 | 2511 |
2517 void BuildEmitFixedArray(Handle<FixedArrayBase> elements, | 2512 void BuildEmitFixedArray(Handle<FixedArrayBase> elements, |
2518 ElementsKind kind, | 2513 ElementsKind kind, |
2519 HValue* object_elements, | 2514 HValue* object_elements, |
2520 AllocationSiteUsageContext* site_context); | 2515 AllocationSiteUsageContext* site_context); |
2521 | 2516 |
2522 void AddCheckPrototypeMaps(Handle<JSObject> holder, | 2517 void AddCheckPrototypeMaps(Handle<JSObject> holder, |
2523 Handle<Map> receiver_map); | 2518 Handle<Map> receiver_map); |
2524 | 2519 |
2525 void AddCheckConstantFunction(Handle<JSObject> holder, | |
2526 HValue* receiver, | |
2527 Handle<Map> receiver_map); | |
2528 | |
2529 HInstruction* NewPlainFunctionCall(HValue* fun, | 2520 HInstruction* NewPlainFunctionCall(HValue* fun, |
2530 int argument_count, | 2521 int argument_count, |
2531 bool pass_argument_count); | 2522 bool pass_argument_count); |
2532 | 2523 |
2533 HInstruction* NewArgumentAdaptorCall(HValue* fun, HValue* context, | 2524 HInstruction* NewArgumentAdaptorCall(HValue* fun, HValue* context, |
2534 int argument_count, | 2525 int argument_count, |
2535 HValue* expected_param_count); | 2526 HValue* expected_param_count); |
2536 | 2527 |
2537 HInstruction* BuildCallConstantFunction(Handle<JSFunction> target, | 2528 HInstruction* BuildCallConstantFunction(Handle<JSFunction> target, |
2538 int argument_count); | 2529 int argument_count); |
2539 | 2530 |
2540 HInstruction* NewCallKeyed(HValue* key, int argument_count); | |
2541 | |
2542 HInstruction* NewCallNamed(Handle<String> name, int argument_count); | |
2543 | |
2544 // The translation state of the currently-being-translated function. | 2531 // The translation state of the currently-being-translated function. |
2545 FunctionState* function_state_; | 2532 FunctionState* function_state_; |
2546 | 2533 |
2547 // The base of the function state stack. | 2534 // The base of the function state stack. |
2548 FunctionState initial_function_state_; | 2535 FunctionState initial_function_state_; |
2549 | 2536 |
2550 // Expression context of the currently visited subexpression. NULL when | 2537 // Expression context of the currently visited subexpression. NULL when |
2551 // visiting statements. | 2538 // visiting statements. |
2552 AstContext* ast_context_; | 2539 AstContext* ast_context_; |
2553 | 2540 |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2725 } | 2712 } |
2726 | 2713 |
2727 private: | 2714 private: |
2728 HGraphBuilder* builder_; | 2715 HGraphBuilder* builder_; |
2729 }; | 2716 }; |
2730 | 2717 |
2731 | 2718 |
2732 } } // namespace v8::internal | 2719 } } // namespace v8::internal |
2733 | 2720 |
2734 #endif // V8_HYDROGEN_H_ | 2721 #endif // V8_HYDROGEN_H_ |
OLD | NEW |