Commit Graph

64479 Commits

Author SHA1 Message Date
Konstantin Shcheglov f1f297e213 Build export elements and combinators.
R=brianwilkerson@google.com

Change-Id: I11de7239bcc40ae89ff0ee1c70603aebdccace1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98900
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-04-08 17:33:24 +00:00
Konstantin Shcheglov 762acf00e8 Restore computing export scopes.
R=brianwilkerson@google.com

Change-Id: I36d758694b85fd77ebc54974859648f864109425
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98863
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-04-08 17:12:58 +00:00
Sam Rawlins 959cf5967d Simplify strong_test_helper
Change-Id: Ida1b564d6b09a5233f8529d395938db1424b6551
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98725
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2019-04-08 16:58:53 +00:00
Konstantin Shcheglov aacc0b0709 Index more declarations and build more scopes.
R=brianwilkerson@google.com

Change-Id: I57e0fdae77cee0be92c92c327f8b0d8b3b082da7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98880
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-04-08 16:41:29 +00:00
Paul Berry b2df6eddda Make a new "nullability node" abstraction for the migration tool.
I will follow up with CLs that re-express the nullability inference
rules in terms of nullability nodes rather than constraint variables.

Change-Id: I6d8492eb83d09dde665ec925d0ac0fde19a3c521
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98861
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-04-08 16:41:23 +00:00
Konstantin Shcheglov 258d2f121b Rewrite more element model to using AST.
Change-Id: Ic0e8c100806146182e3e1018d2d966260f93176f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98801
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-04-08 15:24:04 +00:00
Martin Kustermann 27a58d455d [vm/aot] Remove special casing of td views, allow external/internal typed data to be fast as well in string decoding
This improves the binary protobuf decoding benchmark by 6% on x64/arm64
and 17% on arm32.

Issue https://github.com/dart-lang/sdk/issues/35154

Change-Id: I23ba48b79b6e2a7698707f81ae4122cb9590ed2c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98844
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2019-04-08 15:06:03 +00:00
Martin Kustermann 8e4dcf48c4 [vm/compiler/aot] Fix unboxing of int32/uint32 in typed data specializer
Issue https://github.com/dart-lang/sdk/issues/36521

Change-Id: I206a16479f734bf757b4641ca51adc7a42040888
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98841
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2019-04-08 14:56:00 +00:00
Alexander Thomas 287c9de1b2 [infra] Update checked in SDKs to 2.2.1-dev.3.1
https://github.com/dart-lang/sdk/issues/36487

TBR=whesse@google.com

Change-Id: I1191ca165ed53cf148f3c0d53b1e2ed899eb014d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98847
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2019-04-08 14:30:33 +00:00
pq 6d47db7629 bump to linter 0.1.85
Change-Id: Id53c9babe05a74de7ea1931f9912cfa19a72ecb4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98802
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-04-08 14:28:43 +00:00
Sergey G. Grekhov 4ca7401604 [co19] Roll to 7e743ef29b4c06f1a2b8b9dc70ead60b31aab526
Change-Id: I6d52b5820139e83df157e00114b51c0d53a990a3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98674
Reviewed-by: Alexander Thomas <athom@google.com>
2019-04-08 14:17:43 +00:00
Vijay Menon 94baf382cc Revert "Revert "set empty environment defines to CompilerOptions""
Per our internal discussion, we need this afterall: see b/129881700

Change-Id: I2c1deebaa68640944fa83df1850be0dce40b188f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98805
Auto-Submit: Vijay Menon <vsm@google.com>
Reviewed-by: David Morgan <davidmorgan@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2019-04-08 14:15:53 +00:00
Paul Berry fadae89a38 Remove unused imports
Change-Id: Iafa759bf1ee42fe4324cb9380944592ba21849a8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98860
Auto-Submit: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-04-08 14:09:04 +00:00
Clement Skau 26874860e3 [SDK] Adds .exe extension for Windows binaries in dart_sdk.py.
This fixes the current build breakage:
https://logs.chromium.org/logs/dart/buildbucket/cr-buildbucket.appspot.com/8917013092125339168/+/steps/upload_sdk/0/stdout

Bug: None
Change-Id: Ic47812a5f3ce0ab7f090a3f19429aa5d5e3cb279
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98846
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Clement Skau <cskau@google.com>
2019-04-08 13:22:53 +00:00
Aske Simon Christensen d75a49a44f [CFE] Ignore abstract methods when looking for operator '=='.
Fixes https://github.com/dart-lang/sdk/issues/36515

Change-Id: I7e6717b8cde7341c482e5eeb52c2ab4fe8fdcb9c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98842
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Auto-Submit: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-04-08 11:11:08 +00:00
Daco Harkes 8e0a669e74 Revert "[vm] Refactor Location to use either dart::Register or dart::host::Register"
This reverts commit 60b3643e8e.

Reason for revert: Broke Windows+simulator builds. (Template instantiation checks are different on Windows than on Linux/MacOS)

Original change's description:
> [vm] Refactor Location to use either dart::Register or dart::host::Register
> 
> Refactoring motivation: go/dart-simulated-ffi
> 
> * template Location and PairLocation with <dart::Register, dart::FpuRegister> or <dart::host::Register, dart::host::FpuRegister>
> * move RegisterName and FpuRegisterName from assembler to constants
> 
> Change-Id: I266b97ef1f0493c184f4486c7a0482845d4ac644
> Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-bare-linux-release-simarm-try, vm-kernel-precomp-bare-linux-release-simarm64-try, vm-kernel-precomp-linux-debug-x64-try, vm-kernel-linux-debug-simdbc64-try
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97312
> Commit-Queue: Daco Harkes <dacoharkes@google.com>
> Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
> Reviewed-by: Samir Jindel <sjindel@google.com>

TBR=vegorov@google.com,sjindel@google.com,dacoharkes@google.com

Change-Id: I8b4721e3ddbe1d32c3b553555064868bce5ea089
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-bare-linux-release-simarm-try, vm-kernel-precomp-bare-linux-release-simarm64-try, vm-kernel-precomp-linux-debug-x64-try, vm-kernel-linux-debug-simdbc64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98843
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2019-04-08 10:28:12 +00:00
Michael Thomsen 3e12bdd717 Update dart2aot help output
Closes #36514
https://github.com/dart-lang/sdk/pull/36514

GitOrigin-RevId: 479b2c21838416d62477879a6d18ff6debb4bf12
Change-Id: If89d1cffb24b6d383bf67b20b6ceb1d1b9fd1f1e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98820
Reviewed-by: Clement Skau <cskau@google.com>
Commit-Queue: Michael Thomsen <mit@google.com>
2019-04-08 10:04:57 +00:00
Stevie Strickland 50f3a6c960 [gardening] Make deferred imports part of the corresponding tests.
See https://github.com/dart-lang/sdk/issues/36418 for more info.

Change-Id: I5e26b295699c52db2e542330c23f8ec3095d78e9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98840
Reviewed-by: Stevie Strickland <sstrickl@google.com>
Commit-Queue: Stevie Strickland <sstrickl@google.com>
2019-04-08 09:58:27 +00:00
Daco Harkes 60b3643e8e [vm] Refactor Location to use either dart::Register or dart::host::Register
Refactoring motivation: go/dart-simulated-ffi

* template Location and PairLocation with <dart::Register, dart::FpuRegister> or <dart::host::Register, dart::host::FpuRegister>
* move RegisterName and FpuRegisterName from assembler to constants

Change-Id: I266b97ef1f0493c184f4486c7a0482845d4ac644
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-bare-linux-release-simarm-try, vm-kernel-precomp-bare-linux-release-simarm64-try, vm-kernel-precomp-linux-debug-x64-try, vm-kernel-linux-debug-simdbc64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97312
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Samir Jindel <sjindel@google.com>
2019-04-08 09:45:27 +00:00
Daco Harkes 544371c7f2 [vm] Refactor constants to be available in namespaces dart and dart::host
Refactoring motivation: go/dart-simulated-ffi

Change-Id: I219aba2793cfb7d7ea5ecc0a2ab93276c6cbf1e0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97325
Reviewed-by: Samir Jindel <sjindel@google.com>
2019-04-08 09:45:27 +00:00
Alexander Thomas 7f5ed18ffc [release] Update changelog to match dev branch
TBR=whesse@google.com

Change-Id: I6dd660bbf7874f2e13d63f57a93481cbc91d3984
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98679
Reviewed-by: Alexander Thomas <athom@google.com>
2019-04-08 07:14:19 +00:00
Brian Wilkerson 86b5304ccd Revert "Fix mustCallSuper for mixins and inherited interfaces:"
This reverts commit 1ad11facec.

Reason for revert: The CL broke the flutter-analyze bot.

Original change's description:
> Fix mustCallSuper for mixins and inherited interfaces:
> 
> * If a method overrides a mixed in @mustCallSuper method, it should call super.
> * If a method overrides a method from a supertype, which itself overrides a
>   method from an interface, the first method should call super.
> 
> Fixes internal b/70374204.
> 
> Change-Id: I645de4a288a8c5ffff173e97692f8eb6fe38bdb5
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98443
> Commit-Queue: Samuel Rawlins <srawlins@google.com>
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>

TBR=brianwilkerson@google.com,srawlins@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I9339e6a8933f6d25b3bcbdbac0b6a1d304a3693b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98803
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-04-07 16:58:27 +00:00
Devon Carew 389ccc9000 when analyzing fuchsia workspaces, expect to find .fx-build-dir files
Change-Id: I7ac5dac157d86d1d98db476734d8f51cd8364851
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98761
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2019-04-06 00:48:04 +00:00
Bob Nystrom a47b4ad2b8 Bring dart_style 1.2.7 into the SDK repo.
This just has one change, a fix to how adjacent strings inside "=>"
functions are indented.

Change-Id: I457ea308101be9fb5acc4257e47360635a2b97e0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98746
Commit-Queue: Kevin Moore <kevmoo@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
2019-04-06 00:01:15 +00:00
Mark Zhou e5d78513a1 [dartdevc] Hoisting covariance checks for generators outside of the body.
Issue: https://github.com/dart-lang/sdk/issues/33066
Change-Id: I77fed5a2b82e3d65436d71a4bd1461d731f8358e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97945
Commit-Queue: Mark Zhou <markzipan@google.com>
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2019-04-05 23:35:44 +00:00
Konstantin Shcheglov 73b931b6e6 Start reworking to use actual AST nodes created lazily.
Change-Id: I94746fd27eb02b928f4983fe88bcf2a72f600aaf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98724
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-04-05 23:08:54 +00:00
Aart Bik fd2393d6d3 [dart/fuzzer] Re-enable optimization_counter_threshold testing
Rationale:
Underlying issues fixed by Samir.

https://github.com/dart-lang/sdk/issues/35196

Change-Id: I7baaecbe6611f9581050da09ac5375fdf70db319
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98760
Reviewed-by: Samir Jindel <sjindel@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2019-04-05 22:56:34 +00:00
Ryan Macnak 8e6851f0e4 [vm] Don't create edge counter arrays when edge counters are disabled.
Change-Id: I595ee38cf6a4411102ca811333227fe365864065
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98686
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2019-04-05 22:47:16 +00:00
Ryan Macnak 90c757c766 [vm, interpreter] Allocation fast paths.
Bug: https://github.com/dart-lang/sdk/issues/36410
Change-Id: If753e60ac70f7c016e1caa3b296378d3ebc0a91c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/87267
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2019-04-05 22:37:58 +00:00
Alexander Markov 43046b7f7c [vm/bytecode] Enable building of kernel service snapshot
Kernel service snapshot is built in default (non-bytecode) mode and
it is not compatible with VM running in bytecode mode.

Previously, this incompatibility was causing crashes and building of
kernel service snapshot was disabled if SDK is built with --bytecode.

With the change https://dart-review.googlesource.com/c/sdk/+/98723
that workaround is no longer needed, and we can build kernel service
snapshot once again.

Change-Id: Ia5660b637894a5ffc2723e12dc2bf9630cc2f8c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98604
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2019-04-05 22:31:58 +00:00
Alexander Markov 7beed016a0 [vm/bytecode] Add 'bytecode' into snapshot feature flags
This change makes snapshots generated in bytecode mode incompatible with
VM running in a non-bytecode mode, and vice versa.

When there are both bytecode and AST available, we should consistently
use the same source for JIT compilation, as they are not compatible in
some cases (captured contexts of closures are different in bytecode and AST).

Change-Id: Id50c42694d8db1ffaf9dd1bd902071fc3297a5a5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98723
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
2019-04-05 22:31:58 +00:00
pq cf04a16527 dartfix to migrate to spread collections
Change-Id: I7764f29e159356cc589f4e66b80eefff6cc998f9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98742
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2019-04-05 22:27:58 +00:00
Ryan Macnak 9e1adc54a7 [vm] When loading a compilation trace, speculatively populate ICData based on the receiver's static type.
If the receiver's static type has one concrete implementation, lookup the target for that implementation and add it to the ICData's entries. For some well-known interfaces, do the same for the most common concrete implementation (e.g., int -> _Smi).

Avoids method resolution during application startup.

Bug: https://github.com/dart-lang/sdk/issues/36428
Change-Id: I57edf9c9cb5cb13af3182a100adce2802571a3aa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98445
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2019-04-05 21:12:44 +00:00
Jenny Messerly f93b93dd91 [dartdevc] fix string escaping for string_literal_test
This brings some updates from dart2js' string escape function over to
DDC. Includes some small changes to work better for DDC:

- take the quote style as an input; DDC uses it for ES6 template strings.
- use ES6 escape syntax (DDC requires ES6 support).
- always use UTF-8 mode because DDC writes files as UTF-8.

Change-Id: I56e2cbb9afcebf06500185170bd9877b16f5dd92
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98693
Auto-Submit: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2019-04-05 21:11:05 +00:00
Konstantin Shcheglov 4b9b8562c6 Update expectation for conditional expression and constant_update_2018.
R=brianwilkerson@google.com

Change-Id: Ie02053740ff3f643d93a754491e3727c246774b9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98741
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-04-05 20:42:24 +00:00
Jenny Messerly da4ccd0855 [analyzer] fix #32918, eliminate type variables during const inference
This brings Analyzer's type inference in line with the language spec.
Similar to CFE, the inference function now takes an isConst parameter,
which if set, tells it to eliminate type variables from the context
type.

Change-Id: Ied67bac39d73c9ecd7e0a482a0c8db77272637cc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98707
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2019-04-05 19:30:54 +00:00
Keerti Parthasarathy 0e7bec7d2f Add validation for AndroidManifest.xml files
Change-Id: Ieab8027eb81257d76cdda34b423bb554f968f021
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98040
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-04-05 19:30:34 +00:00
Konstantin Shcheglov ca4e707e80 Fix AvailableSuggestionSetsTest on Windows.
R=brianwilkerson@google.com

Change-Id: I99fb2c60e539b0acc37bcb2073c1624a620ddff5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98720
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-04-05 19:21:11 +00:00
Mike Fairhurst d4c61411f3 Update bug number to reflect deprioritized bug
Change-Id: I0664dd951ab4374856b3db83b7311a63176fa356
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98721
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
Auto-Submit: Mike Fairhurst <mfairhurst@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-04-05 19:01:54 +00:00
Jaime Wren ee248fef23 Add a fix for using relative imports when the missing import is in the same library.
https://www.dartlang.org/guides/language/effective-dart/usage#prefer-relative-paths-when-importing-libraries-within-your-own-packages-lib-directory

Change-Id: I6a4d7f2906fa56dc91d05a86d53dd9da023d2bcf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98623
Commit-Queue: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-04-05 18:50:44 +00:00
Alexander Markov 07482eeb5e [bots] Run all tests on vm-dartkb-* bots
Bytecode configurations should have the same test coverage as default mode.

The following tests are excluded in dartkb mode as there are too many crashes:
 - service/* (debugging capabilities are not supported);
 - lib_2/mirrors/* (mirrors are not supported);
 - vm/cc/* (bytecode modes are not wired up in run_vm_tests).

Change-Id: I11eead94b96f43ab454acd6e6f6861af943c0488
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97847
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2019-04-05 18:25:34 +00:00
Sam Rawlins 1ad11facec Fix mustCallSuper for mixins and inherited interfaces:
* If a method overrides a mixed in @mustCallSuper method, it should call super.
* If a method overrides a method from a supertype, which itself overrides a
  method from an interface, the first method should call super.

Fixes internal b/70374204.

Change-Id: I645de4a288a8c5ffff173e97692f8eb6fe38bdb5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98443
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-04-05 16:14:24 +00:00
Aske Simon Christensen 6dc9c8d127 [CFE] JS: Treat integer valued double constants as integers.
This fixes the problem with two-pass constant evaluation (with
intervening serialization) where an integer created by the first
pass would look like a double to the second pass.

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

Change-Id: I5040c3a2dac780c17a28b29df3dd65b6b9b3379b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98676
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2019-04-05 15:56:04 +00:00
Martin Kustermann dbfd00f44d [vm/compiler] Add new optimization pass which inlines typed data accesses
Based on the unified typed data layout, we can now inline accesses to
typed data interface classes if there are no 3rd party implementations
of those interfaces.

Example: If a receiver is of type Uint8List and we call `[]` or `[]=` we
will inline the byte access.

Instead of changing the existing inliner / call specializer we add this
as an extra pass: If the inliner / call specializer infer that the
receiver type is e.g. internal typed data then it will perform the
inlining itself using more optimized LoadIndexed instruction.

=> Only if those existing optimization passes have not been able to inline
   the access will we, later on in the compilation pipeline, run a
   specialized pass which will inline the accesses using LoadUntagged +
   LoadIndexed (which is slightly less efficient than using only LoadIndexed
   for internal typed data).

As a first step this is only done for AOT.

For ease of writing tests matching certain IR graphs this CL also adds a
IR pattern matcher.

Issue https://github.com/dart-lang/sdk/issues/35154

Cq-Include-Trybots: luci.dart.try:vm-canary-linux-debug-try, vm-dartkb-linux-debug-x64-try, vm-dartkb-linux-release-x64-try, vm-kernel-asan-linux-release-x64-try, vm-kernel-checked-linux-release-x64-try, vm-kernel-linux-debug-ia32-try, vm-kernel-linux-debug-simdbc64-try, vm-kernel-linux-debug-x64-try, vm-kernel-linux-product-x64-try, vm-kernel-linux-release-ia32-try, vm-kernel-linux-release-simarm-try, vm-kernel-linux-release-simarm64-try, vm-kernel-linux-release-simdbc64-try, vm-kernel-linux-release-x64-try, vm-kernel-optcounter-threshold-linux-release-ia32-try, vm-kernel-optcounter-threshold-linux-release-x64-try, vm-kernel-precomp-android-release-arm-try, vm-kernel-precomp-bare-linux-release-simarm-try, vm-kernel-precomp-bare-linux-release-simarm64-try, vm-kernel-precomp-bare-linux-release-x64-try, vm-kernel-precomp-linux-debug-x64-try, vm-kernel-precomp-linux-product-x64-try, vm-kernel-precomp-linux-release-simarm-try, vm-kernel-precomp-linux-release-simarm64-try, vm-kernel-precomp-linux-release-x64-try, vm-kernel-precomp-obfuscate-linux-release-x64-try, vm-kernel-precomp-win-release-simarm64-try, vm-kernel-precomp-win-release-x64-try, vm-kernel-reload-linux-debug-x64-try, vm-kernel-reload-linux-release-x64-try, vm-kernel-reload-rollback-linux-debug-x64-try, vm-kernel-reload-rollback-linux-release-x64-try, vm-kernel-win-debug-ia32-try, vm-kernel-win-debug-x64-try, vm-kernel-win-product-x64-try, vm-kernel-win-release-ia32-try, vm-kernel-win-release-x64-try

Change-Id: I5f2e01a55f46b473f64478b05679f65b9fd7c4c8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98662
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2019-04-05 15:51:34 +00:00
Alexander Aprelev dbc9ff11bf [vm/vmservice] Switch from const bool.fromEnvironment() to new for 'DART_SERVICE_USE_AUTH'.
This is needed to prevent frontend from attempting to evaluate this constant during compile time.

Change-Id: If6c72f1ab6b3d7e3ea753703e79b388c39fbeca9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98698
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-04-05 15:41:11 +00:00
Jacob MacDonald 44799241fa Revert "set empty environment defines to CompilerOptions"
This reverts commit 3d6e29d251.

Change-Id: Id4760ef320e26552629d6795b6faa630bf5e15dd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98697
Auto-Submit: Jake Macdonald <jakemac@google.com>
Reviewed-by: David Morgan <davidmorgan@google.com>
Commit-Queue: David Morgan <davidmorgan@google.com>
2019-04-05 14:57:14 +00:00
pq ec8222f457 bump to linter 0.1.84
Change-Id: I9e546a7865ecfe72905bc938a8cf30659df1fc13
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98696
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2019-04-05 14:22:24 +00:00
Paul Berry d14990b3ad Remove no-longer-needed override
Change-Id: I7cda32a2b9f087e3fb2922dc938d3e17be4121de
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98694
Auto-Submit: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-04-05 13:32:14 +00:00
Clement Skau 907c514c89 [SDK] Adds build targets, wrappers and SDK builds for Dart AOT.
Adds:
- dart2aot, a script similar to dart2js which compiles my.dart to my.dart.aot.
- dartaotruntime, a minimal Dart runtime that only runs AOT blobs.
- some extra tooling like gen_kernel and gen_snapshot used by the above.
- build rules for all of the above, including adding it to the full SDK builds.

Bug:https://github.com/dart-lang/sdk/issues/27596
Change-Id: Ic35f832b2b86be959212b8d21cfc5a082da5ced4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97627
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Clement Skau <cskau@google.com>
2019-04-05 13:23:44 +00:00
Samir Jindel a2709992a2 [vm] Support optcounter=1 and randomize it for testing.
Change-Id: I1d371ca9644a65f8fe9864ac708689c1469da17d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97242
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Samir Jindel <sjindel@google.com>
2019-04-05 10:15:44 +00:00