OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 #include "src/hydrogen.h" | 5 #include "src/hydrogen.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "src/v8.h" | 9 #include "src/v8.h" |
10 | 10 |
(...skipping 7871 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7882 // inlined function. This simulate has no bailout-id since it's not directly | 7882 // inlined function. This simulate has no bailout-id since it's not directly |
7883 // reachable for deopt, and is only used to capture the state. If the simulate | 7883 // reachable for deopt, and is only used to capture the state. If the simulate |
7884 // becomes reachable by merging, the ast id of the simulate merged into it is | 7884 // becomes reachable by merging, the ast id of the simulate merged into it is |
7885 // adopted. | 7885 // adopted. |
7886 Add<HSimulate>(BailoutId::None()); | 7886 Add<HSimulate>(BailoutId::None()); |
7887 | 7887 |
7888 current_block()->UpdateEnvironment(inner_env); | 7888 current_block()->UpdateEnvironment(inner_env); |
7889 Scope* saved_scope = scope(); | 7889 Scope* saved_scope = scope(); |
7890 set_scope(target_info.scope()); | 7890 set_scope(target_info.scope()); |
7891 HEnterInlined* enter_inlined = | 7891 HEnterInlined* enter_inlined = |
7892 Add<HEnterInlined>(return_id, target, arguments_count, function, | 7892 Add<HEnterInlined>(return_id, target, context, arguments_count, function, |
7893 function_state()->inlining_kind(), | 7893 function_state()->inlining_kind(), |
7894 function->scope()->arguments(), | 7894 function->scope()->arguments(), arguments_object); |
7895 arguments_object); | |
7896 function_state()->set_entry(enter_inlined); | 7895 function_state()->set_entry(enter_inlined); |
7897 | 7896 |
7898 VisitDeclarations(target_info.scope()->declarations()); | 7897 VisitDeclarations(target_info.scope()->declarations()); |
7899 VisitStatements(function->body()); | 7898 VisitStatements(function->body()); |
7900 set_scope(saved_scope); | 7899 set_scope(saved_scope); |
7901 if (HasStackOverflow()) { | 7900 if (HasStackOverflow()) { |
7902 // Bail out if the inline function did, as we cannot residualize a call | 7901 // Bail out if the inline function did, as we cannot residualize a call |
7903 // instead. | 7902 // instead. |
7904 TraceInline(target, caller, "inline graph construction failed"); | 7903 TraceInline(target, caller, "inline graph construction failed"); |
7905 target_shared->DisableOptimization(kInliningBailedOut); | 7904 target_shared->DisableOptimization(kInliningBailedOut); |
(...skipping 4582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12488 if (ShouldProduceTraceOutput()) { | 12487 if (ShouldProduceTraceOutput()) { |
12489 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 12488 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
12490 } | 12489 } |
12491 | 12490 |
12492 #ifdef DEBUG | 12491 #ifdef DEBUG |
12493 graph_->Verify(false); // No full verify. | 12492 graph_->Verify(false); // No full verify. |
12494 #endif | 12493 #endif |
12495 } | 12494 } |
12496 | 12495 |
12497 } } // namespace v8::internal | 12496 } } // namespace v8::internal |
OLD | NEW |