 Chromium Code Reviews
 Chromium Code Reviews Issue 2713593004:
  Don't inline functions that the parser decides shouldn't be inlined.  (Closed)
    
  
    Issue 2713593004:
  Don't inline functions that the parser decides shouldn't be inlined.  (Closed) 
  | Index: runtime/vm/flow_graph_inliner.cc | 
| diff --git a/runtime/vm/flow_graph_inliner.cc b/runtime/vm/flow_graph_inliner.cc | 
| index f07e7cd1f2e5bf0cf2591d91301594b0fa571be5..a19916150d304af5ab7c7d6f5bea78d31317fb97 100644 | 
| --- a/runtime/vm/flow_graph_inliner.cc | 
| +++ b/runtime/vm/flow_graph_inliner.cc | 
| @@ -780,8 +780,15 @@ class CallSiteInliner : public ValueObject { | 
| { | 
| CSTAT_TIMER_SCOPE(thread(), graphinliner_parse_timer); | 
| parsed_function = GetParsedFunction(function, &in_cache); | 
| + if (!function.CanBeInlined()) { | 
| + // As a side effect of parsing the function, it may be marked | 
| 
Kevin Millikin (Google)
2017/02/24 14:32:28
We already know whether the function is async or a
 | 
| + // as not inlinable. This happens for async and async* functions | 
| + // when causal stack traces are being tracked. | 
| + return false; | 
| + } | 
| } | 
| + | 
| // Build the callee graph. | 
| InlineExitCollector* exit_collector = | 
| new (Z) InlineExitCollector(caller_graph_, call); |