Sam Rawlins
b22cd05c51
Reland fix for #28233 : add hint for missing returns to function expressions
...
The bulk of this change is actually correcting missing returns in the Dart SDK.
Bug: https://github.com/dart-lang/sdk/issues/28233
Change-Id: I52bcbc6c6f4a129d3fc22003f4448a7c3d4487ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100301
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-05-22 18:12:30 +00:00
Mike Fairhurst
6457ac1d4b
Test potentially-nullable access errors
...
Change-Id: Ia166dbb6fb353120e30555f60b7bea186537b05b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102242
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-05-22 03:17:00 +00:00
Aske Simon Christensen
f051cd5b4d
[CFE] Transform spread and if in const collections early.
...
This makes sure that the AST before constant evaluation only contains
official kernel nodes.
Fixes https://github.com/dart-lang/sdk/issues/36910
Change-Id: Ic4e8e15adeaea8ad4700d6feb67e31f5f0a54f7f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103123
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2019-05-21 11:07:26 +00:00
Sigmund Cherem
2a85d595ba
Split global analysis and backend in dart2js pipeline tests
...
Change-Id: I99c1464f7fb58f5edd9f726c86f29832cce2e6f0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103001
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-05-20 23:25:22 +00:00
Sigmund Cherem
0c2738f616
Allow steps to declare more than one result
...
Change-Id: Ifd2a19f8ff771d464737bb27e22cf05a43cc2a9f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103020
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-05-20 23:25:22 +00:00
Sigmund Cherem
84fd1254ec
Add tests for only-main behavior
...
+ move computeTransitiveDependencies to a shared location
Change-Id: I9bfad3d1799df2be36f28fac1a6ea9a8b4c4b023
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102225
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-05-20 23:25:22 +00:00
Lasse R.H. Nielsen
82c8c78739
Make StreamTransformer(..) transformed stream mimic original's isBroadcast.
...
BUG= http://dartbug.com/36965
Change-Id: I5dd156a635c1750d136206b030ee71a78b0e2ad3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102369
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-05-20 12:44:05 +00:00
Johnni Winther
09b46aa084
Support in-memory CodegenResult serialization/deserialization
...
The serialization/deserialization is performed in test-mode.
Change-Id: I90f31a6a88dbdf2c38beb9b5409ce3c52557e227
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102740
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-20 08:57:39 +00:00
Johnni Winther
c69d0c6e30
Flatten DynamicUse and StaticUse class hierarchies
...
Change-Id: Ib325425dfab7d7001a1a6133df1d50dddfadcbab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102700
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-20 08:57:39 +00:00
Johnni Winther
6757d0c6d9
Use ModularNamer/ModularEmitter to generate code separate from codegen enqueuing
...
Change-Id: I35dc4c0370622c63f2100e22517149cb0629423e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102367
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-20 08:57:39 +00:00
Johnni Winther
c0b967d7da
Refactor Namer and ConstantEmitter to prepare for modular compilation
...
Change-Id: I2fa8928d7c7d845df2507c9ad034107ec4bc21de
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102364
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-20 08:57:39 +00:00
Samir Jindel
ed169c4bb0
Revert "[vm/ffi] FFI callbacks on X64."
...
This reverts commit be209f7846 .
Reason for revert: failures on dartkb and windows bots
Original change's description:
> [vm/ffi] FFI callbacks on X64.
>
> For context on the design, see go/dart-ffi-callbacks
>
> Change-Id: I2482e3c932e73f9a4c00fa7e218ff85f9328fc51
> Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-debug-simdbc64-try, vm-kernel-linux-release-simdbc64-try, vm-kernel-mac-debug-simdbc64-try, vm-kernel-mac-release-simdbc64-try, vm-kernel-reload-mac-debug-simdbc64-try, vm-kernel-reload-mac-release-simdbc64-try, vm-kernel-linux-debug-ia32-try, vm-dartkb-linux-debug-simarm64-try
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100240
> Commit-Queue: Samir Jindel <sjindel@google.com >
> Reviewed-by: Daco Harkes <dacoharkes@google.com >
TBR=sjindel@google.com ,ajcbik@google.com ,dacoharkes@google.com
Change-Id: I4cb3d93675d68a51ac9e125ad1d572c47e8b5903
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-debug-simdbc64-try, vm-kernel-linux-release-simdbc64-try, vm-kernel-mac-debug-simdbc64-try, vm-kernel-mac-release-simdbc64-try, vm-kernel-reload-mac-debug-simdbc64-try, vm-kernel-reload-mac-release-simdbc64-try, vm-kernel-linux-debug-ia32-try, vm-dartkb-linux-debug-simarm64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102983
Reviewed-by: Samir Jindel <sjindel@google.com >
Commit-Queue: Samir Jindel <sjindel@google.com >
2019-05-18 15:29:19 +00:00
Samir Jindel
be209f7846
[vm/ffi] FFI callbacks on X64.
...
For context on the design, see go/dart-ffi-callbacks
Change-Id: I2482e3c932e73f9a4c00fa7e218ff85f9328fc51
Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-debug-simdbc64-try, vm-kernel-linux-release-simdbc64-try, vm-kernel-mac-debug-simdbc64-try, vm-kernel-mac-release-simdbc64-try, vm-kernel-reload-mac-debug-simdbc64-try, vm-kernel-reload-mac-release-simdbc64-try, vm-kernel-linux-debug-ia32-try, vm-dartkb-linux-debug-simarm64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100240
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Daco Harkes <dacoharkes@google.com >
2019-05-18 06:15:46 +00:00
Sigmund Cherem
475f55d46b
Add dart2js modular test suite under a unit test.
...
At this time this only compiles to .dill and then compiles from multiple modular
dill files.
Next steps: add the global split and add the modular data bits
Change-Id: I3399776dbd5187ddb0a3e2fdd307622a736570c9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102126
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-05-17 22:21:05 +00:00
Nicholas Shahan
86c7165969
[tests] Avoid use of $strong because it is always true now
...
* Remove all `&& $strong` clauses.
* Delete all sections that include a `&& !$strong` clause.
Change-Id: Idd32cf5623793e3f98e3e998025bac079d88e2f1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102223
Commit-Queue: Nicholas Shahan <nshahan@google.com >
Reviewed-by: Bob Nystrom <rnystrom@google.com >
Reviewed-by: William Hesse <whesse@google.com >
2019-05-16 17:41:27 +00:00
Mike Fairhurst
a3073fc581
check null condition in assert
...
Change-Id: I4de11a7de3e5106ce9d5fbaf89d0b0965d637b08
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102221
Auto-Submit: Mike Fairhurst <mfairhurst@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Mike Fairhurst <mfairhurst@google.com >
2019-05-14 22:24:34 +00:00
Mike Fairhurst
b91a4f5423
[analyzer] Resolve methodName staticType when Function to check Function?
...
Change-Id: I85d43821d4b792c269f386616dcc21d144772c5e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102201
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Mike Fairhurst <mfairhurst@google.com >
2019-05-10 21:45:29 +00:00
Sigmund Cherem
fb29d0e96d
Move async_minitest to package:async_helper.
...
This allows to break a circular dependency between package:expect and
package:async_helper, which will simplify the support for modular tests using
package:modular_test.
Change-Id: Ie48723d3f35d51a8fbe622e0158450e8104fe3f5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102140
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-05-10 19:43:58 +00:00
Mike Fairhurst
1a9d38be41
Fix improper unchecked_nullable test cases
...
Change-Id: I31aa8f1f53b8960550b9ab8d8cc63f670a20558b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102220
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Mike Fairhurst <mfairhurst@google.com >
2019-05-10 19:30:38 +00:00
Johnni Winther
0db620a2a5
Decouple Namer from RuntimeTypesEncoder and Tracer
...
Change-Id: I1c52b6740b590b1089201c3d0d8286d8e0912c48
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101824
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-05-10 08:58:29 +00:00
Alexander Markov
477ad3c0ea
[vm/bytecode] Eliminate asserts from bytecode unless --enable-asserts
...
Total size of a large app:
Before: 23681504
After: 23207344 (-463K/-2%)
Size of bytecode instructions:
Before: 6282376
After: 5981716 (-4.8%)
Change-Id: I57703616ecc91301c928672c83571482500dc365
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101883
Reviewed-by: Régis Crelier <regis@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2019-05-09 20:41:21 +00:00
Mike Fairhurst
536ecbac7b
Add language 2 tests for null access errors
...
Change-Id: Icde35448c183a3b9311811aab388909d17e36ceb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101461
Commit-Queue: Mike Fairhurst <mfairhurst@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-05-09 18:59:11 +00:00
Daco Harkes
a8b93d9e78
[vm/ffi] DBC support on x64 Linux/MacOS hosts
...
Issue: https://github.com/dart-lang/sdk/issues/35773
Change-Id: Ib58fb8df6c5c18e604fbf2a156ab69025e5f57d7
Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-debug-simdbc64-try, vm-kernel-linux-release-simdbc64-try, vm-kernel-mac-debug-simdbc64-try, vm-kernel-mac-release-simdbc64-try, vm-kernel-reload-mac-debug-simdbc64-try, vm-kernel-reload-mac-release-simdbc64-try, vm-kernel-linux-debug-ia32-try, vm-dartkb-linux-debug-simarm64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97221
Reviewed-by: Samir Jindel <sjindel@google.com >
Commit-Queue: Daco Harkes <dacoharkes@google.com >
2019-05-09 11:46:03 +00:00
Johnni Winther
9203ad5e89
Include receiver method invocation receiver type in static type test
...
Change-Id: I61227e694ca2a19d268705e7a79ae0e696e3a79b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101524
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-08 12:12:40 +00:00
Johnni Winther
5ce8402b0d
Handle let variable like normal variables in static type computation
...
Change-Id: Ie6eb1eafd5677207163e22c2f428487b4e55b090
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101522
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-08 12:12:40 +00:00
Johnni Winther
27d806b5a2
Add CodegenResult as the result of FunctionCompiler.compile
...
+ delete CodegenWorkItem
+ remove use of WorkItem in the compilation pipeline
Change-Id: I035fb8428b7bbdea9411c087e80c81e3d46d00c0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101662
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-08 08:15:59 +00:00
Mike Fairhurst
a8b6e18b62
Resolve x ?? y as LUB(X!, Y) instead of LUB(X, Y).
...
Change-Id: I081d8ec153916fb37e2a949d9fa85a6ea778438e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/92390
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Mike Fairhurst <mfairhurst@google.com >
Auto-Submit: Mike Fairhurst <mfairhurst@google.com >
2019-05-07 16:34:17 +00:00
Aske Simon Christensen
dd6da838f1
[CFE] Avoid cloning bodies of lazy if elements.
...
Fixes https://github.com/dart-lang/sdk/issues/36812
Analyzer/DDC failures: https://github.com/dart-lang/sdk/issues/36873
Change-Id: I36d61d3035c9275078b368637d53f6385cf8c487
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101262
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-05-07 13:48:48 +00:00
Johnni Winther
3d7405f198
Separate CodegenImpl from JavaScriptBackend
...
Change-Id: I9644ca0cd6cb60bf20142d7fa74a559dc516a22d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101292
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-07 07:57:06 +00:00
Johnni Winther
1c1af2808f
Introduce Codegen interface to decouple JavaScriptBackend from the codegen phase
...
Change-Id: I7effc20d34fa5d5da799c690182eb6f09948c6ff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101288
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-07 07:57:06 +00:00
Sigmund Cherem
9ac7bd7855
Ensure we have a scope for variables when visiting fields
...
Fixes https://github.com/dart-lang/sdk/issues/36864
Change-Id: I66d70cc30b26bd069d4ab5e2b98f0f5954f3ef59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101460
Auto-Submit: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-05-06 21:43:42 +00:00
Brian Wilkerson
821c75c584
Update a test comment
...
Change-Id: I6bb053a128a689d35ae1c21b29c6a7e8bb869fad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101321
Reviewed-by: Leaf Petersen <leafp@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2019-05-06 21:19:20 +00:00
Mike Fairhurst
36c315eacc
[analyzer] resolve x?.y to return T?
...
Change-Id: I3ef319621753364b8d70e79b2ab32d7ec9c1e8d8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/92383
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Mike Fairhurst <mfairhurst@google.com >
2019-05-06 21:09:39 +00:00
Stevie Strickland
9486e99114
[vm/compiler] Forward typed data view constructor arguments.
...
Also adds tests for load optimizer fixes in 836c04f .
Bug: https://github.com/dart-lang/sdk/issues/36570
Change-Id: Ie8ea7f944bc789b4c0894f9d96010113fb3ec4b6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99466
Commit-Queue: Teagan Strickland <sstrickl@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2019-05-06 10:12:48 +00:00
Johnni Winther
28faf8c7ca
Merge GraphBuilder into KernelSsaGraphBuilder
...
+ avoid use of `compiler` and `backend`
+ make members of KernelSsaGraphBuilder private when possible
Change-Id: Ia069a8c3b4167c1ae55554baadb857975aeff67f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101287
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-06 08:53:24 +00:00
Jens Johansen
7ea75ab0e0
Const fields doesn't introduce setters; look for setter
...
Fixes #28268 .
Change-Id: I43ccc4072be2fba3ee9273d451fc767876191e16
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100964
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com >
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2019-05-06 07:09:24 +00:00
Mark Zhou
86d47dc5b4
Fixing some tests that are failing in all/most backends.
...
Change-Id: I91bac2a5597b654082c734decdb948c21d1f5e59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100927
Reviewed-by: Leaf Petersen <leafp@google.com >
2019-05-03 23:36:30 +00:00
Brian Wilkerson
dbe80f3397
Add tests for late and final variables without an initializer
...
Change-Id: I65c40b9e994e602f6133e100d0e8896cb9dce75c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101071
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
Reviewed-by: Leaf Petersen <leafp@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2019-05-03 14:51:54 +00:00
Vijay Menon
8866165950
[dartdevc] Reify bottom as Null
...
Fixes https://github.com/dart-lang/sdk/issues/36832
Change-Id: Ie0869ca350d1951e0736a9d6c92da4a7984117ee
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101180
Commit-Queue: Vijay Menon <vsm@google.com >
Reviewed-by: Nicholas Shahan <nshahan@google.com >
Reviewed-by: Leaf Petersen <leafp@google.com >
2019-05-03 13:39:43 +00:00
Johnni Winther
102f4addda
Include the static type in the receiver type of dynamic invoke
...
- and preserve the original receiver type information during type propagation updates.
Change-Id: I20087b282a3d018947043d7a3ab7c45f003eaee6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100966
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-03 07:52:22 +00:00
Brian Wilkerson
b8fb787994
Add a test for uses of the default List constructor
...
Change-Id: I3b1452186e00f930d5da7c64f3a64f08cd6f4589
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101066
Reviewed-by: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2019-05-02 20:46:55 +00:00
Nicholas Shahan
9df061524f
[tests] Update expected error NoSuchMethodError --> Error
...
Most (all?) implementations now throw ArgumentError since the
StreamIterator constructor no longer accepts null but the actual
type is not specified.
https://dart-review.googlesource.com/c/sdk/+/98001 .
Change-Id: I10a24a67aa7353552c56d435ef206a2bc4f842fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100987
Commit-Queue: Nicholas Shahan <nshahan@google.com >
Reviewed-by: Bob Nystrom <rnystrom@google.com >
2019-05-02 19:26:55 +00:00
Brian Wilkerson
36b2520ca9
Add a test of creating a subtype of Never
...
Change-Id: I9d28868667667cca5eb122e33226b21850b062bd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101067
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2019-05-02 17:53:59 +00:00
Johnni Winther
1577b95c93
[CFE] Substitute types in unevaluated as-expressions and instantiations
...
As expressions and instantiations lose the connection to the current type environment when put into an unevaluated constant expression. This leaves type variables unsubstituted when the expressions are lazily evaluated leading to invalid compile-time errors. This is avoided by substituting the type variable when creating the unevaluated constant. If the type variables are not substituted by concrete types, this is flagged as a valid compile-time error during the lazy evaluation.
Change-Id: I46264da4332ea1d5b783531d89a5e6f85b8f90e4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100963
Reviewed-by: Aske Simon Christensen <askesc@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-05-02 13:14:21 +00:00
Sergey G. Grekhov
8c2390089e
[co19] DEPS updated
...
Change-Id: I4c7e62401f9ca3e40f9320772602ca8a247b4eff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100642
Reviewed-by: Sergey Grekhov <sgrekhov@unipro.ru >
2019-05-02 09:08:33 +00:00
Lasse R.H. Nielsen
dd19353abb
Update test of operator >>>.
...
Change-Id: Idd8c6dfcf875a53c536aa3535561f259cf7bcd1b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98005
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2019-05-02 09:04:18 +00:00
Johnni Winther
8053c43dde
Compute static types for for-in loops
...
Change-Id: I47e98eaf6df7d04286cb737bfdff135e6c0d34d2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100843
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-01 14:06:39 +00:00
Johnni Winther
8d4816b7ff
Reimplement member usage tracking
...
We now track member usage in terms of static, dynamic and super access
for reads, writes and invocations. The information collected during
closed world computation is now the basis for the potential member usage
in codegen, thus ensuring that we cannot conclude in codegen that for
instance a field is read dynamically when the closed world knows that
it is never read dynamically.
Closes #36516
Change-Id: I3a1cb87c71268c34bcd67e14a035d9d1be324ab0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100840
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-01 08:58:34 +00:00
Aart Bik
a32fee5d8e
[dart/vm] GenericCheckBound (AOT) may throw
...
Rationale:
Previous CL inadvertently removed the may-throw tag
from the AOT version of check bound. But, unlike its
speculative counterpart, this non-speculative check
will throw when out of bounds. Optimizations like LICM
rely on this property for correctness. Found with fuzzing!
https://github.com/dart-lang/sdk/issues/36803
Change-Id: I05952f423ffa1917a08dbb6191d0d1533450bc9c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100921
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Commit-Queue: Aart Bik <ajcbik@google.com >
2019-04-30 22:32:07 +00:00
Ryan Macnak
ac4fd50446
[vm, compiler] Check for length overflow when eliminating write barriers for variable-length objects.
...
Bug: https://github.com/dart-lang/sdk/issues/36778
Change-Id: I03bd00dd5a035309807e16911dcd7602b4de5e44
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100900
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Aart Bik <ajcbik@google.com >
2019-04-30 21:36:07 +00:00