Commit Graph

13081 Commits

Author SHA1 Message Date
Ryan Macnak 04100796c1 [vm, aot] Further debugging aids for null function encountered when writing DWARF inlining data.
Bug: https://github.com/dart-lang/sdk/issues/31952
Change-Id: Iaf677c2dd15567772d1bb9f2482e749ef1139fe2
Reviewed-on: https://dart-review.googlesource.com/42060
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2018-02-16 20:48:59 +00:00
Zach Anderson 0d5cf900b0 [infra,flutter] Adds semantically meaningful custom version strings
See https://github.com/flutter/flutter/issues/14751

Change-Id: I3b35c2a32c0dd1301e92abe23b1c6fe2c2e04a6c
Reviewed-on: https://dart-review.googlesource.com/42026
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2018-02-16 20:44:48 +00:00
Alexander Markov 31b0cc6ac1 [vm,aot] Generate more efficient code for UnboxInt64 if it takes Smi
Change-Id: I7e2b1cabfa749cd781927a32e652f1f59a1c7667
Reviewed-on: https://dart-review.googlesource.com/41925
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2018-02-16 17:57:57 +00:00
Vyacheslav Egorov eb997b2818 [vm/kernel] Support as{TypeError} as a constant expressions.
Under certain conditions front-end currently generates as{TypeError}
type checks in constant expressions. Support evaluating these type
checks as constant expressions instead of rejecting them.

Change-Id: Id432c4c5062d7bab89c29fef308b42b2cbd64de8
Reviewed-on: https://dart-review.googlesource.com/41761
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2018-02-16 13:37:37 +00:00
Jens Johansen ef51b33f22 Revert "[kernel] Don't always treat doubles as constants"
This reverts commit 12407c3ea0.

Reason for revert: co19/Language/Expressions/Object_Identity/double_t01 fails in -c dartkp -r dart_precompiled mode.

Original change's description:
> [kernel] Don't always treat doubles as constants
> 
> Previously, when the VM parsed a doubles from the dill file it passed
> control over to the constant evaluator which would then case the
> value and canonicalize it.
> That doesn't really seem to make sense when its not used in a const
> context, nor is it done the same way for integers for instance.
> 
> This CL changes that and treats doubles the same way as integers.
> 
> Below timings are statistics run through "ministat" based on 5 runs
> of each configuration (now and before). The timings is for running
> the dill file with the VM, i.e. the dill file was precompiled via
> fasta.
> 
> Program adding 50,000 doubles to a list and prints the last one:
> 
>         -56.6 +/- 28.2389
>         -10.9988% +/- 5.48753%
>   (~510 ms -> ~460 ms)
> 
> Program adding 1,000,000 doubles to a list and prints the last one:
> 
>         -3177.2 +/- 263.54
>         -31.4643% +/- 2.60987%
>   (~10 seconds -> ~7 seconds)
> 
> Hello world program:
> 
> No difference proven at 95.0% confidence
> 
> Change-Id: I7dd748e759b3e433bc806b2ef2505d29f0b109b6
> Reviewed-on: https://dart-review.googlesource.com/42000
> Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
> Commit-Queue: Jens Johansen <jensj@google.com>

TBR=ahe@google.com,vegorov@google.com,jensj@google.com

Change-Id: If8efa9917c009f2df68a3ef00331ab45bf8bf67b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/41981
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2018-02-16 11:08:18 +00:00
Jens Johansen 12407c3ea0 [kernel] Don't always treat doubles as constants
Previously, when the VM parsed a doubles from the dill file it passed
control over to the constant evaluator which would then case the
value and canonicalize it.
That doesn't really seem to make sense when its not used in a const
context, nor is it done the same way for integers for instance.

This CL changes that and treats doubles the same way as integers.

Below timings are statistics run through "ministat" based on 5 runs
of each configuration (now and before). The timings is for running
the dill file with the VM, i.e. the dill file was precompiled via
fasta.

Program adding 50,000 doubles to a list and prints the last one:

        -56.6 +/- 28.2389
        -10.9988% +/- 5.48753%
  (~510 ms -> ~460 ms)

Program adding 1,000,000 doubles to a list and prints the last one:

        -3177.2 +/- 263.54
        -31.4643% +/- 2.60987%
  (~10 seconds -> ~7 seconds)

Hello world program:

No difference proven at 95.0% confidence

Change-Id: I7dd748e759b3e433bc806b2ef2505d29f0b109b6
Reviewed-on: https://dart-review.googlesource.com/42000
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2018-02-16 10:21:47 +00:00
Alexander Markov dc1b07af7f [vm,aot] Refine types of uses after specializing a call
After replacing a call with specialized instruction it makes sense
to update types of uses immediately to open more opportunities for
specialization of calls which use result of a replaced call.

Issue: https://github.com/dart-lang/sdk/issues/30480
Change-Id: I87d64ff190cebd4fcd1d2ac678859f2bc6612f6d
Reviewed-on: https://dart-review.googlesource.com/41602
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-02-16 01:25:08 +00:00
Alexander Markov a9586c6147 [vm,aot] Recognize haveSameRuntimeType pattern after devirtualization
This CL teaches AotCallSpecializer to recognize and optimize
haveSameRuntimeType pattern after TFA devirtualizes 'operator=='.

Issue: https://github.com/dart-lang/sdk/issues/30480
Change-Id: I172384c8113d2f0954ac141e8f2c1050bc850306
Reviewed-on: https://dart-review.googlesource.com/41572
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-02-16 00:26:50 +00:00
asiva 0ee460a6b0 Fix memory leak in check snapshot unit test (was reported in the asan build).
Change-Id: I289e189afd5d27fd1ad230270a29d838dd6b77bd
Reviewed-on: https://dart-review.googlesource.com/41905
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
2018-02-15 22:06:19 +00:00
Alexander Markov 32fb103713 [vm/aot] Recognize int operations after devirtualization
TFA devirtualizes calls to int methods and converts them to
static calls to _IntegerImplementation methods.

This CL teaches AotCallSpecializer to recognize int operations
after devirtualization.

Issue: https://github.com/dart-lang/sdk/issues/30480
Change-Id: I94be77675fdabef52861869aa4a8ef36946258ae
Reviewed-on: https://dart-review.googlesource.com/41540
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-02-15 19:14:35 +00:00
Zach Anderson fe96de2858 Revert "Restore console to original state on VM exit. Fixes issue #30318."
This reverts commit c9700040c3.

Revert "[vm] Fix Fuchsia's Platform::Save/RestoreConsoleConfiguration."

This reverts commit 365f7b5a8b.

Reason for revert: newlines not printed correctly on Windows after
spawning a Dart VM process.

fixes #32172

Change-Id: I155752370bed7798fe91defdc61ccfe9f666b725
Reviewed-on: https://dart-review.googlesource.com/41840
Reviewed-by: Zach Anderson <zra@google.com>
2018-02-15 16:33:41 +00:00
asiva b9039cd35b - Fix const ness in signature of new API function
- Access snapshot contents using the getter

Change-Id: I9c264c2bf8ab20ee1d3431e4b802e14fa92616c2
Reviewed-on: https://dart-review.googlesource.com/41642
Reviewed-by: Siva Annamalai <asiva@google.com>
2018-02-15 09:11:04 +00:00
Vyacheslav Egorov c2899e424f [vm/kernel/aot] Keep type checks in setters for covariant fields
Fixes issue instroduced by 286b123d35

Change-Id: I10444a7ecbb5c03e052df720f3dc1694983e6423
Reviewed-on: https://dart-review.googlesource.com/41263
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-02-15 07:21:32 +00:00
asiva f1543c38ee Adjust Dart_IsDart2Snapshot API to not expect a size argument as the size
is part of the snapshot header.

Change-Id: I4b6cf3b78c122b406e09fe4234a8ea8ce81b4986
Reviewed-on: https://dart-review.googlesource.com/41641
Reviewed-by: Siva Annamalai <asiva@google.com>
2018-02-15 07:12:34 +00:00
Ben Konyi 5716109abd [VM / Hot-Reload] Fixed tests that were failing due to different failure messages generated by the VM parser and CFE.
Change-Id: I6840c993300b3ba36c44bfc8f5c0ce6b8043d6f7
Reviewed-on: https://dart-review.googlesource.com/41571
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
2018-02-15 01:03:04 +00:00
Ben Konyi 0fd6aa87a3 [VM / Hot-Reload] Treat fields with null initializers as having no initializer set during reload.
Change-Id: I685f6944ca27fd680e4d912877a922125d7d7ca5
Reviewed-on: https://dart-review.googlesource.com/41568
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2018-02-15 00:26:33 +00:00
asiva 9884447cc5 Add a new API function to sniff a snapshot to determine if the
snapshot is a Dart2 snapshot or a Dart1 snapshot.
This will be used by the flutter engine to initialize itself
correctly based on the snapshot provided.

Change-Id: I06adaac74b350f96aa6ebb55887e4a81f09fbd14
Reviewed-on: https://dart-review.googlesource.com/41082
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2018-02-14 23:27:38 +00:00
Régis Crelier 3d756ec4ab [VM runtime] In strong mode, restrict subtyping rules of callable instances (fixes #32154).
Update kernel status files.

Change-Id: I2bf6097b5229d80cc90baed92fd8dcc750667b23
Reviewed-on: https://dart-review.googlesource.com/41482
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-02-14 21:48:27 +00:00
Régis Crelier 933a0ae895 [Kernel] Check return type of native functions in strong mode (fixes #32090).
[VM] Check return type of all functions in strong mode.

Change-Id: I01ff80e9ec5c625a0855a22498f9c2d738de4678
Reviewed-on: https://dart-review.googlesource.com/40641
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2018-02-14 20:30:43 +00:00
Alexander Markov c823888580 [vm] Avoid setting result type to dynamic for recognized methods
The list of recognized methods in the VM includes information about
result type. If there is no known/concrete result cid, the list
contains dynamic. When StaticCallInstr for recognized method is created,
its result type was pulled from the list even if it was dynamic.

This change avoids setting result type to dynamic in such case
and fixes the assertion for conflicting result types from the list of
recognized methods and from global type inference.
Now, if list of recognized methods has dynamic, and inferred type
is available, the latter will be used.

Change-Id: I7da7313f93ca08a142226026a4645124c30cfd8f
Reviewed-on: https://dart-review.googlesource.com/41080
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2018-02-14 17:29:23 +00:00
Vyacheslav Egorov 286b123d35 [vm/kernel/aot] Remove type checks from non-dynamically-invoked implicit setters
This applies optimization from d117760 to implicit setters.

(This CL also reformats kernel_binary_flowgraph.cc because some previous CL
was pushed without proper formatting)

Bug: https://github.com/dart-lang/sdk/issues/31798
Change-Id: I6f1590bfd40e36b972b857c49d6ce8435bb25187
Reviewed-on: https://dart-review.googlesource.com/41300
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2018-02-14 16:24:03 +00:00
Jens Johansen 90a7599d05 [vm] Make mint constants use hash set instead of plain list.
This the second part of fixing #32077 - dealing with mints.

Example:
The runtime of a program adding 100,000 different mints to
a list and prints the last one:
Before: ~12.5 seconds
Now: ~1.2 seconds.

Change-Id: Iad6da1749886bab4e4d3941748cdbab51661c2c3
Reviewed-on: https://dart-review.googlesource.com/41161
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2018-02-14 11:25:42 +00:00
Jens Johansen 90f3a603cd [gardening] kernel/windows status file updates #4
Change-Id: I7c938730c245f74c06e938f31ed2cdedf6db6e62
Reviewed-on: https://dart-review.googlesource.com/41180
Reviewed-by: Jens Johansen <jensj@google.com>
2018-02-14 11:10:26 +00:00
Ben Konyi 3c4dccbd46 [VM] Fixed ReadPrecompiledKernelFromFile passing NULL instead of a handle to Library::null() to the LibraryTagHandler.
This was causing an assert to fail in tonic, which was expecting the
field to be either a null handle, a String handle, or a Library handle.

Change-Id: I78b44a26c4e0689ad10c5c92e9d757a5c2dc7cc8
Reviewed-on: https://dart-review.googlesource.com/41081
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2018-02-14 01:44:18 +00:00
Régis Crelier ba75b6939d [VM] Increase BigInt digit size from 16 to 32 bits.
Change-Id: I60e7e34559d11d80fde7955dec98b21b7029e199
Reviewed-on: https://dart-review.googlesource.com/40962
Commit-Queue: Régis Crelier <regis@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2018-02-14 00:41:01 +00:00
Ryan Macnak 3f40488ec4 [vm, isolate] Refactor isolate message snapshotting to centralize construction of the Message.
Remove unused special case in ApiMessageWriter for lists of int.

This is in preparation for ensuring we always free any external data that ends up in an isolate message.

Bug: https://github.com/dart-lang/sdk/issues/31959
Change-Id: I999656fc11d2aee9aebe70852be5bb075f234b4d
Reviewed-on: https://dart-review.googlesource.com/41020
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2018-02-14 00:28:01 +00:00
Ben Konyi 392062c617 Fixed issue where KernelIsolate::AcceptCompilation was being called even when no compilation was done. Fixes #32145.
Change-Id: I043484560b77548cf33847e0d57c6e89a8a178f3
Reviewed-on: https://dart-review.googlesource.com/41025
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2018-02-13 23:46:30 +00:00
Siva Annamalai 4925ed38ac Revert "Create isolate from the platform kernel when running VM tests under dartk."
This reverts commit 3e967d3d76.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Create isolate from the platform kernel when running VM tests under dartk.
> 
> Status of tests which now start failing has been updated.
> 
> Ability to run the vm tests in strong mode has also been added. The
> status of tests which fail in strong mode will be updated when the vm
> tests are moved under the strong mode tests on the bots.
> 
> Change-Id: I95f94c09dd0ebbf1fe661ee1f6e0c3e7b07509bd
> Reviewed-on: https://dart-review.googlesource.com/40642
> Commit-Queue: Siva Chandra <sivachandra@google.com>
> Reviewed-by: Siva Annamalai <asiva@google.com>

TBR=sivachandra@google.com,asiva@google.com

Change-Id: I6144bbe882cdf56ee6be3132c6f9dec2cbafcb47
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/41026
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
2018-02-13 23:33:12 +00:00
Siva Chandra 3e967d3d76 Create isolate from the platform kernel when running VM tests under dartk.
Status of tests which now start failing has been updated.

Ability to run the vm tests in strong mode has also been added. The
status of tests which fail in strong mode will be updated when the vm
tests are moved under the strong mode tests on the bots.

Change-Id: I95f94c09dd0ebbf1fe661ee1f6e0c3e7b07509bd
Reviewed-on: https://dart-review.googlesource.com/40642
Commit-Queue: Siva Chandra <sivachandra@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2018-02-13 20:34:24 +00:00
Jens Johansen 5142fcc774 [gardening] kernel/windows status file updates #3
Change-Id: Ia0d6625494eae9d6116b90c15994ef7f07811b42
Reviewed-on: https://dart-review.googlesource.com/40800
Reviewed-by: Jens Johansen <jensj@google.com>
2018-02-13 13:35:33 +00:00
Jens Johansen f5829bb75e [gardening] kernel/windows status file updates #2
Change-Id: I5ba0dd75456ec07c833f5d2e88b30e814139b37a
Reviewed-on: https://dart-review.googlesource.com/40745
Reviewed-by: Jens Johansen <jensj@google.com>
2018-02-13 13:08:52 +00:00
Jens Johansen 4fac2530de [gardening] kernel/windows status file updates #1
Bugs #32137 and #32138.

Change-Id: If91591170b342794120076fe6af269e8020d3796
Reviewed-on: https://dart-review.googlesource.com/40744
Reviewed-by: Jens Johansen <jensj@google.com>
2018-02-13 11:58:15 +00:00
Alexander Markov 6ed2ebf6b0 [vm/kernel/aot] Infer parameter types in type flow analysis
Issue: https://github.com/dart-lang/sdk/issues/30480
Change-Id: Iea1480ce2f20b6cb08b4eb57eef5ca14a002e6e0
Reviewed-on: https://dart-review.googlesource.com/40400
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-02-13 01:11:18 +00:00
Ben Konyi 2ba978a186 [VM] Hooked up incremental compiler wrapper w/ accept protocol
Change-Id: I965e84cc2f8783d37f68a20880a37315c1918c0f
Reviewed-on: https://dart-review.googlesource.com/40200
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2018-02-12 17:23:07 +00:00
Jens Johansen 9fbbd2dd41 [vm] Make double constants use hash set instead of plain list.
This the first part of fixing #32077 - dealing with doubles.

Example:
The runtime of a program adding 100,000 different doubles to
a list and prints the last one:
Before: ~12 seconds
Now: ~1.3 seconds.

Change-Id: I7f64b8763fdd37dae5d32d3275f8b9c991d4e43a
Reviewed-on: https://dart-review.googlesource.com/40300
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-02-12 17:17:42 +00:00
Vyacheslav Egorov 400c6c19e9 [vm/kernel] Reformat uris of core-library scripts when reporting exceptions.
Currently front-end embeds absolute paths to build time locations into
Kernel binaries. Reporting those to user make stack trace unreadable and
also breaks stack trace filters that attempt to filter out implementation
frames from dart:async:

#1      _RootZone.runUnary (file:///Users/vegorov/src/dart/sdk/sdk/lib/async/zone.dart:1381:54)

same frame in legacy mode looks like this:

#1      _RootZone.runUnary (dart:async/zone.dart:1381)

This CL changes stack frame formatting so that even in Dart 2 mode result looks
closer to legacy mode result.

This is a workaround for https://github.com/dart-lang/sdk/issues/32087

Change-Id: Ic69cb039ff7d40d0e8e5340a9c1dc067427479ea
Reviewed-on: https://dart-review.googlesource.com/40522
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2018-02-12 15:42:47 +00:00
Samir Jindel 65b0982ac9 Remove dead code around argument checks in the VM.
Change-Id: I6a04b3b5971b3ae3bc8996ebe6b8f33fa12bd43d
Reviewed-on: https://dart-review.googlesource.com/40524
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Samir Jindel <sjindel@google.com>
2018-02-12 15:22:47 +00:00
Vyacheslav Egorov 1796437cce [vm/kernel] Support synchronously completing futures
Slightly alter async/await transformation in such a way that
:await_jump_var/:await_ctx_var are set before _awaitHelper(...) is invoked -
just like in the AST transformer used by the legacy pipeline. This guarantees
that recursive invocations will continue from the right "jump" point (instead of
continuing from the current jump point).

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

Change-Id: I8899669ceefe3f2edba6531897834b2c275efada
Reviewed-on: https://dart-review.googlesource.com/40520
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2018-02-12 15:01:18 +00:00
Ryan Macnak 365f7b5a8b [vm] Fix Fuchsia's Platform::Save/RestoreConsoleConfiguration.
Broken in c9700040c3.

Change-Id: If85a3d29b7b5eb570c689858d5593dbcbf36026e
Reviewed-on: https://dart-review.googlesource.com/40473
Reviewed-by: Zach Anderson <zra@google.com>
2018-02-10 00:35:48 +00:00
Ian McKellar a0795f1850 Stop including <sys/resource.h> on Fuchsia.
It isn't used and those functions don't work or make sense anyway.

Change-Id: I37cb666b5e37a82131d612cf89f3ad59fd69208c
Reviewed-on: https://dart-review.googlesource.com/40460
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2018-02-09 19:28:19 +00:00
Ryan Macnak 692eaba189 [vm, aot] Debugging aids for null function encountered when writing DWARF inlining data.
Bug: https://github.com/dart-lang/sdk/issues/31952
Change-Id: I884c1a0c6f7255935743c4ec7c78c9501708a2f7
Reviewed-on: https://dart-review.googlesource.com/40203
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2018-02-09 18:49:39 +00:00
Erik Corry 362e7c7883 [VM] Consolidate architecture-specific Label classes
R=vegorov@google.com

Change-Id: I3f3342282ac21b06e675b21981168f2a6750b6bd
Reviewed-on: https://dart-review.googlesource.com/39524
Commit-Queue: Erik Corry <erikcorry@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-02-08 23:47:12 +00:00
Ben Konyi c9700040c3 Restore console to original state on VM exit. Fixes issue #30318.
Change-Id: I31b5da600ed5091cd788cde42b72e2fb910fe03a
Reviewed-on: https://dart-review.googlesource.com/39843
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
2018-02-08 21:56:57 +00:00
Alexander Markov 1a1c7693d2 [VM/compiler] Fix range analysis for 64-bit fixed-size integers
This CL corrects handling of overflows in range analysis to
account for wrap-around (which happens with new integer semantics).

* If there is an overflow while doing computations in range
  analysis, the resulting range is approximated as full int64 range.

* For symbolic range boundaries 'symbol + offset', offset is checked
  to stay within [kMinInt64 - kSmiMin, kMaxInt64 - kSmiMax] in order
  to guarantee that overflow doesn't occur.

Issue: https://github.com/dart-lang/sdk/issues/31920
Change-Id: I2c16adbe3597e9b718ed2f6ce7210426fcc9e6a6
Reviewed-on: https://dart-review.googlesource.com/39423
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-02-08 21:49:42 +00:00
Siva Chandra 6ff0951bdf Remove the use of redundant flags --dfe and --kernel-binaries.
This change helps in confining flag manipulation to just the embedder.
When we are ready to turn all dart 2 flags to true by default, the
change can be confined to just the VM.

Change-Id: I4ac550c331b1f236a2bd9d0453b7c567eb0c05d3
Reviewed-on: https://dart-review.googlesource.com/38881
Commit-Queue: Siva Chandra <sivachandra@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2018-02-08 20:56:22 +00:00
Alexander Markov 1bebd7aa1d [VM] Support inlining of _TypedList._setInt64 on x64
Issue: https://github.com/dart-lang/sdk/issues/32080
Change-Id: I692d1873acc4c9816ccc6929f51e0ed699f585da
Reviewed-on: https://dart-review.googlesource.com/40103
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2018-02-08 20:47:41 +00:00
Mike Fairhurst 56d59dd967 Reland https://dart-review.googlesource.com/c/sdk/+/37441 with fixes
Change-Id: If8e2ec2ca1ac4f533dcb56b0c95d55e4a13e0598
Reviewed-on: https://dart-review.googlesource.com/39881
Reviewed-by: Paul Berry <paulberry@google.com>
2018-02-08 20:46:19 +00:00
William Hesse 7c059b2ac8 Update precompiler status for optimized_stacktrace_line test.
This is a follow-up to changelist
https://dart-review.googlesource.com/c/sdk/+/39985
reversing a too-general deletion

Change-Id: I0ab4ec9b63a6e308b33a5ca455678dc8a3df777d
Reviewed-on: https://dart-review.googlesource.com/40061
Reviewed-by: William Hesse <whesse@google.com>
2018-02-08 19:11:04 +00:00
William Hesse be2e6c4f82 Update status for new dartk and dartkp builders
Change-Id: Ie5ed3cade049d1d7831440adece520dd09ad13d7
Reviewed-on: https://dart-review.googlesource.com/39985
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-02-08 16:52:56 +00:00
Dmitry Stefantsov 47fbe76d03 Avoid patching with redirecting factories in vm-related patches
Change-Id: Id45696a38b281b1b75a9a0e26d89216388a4ec19
Reviewed-on: https://dart-review.googlesource.com/39942
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-02-08 14:11:50 +00:00