Don't inline functions that the parser decides shouldn't be inlined.

Fixes #28857
Fixes #28759

BUG=
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2713593004 .
This commit is contained in:
John McCutchan 2017-02-23 12:32:44 -08:00
parent 37c585e842
commit 88b68b30b4
3 changed files with 7 additions and 6 deletions

View file

@ -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
// 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);

View file

@ -47,9 +47,6 @@ LibTest/isolate/Isolate/spawn_A04_t03: Skip # Flaky, Issue 15974
LibTest/core/Symbol/Symbol_A01_t03: RuntimeError # Issue 13596
LibTest/core/Symbol/Symbol_A01_t05: RuntimeError # Issue 13596
[ $compiler == precompiler && $runtime == dart_precompiled && $mode == debug ]
Language/Expressions/Function_Invocation/async_invokation_t06: Crash # Issue 28759
[ $runtime == vm || $runtime == dart_precompiled ]
LibTest/typed_data/Float32x4/reciprocalSqrt_A01_t01: Pass, Fail # co19 issue 599
LibTest/typed_data/Float32x4/reciprocal_A01_t01: Pass, Fail # co19 issue 599

View file

@ -408,9 +408,6 @@ io/raw_datagram_read_all_test: Pass, Fail # Timing dependent.
io/test_runner_test: Pass, Slow # Slow.
io/skipping_dart2js_compilations_test: Pass, Slow # Slow.
[ $compiler == precompiler && $runtime == dart_precompiled && $mode == debug ]
io/http_bind_test: Crash # Issue 28857
[ $builder_tag == no_ipv6 ]
io/raw_datagram_socket_test: SkipByDesign
io/socket_source_address_test: SkipByDesign