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 7873 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7884 // inlined function. This simulate has no bailout-id since it's not directly | 7884 // inlined function. This simulate has no bailout-id since it's not directly |
7885 // reachable for deopt, and is only used to capture the state. If the simulate | 7885 // reachable for deopt, and is only used to capture the state. If the simulate |
7886 // becomes reachable by merging, the ast id of the simulate merged into it is | 7886 // becomes reachable by merging, the ast id of the simulate merged into it is |
7887 // adopted. | 7887 // adopted. |
7888 Add<HSimulate>(BailoutId::None()); | 7888 Add<HSimulate>(BailoutId::None()); |
7889 | 7889 |
7890 current_block()->UpdateEnvironment(inner_env); | 7890 current_block()->UpdateEnvironment(inner_env); |
7891 Scope* saved_scope = scope(); | 7891 Scope* saved_scope = scope(); |
7892 set_scope(target_info.scope()); | 7892 set_scope(target_info.scope()); |
7893 HEnterInlined* enter_inlined = | 7893 HEnterInlined* enter_inlined = |
7894 Add<HEnterInlined>(return_id, target, arguments_count, function, | 7894 Add<HEnterInlined>(return_id, target, context, arguments_count, function, |
7895 function_state()->inlining_kind(), | 7895 function_state()->inlining_kind(), |
7896 function->scope()->arguments(), | 7896 function->scope()->arguments(), arguments_object); |
7897 arguments_object); | |
7898 function_state()->set_entry(enter_inlined); | 7897 function_state()->set_entry(enter_inlined); |
7899 | 7898 |
7900 VisitDeclarations(target_info.scope()->declarations()); | 7899 VisitDeclarations(target_info.scope()->declarations()); |
7901 VisitStatements(function->body()); | 7900 VisitStatements(function->body()); |
7902 set_scope(saved_scope); | 7901 set_scope(saved_scope); |
7903 if (HasStackOverflow()) { | 7902 if (HasStackOverflow()) { |
7904 // Bail out if the inline function did, as we cannot residualize a call | 7903 // Bail out if the inline function did, as we cannot residualize a call |
7905 // instead. | 7904 // instead. |
7906 TraceInline(target, caller, "inline graph construction failed"); | 7905 TraceInline(target, caller, "inline graph construction failed"); |
7907 target_shared->DisableOptimization(kInliningBailedOut); | 7906 target_shared->DisableOptimization(kInliningBailedOut); |
(...skipping 4587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12495 if (ShouldProduceTraceOutput()) { | 12494 if (ShouldProduceTraceOutput()) { |
12496 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 12495 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
12497 } | 12496 } |
12498 | 12497 |
12499 #ifdef DEBUG | 12498 #ifdef DEBUG |
12500 graph_->Verify(false); // No full verify. | 12499 graph_->Verify(false); // No full verify. |
12501 #endif | 12500 #endif |
12502 } | 12501 } |
12503 | 12502 |
12504 } } // namespace v8::internal | 12503 } } // namespace v8::internal |
OLD | NEW |