Commit Graph

11669 Commits

Author SHA1 Message Date
Ryan Macnak 683077944b Conservatively disable use of integer division on Android ARM64 devices.
R=jsimmons@google.com

Review-Url: https://codereview.chromium.org/2800883002 .
2017-04-05 12:45:01 -07:00
Vyacheslav Egorov 7e1d584218 VM: [Kernel] Implement CatchBlockEntryInstr::should_restore_closure_context on all platforms.
This was the only Kernel specific backend change - to simplify the graph builder
we allowed it to capture exception and stack trace variables. This in turn
requires CatchBlockEntryInstr to respect that this variables can be captured
and correctly update them when exception is caught.

This was implemented on X64 and ARM before. This CL expands implementation to
all other implementations including DBC.

R=zra@google.com

Review-Url: https://codereview.chromium.org/2796283003 .
2017-04-05 20:32:03 +02:00
Dmitry Stefantsov 95560cb02a Add Kernel AST nodes for Vector and Closure primitives in VM
Five Kernel AST nodes added: VectorCreation, VectorGet, VectorSet,
VectorCopy, and ClosureCreation.

R=asgerf@google.com, kmillikin@google.com

Review-Url: https://codereview.chromium.org/2792333002 .
2017-04-05 15:59:25 +02:00
Dmitry Olshansky ffc4c1df30 VM [KERNEL] Use simpleInstanceOf in kernel.
R=vegorov@google.com

Review-Url: https://codereview.chromium.org/2794373002 .
2017-04-05 14:56:42 +02:00
Florian Loitsch cb426d5d21 Mark service/pause_on_unhandled_async_exceptions2_test as crashing.
Review-Url: https://codereview.chromium.org/2804643002 .
2017-04-05 14:23:29 +02:00
Dmitry Olshansky 7c011eda26 VM [KERNEL] Fix a buffer overflow in COMPARE_NAME
R=vegorov@google.com

Review-Url: https://codereview.chromium.org/2794113003 .
2017-04-05 14:06:00 +02:00
Lasse R.H. Nielsen 7d08f9ddd2 Add type parameters to methods in typed-data patch.
Fixes #29100.
BUG= http://dartbug.com/29100
R=ahe@google.com, asiva@google.com

Review-Url: https://codereview.chromium.org/2750163004 .
2017-04-05 10:09:50 +02:00
Zachary Anderson 8c9c54d833 [dart:io] Don't close stdin with a socket finalizer
If an Isolate touches the 'stdio' getter, a _NativeSocket with
attached finalizer is created for it. Previously, when such an
Isolate exited, the finalizer would close the underlying
file descriptor. This CL changes the finalizer for stdin such
that the native objects will be cleaned up, but the underlying
file descriptor will not be closed. The underlying file
descriptor will now only be closed if the stdin stream
subscription is explicitly canceled.

Accessing the stdin getter after the stream is explicitly
canceled will result in a FileSystemException.

See also: https://github.com/dart-lang/test/issues/583

fixes #29229

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2791423002 .
2017-04-04 13:57:42 -07:00
John McCutchan e33e09a23c Disable async debugger support until context mismatch issue is resolved.
BUG=
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2795303002 .
2017-04-04 13:36:42 -07:00
Regis Crelier a08c95e003 Rename dart::Genericity::kClass to dart::Genericity::kCurrentClass to avoid
collision with dart::kernel::Tag::kClass.

R=bkonyi@google.com

Review-Url: https://codereview.chromium.org/2796993002 .
2017-04-04 12:08:57 -07:00
Kevin Millikin 04cb9809d1 Restructure the Kernel string table.
Instead of a list of strings given by their length and UTF-8 encoding,
restructure the string table to consist of a list of string ending
offsets followed by a blob of UTF-8 encoded strings without lengths.

This is a step toward copying the string blob into the VM's heap and
building a heap-allocated structure to give random access to them.

BUG=
R=asgerf@google.com, jensj@google.com

Review-Url: https://codereview.chromium.org/2790073004 .
2017-04-04 13:04:25 +02:00
Ben Konyi 0386f7ab6f Reverting until bots clear up.
Revert "Pulled a significant portion of Socket implementation into BaseSocket in order to prepare for the synchronous socket impementations which will also use these common methods."

This reverts commit 0422920142.

Revert "Updated incorrect call to Write in process_win.cc"

This reverts commit 9e1435148b.

Revert "Fixed incorrect call to Write from process_win.cc"

This reverts commit 11dcab2bed3c9ec8ec76bc200206ac202a4a5681.

Fixed incorrect call to Write from process_win.cc

BUG=

Review-Url: https://codereview.chromium.org/2791163004 .
2017-04-03 17:25:47 -07:00
Ben Konyi 418ef46bfa Fixed incorrect call to Write from process_win.cc
Updated incorrect call to Write in process_win.cc

TBR=zra@google.com
BUG=

Review-Url: https://codereview.chromium.org/2798463002 .
2017-04-03 17:17:26 -07:00
Ben Konyi 9e1435148b Updated incorrect call to Write in process_win.cc
Pulled a significant portion of Socket implementation into SocketBase in order to prepare for the synchronous socket impementations which will also use these common methods.

TBR=zra@google.com
BUG=

Review-Url: https://codereview.chromium.org/2795913002 .
2017-04-03 17:13:20 -07:00
Ben Konyi 0422920142 Pulled a significant portion of Socket implementation into BaseSocket in order to prepare for the synchronous socket impementations which will also use these common methods.
BUG=
R=zra@google.com

Review-Url: https://codereview.chromium.org/2780063002 .
2017-04-03 17:05:11 -07:00
Regis Crelier 5065c1c0c4 Clean up finalization of recursive types in the VM.
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2791393002 .
2017-04-03 14:28:01 -07:00
Martin Kustermann d8e291cb89 [kernel] vm: Fix a few issues in the kernel flow graph builder, update status file for checked-mode
R=vegorov@google.com

Review-Url: https://codereview.chromium.org/2792033002 .
2017-04-03 19:47:01 +02: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
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
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
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
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
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
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 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
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
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
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
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
Erik Corry c5ffe74881 DartVM: Fix rounding error causing linear instead of geometric heap growth
R=kustermann@google.com
BUG=

Review-Url: https://codereview.chromium.org/2790673004 .
2017-03-31 11:21:33 +02:00
Erik Corry fc2fcf9bc8 Add more safe points in compiler.
The Scavenge (young-gen) GCs on the main thread have to wait for other
threads to check in at a safe point. We were seeing big waits here, often
20ms, occasionally up to 180ms where the main thread is idling, waiting
for the optimizing compiler.  By adding more safe points the wait is
reduced and is now rarely over 10ms, often under 1ms.

This also changes the --verbose-gc output to be better aligned with the
column headings, and to add the time needed to get to
the safe point to the output, eg:

[ GC(784211551): Scavenge(new space), 18, 2.209, 76.009, 32768, 0, 32768, 32768, 0, 0, 144912, 154425, 152064, 154880, 0, 0, 46.984, 2.752, 7.407, 18.657, 0.033, 5421, 0, 0, 0, ]
                                                 ^^^^^^ Scavenge time                                                        ^^^^^^  safe point time.

R=vegorov@google.com
BUG=

Review-Url: https://codereview.chromium.org/2771013002 .
2017-03-31 11:19:46 +02:00
Karl Klose 4b7e73fe00 [Gardening] Mark service/async_generator_breakpoint_test as slow on dartk
R=jensj@google.com

Review-Url: https://codereview.chromium.org/2786343002 .
2017-03-31 08:52:09 +02:00
Zach Anderson bc923bed16 [dart:io] Reland: Adds Platform.localeName
The Mac OS build broke because a typedef wasn't added until 10.12.

related #29126

Review-Url: https://codereview.chromium.org/2786183003 .
2017-03-30 13:51:46 -07:00
Zachary Anderson e75df3cce3 Revert "[dart:io] Adds Platform.localeName"
This reverts commit ae6d854ec6.

The build failed on the mac build bots. Need to investigate.

Review-Url: https://codereview.chromium.org/2791453002 .
2017-03-30 13:35:02 -07:00
Zachary Anderson ae6d854ec6 [dart:io] Adds Platform.localeName
related #29126

R=fschneider@google.com

Review-Url: https://codereview.chromium.org/2785073002 .
2017-03-30 13:31:11 -07:00
Ryan Macnak 8e99919c92 Fix inconsistent removal of imports during tree-shaking.
R=fschneider@google.com

Review-Url: https://codereview.chromium.org/2783703005 .
2017-03-30 12:32:55 -07:00
Florian Schneider 22d5833ae4 Fix analyzer warnings in a test.
Review-Url: https://codereview.chromium.org/2787063003 .
2017-03-30 12:13:34 -07:00
Florian Schneider 5a3f9d9398 Fix a couple of bugs with async stack traces
Related to #29145.

Fixes #29199.

1. Missing source positions in async and async* functions (synthetic code)

2. Added unit tests for issues #28980 and added asyns stack trace testing flags to existing test.

3. Handle uninitialized Completer object when collecting async stack traces.

Still missing is the correct calculation of context levels in ActivationFrame::ContextLevel. This is planned for a separate CL.

R=johnmccutchan@google.com

Review-Url: https://codereview.chromium.org/2786503003 .
2017-03-30 11:02:33 -07:00