This was already done when generating ELF snapshots, but not when
generating assembly ones. This unifies the approaches so that
the static symbol is created while adding the Code payload instead
of as a separate step.
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-mac-release-simarm64-try,vm-kernel-precomp-win-release-x64-try
Change-Id: I191120728e03fdcd4d8df8a8fd3db00ce9175723
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139202
Commit-Queue: Teagan Strickland <sstrickl@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
There is currently a bug in the algorithm that is causing us to miss some constants in the deferred loading table. While I'm investigating, I'm defaulting missing constants to the main output unit. This should prevent downstream errors and unblock users that are hitting this.
Change-Id: I3a7eaf1f9fc98accadba2a494e249002b59eacfc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139311
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
The "super matches" feature should have been disabled (-1.0) when the
target wasn't `super`, but it wasn't. That artificially lowered the
score for methods. But it wasn't being used (even when it should have
been) for getters and setters, so their scores weren't being lowered.
That accounted for the poor mrr I was seeing. This fixes both problems
so that the feature is now used everywhere when it should be and not
when it shouldn't be.
Change-Id: I541a9b1ed524e8b2ed2c0c7f39e7bca786e12ea9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139380
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
This issue started when the test_runner started prodiving the experiment flag to all batch runners (https://dart-review.googlesource.com/c/sdk/+/131831). We might want to follow up and change the behavior in the test runner if that's appropriate.
Change-Id: I7fd6f96b1b6f1c310381248399dc3c62b87cd1d3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139400
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
We already report MIXIN_DECLARES_CONSTRUCTOR, and there was a crash
in quick fixes when we attempted to fix it for a mixin.
R=brianwilkerson@google.com
Change-Id: I453d1de0702e36978c3972fd586494d2cd92aa40
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139316
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
46: Warning: Operand of null-aware operation '!' has type '_SocketResourceInfo' which excludes null.
- '_SocketResourceInfo' is from 'dart:io'.
_SocketResourceInfo.SocketClosed(resourceInformation!);
output: org-dartlang-sdk:///sdk_nnbd/lib/_internal/vm/lib/mirrors_impl.dart:447:11: Error: A value of type 'Type?' can't be assigned to a variable of type 'Type'.
- 'Type' is from 'dart:core'.
? _supertype(_reflectedType) ^
These changes were introduced in
https://dart-review.googlesource.com/c/sdk/+/137140https://dart-review.googlesource.com/c/sdk/+/139061
Change-Id: Ib03c2257b69e7ae865a3242a70592c22c7458bd6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139182
Reviewed-by: Zichang Guo <zichangguo@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
Breadth first is theoretically slightly slower due to less locality of
reference, however it has the benefit of ensuring that the user sees
the shortest possible trace when investigating the cause of a change.
Without this change, it's possible to get some really confusing
traces, e.g. a trace suggesting that a type in some
previously-migrated library is nullable due to a cause within the
library currently being migrated.
This CL also adds tracking of why a node was determined to have
non-null intent, which I plan to expose to the user in follow-up CLs.
Change-Id: I43025ca0ab825d178a28555f85ad9eea43eadfe9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139140
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
This reverts commit ba68d04d3f being culprit for performance regression.
Revert "[vm/aot] Keep GC-visible references to dispatch table Code entries."
This reverts commit 98d09f8f78 being collateral damage for culprit cl for clean revert.
Bug: https://github.com/dart-lang/sdk/issues/41022
Change-Id: If62d3228f96c6b0a8884f77d0a549b5e5984cd4f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139305
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
Non-nullable and optional method arguments need default values. Embedded
the generic type argument into a List as an easy way to create a default
value.
Change-Id: Ib171c272c75b114447d356d423c45dc9aeff9bb4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139160
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
Change-Id: I132a1bd47324ba9f546af81c21c84c3f108a7797
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139220
Auto-Submit: Kevin Moore <kevmoo@google.com>
Reviewed-by: Michael Thomsen <mit@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Michael Thomsen <mit@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
Here I also add forCode(ErrorCode) method with the same goal - keep
all the knowledge about one issue in one place. Producers already
have to know which error they handle, because the have expectations
about the target node.
R=brianwilkerson@google.com, pquitslund@google.com
Change-Id: I584521b3a6e79cc126b5ff152dab26a397535463
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139181
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This change splits dispatch table handling into four distinct
parts:
* The dispatch table generator does not make a dispatch table
directly, but rather creates an Array that contains the Code
objects for dispatch table entries.
* The precompiler takes this Array and puts it in the object
store, which makes it a new GC root.
* The serializer takes this information and serializes the
dispatch table information in the same form as before.
* The deserializer creates a DispatchTable object and populates
it using the serialized information.
The change in the precompiler ensures that the Code objects
used in the dispatch table have GC-visible references. Thus,
even if all other references to them from the other GC roots
were removed, they would be accessible in the serializer in
the case of a GC pass between the precompiler and serializer.
This change also means that the serializer can retrieve and
trace the Code objects directly rather than first looking up
the Code objects by their entry point.
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-linux-release-simarm-try,vm-kernel-precomp-linux-release-simarm64-try,vm-kernel-precomp-linux-release-simarm_x64-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-mac-release-simarm64-try,vm-kernel-precomp-win-release-x64-try
Change-Id: Ic9ba29dfd64945a6e9a51f9de73f74d9202b58b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138288
Commit-Queue: Teagan Strickland <sstrickl@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Refactored code to handle lack of setUp and tearDown and async
completion across tests.
Change-Id: I5411e7b7cf3a5687c892c8d0a33f4a6e6a440c32
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139028
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Change-Id: I61d0b35fff087091eafa921f679a29760b00b84f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138103
Reviewed-by: Erik Ernst <eernst@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>