Commit Graph

18413 Commits

Author SHA1 Message Date
Ryan Macnak 2864742d88 [vm, gc] Fix data race during safepointing detected by TSAN in vm/cc/SafepointTestDart.
A thread may enter a safepoint using a simple CAS. This can happen before a safepoint is requested, in which case the thread won't need to check into the safepoint using the monitor. However, we still need at least a release-acquire pair so the safepoint operation can observe memory effects up to the CAS.

Bug: https://github.com/dart-lang/sdk/issues/39611
Change-Id: Ied1b6c8c8e03bc17d86d848eccf874f24f5d0df4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138051
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2020-03-03 16:52:11 +00:00
Ryan Macnak e9cefe7c08 [vm, test] Fix race in shutdown of MessageHandler_Run.
Bug: https://github.com/dart-lang/sdk/issues/39611
Change-Id: I9bd55304646dbc2d1b6fad41b3f31c2ff9384b09
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138049
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2020-03-03 16:51:51 +00:00
Clement Skau e1ef16d73a [Presubmit] Fixes presubmit for breaking API change.
The API change happened in:
https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2079411

Change-Id: I1c826f102c1366c193a75fb5e17a355dad34cbc3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137977
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Clement Skau <cskau@google.com>
2020-03-03 13:30:20 +00:00
Clement Skau fdca1f3178 [SDK] Adds CloneContext StubCode, removing runtime entry for clone.
Bug: https://github.com/dart-lang/sdk/issues/37667
Change-Id: I762fd38bc7d8647a357cacc40b6c191117f03618
Cq-Include-Trybots: luci.dart.try:vm-canary-linux-debug-try,vm-dartkb-linux-release-simarm64-try,vm-kernel-linux-debug-x64-try,vm-kernel-linux-release-simarm64-try,vm-kernel-optcounter-threshold-linux-release-ia32-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-mac-release-simarm64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,vm-kernel-precomp-win-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
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134282
Commit-Queue: Clement Skau <cskau@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-03-03 13:05:39 +00:00
Teagan Strickland cc9374d5cd [vm/compiler] Check for Smi-ness in GetSmiInduction.
Fixes https://github.com/dart-lang/sdk/issues/40754

Change-Id: I0b0c3b4959e5e89f7f50889eef2edcda70a815f2
Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-debug-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137797
Commit-Queue: Teagan Strickland <sstrickl@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2020-03-03 12:37:19 +00:00
Teagan Strickland cf2b697a16 [vm/compiler] Fix address sizes in DWARF generator.
Fixes https://github.com/dart-lang/sdk/issues/40855

Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-linux-release-simarm_x64-try,vm-kernel-precomp-mac-release-simarm64-try,vm-kernel-precomp-win-release-x64-try
Change-Id: Id60d82d931a3087408f62b0fa1381b0f20c11f68
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137971
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Teagan Strickland <sstrickl@google.com>
2020-03-03 12:36:50 +00:00
Stephen Adams 06155d4996 [vm] Fix command line inspection to allow package: scripts
TBR: asiva@google.com
Change-Id: I2d76081a743ec9b1178505ab766d5d40f2d09031
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138017
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2020-03-03 01:40:37 +00:00
Liam Appelbe 149b799ae4 [vm] Check required flag during function resolution.
Bug: https://github.com/dart-lang/sdk/issues/39660
Bug: https://github.com/dart-lang/sdk/issues/38843
Change-Id: I2eb5f5ac38d7b1896db5c57399c42cdb41b16094
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137737
Commit-Queue: Liam Appelbe <liama@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
2020-03-02 23:05:16 +00:00
Ryan Macnak e211bd28c1 [vm, gc] Set the current isolate to the group's only member before running finalizers.
Some embedder code relies on the presence of a current isolate equal to the isolate that created the handle. This code will be need to be updated to be isolate-group aware before we can run finalizers only in the context of the isolate group instead of an isolate.

Bug: https://github.com/dart-lang/sdk/issues/40836
Change-Id: I38956c556df551e48ee7e4d0822aa5def8dc4fc5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138013
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2020-03-02 22:56:06 +00:00
Ben Konyi a212b75ba7 Reland "[ VM / DartDev ] Load and run dartdev snapshot if first argument to dart is not a valid file path"
Should fix issues with Windows path resolution and a potential invalid free.

This reverts commit 6053084920.

Change-Id: I683abdbf2c10644e6cadd9643ea880cee9338f72
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138014
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2020-03-02 22:55:46 +00:00
Vyacheslav Egorov d81e18bc0b [vm/compiler] Add missing NoSafepointScope
TBR=sjindel@google.com

Change-Id: Ieaff6171e7599bc962eee917f6d6e5a3f662e4dc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137969
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2020-03-02 21:33:18 +00:00
Vyacheslav Egorov 1ad4fcb154 [vm/compiler] Fix Mac builds and disassembler test.
This is follow up to 2cc824043d

TBR=sjindel@google.com

Change-Id: If955320b549b87287fdc1f9b9a715b1ca024224a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137968
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
2020-03-02 21:01:54 +00:00
Zichang Guo 7a96735eb0 fix failing vm-kernel-win-product
Fix for previous cl: https://dart-review.googlesource.com/c/sdk/+/137140

Change-Id: I813399eeb8c074f48e52e8099d57cc78417745e9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138006
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Zichang Guo <zichangguo@google.com>
2020-03-02 20:30:57 +00:00
Vyacheslav Egorov 2cc824043d [vm/compiler] Ensure we emit catch entry move for receiver when it is captured
We have a special logic which excludes captured parameters from the catch
entry moves (assuming that they will be reloaded from the context). Because
this logic is well hidden it was not updated when we changed our handling of
the captured receiver in 078806851c

Fixes https://github.com/dart-lang/sdk/issues/40809
Fixes https://github.com/flutter/flutter/issues/47482

Change-Id: I2f036204c2ac3a18c6f91d9ccb664eaee729d426
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137965
Reviewed-by: Samir Jindel <sjindel@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
2020-03-02 20:09:42 +00:00
Alexander Markov af4f3a720c [vm/nnbd] Eliminate 'Undetermined' nullability from the VM
VM should treat type parameters with kUndertermined and kNonNullable
nullability in the same way (both can be instantiated with a legacy
type and even nullable Null in a legacy library).

So kUndertermined nullability can be converted to kNonNullable
when reading kernel, and code which handles kUndertermined nullability
can be simplified.

Change-Id: Ib5dbd92ae9ee3754f3e64629e0a03952aadfd287
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137862
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
2020-03-02 19:06:33 +00:00
Zichang Guo 0b819161d7 [dart:io] update return type of native calls
Some cleans up coming from https://dart-review.googlesource.com/c/sdk/+/136322.
Update some inaccurate return types of native calls.
Also update null checks for resourceInfo with nnbd flavor.

Change-Id: I937f204e5cd8331df454c81d58e5893be616862e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137140
Commit-Queue: Zichang Guo <zichangguo@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2020-03-02 18:06:32 +00:00
Martin Kustermann 619e9202b7 [vm] Do not call MSAN_CHECK_INITIALIZED for ExternalData created via dart:ffi
It is common to allocate memory via `dart:ffi`, use
`Pointer.asTypedList()` to get an external typed data and finally
initialize it in Dart.

b/150573916

Change-Id: I72ce2e3474e41d1553bc8ca2c782b61d93b97874
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137961
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2020-03-02 12:11:20 +00:00
asiva 09bbd3cca5 [VM/concurrency] - Temporary workaround for issue https://github.com/dart-lang/sdk/issues/40836
Change-Id: I4369c717122ef7b84c5931b8fb3edf18fb433375
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137880
Reviewed-by: Jason Simmons <jsimmons@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
2020-02-29 02:16:10 +00:00
Alexander Markov d2bd9691aa [vm] Remove unused Resolver::ResolveStaticAllowPrivate
Change-Id: I31701f73b32371a61f5bf159be61d5ed2806bef8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137848
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2020-02-29 01:21:30 +00:00
Ben Konyi 6708f6d4c7 [ VM / Service ] Documented that RPCs with an isolateId parameter can return a Sentinel if the target isolate no longer exists.
This is a breaking change for package:vm_service as multiple RPCs now return `Future<dynamic>` to allow for Sentinels.

Fix related to b/150193047

Change-Id: I9dd3247d079a391e8677f7ba6ef5056107284af3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137821
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2020-02-28 22:12:16 +00:00
Ben Konyi 6053084920 Revert "[ VM / DartDev ] Load and run dartdev snapshot if first argument to dart is not a valid file path"
This reverts commit 9ca77d42be.

Reason for revert: Windows bots going red.

Original change's description:
> [ VM / DartDev ] Load and run dartdev snapshot if first argument to dart is not a valid file path
> 
> Change-Id: I754ff3cd44af95364ce8095255a67621f256dbd3
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137249
> Reviewed-by: Jaime Wren <jwren@google.com>
> Commit-Queue: Ben Konyi <bkonyi@google.com>

TBR=jwren@google.com,bkonyi@google.com,asiva@google.com

Change-Id: Iff3a9e5457b95bfafea16915ae1311e978f5fc1a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137824
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2020-02-28 22:00:45 +00:00
Régis Crelier 928ed9c766 [VM/nnbd] Apply legacy erasure on constants compiled in agnostic mode (fixes #40800).
Adds 2 bits to RawLibrary flags to encode CFE compilation mode.
If in weak mode, apply legacy erasure to types of constants from agnostic
libraries, i.e.:
- Map Never to Null
- Set nullability to legacy
- Erase 'required' flag on named parameters

Change-Id: I57feeef3fa1689a5cb93b3fa983ea3d65047b8c2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137735
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2020-02-28 21:52:40 +00:00
Ben Konyi 9ca77d42be [ VM / DartDev ] Load and run dartdev snapshot if first argument to dart is not a valid file path
Change-Id: I754ff3cd44af95364ce8095255a67621f256dbd3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137249
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2020-02-28 20:40:10 +00:00
zhaoxuyang f90d7ffe9b Bug with interpreter NullCheck bytecode instruction
1. Let's look at the generation of NullCheck bytecode instruction.

 pkg/vm/lib/bytecode/gen_bytecode.dart

```
if (checkForNull) {

      asm.emitPush(receiverTemp);

      asm.emitNullCheck(cp.addSelectorName(node.name, InvocationKind.method));

    }
```

First push the receiver onto the stack, then check if it is null.

2. Related code in the interpreter.

runtime/vm/interpreter.cc

```
{
    BYTECODE(Push, X);
    *++SP = FP[rX];
    DISPATCH();
}

{
    BYTECODE(NullCheck, D);
    SP -= 1;

    if (UNLIKELY(SP[0] == null_value)) {
      // Load selector.
      SP[0] = LOAD_CONSTANT(rD);
      goto ThrowNullError;
    }

    DISPATCH();
  }
```

After the Push instruction is processed, now SP[0] is receiver.

But the NullCheck instruction first decrements SP by one,  causing the SP to be checked later is not a receiver.

After my testing, this is a bug.

3. fix like this

```
{
    BYTECODE(NullCheck, D);

    if (UNLIKELY(SP[0] == null_value)) {
      // Load selector.
      SP[0] = LOAD_CONSTANT(rD);
      goto ThrowNullError;
    }
    SP -= 1;

    DISPATCH();
}
```

Closes https://github.com/dart-lang/sdk/pull/40811
https://github.com/dart-lang/sdk/pull/40811

GitOrigin-RevId: d5a9989ba3c82a5d133ea755c93fc2e1272fdad2
Change-Id: I271cf0e924baca29640a2088535cbe4ecb0892ea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137730
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2020-02-28 19:02:35 +00:00
Daco Harkes f7192b63cb [vm/ffi] Expose dart_native_api.h symbols via dart:ffi
This enables dynamic linking of the symbols in dart_native_api.h to work around the Windows linking issue and Dart embedders not exposing symbols.

Issue: https://github.com/dart-lang/sdk/issues/40607
Closes: https://github.com/dart-lang/sdk/issues/40564

Change-Id: I6f797cc915b53ec63fa5953529f17c40e52a2aed
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,app-kernel-linux-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-kernel-precomp-linux-debug-x64-try,vm-dartkb-linux-release-x64-abi-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,dart-sdk-linux-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try,front-end-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136962
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-02-28 18:44:45 +00:00
Martin Kustermann 54b730b3df [vm/concurrency] Ensure CreateWithinExistingIsolateGroup is re-setting the cached isolate_group pointer in the mutator thread
When moving the newly spawned isolate from the spawnee group to the main
group we have to ensure to update the cached
`Isolate::mutator_thread_->isolate_group_` pointer (which we do not
reset when descheduling mutator threads (for other threads we do)).

This will fix the ASAN crash in this test:

  tools/test.py -n dartk-asan-linux-release-x64 lib_2/isolate/mandel_isolate_test

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

Change-Id: I5a897098106e6748cf4e58bd5d2799ce28b130a8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136971
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2020-02-28 15:43:51 +00:00
Vyacheslav Egorov 9f2455796f [vm/snapshot] Make references between code and pool entries explicit in snapshot profile.
Code references other objects via object pools. In bare instructions mode
individual objects pool are merged together into a global object pool,
which means that we no longer can clearly see which objects are
referenced by each individual code object.

This CL adds logic into snapshot writer to include these implicit
references into the snapshot profile. We achieve this by keeping
individual object pools around (but avoiding writing them into the
snapshot itself).

R=sjindel@google.com

Change-Id: I35b48fcfc26c0a8c0b66593139fa7ac8e627da6c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136626
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Samir Jindel <sjindel@google.com>
2020-02-28 10:40:33 +00:00
Ryan Macnak f5669caec7 [vm, gc] Skip splay_test on reload bots because it is too slow.
Change-Id: Id806ee37898cd2b76bbb360c27354e94b2e308dd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137726
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2020-02-28 01:03:28 +00:00
Ryan Macnak 45dda723fb [standalone] Fix memory leak in DFE::TryReadFile.
An empty file is not a failed read. Fixes leak when running tests/standalone_2/io/named_pipe_script_test.dart.

Change-Id: I499c8b1e27038b6da011c74732ce234f43387f80
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137652
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2020-02-28 00:59:53 +00:00
Ryan Macnak 77ddd77c0a [standalone] Fix memory leak when failing to load a native extension.
Change-Id: Ib7996abc122077f8c7191e741f06fc6ff53a0038
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137650
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2020-02-28 00:57:16 +00:00
Ryan Macnak d99f6bffcb [vm, test] Fix false positive from MSAN during vm/cc/StoreIntoObject.
Change-Id: I3133420863b50734349646b3d6ad04df819ed322
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137657
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2020-02-28 00:55:50 +00:00
Régis Crelier 63e36183ae [VM/nnbd] Follow-up to earlier commit acd7b83.
Revert some changes from https://dart-review.googlesource.com/c/sdk/+/137460
Avoid handle allocations in Instance::NullIsInstanceOf()

Change-Id: I66c8d960333270bd79b2b39c0c67dad754112e0e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137654
Commit-Queue: Régis Crelier <regis@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2020-02-27 23:24:43 +00:00
Ryan Macnak f3031b6b79 Reland "[vm] Handle sentinel in the IL serializer and Array-backed hash maps."
Reverse use of the backing store and transition sentinel as bookkeeping values. Use transition sentinel to mark unused entries, since it has a short object id during clustered serialization. Use the backing store to mark deleted entries; deletion seems to only be used for enum values during a hot reload.

Change-Id: I52f0edcbc7e26f73843500cd378da31ea3b1e0ba
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137680
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2020-02-27 23:21:23 +00:00
Régis Crelier acd7b8367e [VM/nnbd] Nullability of FutureOr and of its type arg do not necessarily match.
Change-Id: Ie1cb6287cdfa852c8ac73868b571b422fbc9dc0a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137460
Commit-Queue: Régis Crelier <regis@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2020-02-27 21:08:24 +00:00
Alexander Markov 38508be344 [vm/nnbd] Fix bounds and nullability of type parameters read from bytecode
Fixes vm/dart/bytecode_with_ast_in_aot_test after unforking SDK.

Change-Id: I95b697a13a283d7e8fab381b200e9e49dbf6742b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137646
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2020-02-27 20:55:03 +00:00
Ryan Macnak 275bc63870 [vm, gc] Add Splay as a test of various GC modes and verification tools.
Bug: https://github.com/dart-lang/sdk/issues/40780
Change-Id: I2b760c4e2884f400e1dcfbd77f21fa9c4d96f25c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137645
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2020-02-27 20:43:13 +00:00
Martin Kustermann 501af5ac3b [vm/concurrency] Fix user-after-free when running experimental --enable-isolate-groups in JIT with app-jit training
Originally I had the permutation map on IsolateGroup where the copy was
needed due to creating the temporary spawn group.  Though it moved to
IsolateGroupSource now which is shared even with the temporary spawn
group.

This fixes flakiness in the app-jit tests:

  tools/test.py -n app_jitk-linux-release-x64 standalone_2/typed_array_test/0

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

Change-Id: I0611fc98d03950b400ef70fa5127eba9d00742bc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137304
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2020-02-27 19:54:03 +00:00
Régis Crelier 21bc1ed76c [VM/nnbd] Allow instantiation of a non-nullable type parameter to a nullable type.
Change-Id: Icc3413cd5c285fa40ee5188f39837625d78b9e67
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137427
Commit-Queue: Régis Crelier <regis@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2020-02-27 19:48:23 +00:00
Ryan Macnak 2a5d0589ac [vm, gc] Verify the store buffer contains all old-space objects that reference new-space objects.
Speed-up ObjectSets.

Fix pointer verification before and after scavenging to set the correct mark expectation being on concurrent marking state.

Bug: https://github.com/dart-lang/sdk/issues/40780
Change-Id: Ic7ce6d5a829e41634083b0c274b9764da3f4b619
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137240
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2020-02-27 19:26:33 +00:00
Ryan Macnak 02f69a713e Revert "[vm] Handle sentinel in the IL serializer and Array-backed hash maps."
This reverts commit 62396cac55.

Reason for revert: Code size regressions likely due to the hash map change

Original change's description:
> [vm] Handle sentinel in the IL serializer and Array-backed hash maps.
> 
> Fixes crashes in vm/dart when use_nnbd = true.
> 
> Change-Id: Ieeb45227208cc6219f536130df38249d902dfe7f
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137462
> Reviewed-by: Siva Annamalai <asiva@google.com>
> Commit-Queue: Ryan Macnak <rmacnak@google.com>

TBR=rmacnak@google.com,alexmarkov@google.com,asiva@google.com,liama@google.com

Change-Id: I789bd219a7ab335771fcc0b39f25e9d0104945e0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137640
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2020-02-27 18:08:43 +00:00
Ryan Macnak 60c86a4009 [vm, gc] Fix races related to Scavenger::AddAbandonedInBytes and UsedInWords.
[infra] Run fewer tests under TSAN. TSAN has a significantly higher overhead than the other sanitizers.

Change-Id: I92b69923e93fa4634168352bdbe30d6ee7e7f72d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137402
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2020-02-27 18:01:13 +00:00
Ryan Macnak 95f87f321a [vm, io] Fix some MemorySanitizer issues.
Change-Id: Id6e085563b05861351c431a9c067387b4b01270b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137380
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2020-02-27 17:50:43 +00:00
Clement Skau b9f2c264ef [Backend] Fixes bug in IndirectGotoInstr::ComputeOffsetTable causing bad offsets.
The code previously used the target offset directly instead of the
JumpLabel which could cause it to miss multiple indirections, causing
a -1 offset.
This would manifest as a jump to an entry which would be
off-by-minus-one and thus hit the pre-code int3 barrier.

Bug: https://github.com/flutter/flutter/issues/51298
Change-Id: I0ef7d8ed578594bfb5fe9544f9b4aebaabc86275
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137303
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Clement Skau <cskau@google.com>
2020-02-27 11:03:50 +00:00
Alexander Markov 77e1c72d04 [vm/nnbd] Type testing stubs in NNBD strong mode
Issue: https://github.com/dart-lang/sdk/issues/38845
Change-Id: I82e7a1b3c4220abdd2a215529230fbb158adbe9e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135627
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
2020-02-27 04:36:24 +00:00
Alexander Markov 82236bd6ab [vm] Fix incorrect inference of non-nullability from 'is' checks
Fixes https://github.com/dart-lang/sdk/issues/40792
Fixes https://github.com/dart-lang/sdk/issues/40795

Change-Id: I0af455040e05265a025b1a424c1aac30f3476f95
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137426
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2020-02-27 03:35:34 +00:00
Ryan Macnak 62396cac55 [vm] Handle sentinel in the IL serializer and Array-backed hash maps.
Fixes crashes in vm/dart when use_nnbd = true.

Change-Id: Ieeb45227208cc6219f536130df38249d902dfe7f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137462
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2020-02-27 01:43:24 +00:00
Robert Nystrom 281716c6df Migrate a VM test off the ancient deprecated unittest package.
Change-Id: Id2d408b87bc40af75899fbe0922ba523cbde148c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136022
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
2020-02-26 23:29:21 +00:00
Liam Appelbe 9f73412618 [vm] Mark late fields as nullable in type propagator
Bug: https://github.com/dart-lang/sdk/issues/40738
Change-Id: Iaf5a5562d9a7ce3115c0dd72f0c78d307e3d1b2c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137421
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Liam Appelbe <liama@google.com>
2020-02-26 23:25:21 +00:00
Régis Crelier 432fa1b4e8 [VM/nnbd] Implement pre-nnbd language changes (see lang/#807).
Normalize FutureOr<T> and Never? after instantiation.
Use mutual subtyping of bounds in generic function type parameters instead of structural equality.

Change-Id: I78b836d8bd2f091bd56e5a0f9c2089a411fa6f6a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135787
Commit-Queue: Régis Crelier <regis@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
2020-02-26 21:32:51 +00:00
Clement Skau 9c05fde96b [Cleanup] Removes deprecated --gc_at_instance_allocation.
The flag only appears in two tests and a comment.
Flag was removed in https://dart-review.googlesource.com/c/sdk/+/83120

Change-Id: I2a5d828c8ec7909a3d16579f9a9771176aabb65e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136974
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Clement Skau <cskau@google.com>
2020-02-26 15:00:26 +00:00