Some symbols appear to be here instead of libc on ARM64.
Cf. 2c5ff0bd1a.
Change-Id: I21345e8277c802db9f5652eca5e605107ea2d794
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254261
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
These types now work with Dart_TypedDataAcquireData.
The presence of these types no longer degrades the performance of typed data indexed loads.
The presence of these types degrades the performance of typed data indexed stores much less. The performance of indexed stores is somewhat regressed if these types were not used.
TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/32028
Bug: https://github.com/dart-lang/sdk/issues/40924
Bug: https://github.com/dart-lang/sdk/issues/42785
Change-Id: I05ac5c9543f6f61ac37533b9efe511254778caed
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253700
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
This reverts commit 947a1f9627.
Reason for revert: we now know how to import this change
Original change's description:
> [deps] rollback the rev of package:http
>
> Bug: b/241795598
> Change-Id: I3b78dbdea3ba343f42ab3a59eb41bc4df605ee6c
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254061
> Reviewed-by: Oleh Prypin <oprypin@google.com>
> Commit-Queue: Oleh Prypin <oprypin@google.com>
Change-Id: I5e5d75af65ed51fd2e56bb6682b1cc3d9f99dafb
Bug: b/241795598
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254223
Reviewed-by: Oleh Prypin <oprypin@google.com>
Commit-Queue: Oleh Prypin <oprypin@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
It appears that the environment was intended to be nullable in
some type constructions.
DDC running in weak mode can fail when null is passed as an argument
that is typed to be non-nullable.
Change-Id: I2c67efacc1166e6053ef8d8d7820de2c022c5e1b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253706
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Late local variables are lowered to local get and set functions.
These functions should never need to be tagged with their types.
Avoids including and executing unneeded code in the compiled
output.
Change-Id: I0c7448147a2b5493f818a66dcebae827c36c5330
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253825
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Anna Gringauze <annagrin@google.com>
This is necessary to separate `ClassElement`, `EnumElement`, and `MixinElement`. And, in the future, augmentations like `ClassAugmentationElement`, etc.
Change-Id: Iecd2f8707212e53ef56f0e101880c7bab9e5d057
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254104
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This is a reland of commit 5b144f2ecb
TEST=ci
Original change's description:
> [vm] Require exact operating system match for snapshots with code.
>
> TEST=ci
> Change-Id: Ifb9e673f4aef0d42c2ef058174051ed6ed20b17b
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/252844
> Reviewed-by: Siva Annamalai <asiva@google.com>
> Reviewed-by: Brian Quinlan <bquinlan@google.com>
> Commit-Queue: Ryan Macnak <rmacnak@google.com>
> Reviewed-by: Alexander Markov <alexmarkov@google.com>
Change-Id: I5d64815a78be571873de85344ae7f8dabf55a91a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254203
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Each instruction should appear only once in the flow graph.
Before this change a ConstantInstr from initial definitions of
GraphEntry could be also added to initial definitions of FunctionEntry.
This is also a step towards https://github.com/dart-lang/sdk/issues/36894.
TEST=ci
Change-Id: I042258dced99cbf5a908028427da2cb5a8b0d329
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253840
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
This adds
* for_in.dart with ForInResult and ForInVariable classes
* inference_results.dart with all *Result and NullGuard classes
* inference_visitor_base.dart with InferenceVisitorBase and its helpers
* mixin_inferrer.dart with MixinInferrer
* object_access_target.dart with the ObjectAccessTarget classes
Leaving
* inference_visitor.dart with InferenceVisitor(Impl) and helpers
* type_inferrer.dart with TypeInferrer(Impl) and helpers
Makes
* closure_context.dart a library instead of a part
Change-Id: Ib26fae2f2b2ee6c18edcd32dc12d35d1072d4a8e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254020
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
This moves the receiver type to ObjectAccessTarget together with the
getGetter/Setter/Function...Type methods.
Change-Id: Id6afe9bb23f2667f86401732e42f1f49069d06a3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253980
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
This reflects the recent change to the implementation classes.
Change-Id: I0867a274c830d34f46c858713f0df511b7b811c8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254066
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Update the JavaScript bundler to maintain the state necessary for
the alternative invalidation strategy. This will provide the
javascript compiler with a single library component, so this must
handle re-combining this library with any SCC as well as keeping
the old summaries around.
Revived from https://dart-review.googlesource.com/c/sdk/+/196840
Change-Id: I1dd59d813172ac68ffcb189fcf3904c844828773
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/251960
Reviewed-by: Nicholas Shahan <nshahan@google.com>
This improves separation of concerns, since the `PromotionKeyStore`
class isn't really concerned with what fields are promotable; it's
just a mechanism for assigning unique integer identifiers to
promotable things.
I've moved `_promotableFields` to the main `_FlowAnalysisImpl` class.
To avoid having to add it as a separate argument to a lot of
[FlowModel] methods, I've created a new [FlowModelHelper] interface
that provides these methods with access to several fields in
`_FlowAnalysisImpl`.
Change-Id: I0280d0c0b95714521afbe68a07e7b3b54f23b7df
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254003
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
Compilers named "dartdevc" and "dartdevk" should be listed together
at all locations. These are now aliases for the same compiler
across different configurations.
In the future these names should converge on "dartdevc".
Some skipped tests for "dartdevc" no longer need to be skipped but
currently there are no configurations are running those tests with
that compiler name so removing the skips shows no change in test
results.
Change-Id: Ieca27fbe497c4768293de125b14c694666dc8a8b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253821
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
In a future CL, this will allow me to move flow_analysis_test.dart's
global variable _promotionKeyStore into the testing harness, which is
a prerequisite for some clean-up work I'm doing on flow analysis.
Change-Id: I44943b2706e237213896164910b4c6f488aa2794
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253901
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
This is in preparation for adding new documentation.
Change-Id: Icf77b898d3e0b2c6ae0c71419e70ecd6248c86e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254002
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
The unified base class for instructions with variable number of inputs
now keeps inputs in GrowableArray<Value*> (no indirection, no extra zone
memory allocation).
InputsArray is changed to GrowableArray<Value*> instead of
ZoneGrowableArray and passed as rvalue reference.
TEST=ci (pure refactoring)
Change-Id: I4a6f6835516c118c2b924720bcd8a964858e4368
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253820
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Fixes a TODO.
+ some minor comment improvements.
Change-Id: I1f6249376e3891e0d20f01269493ffcc4d9aec55
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253940
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
This is safe because this field is always initialized to a non-null
value before the EdgeBuilder is invoked.
Also, make `MigrationVisitorTestBase.variables` non-nullable; this is
safe for similar reasons.
Change-Id: I3a79efa8fb602dfe417a1e53937ddac4e129c86f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253860
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
This reverts commit 6abea1381b.
Reason for revert: Breaks internal build of migration tool
Original change's description:
> Migration: fix generate_resources.dart to use `dart compile js`.
>
> This is necessary because the command `dart2js` is no longer present
> in the SDK.
>
> Change-Id: Iea3cf3092bcda6c889c55a51d1b5601773404fb9
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253862
> Reviewed-by: Samuel Rawlins <srawlins@google.com>
> Commit-Queue: Paul Berry <paulberry@google.com>
TBR=paulberry@google.com,srawlins@google.com
Change-Id: I73c3321e6c473f5690eaddd94d13003c978234b6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253900
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
This is necessary because the command `dart2js` is no longer present
in the SDK.
Change-Id: Iea3cf3092bcda6c889c55a51d1b5601773404fb9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253862
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
Heap snapshots currently produced don't visit isolate stacks. As such
analyzing such snapshots may lead one to conclude there is a lot of
garbage while objects are actually reachable.
=> This CL makes us visit isolate stacks when building heap snapshots.
Furthermore we add a new `VMInternals.writeHeapSnapshotToFile` helper
that can be used to programmatically write snapshots and can be handy
for internal use at times. (We also use this helper in a test)
TEST=vm/dart{,_2}/heap_snapshot_test
Change-Id: I976544b7f6d20863764af9a40bf1ffb3c319bbce
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253785
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
This was requested by internal teams for easier querying/processing.
Change-Id: I59fea565f79bf92d4cf808cc0466b4e9cfa37fe8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253707
Commit-Queue: Mark Zhou <markzipan@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>