Commit graph

14965 commits

Author SHA1 Message Date
Erik Corry 029b1cb948 Spelling fixes e to i.
R=kevmoo@google.com
BUG=

Review-Url: https://codereview.chromium.org/2957593002 .
2017-06-24 13:41:39 +02:00
Bob Nystrom dd5c779b43 Update statuses for tests that don't touch dart:mirrors anymore.
BUG=
R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2957613003 .
2017-06-23 14:44:52 -07:00
Régis Crelier bb527cb89e Avoid an assert fault in snapshot writer by making sure that the parent of a
signature function is also a signature function (fixes #29994).

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2949383003 .
2017-06-23 14:18:12 -07:00
Vyacheslav Egorov 7887c34a29 VM(RegExp): Allow OSR optimization of RegExp :matcher functions.
Previously these functions would only contain a single CheckStackOverflowInstr
in a backtracking block and that CheckStackOverflowInstr would have a zero
loop_depth - which means it would not be considered eligable for OSR.

This change:

* adds CheckStackOverflowInstr with non-zero loop_depth in two other places
  (Boyer-Moore lookahead skip loop and greedy loop) where loops arise in the
  generated IL;
* sets non-zero loop depth on the CheckStackOverflowInstr in the backtracking
  block;
* adds a flag on CheckStackOverflowInstr that allows optimizing compiler to
  optimize away those checks that were inserted solely to serve as OSR entries.
* ensures that IR generated by IRRegExpMacroAssembler is OSR compatible:
  * GraphEntryInstr has correct osr_id;
  * GraphEntry and normal entry have different block ids (B0 and B1 - instead of B0 and B0);
  * unreachable blocks are pruned and GraphEntry is rewired to point to OSR entry;
  * IRRegExpMacroAssembler::GrowStack should not assume that  stack_array_cell and :stack
    are always in sync, because :stack can come from OSR or deoptimization why stack_array_cell
    is a constant associated with a particular Code object.
* refactors the way the RegExp stack was growing: instead of having a special instruction
  just emit a call to a Dart function;
* refactors the way block pruning for OSR is done by consolidating duplicated code
  in a single function.

We allow the optimizing compiler to remove preemption checks from
non-backtracking loops in the regexp code because those loops
unlike backtracking have guaranteed O(input_length) time
complexity.

Performance Implications
------------------------

This change improves performance of regexps in cases where regexp spends a lot
of time in the first invocation (either due to backtracking or due to long non
matching prefix) by allowing VM to optimize the :matcher while :matcher is
running.

For example on regex-redux[1] benchmark it improves Dart performance by 3x
(from ~18s to ~6s on my Mac Book Pro).

CL history
----------

This relands commit d87cc52c3e.

Original code review: https://codereview.chromium.org/2950783003/

[1] https://benchmarksgame.alioth.debian.org/u64q/program.php?test=regexredux&lang=dart&id=2

R=erikcorry@google.com

Review-Url: https://codereview.chromium.org/2951053003 .
2017-06-23 12:51:53 +02:00
Kevin Millikin 23083fdee1 Mark a crashing test
A recent VM change is triggering an assertion in the VM's snapshot
writer in the ahead-of-time compiler.  Since things seem to be
otherwise working, I've filed an issue and disabled the test for now.

BUG=
R=sortie@google.com

Review-Url: https://codereview.chromium.org/2957613002 .
2017-06-23 12:11:14 +02:00
William Hesse c01c51d195 Update co19 browser status for flaky tests
BUG=
R=sortie@google.com

Review-Url: https://codereview.chromium.org/2945423004 .
2017-06-23 11:20:29 +02:00
Ben Konyi 89eda8a533 Updated status file to fix kernel bot failures.
TBR=zra@google.com
BUG=

Review-Url: https://codereview.chromium.org/2953933003 .
2017-06-22 15:09:49 -07:00
Ben Konyi 143baba8fc Reintroducing parser changes to cause compile-time errors when trying to reinitialize a final field. Updated status files to hopefully address the test failures. Issue 29658.
This reverts commit 12e93cc41e.

BUG=
R=zra@google.com

Review-Url: https://codereview.chromium.org/2953843003 .
2017-06-22 13:48:57 -07:00
Ben Konyi 06456e83d8 Added timeout parameter to RawSecureSocket and SecureSocket connect methods. Also updated CHANGELOG and SecureSocket tests to reflect this change. Issue 19120.
BUG=
R=zra@google.com

Review-Url: https://codereview.chromium.org/2950413002 .
2017-06-22 13:45:26 -07:00
William Hesse 5aef1e640b Update browser statuses for co19 roll
BUG=
R=kustermann@google.com

Review-Url: https://codereview.chromium.org/2951273003 .
2017-06-22 18:14:47 +02:00
Zachary Anderson ac16656161 Remove MIPS support
R=asiva@google.com

Review-Url: https://codereview.chromium.org/2858623002 .
2017-06-22 08:49:22 -07:00
Martin Kustermann ca6c60f447 More status file updates after co19 roll
R=whesse@google.com

Review-Url: https://codereview.chromium.org/2953813002 .
2017-06-22 16:00:52 +02:00
Martin Kustermann 42e2ae40e8 Update status file for dartk-checked (status files are out-dated due to builder being on FYI)
Closes https://github.com/dart-lang/sdk/issues/29225

R=jensj@google.com

Review-Url: https://codereview.chromium.org/2948153005 .
2017-06-22 15:36:30 +02:00
William Hesse 3078734ff7 Correct merge errors in co19 roll
This corrects merge errors found in the commit of
https://codereview.chromium.org/2954443002/

BUG=
R=kustermann@google.com

Review-Url: https://codereview.chromium.org/2948153004 .
2017-06-22 13:47:43 +02:00
William Hesse 232684aac0 Update co19 to revision dec2b67aaab3bb7339b9764049707e71e601da3d
BUG=
R=kustermann@google.com

Review-Url: https://codereview.chromium.org/2954443002 .
2017-06-22 11:46:13 +02:00
Vijay Menon febded6052 Fix mocked operator methods
R=jacobr@google.com

Review-Url: https://codereview.chromium.org/2949123002 .
2017-06-21 16:54:08 -07:00
Régis Crelier eabcc23b33 Fix type argument finalization of some recursive generic types (fixes #29949).
Add regression test.

R=asiva@google.com

Review-Url: https://codereview.chromium.org/2952743003 .
2017-06-21 14:54:12 -07:00
Ben Konyi 86fdbde70a Added timeout parameter to RawSocket and Socket connect, which allows for the specification of a maximum time to wait for a valid connection to be established.
fixes #19120

R=zra@google.com

Review-Url: https://codereview.chromium.org/2946333002 .
2017-06-21 14:31:52 -07:00
Bob Nystrom 47aa77f139 Fix test.dart test.
R=zra@google.com

Review-Url: https://codereview.chromium.org/2951163002 .
2017-06-21 14:09:21 -07:00
Bob Nystrom b452b39962 Basic support for dev_compiler in test.dart.
It can compile and run tests on Chrome. There are a lot of failing tests
that I (or the team) will need to triage, but I think at least basic
tests are working as expected.

There is code that could be cleaned up to more neatly factor how dart2js
and dartdevc are handled now that there are two separate compilers to
JS. There's also some redundant code between the path for testing
compile errors (enqueueStandardTest()) and the path for running a test
in the browser.

R=whesse@google.com

Review-Url: https://codereview.chromium.org/2947473002 .
2017-06-21 13:19:28 -07:00
Ryan Macnak dddd96cfd2 [arm] Avoid unaligned access fault in Int32x4/Float32x4::value().
R=zra@google.com

Review-Url: https://codereview.chromium.org/2947783002 .
2017-06-21 09:11:04 -07:00
Ryan Macnak 095ff155fd VM: Allow trailing comma in assert statements.
Issue #29959

R=regis@google.com

Review-Url: https://codereview.chromium.org/2946173002 .
2017-06-21 09:08:16 -07:00
Jens Johansen d03a0d798e Re-insert linebreak in dwarf_stack_trace_test
This file was auto-formatted 2 months ago.
This - among other things - removed a linebreak which shifted linenumbers
by one, but didn't update the expected linenumbers from a throw accordingly.
Somehow the testserver has claimed that this has passed until now.
I have no idea how that happened.

This CL re-introduces the linebreak by inserting a comment,
which (currently) forces dartfmt to have the wanted linebreak.

BUG=
R=dmitryas@google.com

Review-Url: https://codereview.chromium.org/2945273002 .
2017-06-21 13:47:38 +02:00
Jens Johansen 202306f39b [kernel] Fix loading of type argument in catch.
Catch simply gave NullConstant as arguments to _instanceOf,
now I've copied what the IsExpression does, and made
LoadInstantiatorTypeArguments actually work in this case
(by filling out the scopes_->this_variable value,
by actually visiting the catch guard in the scope builder
rather than skipping it).

Fixes #29553.

BUG=
R=kmillikin@google.com

Review-Url: https://codereview.chromium.org/2938173002 .
2017-06-21 10:56:21 +02:00
Jens Johansen 29036d398b [kernel] Fix loss of supertype arguments.
Before this, if a generic class was instantiated with only dynamic,
TypeArgument::null would be used as the type argument, ignoring
types from the super.
Now it only returns TypeArguments::null if the class directly gives all
type arguments (and they are all dynamic).

Fixes #29537

BUG=
R=kmillikin@google.com

Review-Url: https://codereview.chromium.org/2941983002 .
2017-06-21 10:22:40 +02:00
Johnni Winther 0600f0ad9a Add closure_test for kernel based members
+ change id_equivalence_test to check kernel from .dill

R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2951723002 .
2017-06-21 09:52:46 +02:00
William Hesse 823e7c6b03 Revert "Merge branch 'co19roll'"
This reverts commit 42cc7d570c.

BUG=
TBR=sortie@google.com

Review-Url: https://codereview.chromium.org/2952573003 .
2017-06-21 07:15:25 +02:00
William Hesse 42cc7d570c Merge branch 'co19roll'
Update co19 status files with results from buildbot.

Update co19 to revision dec2b67aaab3bb7339b9764049707e71e601da3d

BUG=
R=sortie@google.com

Review-Url: https://codereview.chromium.org/2948763003 .
2017-06-21 06:34:55 +02:00
Alan Knight 12e93cc41e Revert "Updated parser to produce error when trying to reinitialize final variables in class constructors. Fixes issue #29658."
This reverts commit 9755a98b00.

BUG=

Review-Url: https://codereview.chromium.org/2949943002 .
2017-06-20 15:25:55 -07:00
Ben Konyi 9755a98b00 Updated parser to produce error when trying to reinitialize final variables in class constructors. Fixes issue #29658.
BUG=
R=zra@google.com

Example:
Foo {
  final int x = 10;
  Foo(this.x); // Error
  Foo.named() : x = 42; // Error
}
Review-Url: https://codereview.chromium.org/2947043002 .
2017-06-20 14:40:36 -07:00
Jens Johansen 5472eb7831 [kernel] Don't emit field initializers in a redirecting constructor
BUG=
R=vegorov@google.com

Review-Url: https://codereview.chromium.org/2940323002 .
2017-06-20 13:54:25 +02:00
Jens Johansen c649557584 [kernel] Check type for list literals
BUG=
R=kmillikin@google.com

Review-Url: https://codereview.chromium.org/2949493002 .
2017-06-20 13:04:08 +02:00
Johnni Winther e41d0a63c2 Compute KernelClosureRepresentationInfo.variableIsUsedInTryOrSync
This handles one of the current inequivalences on hello world from dill.

R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2938203003 .
2017-06-20 12:45:51 +02:00
Johnni Winther 4a31a0be47 Add closure_test
- currently only for AST-based elements; IR-based to come

R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2950493002 .
2017-06-20 12:27:19 +02:00
Ben Konyi a4a227e375 Revert "Updated parser to produce error when trying to reinitialize final variables in class constructors. Fixes issue #29658."
This reverts commit b5cff3f68f.

TBR=zra@google.com

Review-Url: https://codereview.chromium.org/2944223002 .
2017-06-19 17:23:01 -07:00
Ben Konyi 0555d5e176 More status file updates to fix bot failures caused by parser change.
BUG=

Review-Url: https://codereview.chromium.org/2943413002 .
2017-06-19 16:24:30 -07:00
Ben Konyi 63be906fb6 Updated tests that had incorrect annotations which were causing test failures, and updated co19 status file to expect CompileTimeError for some additional tests.
BUG=
R=sivachandra@google.com

Review-Url: https://codereview.chromium.org/2950683002 .
2017-06-19 15:49:10 -07:00
Ben Konyi 76523917ed Updated kernel status file to address incorrect test failures.
TBR=paulberry@google.com
BUG=

Review-Url: https://codereview.chromium.org/2951613002 .
2017-06-19 15:18:45 -07:00
Ben Konyi 9cd36a5b54 Updated failure type for Dartium test
BUG=
R=sivachandra@google.com

Review-Url: https://codereview.chromium.org/2945893003 .
2017-06-19 15:06:43 -07:00
Ryan Macnak c15f6f8d94 Mark language/closure_cycles_test as slow on the arm64 bot.
Review-Url: https://codereview.chromium.org/2945913002 .
2017-06-19 14:08:21 -07:00
Ben Konyi 22042b691f Updated language-dartium.status to expect compile time error for Language/Classes/Constructors/Generative_Constructors/initializing_formals_execution_t02
BUG=
TBR=zra@google.com

Review-Url: https://codereview.chromium.org/2949643002 .
2017-06-19 13:42:06 -07:00
Vijay Menon ed8de04f08 Fixes for super tearoff in constructor
Fixes #29932

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2944003003 .
2017-06-19 13:39:53 -07:00
Ben Konyi 510c3f02ba Fixed language_analyzer2.status file to skip test until issue 29657 is resolved.
BUG=

Review-Url: https://codereview.chromium.org/2950593002 .
2017-06-19 13:36:18 -07:00
Ben Konyi 2cdfc0cdab Updated co19 status file to skip initializing_formals_execution_t02 until it is updated to expect a compilation error when trying to reinitialize a final field: https://github.com/dart-lang/co19/issues/114.
BUG=

Review-Url: https://codereview.chromium.org/2944073002 .
2017-06-19 13:14:03 -07:00
Ben Konyi b5cff3f68f Updated parser to produce error when trying to reinitialize final variables in class constructors. Fixes issue #29658.
BUG=
R=asiva@google.com

Example:
Foo {
  final int x = 10;
  Foo(this.x); // Error
  Foo.named() : x = 42; // Error
}
Review-Url: https://codereview.chromium.org/2939553005 .
2017-06-19 12:07:37 -07:00
Ryan Macnak 72e1775fd1 [arm, arm64] Implemented unaligned scalar float access.
[arm64] Fix unaligned (u)int64 stores.

Fix unaligned access test to use host endianness.

Issue #22151

R=zra@google.com

Review-Url: https://codereview.chromium.org/2940883008 .
2017-06-19 10:28:38 -07:00
Peter von der Ahé 69d6e8e55a All strong mode cleaning of dart2js.
Fixes https://github.com/dart-lang/sdk/issues/29886

Supersedes CLs 2939193003, 2950433002, and 2947583002.

R=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/2944843002 .
2017-06-19 14:06:38 +02:00
William Hesse 2b6fbc7069 Revert co19 roll attempt
Revert "Status files updated according to buildbot log (#29929)"

This reverts commit 5b7a7958b2.

Revert "Fix Dartium DEPS typo in co19 roll"

This reverts commit 4996568879.

BUG=

Review-Url: https://codereview.chromium.org/2949543002 .
2017-06-19 13:17:55 +02:00
Sergey G. Grekhov 5b7a7958b2 Status files updated according to buildbot log (#29929)
* DEPS ans status files updated to the last co19 commit

* Commented lines deleted from .status file

* DEPS ans status files updated to the last co19 commit

* DEPS ans status files updated to the fix of https://github.com/dart-lang/co19/issues/110

* Fix for https://github.com/dart-lang/co19/issues/87 added

* Fix for https://github.com/dart-lang/co19/issues/88 added

* Status files updated according to buildbot log
2017-06-19 12:55:32 +02:00
Jennifer Messerly 93a02bf8f9 fix super setters when super is not allowed
We were generating these incorrectly. This also improves the code structure around super helpers as well as accessors vs fields.

R=vsm@google.com

Review-Url: https://codereview.chromium.org/2940323003 .
2017-06-16 11:49:51 -07:00