| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/flow_graph_inliner.h" | 5 #include "vm/flow_graph_inliner.h" |
| 6 | 6 |
| 7 #include "vm/block_scheduler.h" | 7 #include "vm/block_scheduler.h" |
| 8 #include "vm/compiler.h" | 8 #include "vm/compiler.h" |
| 9 #include "vm/flags.h" | 9 #include "vm/flags.h" |
| 10 #include "vm/flow_graph.h" | 10 #include "vm/flow_graph.h" |
| (...skipping 876 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 887 callee_graph->deferred_prefixes()); | 887 callee_graph->deferred_prefixes()); |
| 888 | 888 |
| 889 FlowGraphInliner::SetInliningId(callee_graph, | 889 FlowGraphInliner::SetInliningId(callee_graph, |
| 890 inliner_->NextInlineId(callee_graph->function(), | 890 inliner_->NextInlineId(callee_graph->function(), |
| 891 call_data->caller_inlining_id_)); | 891 call_data->caller_inlining_id_)); |
| 892 TRACE_INLINING(THR_Print(" Success\n")); | 892 TRACE_INLINING(THR_Print(" Success\n")); |
| 893 PRINT_INLINING_TREE(NULL, | 893 PRINT_INLINING_TREE(NULL, |
| 894 &call_data->caller, &function, call); | 894 &call_data->caller, &function, call); |
| 895 return true; | 895 return true; |
| 896 } else { | 896 } else { |
| 897 error = isolate()->object_store()->sticky_error(); | 897 error = thread()->sticky_error(); |
| 898 isolate()->object_store()->clear_sticky_error(); | 898 thread()->clear_sticky_error(); |
| 899 ASSERT(error.IsLanguageError()); | 899 ASSERT(error.IsLanguageError()); |
| 900 | 900 |
| 901 if (LanguageError::Cast(error).kind() == Report::kBailout) { | 901 if (LanguageError::Cast(error).kind() == Report::kBailout) { |
| 902 thread()->set_deopt_id(prev_deopt_id); | 902 thread()->set_deopt_id(prev_deopt_id); |
| 903 TRACE_INLINING(THR_Print(" Bailout: %s\n", | 903 TRACE_INLINING(THR_Print(" Bailout: %s\n", |
| 904 error.ToErrorCString())); | 904 error.ToErrorCString())); |
| 905 PRINT_INLINING_TREE("Bailout", | 905 PRINT_INLINING_TREE("Bailout", |
| 906 &call_data->caller, &function, call); | 906 &call_data->caller, &function, call); |
| 907 return false; | 907 return false; |
| 908 } else { | 908 } else { |
| (...skipping 1026 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1935 intptr_t FlowGraphInliner::NextInlineId(const Function& function, | 1935 intptr_t FlowGraphInliner::NextInlineId(const Function& function, |
| 1936 intptr_t parent_id) { | 1936 intptr_t parent_id) { |
| 1937 const intptr_t id = inline_id_to_function_->length(); | 1937 const intptr_t id = inline_id_to_function_->length(); |
| 1938 inline_id_to_function_->Add(&function); | 1938 inline_id_to_function_->Add(&function); |
| 1939 caller_inline_id_->Add(parent_id); | 1939 caller_inline_id_->Add(parent_id); |
| 1940 return id; | 1940 return id; |
| 1941 } | 1941 } |
| 1942 | 1942 |
| 1943 | 1943 |
| 1944 } // namespace dart | 1944 } // namespace dart |
| OLD | NEW |