Commit graph

45863 commits

Author SHA1 Message Date
Brian Wilkerson
dd49e79f74 Add context information to driver and add hooks for plugin management
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2795743002 .
2017-04-03 10:13:45 -07:00
Vyacheslav Egorov
41b5d7c6de VM: Fix incorrect canonicalization rule for UnboxedIntConverterInstr.
The rule assumed that `UnboxedIntConverter(U->V, UnboxedIntConverter(V->U, v))` is
equal to `v` which is incorrect if the first convertion is truncating and
V is a larger representation (Mint) than U (Int32 or Uint32).

Now canonicalization rule takes into account if the first convertion is
truncating and does not try to short-circuit such convertions.

Fixes https://github.com/dart-lang/sdk/issues/29137

R=kustermann@google.com
BUG=http://dartbug.com/29137

Review-Url: https://codereview.chromium.org/2793003002 .
2017-04-03 18:51:04 +02:00
Zachary Anderson
78706025da [vm service] Collect garbage before getting native allocation samples
R=bkonyi@google.com

Review-Url: https://codereview.chromium.org/2795473003 .
2017-04-03 09:12:52 -07:00
Peter von der Ahé
5a81cba61a Specify location of SDK when running analyzer.
R=whesse@google.com

Review-Url: https://codereview.chromium.org/2794003002 .
2017-04-03 17:47:21 +02:00
Jacob Richman
509bcd58e1 Fix type checks and display for JS interop types.
Re-enable formatter test that had been disabled when someone changed type
name display for Foo<dynamic> types.
Fix bug in how type names were displayed for JS interop types.

BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2789663005 .
2017-04-03 08:34:20 -07:00
Devon Carew
3fd497b510 Ignore some uses of deprecated APIs.
BUG=

Review-Url: https://codereview.chromium.org/2796483002 .
2017-04-03 08:31:00 -07:00
Erik Corry
1f1854aa78 Fix disassembly of OSR functions.
This got broken when I changed the compiler to not install OSR code on the
function, where it had to be immediately uninstalled again.

R=vegorov@google.com
BUG=

Review-Url: https://codereview.chromium.org/2793943002 .
2017-04-03 17:29:36 +02:00
Peter von der Ahé
38f398281d Mark tests as slow.
Review-Url: https://codereview.chromium.org/2791283002 .
2017-04-03 16:54:20 +02:00
Brian Wilkerson
e3aa3b8ea9 Fix support for uri in part-of directive
R=jcollins@google.com

Review-Url: https://codereview.chromium.org/2786853003 .
2017-04-03 07:35:46 -07:00
Peter von der Ahé
0e82fb44c2 Run analyzer from sources instead of built SDK.
R=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/2790143002 .
2017-04-03 16:13:51 +02:00
William Hesse
801bf3a829 Update checked-in SDKs to 1.23.0-dev.11.3
BUG=
R=kustermann@google.com

Review-Url: https://codereview.chromium.org/2791233002 .
2017-04-03 15:49:06 +02:00
Peter von der Ahé
5bdc1199ca Fix dart2js warnings and add test to ensure it stays clean.
Filed https://github.com/dart-lang/sdk/issues/29224 to track all the problems that require ignore.

R=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/2791993002 .
2017-04-03 15:08:40 +02:00
Jens Johansen
1ef5c76a4e Stream StaticGet
BUG=
R=kmillikin@google.com

Review-Url: https://codereview.chromium.org/2794473002 .
2017-04-03 12:28:06 +02:00
Jens Johansen
c9750187d8 Stream SymbolLiteral & BigIntLiteral
R=kmillikin@google.com

Review-Url: https://codereview.chromium.org/2786073002 .
2017-04-03 12:23:38 +02:00
Jens Johansen
819ce4241c Stream DoubleLiteral
BUG=
R=kmillikin@google.com

Review-Url: https://codereview.chromium.org/2783183002 .
2017-04-03 12:18:47 +02:00
Jens Johansen
fad8f80afd Add kernel_offset to all expressions; Make KernelConstMapKeyEqualsTraits use kernel_offset
BUG=
R=kmillikin@google.com

Review-Url: https://codereview.chromium.org/2781313003 .
2017-04-03 12:10:31 +02:00
Jens Johansen
42c80b5906 Step #2 in streaming the kernel flowgraph
* Stream InvalidExpression
* Stream NullLiteral
* Stream BoolLiteral
* Stream IntLiteral
* Stream ThisExpression
* Stream StringLitereal

R=kmillikin@google.com

Review-Url: https://codereview.chromium.org/2787463003 .
2017-04-03 12:04:08 +02:00
Vyacheslav Egorov
7f147b1b6e Revert "When linking natives lazily (as in AOT compilation), don't resolve them eagerly."
This reverts commit 8df8025f2a.

Reason: darkp configuration is completely broken by this CL. Example:

$ python tools/test.py -mrelease -cdartkp -rdart_precompiled -t120 kernel/unsorted/symbol_literal_test

TBR=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2791983002 .
2017-04-03 12:02:33 +02:00
Jens Johansen
63f1de2068 Initial steps into streaming the kernel flowgraph
- Moved stuff into .h
- Leak kernel binary blob
- "Streaming" rethrow in FlowgraphBuilder

R=kmillikin@google.com

Review-Url: https://codereview.chromium.org/2776373002 .
2017-04-03 11:40:37 +02:00
Johnni Winther
9fd5ae5b81 Use entities in NativeResolutionEnqueuer and make it reusable for kernel
This is step towards computing closed world directly from kernel.

R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2786593004 .
2017-04-03 10:33:21 +02:00
Johnni Winther
23999a0f1e Use entities in NoSuchMethodRegistry
This prepares for a kernel based implementation of NoSuchMethodResolver.

R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2777093010 .
2017-04-03 10:26:53 +02:00
John McCutchan
fb84ff3fc4 Revert "Disable awaiter stepping by default until context level computation is fixed"
This reverts commit 61e11c6808.

BUG=

Review-Url: https://codereview.chromium.org/2791953002 .
2017-04-03 00:06:28 -07:00
Karl Klose
1ec54ff2df Fix test expectations for io/file_lock_test
TBR=jensj@google.com

Review-Url: https://codereview.chromium.org/2789123002 .
2017-04-03 07:47:58 +02:00
John McCutchan
61e11c6808 Disable awaiter stepping by default until context level computation is fixed
BUG=
R=asiva@google.com, fschneider@google.com

Review-Url: https://codereview.chromium.org/2787023002 .
2017-04-02 21:03:11 -07:00
Siva Annamalai
4654381213 Move kernel related status lines from service.status to service_kernel.status
Review-Url: https://codereview.chromium.org/2789993002 .
2017-03-31 17:57:09 -07:00
Vijay Menon
46d6c56c96 Fix ddc async test code
Fortunately, not too many false passes.

R=jacobr@google.com

Review-Url: https://codereview.chromium.org/2792703002 .
2017-03-31 15:57:08 -07:00
Ryan Macnak
dd6140f61b Remove dart:jni library in FlutterTarget
BUG=
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2793703002 .
2017-03-31 15:55:00 -07:00
Florian Schneider
80b43ff15c Reland "VM: Handle null-comparisons in the flow graph type propagation"
This reverts commit ee452a8600.

Original CL: https://codereview.chromium.org/2772143002/

Additional bug fix: Correctly replace ToCid with ToNullableCid in
RedefinitionInstr::ComputeType.

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2789943002 .
2017-03-31 15:39:01 -07:00
Mike Fairhurst
761d21d414 Fix #14144 confusing error message misusing a callable object
New tests to make sure that:
* Error message calling a closure wrong is unchanged
* Error message calling a static function wrong is unchanged
* Error message calling a callable object wrong is unchanged
* Error message calling nonexist method is unchanged
* Error message calling nonexist method for a callable object is clearer

The new tests involving calling a closure wrong exposed a bug in the
inliner, it assumed (due to lack of ic data, it seems) that all closures
have the right number of arguments. Left that assertion/behavior, but
put a guard around closures specifically (since static and method calls
don't have that bug, due to I think better ic data).

Welcoming myself to the world of VMs.

BUG=
R=fschneider@google.com

Review-Url: https://codereview.chromium.org/2785623004 .
2017-03-31 15:09:02 -07:00
Vijay Menon
3be5099a8c Don't format on DDC presubmit
The primary presubmit (PRESUBMIT.py) now enforces this on git cl
upload.  It also uses a difference version of the formatter, so
dropping this avoids that annoyance.

R=jacobr@google.com

Review-Url: https://codereview.chromium.org/2791643003 .
2017-03-31 15:06:16 -07:00
Siva Annamalai
74229dfb1f Adjust status file to account for build breakage.
TBR=fschneider

Review-Url: https://codereview.chromium.org/2793683002 .
2017-03-31 14:51:45 -07:00
Ryan Macnak
a2c41bd926 Move the canonical empty context to the VM isolate.
R=fschneider@google.com

Review-Url: https://codereview.chromium.org/2780393005 .
2017-03-31 14:43:01 -07:00
Ryan Macnak
21e9a4fc65 Use -no_compact_unwind when creating dylibs on Mac.
Instructs the linker not to attempt generating _eh_frame from the DWARF info, avoiding warnings like

R=vegorov@google.com

ld: warning: could not create compact unwind for _kDartVmSnapshotInstructions: register saved more than once (might be shrink wrap)
Review-Url: https://codereview.chromium.org/2784253003 .
2017-03-31 13:37:09 -07:00
Vijay Menon
466d4ffb9c Add runtime tests for ignored checks
Tests for https://codereview.chromium.org/2788933002/

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2789933002 .
2017-03-31 13:31:59 -07:00
Ryan Macnak
d0529c8638 Nicer message when attempting to use Observatory from dart_bootstrap, dart_precompiled_runtime or an unnamed badly configured build.
R=johnmccutchan@google.com

Review-Url: https://codereview.chromium.org/2793603002 .
2017-03-31 13:29:52 -07:00
Mike Fairhurst
a5a65d09a4 Tick angular analyzer to v0.0.6
BUG=
R=keertip@google.com

Review-Url: https://codereview.chromium.org/2793663002 .
2017-03-31 13:27:40 -07:00
John McCutchan
904beb3d9d Avoid many temporary allocations when serializing service protocol responses
- [x] Use an on stack buffer for small string allocations.
- [x] Avoid unnecessary calls to strlen.

Related #29207

BUG=
R=rmacnak@google.com, zra@google.com

Review-Url: https://codereview.chromium.org/2791633002 .
2017-03-31 13:20:11 -07:00
John McCutchan
4c4c9f2ce6 Fix test failure and add new awaiterFrames to service_dev.md
BUG=

Review-Url: https://codereview.chromium.org/2788993002 .
2017-03-31 13:18:07 -07:00
John McCutchan
193f26d1e1 Implement support for single stepping out of an async function.
BUG=
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2785243003 .
2017-03-31 10:55:11 -07:00
Brian Wilkerson
8d340ee8c6 Add an experimental annotation
R=matanl@google.com

Review-Url: https://codereview.chromium.org/2789843003 .
2017-03-31 10:54:24 -07:00
Florian Schneider
ee452a8600 Revert "Reland "VM: Handle null-comparisons in the flow graph type propagation""
This reverts commit e7afde47e9.

This was because of analyzer test failures (out of memory in the background compiler)

TBR=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2794583002 .
2017-03-31 10:53:56 -07:00
Emily Fortuna
6b398ef91c Allow dartk to print out binary Kernel IR results to stdout if requested.
BUG=
R=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/2784303003 .
2017-03-31 10:48:09 -07:00
Emily Fortuna
4588dceaf3 Start preparing tests to accept binary compiler input.
BUG=
R=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/2781423003 .
2017-03-31 10:18:15 -07:00
Florian Schneider
e7afde47e9 Reland "VM: Handle null-comparisons in the flow graph type propagation"
This reverts commit 30a942f728.

Plus:

1. Fixes integer type propagation in the optimizer by introducing a _int64 marker interface

2. Fixes calculation of whether an instructions can deoptimize: This has to be stable so that
once determined that an instructions can't deoptimize, it will stay that way and not flip back
later in the optimization

3. Address comments to improve CompileType::CopyNonNullable()

R=vegorov@google.com

Review-Url: https://codereview.chromium.org/2772143002 .
2017-03-31 10:12:59 -07:00
Vijay Menon
08f085727e Fix ignore on FutureOr
I'll look into adding tests - these eventually supposed to *not* get ignored (see #27223)

R=leafp@google.com

Review-Url: https://codereview.chromium.org/2788933002 .
2017-03-31 09:30:16 -07:00
Dmitry Olshansky
82beee09c2 VM [KERNEL] Elide null-initialization of the fields
They are filled with nulls after allocation, so there is
no need to set a field to null explicitly.

R=vegorov@google.com

Review-Url: https://codereview.chromium.org/2790603002 .
2017-03-31 17:49:38 +02:00
Lasse Reichstein Holst Nielsen
d4c1531b5b Use the *correct* type for the fix to analysis_server/test/mocks.dart.
It's a stream, not an iterable, so the return type is a Future.

Review-Url: https://codereview.chromium.org/2784363003 .
2017-03-31 16:36:24 +02:00
Dmitry Stefantsov
42f82d1d21 Add primitive to create closures and use it for closure conversion
A new AST node 'ClosureCreation' is added. It takes a name of a
top-level function, a context, and a closure function type and creates a
closure of the given type. The effect of this closure invocation is the
same as of the invocation of the given top-level function with the
contexts as the first argument.

In order to use 'ClosureCreation', the closure conversion pass now
transforms closures into top-level functions, not closure classes. These
functions receive the context as the first argument.

The type of the expression represented by 'ClosureCreation' is its third
parameter. It its the responsibility of closure conversion pass to
create the correct types for 'ClosureCreation' nodes based on types of
closures transformed into top-level functions.

R=asgerf@google.com

Review-Url: https://codereview.chromium.org/2778223002 .
2017-03-31 14:43:56 +02:00
danrubel
1fbca8be94 cleanup scanner
Review-Url: https://codereview.chromium.org/2784353003 .
2017-03-31 08:41:51 -04:00
Lasse R.H. Nielsen
83298690b0 Fix static typing problem in analysis_server tests.
After changing argument of `Future` constructor to be `()->FutureOr<T>`,
the `()->Future<dynamic>` argument didn't work.
Problem compounded by return type of `Stream<T>.firstWhere` being `dynamic`.

R=karlklose@google.com

Review-Url: https://codereview.chromium.org/2794503002 .
2017-03-31 14:12:32 +02:00