Chromium Code Reviews| Index: runtime/vm/flow_graph_compiler.cc |
| diff --git a/runtime/vm/flow_graph_compiler.cc b/runtime/vm/flow_graph_compiler.cc |
| index 8cb1af1d5c9958ffe38a04a8eb146827d1e6e553..ea0d99e7ff0ea886017e2d5ace23485c985a3085 100644 |
| --- a/runtime/vm/flow_graph_compiler.cc |
| +++ b/runtime/vm/flow_graph_compiler.cc |
| @@ -75,6 +75,7 @@ DECLARE_FLAG(bool, lazy_dispatchers); |
| DECLARE_FLAG(bool, interpret_irregexp); |
| DECLARE_FLAG(bool, enable_mirrors); |
| DECLARE_FLAG(bool, link_natives_lazily); |
| +DECLARE_FLAG(bool, trace_compiler); |
| bool FLAG_precompilation = false; |
| static void PrecompilationModeHandler(bool value) { |
| @@ -916,7 +917,16 @@ Label* FlowGraphCompiler::AddDeoptStub(intptr_t deopt_id, |
| } |
| // No deoptimization allowed when 'always_optimize' is set. |
| - ASSERT(!Compiler::always_optimize()); |
| + if (Compiler::always_optimize()) { |
| + if (FLAG_trace_compiler) { |
| + THR_Print("Retrying compilation %s, suppressing deopt_id:%" Pd "\n", |
|
srdjan
2015/11/17 17:35:23
suppressing inlining of call deopt_id: ...
Florian Schneider
2015/11/17 19:38:56
Done.
|
| + parsed_function_.function().ToCString(), deopt_id); |
|
srdjan
2015/11/17 17:35:23
Maybe ToQualifiedCString gives a little bit more i
Florian Schneider
2015/11/17 19:38:56
Done.
|
| + } |
| + ASSERT(deopt_id != 0); // longjmp must return non-zero value. |
| + Thread::Current()->long_jump_base()->Jump( |
| + deopt_id, Object::speculative_inlining_error()); |
| + } |
| + |
| ASSERT(is_optimizing_); |
| CompilerDeoptInfoWithStub* stub = |
| new(zone()) CompilerDeoptInfoWithStub(deopt_id, |